19 "The PropertyReadFile " 20 "GeneralUserObject to read element " 21 "specific property values from file");
23 "column_number",
"The column number (0-indexing) for the desired data in the CSV");
29 "Organization of data in the CSV file: " 32 "voronoi:nearest neighbor / voronoi tesselation structure " 33 "block:by mesh block");
36 params.
set<
unsigned short>(
"ghost_layers") = 1;
44 _read_prop_user_object(nullptr),
45 _column_number(getParam<unsigned
int>(
"column_number")),
51 "The column requested in the function is likely to just be containing point coordinates");
66 paramError(
"read_type",
"The PropertyReadFile UO should have the same read_type parameter.");
70 " greater than total number of properties " +
82 std::set<const Elem *> candidate_elements;
83 (*_point_locator)(p, candidate_elements);
86 const Elem * min_id_elem =
nullptr;
87 for (
const auto & elem : candidate_elements)
88 if (!min_id_elem || elem->id() < min_id_elem->id())
91 mooseError(
"No element located at ", p,
" to search in element or block sorted CSV values");
92 if (candidate_elements.size() > 1)
93 mooseWarning(
"Multiple elements have been found for Point ",
95 ". Lowest ID element will be used for reading CSV data.");
105 mooseError(
"No node was found at", p,
" for retrieving nodal data from CSV.");
113 mooseError(
"This should not be reachable. Implementation error somewhere");
Real getVoronoiData(const Point &point, const unsigned int prop_num) const
This function retrieves properties for elements from a file with nearest neighbor / grain based prope...
Base class for function objects.
FEProblemBase & _ti_feproblem
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
const unsigned int _column_number
The column number of interest in the CSV file.
registerMooseObject("MooseApp", PiecewiseConstantFromCSV)
virtual Real value(Real t, const Point &pt) const override
Get the value of the function based on the data in the CSV file.
Read properties from file - grain, element, node or block Input file syntax: prop1 prop2 etc...
ReadTypeEnum getReadType() const
Returns the ordering of data expected in the CSV file.
Real getNodeData(const Node *const node, const unsigned int prop_num) const
This function retrieves properties for nodes, from a file that has node-based data.
Real getData(const Elem *const elem, const unsigned int prop_num) const
This function retrieves property data for elements.
void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job...
virtual unsigned int dimension() const
Returns MeshBase::mesh_dimension(), (not MeshBase::spatial_dimension()!) of the underlying libMesh me...
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
const PropertyReadFile::ReadTypeEnum _read_type
Type of read - element, grain, or block.
std::unique_ptr< libMesh::PointLocatorBase > _point_locator
The point locator is used when values are sorted by elements or blocks in the CSV.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseWarning(Args &&... args) const
Emits a warning prefixed with object name and type.
virtual MooseMesh & mesh() override
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Function which provides a piecewise constant, in space, field from a CSV file.
virtual std::unique_ptr< libMesh::PointLocatorBase > getPointLocator() const
Proxy function to get a (sub)PointLocator from either the underlying libMesh mesh (default)...
const PropertyReadFile * _read_prop_user_object
A user object that takes care of reading the CSV file.
PiecewiseConstantFromCSV(const InputParameters ¶meters)
static InputParameters validParams()
Class constructor.
static InputParameters validParams()
unsigned int getNumProperties() const
Returns the number of properties (columns) read in the file.
void ErrorVector unsigned int