1#ifndef OPAL_FIELD_CONTAINER_H
2#define OPAL_FIELD_CONTAINER_H
6#include "Manager/BaseManager.h"
9using Mesh_t = ippl::UniformCartesian<double, Dim>;
11template <
typename T,
unsigned Dim>
12using PLayout_t =
typename ippl::ParticleSpatialLayout<T, Dim, Mesh_t<Dim>>;
14template <
unsigned Dim>
17template <
unsigned Dim>
20template <
typename T,
unsigned Dim,
class... ViewArgs>
23template <
unsigned Dim,
class... ViewArgs>
26template <
typename T,
unsigned Dim>
29template <
typename T,
unsigned Dim,
class... ViewArgs>
33template <
typename T,
unsigned Dim = 3>
38 std::array<bool, Dim> decomp, ippl::NDIndex<Dim> domain,
Vector_t<T, Dim> origin,
44 mesh_m(domain, hr, origin),
45 fl_m(MPI_COMM_WORLD, domain, decomp, isAllPeriodic) {}
89 Inform m(
"FieldContainer::initializeFields");
90 m << level3 <<
"Mesh spacing = " <<
mesh_m.getMeshSpacing() << endl;
91 m << level3 <<
"Origin = " <<
mesh_m.getOrigin() << endl;
92 m << level3 <<
"FL = " <<
fl_m << endl;
96 m << level3 <<
"E_m, rho_m field initialized." << endl;
97 if (stype_m ==
"CG") {
99 m << level3 <<
"Phi field initialized for " << stype_m << endl;
ippl::Vector< T, Dim > Vector_t
Field< Vector_t< T, Dim >, Dim, ViewArgs... > VField_t
typename ippl::ParticleSpatialLayout< T, Dim, Mesh_t< Dim > > PLayout_t
Field< double, Dim, ViewArgs... > Field_t
ippl::FieldLayout< Dim > FieldLayout_t
ippl::Vector< T, Dim > Vector_t
typename Mesh_t< Dim >::DefaultCentering Centering_t
ippl::Field< T, Dim, Mesh_t< Dim >, Centering_t< Dim >, ViewArgs... > Field
ippl::UniformCartesian< double, Dim > Mesh_t
ippl::FieldLayout< Dim > FieldLayout_t
ippl::Field< double, Dim, ViewArgs... > Field_t
ippl::Field< ippl::Vector< T, Dim >, Dim, ViewArgs... > VField_t
ippl::UniformCartesian< double, 3 > Mesh_t
Vector_t< double, Dim > rmax_m
void setMesh(Mesh_t< Dim > &mesh)
void setE(VField_t< T, Dim > &E)
FieldContainer(Vector_t< T, Dim > &hr, Vector_t< T, Dim > &rmin, Vector_t< T, Dim > &rmax, std::array< bool, Dim > decomp, ippl::NDIndex< Dim > domain, Vector_t< T, Dim > origin, bool isAllPeriodic)
Vector_t< double, Dim > & getRMin()
Vector_t< double, Dim > hr_m
void initializeFields(std::string stype_m="")
Field< T, Dim > & getPhi()
std::array< bool, Dim > getDecomp()
void setRho(Field_t< Dim > &rho)
std::array< bool, Dim > decomp_m
Vector_t< double, Dim > & getRMax()
FieldLayout_t< Dim > & getFL()
void setFL(std::shared_ptr< FieldLayout_t< Dim > > &fl)
Field_t< Dim > & getRho()
void setRMax(const Vector_t< double, Dim > &rmax)
void setDecomp(std::array< bool, Dim > decomp)
void setHr(const Vector_t< double, Dim > &hr)
void setPhi(Field< T, Dim > &phi)
void setRMin(const Vector_t< double, Dim > &rmin)
Mesh_t< Dim > & getMesh()
FieldLayout_t< Dim > fl_m
VField_t< T, Dim > & getE()
Vector_t< double, Dim > & getHr()
Vector_t< double, Dim > rmin_m