43 "maxwellian.face",
"List of faces on which set Maxwellian boundary conditions are to be applied ([xyz][+-]).");
45 "Precedence value of the set Maxwellian boundary condition (integer), the higher the stronger.",
48 "If 0 (default), keep going with the state existing in the restart file. If 1, calls again "
49 "applyInitialState. Can be used to change boundary condition behaviour during a run.",
51 Readparameters::add(
"maxwellian.t_interval",
"Time interval in seconds for applying the varying inflow condition.",
58 "Input files for the set Maxwellian inflow parameters on face x+. Data format per line: time "
59 "(s) density (p/m^3) Temperature (K) Vx Vy Vz (m/s) Bx By Bz (T).",
62 "Input files for the set Maxwellian inflow parameters on face x-. Data format per line: time "
63 "(s) density (p/m^3) Temperature (K) Vx Vy Vz (m/s) Bx By Bz (T).",
66 "Input files for the set Maxwellian inflow parameters on face y+. Data format per line: time "
67 "(s) density (p/m^3) Temperature (K) Vx Vy Vz (m/s) Bx By Bz (T).",
70 "Input files for the set Maxwellian inflow parameters on face y-. Data format per line: time "
71 "(s) density (p/m^3) Temperature (K) Vx Vy Vz (m/s) Bx By Bz (T).",
74 "Input files for the set Maxwellian inflow parameters on face z+. Data format per line: time "
75 "(s) density (p/m^3) Temperature (K) Vx Vy Vz (m/s) Bx By Bz (T).",
78 "Input files for the set Maxwellian inflow parameters on face z-. Data format per line: time "
79 "(s) density (p/m^3) Temperature (K) Vx Vy Vz (m/s) Bx By Bz (T).",
82 "Boolean value, is the set Maxwellian inflow dynamic in time or not.", 0);
127 Real initRho, initT, initV0X, initV0Y, initV0Z, Bx = 0, By = 0, Bz = 0, buffer[8];
134 templateCell.
clear(popID,
false);
177 vmesh->getBlockInfo(blockGID,&blockCoords[0]);
178 creal vxBlock = blockCoords[0];
179 creal vyBlock = blockCoords[1];
180 creal vzBlock = blockCoords[2];
181 creal dvxCell = blockCoords[3];
182 creal dvyCell = blockCoords[4];
183 creal dvzCell = blockCoords[5];
185 creal vx = vxBlock + (
i+0.5)*dvxCell - initV0X;
186 creal vy = vyBlock + (
j+0.5)*dvyCell - initV0Y;
187 creal vz = vzBlock + (
k+0.5)*dvzCell - initV0Z;
#define ARCH_INNER_BODY(...)
void calculateCellMoments(spatial_cell::SpatialCell *cell, const bool &computeSecond, const bool &computePopulationMomentsOnly, const bool &doNotSkip)
static void addComposing(const std::string &name, const std::string &desc)
static void get(const std::string &name, std::string &value)
static void add(const std::string &name, const std::string &desc, const std::string &defValue)
void interpolate(const int inputDataIndex, const uint popID, creal t, Real *outputData)
std::vector< InflowSpeciesParameters > speciesParams
std::vector< std::string > faceList
static void addParameters()
virtual string getName() const override
virtual void getParameters() override
virtual uint getIndex() const override
virtual void generateTemplateCell()
vmesh::VelocityMesh * get_velocity_mesh(const size_t &popID)
vmesh::VelocityBlockContainer * get_velocity_blocks(const size_t &popID)
void adjustSingleCellVelocityBlocks(const uint popID, bool doDeleteEmpty=false)
Real getVelocityBlockMinValue(const uint popID) const
void clear(const uint popID, bool shrink=false)
void prepare_to_receive_blocks(const uint popID)
void applyReservation(const uint popID)
std::array< Real, CellParams::N_SPATIAL_CELL_PARAMS > parameters
void setReservation(const uint popID, const vmesh::LocalID reservationsize, bool force=false)
vmesh::VelocityBlockContainer * dev_get_velocity_blocks(const size_t &popID)
vmesh::VelocityMesh * dev_get_velocity_mesh(const size_t &popID)
ARCH_HOSTDEV Realf * getData()
ObjectWrapper & getObjectWrapper()
vmesh::LocalID findMaxwellianBlocksToInitialize(const uint popID, spatial_cell::SpatialCell &cell, creal &rho, creal &T, creal &VX0, creal &VY0, creal &VZ0)
SBC::findMaxwellianBlocksToInitialize returns a list of blocks to construct the VDF with.
static void parallel_reduce(const uint(&limits)[NDim], Lambda loop_body, T &sum)
ARCH_HOSTDEV Realf MaxwellianPhaseSpaceDensity(creal &vx, creal &vy, creal &vz, creal &T, creal &rho, creal &mass)
std::vector< species::Species > particleSpecies