13#include "libmesh/mesh_function.h"
14#include "libmesh/exodusII_io.h"
15#include "libmesh/nemesis_io.h"
23 params.
addClassDescription(
"Process an XYZ file of atomic coordinates and filter atoms via "
24 "threshold or map variable values.");
28 "variable",
"Variable from the mesh file to use for mapping to or filtering of the atoms.");
30 params.
addParam<
MooseEnum>(
"raster_mode", modeEnum,
"Rasterization mode (MAP|FILTER).");
32 "Accept atoms with a variable value above this threshold in FILTER mode.");
38 _xyz_input(getParam<FileName>(
"xyz_input")),
39 _xyz_output(getParam<FileName>(
"xyz_output")),
40 _variable(getParam<
std::string>(
"variable")),
41 _raster_mode(getParam<
MooseEnum>(
"raster_mode")),
47 mooseError(
"Please specify 'threshold' parameter for raster_mode = FILTER");
68 std::string line, dummy;
70 unsigned int current_line = 0;
71 unsigned int nfilter = 0, len0 = 0;
72 while (std::getline(stream_in, line))
77 stream_out << line <<
'\n';
81 if (current_line == 0)
86 std::istringstream iss(line);
88 if (iss >> dummy >>
x >>
y >> z)
97 stream_out << line <<
'\n';
114 std::ostringstream oss;
116 std::string newline0 = oss.str();
119 if (newline0.size() > len0)
121 mooseWarning(
"SolutionRasterizer could not update XYZ atom count in header.");
126 while (newline0.size() < len0)
130 std::ofstream stream_fix(
_xyz_output.c_str(), std::ios::binary | std::ios::in | std::ios::out);
131 stream_fix << newline0;
const std::vector< double > y
const std::vector< double > x
registerMooseObject("PhaseFieldApp", SolutionRasterizer)
void mooseError(Args &&... args) const
void mooseWarning(Args &&... args) const
bool isParamValid(const std::string &name) const
This Userobject is the base class of Userobjects that generate one random number per timestep and qua...
SolutionRasterizer(const InputParameters ¶meters)
static InputParameters validParams()
virtual void initialSetup()
Initialize the System and Mesh objects for the solution being read.
Real pointValue(Real t, const Point &p, const unsigned int local_var_index, const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
virtual void initialSetup() override
static InputParameters validParams()