36 "The \"DUMPFIELDS\" statement dumps a field map to a user-defined "
37 "field file, for checking that fields are read in correctly "
38 "from disk. The fields are written out on a Cartesian grid.") {
41 (
"FILE_NAME",
"Name of the file to which field data is dumped");
44 (
"X_START",
"Start point in the grid in x [m]");
47 (
"DX",
"Grid step size in x [m]");
50 (
"X_STEPS",
"Number of steps in x");
53 (
"Y_START",
"Start point in the grid in y [m]");
56 (
"DY",
"Grid step size in y [m]");
59 (
"Y_STEPS",
"Number of steps in y");
62 (
"Z_START",
"Start point in the grid in z [m]");
65 (
"DZ",
"Grid step size in z [m]");
68 (
"Z_STEPS",
"Number of steps in z");
129 typedef std::unordered_set<DumpFields*>::iterator dump_iter;
131 (*it)->writeFieldThis(field);
138 "The grid was nullptr; there was a problem with the DumpFields initialisation.");
140 if (field ==
nullptr) {
142 "The field to be written was nullptr.");
148 if (std::filesystem::path(
filename_m).is_absolute() ==
true) {
160 std::ofstream fout(fname.c_str(), std::ofstream::out);
163 "Failed to open DumpFields file " +
filename_m);
166 fout <<
grid_m->end().toInteger() <<
"\n";
167 fout << 1 <<
" x [m]\n";
168 fout << 2 <<
" y [m]\n";
169 fout << 3 <<
" z [m]\n";
170 fout << 4 <<
" Bx [kGauss]\n";
171 fout << 5 <<
" By [kGauss]\n";
172 fout << 6 <<
" Bz [kGauss]\n";
173 fout << 0 << std::endl;
179 it.getPosition(&point[0]);
180 field->
apply(point, centroid, time, E, B);
181 fout << point[0] <<
" " << point[1] <<
" " << point[2] <<
" ";
182 fout << B[0] <<
" " << B[1] <<
" " << B[2] <<
"\n";
186 "Something went wrong during writing " +
filename_m);
192 os <<
"* ************* D U M P F I E L D S *********************************************** " << std::endl;
203 os <<
"* ********************************************************************************** " << std::endl;
PartBunchBase< T, Dim >::ConstIterator end(PartBunchBase< T, Dim > const &bunch)
Inform & endl(Inform &inf)
double getReal(const Attribute &attr)
Return real value.
Attribute makeReal(const std::string &name, const std::string &help)
Make real attribute.
std::string getString(const Attribute &attr)
Get string value.
Attribute makeString(const std::string &name, const std::string &help)
Make string attribute.
std::string combineFilePath(std::initializer_list< std::string > ilist)
void checkInt(double real, std::string name, double tolerance)
Action(int size, const char *name, const char *help)
Constructor for exemplars.
void registerOwnership(const AttributeHandler::OwnerType &itsClass) const
std::vector< Attribute > itsAttr
The object attributes.
static OpalData * getInstance()
std::string getAuxiliaryOutputDirectory() const
get the name of the the additional data directory
virtual void writeFieldThis(Component *field)
void print(std::ostream &os) const
static void writeFields(Component *field)
static std::unordered_set< DumpFields * > dumpsSet_m
interpolation::ThreeDGrid * grid_m
virtual DumpFields * clone(const std::string &name)
Interface for a single beam element.
virtual bool apply(const size_t &i, const double &t, Vector_t &E, Vector_t &B)
The base class for all OPAL exceptions.
Vektor< double, 3 > Vector_t