19 class EquationSystems;
67 const std::string & var_name,
69 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
82 const unsigned int local_var_index,
83 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
96 const std::string & var_name,
97 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
111 std::map<const Elem *, Real>
114 const unsigned int local_var_index,
115 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
129 std::map<const Elem *, Real>
132 const std::string & var_name,
133 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
149 const std::string & var_name,
151 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
165 const std::string & var_name,
166 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
180 const unsigned int local_var_index,
181 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
198 const std::string & var_name,
199 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
216 const unsigned int local_var_index,
217 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
225 Real directValue(
const Node * node,
const std::string & var_name)
const;
233 Real directValue(
const Elem * elem,
const std::string & var_name)
const;
251 virtual void execute()
override;
262 return MooseEnum(
"found_first=1 average=2 smallest_element_id=4 largest_element_id=8",
344 const unsigned int local_var_index,
345 unsigned int func_num,
346 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
356 std::map<const Elem *, Real>
358 const unsigned int local_var_index,
359 unsigned int func_num,
360 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
371 const unsigned int local_var_index,
372 unsigned int func_num,
373 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
386 const unsigned int local_var_index,
387 unsigned int func_num,
388 const std::set<subdomain_id_type> * subdomain_ids =
nullptr)
const;
429 std::unique_ptr<libMesh::MeshBase>
_mesh;
432 std::unique_ptr<libMesh::EquationSystems>
_es;
447 std::unique_ptr<libMesh::EquationSystems>
_es2;
MultiMooseEnum _transformation_order
transformations (rotations, translation, scales) are performed in this order
std::vector< std::string > _system_variables
A list of variables to extract from the read system.
static InputParameters validParams()
SolutionUserObjectBase(const InputParameters ¶meters)
std::unique_ptr< libMesh::MeshFunction > _mesh_function2
Pointer to second libMesh::MeshFuntion, used for interpolation.
std::unique_ptr< libMesh::EquationSystems > _es
Pointer to the libMesh::EquationSystems object.
RealVectorValue _rotation0_vector
vector about which to rotate
const std::vector< Real > * _exodus_times
The times available in the ExodusII file.
virtual void initialSetup() override
Initialize the System and Mesh objects for the solution being read.
virtual Real solutionSampleTime()=0
Get the time at which to sample the solution.
void readXda()
Method for reading XDA mesh and equation systems file(s) This method is called by the constructor whe...
static Threads::spin_mutex _solution_user_object_mutex
std::map< const Elem *, libMesh::RealGradient > discontinuousPointValueGradient(Real t, const Point &p, const std::string &var_name, const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
Returns the gradient at a specific location and variable for cases where the gradient is multivalued ...
User object that reads an existing solution from an input file and uses it in the current simulation...
std::unique_ptr< NumericVector< Number > > _serialized_solution2
Pointer to second serial solution, used for interpolation.
std::vector< Real > _scale
Scale parameter.
std::vector< Real > _translation
Translation.
Real _rotation1_angle
angle (in degrees) which to rotate through about vector _rotation1_vector
Real _rotation0_angle
angle (in degrees) which to rotate through about vector _rotation0_vector
static MooseEnum weightingType()
MooseEnum getSolutionFileType() const
Get the type of file that was read.
int _exodus_time_index
Current ExodusII time index.
std::unique_ptr< libMesh::ExodusII_IO > _exodusII_io
Pointer to the libMesh::ExodusII used to read the files.
Real _interpolation_time
Time in the current simulation at which the solution interpolation was last updated.
std::unique_ptr< libMesh::EquationSystems > _es2
Pointer to second libMesh::EquationSystems object, used for interpolation.
std::map< const Elem *, Real > evalMultiValuedMeshFunction(const Point &p, const unsigned int local_var_index, unsigned int func_num, const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
A wrapper method for calling the various MeshFunctions that calls the mesh function functionality for...
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
libMesh::RealGradient evalMeshFunctionGradient(const Point &p, const unsigned int local_var_index, unsigned int func_num, const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
A wrapper method interfacing with the libMesh mesh function for evaluating the gradient.
std::unique_ptr< NumericVector< Number > > _serialized_solution
Pointer to the serial solution vector.
bool _initialized
True if initial_setup has executed.
std::map< SubdomainName, SubdomainID > _block_name_to_id
Map from block ID to block names. Read from the ExodusII file.
virtual void timestepSetup() override
When reading ExodusII files, this will update the interpolation times.
virtual void execute() override
Execute method.
const std::string getMeshFileName() const
Return the name of the mesh file this object read the solution from.
std::unique_ptr< libMesh::MeshBase > _mesh
Pointer the libMesh::mesh object.
TensorValue< Real > RealTensorValue
libMesh::System * _system
Pointer libMesh::System class storing the read solution.
bool updateExodusBracketingTimeIndices()
Updates the time indices to interpolate between for ExodusII data.
RealVectorValue _rotation1_vector
vector about which to rotate
std::string _mesh_file
The XDA or ExodusII file that is being read.
std::vector< std::string > _scalar_variables
Stores names of scalar variables.
unsigned int getMeshFileDimension() const
Return the spatial dimension of the mesh file.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
RealTensorValue _r1
Rotation matrix that performs the "_rotation1_angle about rotation1_vector".
void readExodusII()
Method for reading an ExodusII file, which is called when 'file_type = exodusII is set in the input f...
virtual void initialize() override
Called before execute() is ever called so that data can be cleared.
Real evalMeshFunction(const Point &p, const unsigned int local_var_index, unsigned int func_num, const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
A wrapper method for calling the various MeshFunctions used for reading the data. ...
void updateExodusTimeInterpolation()
Updates the times for interpolating ExodusII data.
Real scalarValue(Real t, const std::string &var_name) const
Returns a value of a global variable.
const MooseEnum _nodal_variable_order
Nodal variable order, used when reading in solution data.
libMesh::System * _system2
Pointer to a second libMesh::System object, used for interpolation.
Real directValue(const Node *node, const std::string &var_name) const
Return a value directly from a Node.
void readBlockIdMapFromExodusII()
Read block ID map from the ExodusII file.
const std::vector< std::string > & variableNames() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::map< SubdomainName, SubdomainID > & getBlockNamesToIds() const
Get the map from block name to block ID.
bool isVariableNodal(const std::string &var_name) const
std::map< std::string, unsigned int > _local_variable_index
Stores the local index need by MeshFunction.
std::map< const Elem *, libMesh::RealGradient > evalMultiValuedMeshFunctionGradient(const Point &p, const unsigned int local_var_index, unsigned int func_num, const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
A wrapper method interfacing with the libMesh mesh function that calls the gradient functionality for...
Real pointValueWrapper(Real t, const Point &p, const std::string &var_name, const MooseEnum &weighting_type=weightingType(), const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
Returns a value at a specific location and variable checking for multiple values and weighting these ...
int _exodus_index1
Time index 1, used for interpolation.
std::vector< std::string > _nodal_variables
Stores names of nodal variables.
std::string _es_file
The XDA file that contians the EquationSystems data (xda only)
RealTensorValue _r0
Rotation matrix that performs the "_rotation0_angle about rotation0_vector".
std::vector< std::string > _elemental_variables
Stores names of elemental variables.
const InputParameters & parameters() const
Get the parameters of the object.
const std::map< SubdomainID, SubdomainName > & getBlockIdsToNames() const
Get the map from block id to block name.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type...
MooseEnum _file_type
File type to read (0 = xda; 1 = ExodusII)
libMesh::RealGradient pointValueGradientWrapper(Real t, const Point &p, const std::string &var_name, const MooseEnum &weighting_type=weightingType(), const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
Returns the gradient at a specific location and variable checking for multiple values and weighting t...
std::vector< Real > _scale_multiplier
scale_multiplier parameter
std::unique_ptr< libMesh::MeshFunction > _mesh_function
Pointer the libMesh::MeshFunction object that the read data is stored.
bool _interpolate_times
Flag for triggering interpolation of ExodusII data.
std::string _system_name
The system name to extract from the XDA file (xda only)
std::map< const Elem *, Real > discontinuousPointValue(Real t, Point pt, const unsigned int local_var_index, const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
Returns a value at a specific location and variable for cases where the solution is multivalued at el...
Real pointValue(Real t, const Point &p, const unsigned int local_var_index, const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
Returns a value at a specific location and variable (see SolutionFunction)
unsigned int getLocalVarIndex(const std::string &var_name) const
Returns the local index for a given variable name.
int _exodus_index2
Time index 2, used for interpolation.
Real _interpolation_factor
Interpolation weight factor.
std::map< SubdomainID, SubdomainName > _block_id_to_name
Map from block names to block IDs. Read from the ExodusII file.
virtual void finalize() override
Finalize.
libMesh::RealGradient pointValueGradient(Real t, const Point &p, const std::string &var_name, const std::set< subdomain_id_type > *subdomain_ids=nullptr) const
Returns the gradient at a specific location and variable (see SolutionFunction)