22 params.
addRequiredParam<FileName>(
"filename",
"The name of the file containing the EBSD data");
24 "uniform_refine", 0,
"Number of coarsening levels available in adaptive mesh refinement.");
43 :
GeneratedMesh(parameters), _filename(getParam<FileName>(
"filename"))
46 "EBSDMesh is deprecated, please use the EBSDMeshGenerator instead. For example:\n\n[Mesh]\n " 47 "type = EBDSMesh\n filename = my_ebsd_data.dat\n[]\n\nbecomes\n\n[Mesh]\n [ebsd_mesh]\n " 48 "type = EBDSMeshGenerator\n filename = my_ebsd_data.dat\n []\n[]");
51 mooseWarning(
"Do not specify mesh geometry information, it is read from the EBSD file.");
59 std::ifstream stream_in(
_filename.c_str());
65 std::vector<std::string> labels = {
66 "x_step",
"x_dim",
"y_step",
"y_dim",
"z_step",
"z_dim",
"x_min",
"y_min",
"z_min"};
71 std::vector<Real> label_vals(labels.size(), 0.0);
74 while (std::getline(stream_in, line))
81 if (line.find(
"#") == 0)
84 std::transform(line.begin(), line.end(), line.begin(), ::tolower);
86 for (
unsigned i = 0; i < labels.size(); ++i)
87 if (line.find(labels[i]) != std::string::npos)
90 std::istringstream iss(line);
91 iss >> dummy >> dummy >> label_vals[i];
122 for (
unsigned i = 0; i <
dim; ++i)
125 mooseError(
"Error reading header, EBSD grid size is zero.");
127 mooseError(
"Error reading header, EBSD data step size is zero.");
131 mooseError(
"Error reading header, EBSD data is zero dimensional.");
141 unsigned int uniform_refine = getParam<unsigned int>(
"uniform_refine");
144 std::array<unsigned int, 3> nr;
158 for (
unsigned int i = 0; i < uniform_refine; ++i)
162 mooseError(
"EBSDMesh error. Requested uniform_refine levels not possible.");
EBSDMesh(const InputParameters ¶meters)
void mooseDeprecated(Args &&... args) const
void readEBSDHeader()
Read the EBSD data file header.
static InputParameters validParams()
void mooseWarning(Args &&... args) const
virtual void buildMesh() override
std::array< Real, 3 > min
EBSDMeshGenerator::Geometry _geometry
EBSD data file mesh information.
void paramError(const std::string ¶m, Args... args) const
registerMooseObject("PhaseFieldApp", EBSDMesh)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::string _filename
Name of the file containing the EBSD data.
void mooseError(Args &&... args) const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
std::array< unsigned int, 3 > n
Mesh generated from parameters.
static InputParameters validParams()