44 RP::add(
"Template.param",
"This is my project's parameter. Default is 0.0", 0.0);
51 RP::get(
"Template.param", this->
param);
72 const std::array<Real, 3> V0 = this->
getV0(x, y, z, popID)[0];
73 creal initV0X = V0[0];
74 creal initV0Y = V0[1];
75 creal initV0Z = V0[2];
94 vmesh->getBlockInfo(blockGID,&blockCoords[0]);
95 creal vxBlock = blockCoords[0];
96 creal vyBlock = blockCoords[1];
97 creal vzBlock = blockCoords[2];
98 creal dvxCell = blockCoords[3];
99 creal dvyCell = blockCoords[4];
100 creal dvzCell = blockCoords[5];
102 creal vx = vxBlock + (
i+0.5)*dvxCell - initV0X;
103 creal vy = vyBlock + (
j+0.5)*dvyCell - initV0Y;
104 creal vz = vzBlock + (
k+0.5)*dvzCell - initV0Z;
128 const std::array<Real, 3> V0 = this->
getV0(x, y, z, popID)[0];
129 creal initV0X = V0[0];
130 creal initV0Y = V0[1];
131 creal initV0Z = V0[2];
132 creal vx = vx_in - initV0X;
133 creal vy = vy_in - initV0Y;
134 creal vz = vz_in - initV0Z;
153 vector<std::array<Real, 3>> centerPoints;
154 std::array<Real, 3> point {{0.0, 0.0, 0.0}};
155 if(x < 0.0) point[1] = 1.0;
156 centerPoints.push_back(point);
#define ARCH_INNER_BODY(...)
void setBackgroundField(const FieldFunction &bgFunction, fsgrids::bgbspan bgb, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, bool append)
void initialize(const double moment, const double center_x, const double center_y, const double center_z, const double tilt_angle)
virtual bool initialize()
virtual void setProjectBField(fsgrids::perbspan perb, fsgrids::bgbspan bgb, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid) override
virtual void getParameters(void) override
virtual bool initialize(void) override
virtual Realf probePhaseSpace(spatial_cell::SpatialCell *cell, const uint popID, Real vx_in, Real vy_in, Real vz_in) const override
virtual std::vector< std::array< Real, 3 > > getV0(creal x, creal y, creal z, const uint popID) const override
Return a vector containing the velocity coordinate of the centre of each ion population in the distri...
virtual Realf fillPhaseSpace(spatial_cell::SpatialCell *cell, const uint popID, const uint nRequested) const override
static void addParameters(void)
vmesh::VelocityMesh * get_velocity_mesh(const size_t &popID)
vmesh::VelocityBlockContainer * get_velocity_blocks(const size_t &popID)
std::array< Real, CellParams::N_SPATIAL_CELL_PARAMS > parameters
vmesh::VelocityBlockContainer * dev_get_velocity_blocks(const size_t &popID)
vmesh::VelocityMesh * dev_get_velocity_mesh(const size_t &popID)
ARCH_HOSTDEV Realf * getData()
fsgrid::FsGrid< FS_STENCIL_WIDTH > FieldSolverGrid
ObjectWrapper & getObjectWrapper()
static void parallel_reduce(const uint(&limits)[NDim], Lambda loop_body, T &sum)
std::span< std::array< Real, fsgrids::bfield::N_BFIELD > > perbspan
std::span< technical > technicalspan
std::span< std::array< Real, bgbfield::N_BGB > > bgbspan
ARCH_HOSTDEV Realf MaxwellianPhaseSpaceDensity(creal &vx, creal &vy, creal &vz, creal &T, creal &rho, creal &mass)
std::vector< species::Species > particleSpecies
static void getParameters()
Get the global parameters.