42 "The \"FIELDSOLVER\" statement defines data for a the field solver") {
44 "TYPE",
"Name of the attached field solver.",
45 {
"NONE",
"FFT",
"OPEN",
"CG"});
48 "BINS",
"Name of BINNING definition to be used, or NONE for no binning.",
"NONE");
64 "BCFFTX",
"Boundary conditions in x.", {
"OPEN",
"DIRICHLET",
"PERIODIC"},
"OPEN");
67 "BCFFTY",
"Boundary conditions in y.", {
"OPEN",
"DIRICHLET",
"PERIODIC"},
"OPEN");
70 "BCFFTZ",
"Boundary conditions in z.", {
"OPEN",
"DIRICHLET",
"PERIODIC"},
"OPEN");
73 "GREENSF",
"Which Greensfunction to be used.", {
"STANDARD",
"INTEGRATED"},
100 throw OpalException(
"FieldSolverCmd::find()",
"FieldSolverCmd \"" + name +
"\" not found.");
114 BCH_t boundary_conditions(
124 if (!boundary_conditions.isAllEqual()) {
126 "PartBunch::PartBunch",
127 "Currently only uniform boundary conditions in all "
128 "dimensions are supported! Please set all "
129 "dimensions to either OPEN or PERIODIC.");
132 return boundary_conditions;
158 static const std::map<std::string, FieldSolverCmdType> stringType_s = {
168 "FieldSolverCmd::setFieldSolverCmdType",
169 "The attribute \"TYPE\" isn't set for \"FIELDSOLVER\"!");
179 if (binsName ==
"NONE" || binsName.empty()) {
186 os <<
"* ************* F I E L D S O L V E R ********************************************** "
191 <<
"* RANKS " << ippl::Comm->size() <<
'\n'
199 os <<
"* XDIM parallel " << endl;
201 os <<
"* XDIM serial " << endl;
205 os <<
"* YDIM parallel " << endl;
207 os <<
"* YDIM serial " << endl;
211 os <<
"* ZDIM parallel " << endl;
213 os <<
"* ZDIM serial " << endl;
216 os <<
"* ********************************************************************************** "
Handler for boundary conditions per spatial dimension.
static BinningCmd * find(const std::string &name)
Find named BINNING command.
The base class for all OPAL definitions.
virtual void execute()
Execute (init) the field solver data.
BCHandler< 3 > constructBCHandler() const
Returns solver boundary conditions handler object.
virtual FieldSolverCmd * clone(const std::string &name)
Make clone.
FieldSolverCmdType fsType_m
static FieldSolverCmd * find(const std::string &name)
Find named FieldSolverCmd.
Inform & printInfo(Inform &os) const
FieldSolverCmd()
Exemplar constructor.
double getNX() const
Return meshsize.
BinningCmd * getBinningCmd() const
virtual ~FieldSolverCmd()
double getNY() const
Return meshsize.
double getNZ() const
Return meshsize.
std::string getBinsName() const
virtual void update()
Update the field solver data.
double getBoxIncr() const
void setFieldSolverCmdType()
const std::string & getOpalName() const
Return object name.
std::vector< Attribute > itsAttr
The object attributes.
Object * find(const std::string &name)
Find entry.
static OpalData * getInstance()
Attribute makeBool(const std::string &name, const std::string &help)
Make logical attribute.
double getReal(const Attribute &attr)
Return real value.
Attribute makePredefinedString(const std::string &name, const std::string &help, const std::initializer_list< std::string > &predefinedStrings)
Make predefined string attribute.
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
bool getBool(const Attribute &attr)
Return logical value.
void setReal(Attribute &attr, double val)
Set real value.
std::string getString(const Attribute &attr)
Get string value.
Attribute makeString(const std::string &name, const std::string &help)
Make string attribute.
Representation objects and parsers for attribute expressions.