https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
EBSDReader Class Reference

A GeneralUserObject that reads an EBSD file and stores the centroid data in a data structure which indexes on element centroids. More...

#include <EBSDReader.h>

Inheritance diagram for EBSDReader:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 EBSDReader (const InputParameters &params)
 
virtual ~EBSDReader ()
 
virtual void readFile ()
 
virtual void initialize ()
 
virtual void execute ()
 
virtual void finalize ()
 
const EBSDPointDatagetData (const Point &p) const
 Get the requested type of data at the point p.
 
const EBSDAvgDatagetAvgData (unsigned int i) const
 Get the requested type of average data for (global) grain number i.
 
const EBSDAvgDatagetAvgData (unsigned int phase, unsigned int local_id) const
 Get the requested type of average data for a given phase and (local) grain.
 
virtual const EulerAnglesgetEulerAngles (unsigned int) const
 EulerAngleProvider interface implementation to fetch a triplet of Euler angles.
 
virtual unsigned int getGrainNum () const
 Return the total number of grains.
 
virtual unsigned int getPhaseNum () const
 Return the total number of phases.
 
virtual unsigned int getGrainNum (unsigned int phase) const
 Return the number of grains in a given phase.
 
unsigned int getFeatureID (unsigned int phase, unsigned int local_id) const
 Return the EBSD feature id for a given phase and phase (local) grain number.
 
unsigned int getFeatureID (unsigned int global_id) const
 Return the EBSD feature id for a given (global) grain number.
 
virtual unsigned int getGlobalID (unsigned int phase, unsigned int local_id) const
 Return the (global) grain id for a given phase and (local) grain number.
 
virtual unsigned int getGlobalID (unsigned int feature_id) const
 Return the (global) grain id for a given feature_id.
 
MooseSharedPointer< EBSDPointDataFunctorgetPointDataAccessFunctor (const MooseEnum &field_name) const
 Factory function to return a point functor specified by name.
 
MooseSharedPointer< EBSDAvgDataFunctorgetAvgDataAccessFunctor (const MooseEnum &field_name) const
 Factory function to return a average functor specified by name.
 
const std::map< dof_id_type, std::vector< Real > > & getNodeToGrainWeightMap () const
 Returns a map consisting of the node index followd by a vector of all grain weights for that node.
 
const std::map< dof_id_type, std::vector< Real > > & getNodeToPhaseWeightMap () const
 Returns a map consisting of the node index followd by a vector of all phase weights for that node.
 
void meshChanged ()
 Maps need to be updated when the mesh changes.
 
virtual Real spatialValue (const Point &) const
 
virtual const std::vector< Point > spatialPoints () const
 
void setPrimaryThreadCopy (UserObject *primary)
 
UserObjectprimaryThreadCopy ()
 
SubProblemgetSubProblem () const
 
bool shouldDuplicateInitialExecution () const
 
void gatherSum (T &value)
 
void gatherMax (T &value)
 
void gatherMin (T &value)
 
void gatherProxyValueMax (T1 &proxy, T2 &value)
 
void gatherProxyValueMin (T1 &proxy, T2 &value)
 
std::set< UserObjectName > getDependObjects () const
 
const std::set< std::string > & getRequestedItems () override
 
const std::set< std::string > & getSuppliedItems () override
 
unsigned int systemNumber () const
 
virtual bool needThreadedCopy () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const TgetParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const TqueryParam (const std::string &name) const
 
const TgetRenamedParam (const std::string &old_name, const std::string &new_name) const
 
T getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
virtual void initialSetup ()
 
virtual void timestepSetup ()
 
virtual void jacobianSetup ()
 
virtual void residualSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnumgetExecuteOnEnum () const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const TgetUserObject (const std::string &param_name, bool is_dependency=true) const
 
const TgetUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectBasegetUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectBasegetUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const std::vector< MooseVariableScalar * > & getCoupledMooseScalarVars ()
 
const std::set< TagID > & getScalarVariableCoupleableVectorTags () const
 
const std::set< TagID > & getScalarVariableCoupleableMatrixTags () const
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name, MaterialData &material_data)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyByName (const std::string &prop_name_in)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOldByName (const std::string &prop_name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOlderByName (const std::string &prop_name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialProperty (const std::string &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOld (const std::string &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOlder (const std::string &name)
 
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > getBlockMaterialProperty (const MaterialPropertyName &name)
 
std::pair< Moose::Kokkos::MaterialProperty< T, dimension >, std::set< SubdomainID > > getKokkosBlockMaterialProperty (const MaterialPropertyName &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty ()
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialPropertyByName (const std::string &prop_name)
 
const MaterialProperty< T > & getZeroMaterialProperty (Ts... args)
 
std::set< SubdomainIDgetMaterialPropertyBlocks (const std::string &name)
 
std::vector< SubdomainName > getMaterialPropertyBlockNames (const std::string &name)
 
std::set< BoundaryIDgetMaterialPropertyBoundaryIDs (const std::string &name)
 
std::vector< BoundaryName > getMaterialPropertyBoundaryNames (const std::string &name)
 
void checkBlockAndBoundaryCompatibility (std::shared_ptr< MaterialBase > discrete)
 
std::unordered_map< SubdomainID, std::vector< MaterialBase * > > buildRequiredMaterials (bool allow_stateful=true)
 
void statefulPropertiesAllowed (bool)
 
virtual bool getMaterialPropertyCalled () const
 
virtual const std::unordered_set< unsigned int > & getMatPropDependencies () const
 
virtual void resolveOptionalProperties ()
 
const GenericMaterialProperty< T, is_ad > & getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state)
 
bool isImplicit ()
 
Moose::StateArg determineState () const
 
virtual void threadJoin (const UserObject &) override
 
virtual void threadJoin (const UserObject &) override
 
virtual void subdomainSetup () override
 
virtual void subdomainSetup () override
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
const GenericOptionalMaterialProperty< T, is_ad > & getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericOptionalMaterialProperty< T, is_ad > & getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalMaterialProperty< T > & getOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalMaterialProperty< T > & getOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalADMaterialProperty< T > & getOptionalADMaterialProperty (const std::string &name)
 
const OptionalADMaterialProperty< T > & getOptionalADMaterialProperty (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOld (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOld (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOlder (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOlder (const std::string &name)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasKokkosMaterialProperty (const std::string &name)
 
bool hasKokkosMaterialProperty (const std::string &name)
 
bool hasKokkosMaterialPropertyByName (const std::string &name)
 
bool hasKokkosMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
const FunctiongetFunction (const std::string &name) const
 
const FunctiongetFunctionByName (const FunctionName &name) const
 
bool hasFunction (const std::string &param_name) const
 
bool hasFunctionByName (const FunctionName &name) const
 
Moose::Kokkos::Function getKokkosFunction (const std::string &name) const
 
const TgetKokkosFunction (const std::string &name) const
 
Moose::Kokkos::Function getKokkosFunctionByName (const FunctionName &name) const
 
const TgetKokkosFunctionByName (const FunctionName &name) const
 
bool hasKokkosFunction (const std::string &param_name) const
 
bool hasKokkosFunctionByName (const FunctionName &name) const
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name) const
 
const VectorPostprocessorName & getVectorPostprocessorName (const std::string &param_name) const
 
TgetSampler (const std::string &name)
 
SamplergetSampler (const std::string &name)
 
TgetSamplerByName (const SamplerName &name)
 
SamplergetSamplerByName (const SamplerName &name)
 
virtual void meshDisplaced ()
 
PerfGraphperfGraph ()
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const TgetDistribution (const std::string &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const TgetDistribution (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const TgetDistributionByName (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const TgetDistributionByName (const std::string &name) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 
static void sort (typename std::vector< T > &vector)
 
static void sortDFS (typename std::vector< T > &vector)
 
static void cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header, NameFunc &&name_func)
 
static void cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header)
 
static MooseEnum getPointDataFieldType ()
 
static MooseEnum getAvgDataFieldType ()
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 

Static Public Attributes

static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 
static constexpr PropertyValue::id_type default_property_id
 
static constexpr PropertyValue::id_type zero_property_id
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Member Functions

unsigned indexFromPoint (const Point &p) const
 Computes a global index in the _data array given an input centroid point.
 
unsigned indexFromIndex (unsigned int var) const
 Transfer the index into the _avg_data array from given index.
 
void buildNodeWeightMaps ()
 Build grain and phase weight maps.
 
virtual void addPostprocessorDependencyHelper (const PostprocessorName &name) const override
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &name) const override
 
virtual void addUserObjectDependencyHelper (const UserObjectBase &uo) const override
 
void addReporterDependencyHelper (const ReporterName &reporter_name) override
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
const ReporterContextBasegetReporterContextBaseByName (const ReporterName &reporter_name) const
 
const ReporterNamegetReporterName (const std::string &param_name) const
 
TdeclareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< TdeclareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const TgetRestartableData (const std::string &data_name) const
 
TdeclareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
TdeclareRecoverableData (const std::string &data_name, Args &&... args)
 
TdeclareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
TdeclareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
const TgetMeshProperty (const std::string &data_name, const std::string &prefix)
 
const TgetMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 
bool isCoupledScalar (const std::string &var_name, unsigned int i=0) const
 
unsigned int coupledScalarComponents (const std::string &var_name) const
 
unsigned int coupledScalar (const std::string &var_name, unsigned int comp=0) const
 
libMesh::Order coupledScalarOrder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< is_ad > & coupledGenericScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const VariableValuecoupledVectorTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledMatrixTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const MooseVariableScalargetScalarVar (const std::string &var_name, unsigned int comp) const
 
virtual void checkMaterialProperty (const std::string &name, const unsigned int state)
 
virtual void getKokkosMaterialPropertyHook (const std::string &, const unsigned int)
 
void markMatPropRequested (const std::string &)
 
MaterialPropertyName getMaterialPropertyName (const std::string &name) const
 
void checkExecutionStage ()
 
const TgetReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
bool hasReporterValueByName (const ReporterName &reporter_name) const
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 

Static Protected Member Functions

static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

unsigned int _custom_columns
 number of additional custom data columns
 
std::vector< EBSDPointData_data
 Logically three-dimensional data indexed by geometric points in a 1D vector.
 
std::vector< EBSDAvgData_avg_data
 Averages by (global) grain ID.
 
std::vector< EulerAngles_avg_angles
 Euler Angles by (global) grain ID.
 
std::map< unsigned int, unsigned int_global_id_map
 map from feature_id to global_id
 
std::vector< std::vector< unsigned int > > _global_id
 global ID for given phases and grains
 
std::map< dof_id_type, std::vector< Real > > _node_to_grain_weight_map
 Map of grain weights per node.
 
std::map< dof_id_type, std::vector< Real > > _node_to_phase_weight_map
 Map of phase weights per node.
 
const int_time_step
 current timestep. Maps are only rebuild on mesh change during time step zero
 
unsigned int _mesh_dimension
 Dimension of the problem domain.
 
unsigned int _bins
 number of bins for each quaternion component
 
unsigned int _L_norm
 L_norm value for averaging.
 
unsigned _nx
 The number of values in the x, y and z directions.
 
unsigned _ny
 
unsigned _nz
 
Real _dx
 The spacing of the values in x, y and z directions.
 
Real _dy
 
Real _dz
 
Real _minx
 Grid origin.
 
Real _miny
 
Real _minz
 
Real _maxx
 Maximum grid extent.
 
Real _maxy
 
Real _maxz
 
std::vector< EulerAngles > & _angles
 
const Moose::CoordinateSystemType_coord_sys
 
const THREAD_ID _tid
 
SubProblem_subproblem
 
FEProblemBase_fe_problem
 
SystemBase_sys
 
Assembly_assembly
 
const bool _duplicate_initial_execution
 
std::set< std::string > _depend_uo
 
const bool & _enabled
 
MooseApp_app
 
Factory_factory
 
ActionFactory_action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters_pars
 
const ExecFlagEnum_execute_enum
 
const ExecFlagType_current_execute_flag
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase_mci_feproblem
 
FEProblemBase_mdi_feproblem
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
FEProblemBase_sc_fe_problem
 
const THREAD_ID _sc_tid
 
const Real & _real_zero
 
const VariableValue_scalar_zero
 
const Point & _point_zero
 
const InputParameters_mi_params
 
const std::string _mi_name
 
const MooseObjectName _mi_moose_object_name
 
FEProblemBase_mi_feproblem
 
SubProblem_mi_subproblem
 
const THREAD_ID _mi_tid
 
const bool _is_kokkos_object
 
const Moose::MaterialDataType _material_data_type
 
MaterialData_material_data
 
bool _stateful_allowed
 
bool _get_material_property_called
 
std::vector< std::unique_ptr< PropertyValue > > _default_properties
 
std::unordered_set< unsigned int_material_property_dependencies
 
const MaterialPropertyName _get_suffix
 
const bool _use_interpolated_state
 
const InputParameters_ti_params
 
FEProblemBase_ti_feproblem
 
bool _is_implicit
 
Real & _t
 
const Real & _t_old
 
int_t_step
 
Real & _dt
 
Real & _dt_old
 
bool _is_transient
 
const Parallel::Communicator & _communicator
 
MooseMesh_mesh
 MooseMesh Variables.
 
NonlinearSystemBase_nl
 
unsigned int _grain_num
 Variables needed to determine reduced order parameter values.
 
Point _bottom_left
 
Point _top_right
 
Point _range
 

Static Protected Attributes

static const std::string _interpolated_old
 
static const std::string _interpolated_older
 

Private Member Functions

const Moose::FunctionBasegetKokkosFunctionByNameHelper (const FunctionName &name) const
 
const UserObjectBasegetUserObjectFromFEProblem (const UserObjectName &object_name, const THREAD_ID tid=0) const
 
const TcastUserObject (const UserObjectBase &uo_base, const std::string &param_name="") const
 
void mooseObjectError (const std::string &param_name, std::stringstream &oss) const
 
const std::string & userObjectType (const UserObjectBase &uo) const
 
const std::string & userObjectName (const UserObjectBase &uo) const
 
const PostprocessorName & getPostprocessorNameInternal (const std::string &param_name, const unsigned int index, const bool allow_default_value=true) const
 
bool isDefaultPostprocessorValueByName (const PostprocessorName &name) const
 
PostprocessorValue getDefaultPostprocessorValueByName (const PostprocessorName &name) const
 
void checkParam (const std::string &param_name, const unsigned int index=std::numeric_limits< unsigned int >::max()) const
 
bool postprocessorsAdded () const
 
const VectorPostprocessorValuegetVectorPostprocessorByNameHelper (const VectorPostprocessorName &name, const std::string &vector_name, bool broadcast, std::size_t t_index) const
 
const VectorPostprocessorContext< VectorPostprocessorValue > & getVectorPostprocessorContextByNameHelper (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool vectorPostprocessorsAdded () const
 
bool reportersAdded () const
 
void possiblyCheckHasReporter (const ReporterName &reporter_name, const std::string &param_name="") const
 
RestartableDataValueregisterRestartableDataOnApp (std::unique_ptr< RestartableDataValue > data, THREAD_ID tid) const
 
void registerRestartableNameWithFilterOnApp (const std::string &name, Moose::RESTARTABLE_FILTER filter)
 
RestartableData< T > & declareRestartableDataHelper (const std::string &data_name, void *context, Args &&... args) const
 
virtual std::string meshPropertyPrefix (const std::string &data_name) const
 
const RestartableDataValuegetMeshPropertyInternal (const std::string &data_name, const std::string &prefix) const
 
void mooseErrorInternal (Args &&... args) const
 
const VariableValuegetDefaultValue (const std::string &var_name) const
 
const ADVariableValuegetADDefaultValue (const std::string &var_name) const
 
void checkVar (const std::string &var_name) const
 
void validateExecutionerType (const std::string &name, const std::string &fn_name) const
 
Moose::MaterialDataType getMaterialDataType (const std::set< BoundaryID > &boundary_ids) const
 
unsigned int getMaxQps () const
 
void addConsumedPropertyName (const MooseObjectName &obj_name, const std::string &prop_name)
 
const PostprocessorValuegetPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValuegetPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValuegetPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
const PostprocessorValuegetPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
void possiblyCheckHasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 

Private Attributes

UserObject_primary_thread_copy
 
std::set< std::string > _supplied_uo
 
const ParallelParamObject_parent
 
const MooseBase_si_moose_base
 
const FEProblemBase_si_problem
 
ExecFlagEnum _empty_execute_enum
 
const MooseObject_fni_object
 
const InputParameters_fni_params
 
FEProblemBase_fni_feproblem
 
const THREAD_ID _fni_tid
 
const MooseObject_uoi_moose_object
 
const FEProblemBase_uoi_feproblem
 
const THREAD_ID _uoi_tid
 
const MooseObject_ppi_moose_object
 
const InputParameters_ppi_params
 
const FEProblemBase_ppi_feproblem
 
std::map< PostprocessorName, std::unique_ptr< PostprocessorValue > > _default_values
 
const bool _broadcast_by_default
 
const MooseObject_vpi_moose_object
 
const FEProblemBase_vpi_feproblem
 
const THREAD_ID _vpi_tid
 
const InputParameters_ri_params
 
FEProblemBase_ri_fe_problem_base
 
const ReporterData_ri_reporter_data
 
const MooseObject_ri_moose_object
 
const InputParameters_dni_params
 
FEProblemBase_dni_feproblem
 
const MooseObject *const _dni_moose_object_ptr
 
const InputParameters_si_params
 
FEProblemBase_si_feproblem
 
THREAD_ID _si_tid
 
const RestartableDataMapName _metaname
 
std::string _restartable_name
 
MooseApp_meta_data_app
 
const MooseObject *const _meta_data_object
 
const InputParameters_sc_parameters
 
const std::string & _sc_name
 
const bool _sc_is_implicit
 
std::unordered_map< std::string, std::vector< MooseVariableScalar * > > _coupled_scalar_vars
 
std::unordered_map< std::string, std::unique_ptr< VariableValue > > _default_value
 
std::unordered_map< std::string, std::unique_ptr< ADVariableValue > > _dual_default_value
 
std::vector< MooseVariableScalar * > _coupled_moose_scalar_vars
 
std::unordered_map< std::string, std::vector< MooseVariableFieldBase * > > _sc_coupled_vars
 
std::set< TagID_sc_coupleable_vector_tags
 
std::set< TagID_sc_coupleable_matrix_tags
 
const MooseObject_mi_moose_object
 
const bool _mi_boundary_restricted
 
const std::set< SubdomainID > & _mi_block_ids
 
const std::set< BoundaryID > & _mi_boundary_ids
 
std::vector< std::unique_ptr< OptionalMaterialPropertyProxyBase< MaterialPropertyInterface > > > _optional_property_proxies
 
const std::string _ti_name
 

Detailed Description

A GeneralUserObject that reads an EBSD file and stores the centroid data in a data structure which indexes on element centroids.

Grains are indexed through multiple schemes:

Phases are referred to using the numbers in the EBSD data file. In case the phase number in the data file starts at 1 the phase 0 will simply contain no grains.

Definition at line 31 of file EBSDReader.h.

Constructor & Destructor Documentation

◆ EBSDReader()

EBSDReader::EBSDReader ( const InputParameters params)

Definition at line 40 of file EBSDReader.C.

41 : EulerAngleProvider(params),
44 _grain_num(0),
45 _custom_columns(getParam<unsigned int>("custom_columns")),
48 _bins(getParam<unsigned int>("bins")),
49 _L_norm(getParam<Real>("L_norm")),
50 _nx(0),
51 _ny(0),
52 _nz(0),
53 _dx(0.),
54 _dy(0.),
55 _dz(0.)
56{
57 readFile();
58 // throws an error for zero bins
59 if (_bins == 0)
60 mooseError("One cannot have zero bins");
61}
unsigned _nz
Definition EBSDReader.h:171
virtual void readFile()
Definition EBSDReader.C:64
unsigned int _grain_num
Variables needed to determine reduced order parameter values.
Definition EBSDReader.h:128
unsigned int _bins
number of bins for each quaternion component
Definition EBSDReader.h:165
unsigned _nx
The number of values in the x, y and z directions.
Definition EBSDReader.h:171
MooseMesh & _mesh
MooseMesh Variables.
Definition EBSDReader.h:123
NonlinearSystemBase & _nl
Definition EBSDReader.h:124
unsigned _ny
Definition EBSDReader.h:171
unsigned int _L_norm
L_norm value for averaging.
Definition EBSDReader.h:168
unsigned int _custom_columns
number of additional custom data columns
Definition EBSDReader.h:135
const int & _time_step
current timestep. Maps are only rebuild on mesh change during time step zero
Definition EBSDReader.h:159
Real _dx
The spacing of the values in x, y and z directions.
Definition EBSDReader.h:174
unsigned int _mesh_dimension
Dimension of the problem domain.
Definition EBSDReader.h:162
Abstract base class for user objects that implement the Euler Angle provider interface.
virtual MooseMesh & mesh() override
NonlinearSystemBase & getNonlinearSystemBase(const unsigned int sys_num)
virtual int & timeStep() const
void mooseError(Args &&... args) const
virtual unsigned int dimension() const
unsigned int number() const
FEProblemBase & _fe_problem
SystemBase & _sys

◆ ~EBSDReader()

EBSDReader::~EBSDReader ( )
virtual

Definition at line 347 of file EBSDReader.C.

347{}

Member Function Documentation

◆ buildNodeWeightMaps()

void EBSDReader::buildNodeWeightMaps ( )
protected

Build grain and phase weight maps.

Definition at line 466 of file EBSDReader.C.

467{
468 // Import nodeToElemMap from MooseMesh for current node
469 // This map consists of the node index followed by a vector of element indices that are associated
470 // with that node
471 const auto & node_to_elem_map = _mesh.nodeToElemMap();
473
474 // Loop through each node in mesh and calculate eta values for each grain associated with the node
475 for (const auto & node : as_range(mesh.active_nodes_begin(), mesh.active_nodes_end()))
476 {
477 // Get node_id
478 const dof_id_type node_id = node->id();
479
480 // Initialize map entries for current node
481 _node_to_grain_weight_map[node_id].assign(getGrainNum(), 0.0);
482 _node_to_phase_weight_map[node_id].assign(getPhaseNum(), 0.0);
483
484 // Loop through element indices associated with the current node and record weighted eta value
485 // in new map
486 const auto & node_to_elem_pair = node_to_elem_map.find(node_id);
487 if (node_to_elem_pair != node_to_elem_map.end())
488 {
489 unsigned int n_elems =
490 node_to_elem_pair->second
491 .size(); // n_elems can range from 1 to 4 for 2D and 1 to 8 for 3D problems
492
493 for (unsigned int ne = 0; ne < n_elems; ++ne)
494 {
495 // Current element index
496 unsigned int elem_id = (node_to_elem_pair->second)[ne];
497
498 // Retrieve EBSD grain number for the current element index
499 const Elem * elem = mesh.elem_ptr(elem_id);
500 const EBSDReader::EBSDPointData & d = getData(elem->vertex_average());
501
502 // get the (global) grain ID for the EBSD feature ID
503 const unsigned int global_id = getGlobalID(d._feature_id);
504
505 // Calculate eta value and add to map
506 _node_to_grain_weight_map[node_id][global_id] += 1.0 / n_elems;
507 _node_to_phase_weight_map[node_id][d._phase] += 1.0 / n_elems;
508 }
509 }
510 }
511}
virtual unsigned int getPhaseNum() const
Return the total number of phases.
Definition EBSDReader.h:73
const EBSDPointData & getData(const Point &p) const
Get the requested type of data at the point p.
Definition EBSDReader.C:350
std::map< dof_id_type, std::vector< Real > > _node_to_phase_weight_map
Map of phase weights per node.
Definition EBSDReader.h:156
virtual unsigned int getGrainNum() const
Return the total number of grains.
Definition EBSDReader.C:374
virtual unsigned int getGlobalID(unsigned int phase, unsigned int local_id) const
Return the (global) grain id for a given phase and (local) grain number.
Definition EBSDReader.h:92
std::map< dof_id_type, std::vector< Real > > _node_to_grain_weight_map
Map of grain weights per node.
Definition EBSDReader.h:153
MeshBase & getMesh()
const std::unordered_map< dof_id_type, std::vector< dof_id_type > > & nodeToElemMap()
MeshBase & mesh
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
uint8_t dof_id_type
Per element EBSD data point.

Referenced by meshChanged(), and readFile().

◆ execute()

virtual void EBSDReader::execute ( )
inlinevirtual

Implements GeneralUserObject.

Definition at line 42 of file EBSDReader.h.

42{}

◆ finalize()

virtual void EBSDReader::finalize ( )
inlinevirtual

Implements GeneralUserObject.

Definition at line 43 of file EBSDReader.h.

43{}

◆ getAvgData() [1/2]

const EBSDReader::EBSDAvgData & EBSDReader::getAvgData ( unsigned int  i) const

Get the requested type of average data for (global) grain number i.

Definition at line 356 of file EBSDReader.C.

357{
358 return _avg_data[indexFromIndex(var)];
359}
unsigned indexFromIndex(unsigned int var) const
Transfer the index into the _avg_data array from given index.
Definition EBSDReader.C:420
std::vector< EBSDAvgData > _avg_data
Averages by (global) grain ID.
Definition EBSDReader.h:141

Referenced by PolycrystalEBSD::getGrainsBasedOnPoint(), and EBSDReaderAvgDataAux::precalculateValue().

◆ getAvgData() [2/2]

const EBSDReader::EBSDAvgData & EBSDReader::getAvgData ( unsigned int  phase,
unsigned int  local_id 
) const

Get the requested type of average data for a given phase and (local) grain.

Definition at line 368 of file EBSDReader.C.

369{
370 return _avg_data[indexFromIndex(_global_id[phase][local_id])];
371}
std::vector< std::vector< unsigned int > > _global_id
global ID for given phases and grains
Definition EBSDReader.h:150

◆ getAvgDataAccessFunctor()

MooseSharedPointer< EBSDAccessFunctors::EBSDAvgDataFunctor > EBSDReader::getAvgDataAccessFunctor ( const MooseEnum field_name) const

Factory function to return a average functor specified by name.

Definition at line 560 of file EBSDReader.C.

561{
562 EBSDAvgDataFunctor * ret_val = NULL;
563
564 switch (field_name)
565 {
566 case 0: // phi1
567 ret_val = new EBSDAvgDataPhi1();
568 break;
569 case 1: // phi
570 ret_val = new EBSDAvgDataPhi();
571 break;
572 case 2: // phi2
573 ret_val = new EBSDAvgDataPhi2();
574 break;
575 case 3: // phase
576 ret_val = new EBSDAvgDataPhase();
577 break;
578 case 4: // symmetry
579 ret_val = new EBSDAvgDataSymmetry();
580 break;
581 case 5: // local_id
582 ret_val = new EBSDAvgDataLocalID();
583 break;
584 case 6: // feature_id
585 ret_val = new EBSDAvgDataFeatureID();
586 break;
587 default:
588 {
589 // check for custom columns
590 for (const auto i : make_range(_custom_columns))
591 if (field_name == "CUSTOM" + Moose::stringify(i))
592 {
593 ret_val = new EBSDAvgDataCustom(i);
594 break;
595 }
596 }
597 }
598
599 // If ret_val was not set by any of the above cases, throw an error.
600 if (!ret_val)
601 mooseError("Error: Please input supported EBSD_param");
602
603 // If we made it here, wrap up the the ret_val in a
604 // MooseSharedPointer and ship it off.
605 return MooseSharedPointer<EBSDAvgDataFunctor>(ret_val);
606}
std::string stringify(const T &t)
if(subdm)
IntRange< T > make_range(T beg, T end)

◆ getAvgDataFieldType()

MooseEnum EBSDAccessFunctors::getAvgDataFieldType ( )
staticinherited

Definition at line 19 of file EBSDAccessFunctors.C.

20{
21 return MooseEnum("phi1 phi phi2 phase symmetry local_id feature_id", "", true);
22}

Referenced by EBSDReaderAvgDataAux::validParams().

◆ getData()

const EBSDReader::EBSDPointData & EBSDReader::getData ( const Point &  p) const

Get the requested type of data at the point p.

Definition at line 350 of file EBSDReader.C.

351{
352 return _data[indexFromPoint(p)];
353}
const Real p
unsigned indexFromPoint(const Point &p) const
Computes a global index in the _data array given an input centroid point.
Definition EBSDReader.C:386
std::vector< EBSDPointData > _data
Logically three-dimensional data indexed by geometric points in a 1D vector.
Definition EBSDReader.h:138

Referenced by buildNodeWeightMaps(), PolycrystalEBSD::getGrainsBasedOnPoint(), and EBSDReaderPointDataAux::precalculateValue().

◆ getEulerAngles()

const EulerAngles & EBSDReader::getEulerAngles ( unsigned int  var) const
virtual

EulerAngleProvider interface implementation to fetch a triplet of Euler angles.

Reimplemented from EulerAngleProvider.

Definition at line 362 of file EBSDReader.C.

363{
364 return _avg_angles[indexFromIndex(var)];
365}
std::vector< EulerAngles > _avg_angles
Euler Angles by (global) grain ID.
Definition EBSDReader.h:144

Referenced by ComputeGBMisorientationType::getMisorientationAngles().

◆ getFeatureID() [1/2]

unsigned int EBSDReader::getFeatureID ( unsigned int  global_id) const
inline

Return the EBSD feature id for a given (global) grain number.

Definition at line 86 of file EBSDReader.h.

87 {
88 return _avg_data[global_id]._feature_id;
89 }

◆ getFeatureID() [2/2]

unsigned int EBSDReader::getFeatureID ( unsigned int  phase,
unsigned int  local_id 
) const
inline

Return the EBSD feature id for a given phase and phase (local) grain number.

Definition at line 81 of file EBSDReader.h.

82 {
83 return _avg_data[_global_id[phase][local_id]]._feature_id;
84 }

Referenced by ComputeGBMisorientationType::computeQpProperties(), and ComputeGBMisorientationType::getMisorientationAngles().

◆ getGlobalID() [1/2]

unsigned int EBSDReader::getGlobalID ( unsigned int  feature_id) const
virtual

Return the (global) grain id for a given feature_id.

Definition at line 449 of file EBSDReader.C.

450{
451 auto it = _global_id_map.find(feature_id);
452 if (it == _global_id_map.end())
453 mooseError("Invalid Feature ID");
454 return it->second;
455}
std::map< unsigned int, unsigned int > _global_id_map
map from feature_id to global_id
Definition EBSDReader.h:147

◆ getGlobalID() [2/2]

virtual unsigned int EBSDReader::getGlobalID ( unsigned int  phase,
unsigned int  local_id 
) const
inlinevirtual

Return the (global) grain id for a given phase and (local) grain number.

Definition at line 92 of file EBSDReader.h.

93 {
94 return _global_id[phase][local_id];
95 }

Referenced by buildNodeWeightMaps(), PolycrystalEBSD::getGrainsBasedOnPoint(), PolycrystalEBSD::getNodalVariableValue(), and EulerAngleProvider2RGBAux::precalculateValue().

◆ getGrainNum() [1/2]

unsigned int EBSDReader::getGrainNum ( ) const
virtual

Return the total number of grains.

Reimplemented from EulerAngleProvider.

Definition at line 374 of file EBSDReader.C.

375{
376 return _grain_num;
377}

Referenced by buildNodeWeightMaps(), ComputeGBMisorientationType::getMisorientationAngles(), EulerAngleProvider2RGBAux::getNumGrains(), and PolycrystalEBSD::getNumGrains().

◆ getGrainNum() [2/2]

unsigned int EBSDReader::getGrainNum ( unsigned int  phase) const
virtual

Return the number of grains in a given phase.

Definition at line 380 of file EBSDReader.C.

381{
382 return _global_id[phase].size();
383}

◆ getNodeToGrainWeightMap()

const std::map< dof_id_type, std::vector< Real > > & EBSDReader::getNodeToGrainWeightMap ( ) const

Returns a map consisting of the node index followd by a vector of all grain weights for that node.

Needed by ReconVarIC

Definition at line 437 of file EBSDReader.C.

438{
440}

◆ getNodeToPhaseWeightMap()

const std::map< dof_id_type, std::vector< Real > > & EBSDReader::getNodeToPhaseWeightMap ( ) const

Returns a map consisting of the node index followd by a vector of all phase weights for that node.

Needed by ReconPhaseVarIC

Definition at line 443 of file EBSDReader.C.

444{
446}

◆ getPhaseNum()

virtual unsigned int EBSDReader::getPhaseNum ( ) const
inlinevirtual

Return the total number of phases.

Definition at line 73 of file EBSDReader.h.

73{ return _global_id.size(); }

Referenced by buildNodeWeightMaps().

◆ getPointDataAccessFunctor()

MooseSharedPointer< EBSDAccessFunctors::EBSDPointDataFunctor > EBSDReader::getPointDataAccessFunctor ( const MooseEnum field_name) const

Factory function to return a point functor specified by name.

Definition at line 514 of file EBSDReader.C.

515{
516 EBSDPointDataFunctor * ret_val = NULL;
517
518 switch (field_name)
519 {
520 case 0: // phi1
521 ret_val = new EBSDPointDataPhi1();
522 break;
523 case 1: // phi
524 ret_val = new EBSDPointDataPhi();
525 break;
526 case 2: // phi2
527 ret_val = new EBSDPointDataPhi2();
528 break;
529 case 3: // grain
530 ret_val = new EBSDPointDataFeatureID();
531 break;
532 case 4: // phase
533 ret_val = new EBSDPointDataPhase();
534 break;
535 case 5: // symmetry
536 ret_val = new EBSDPointDataSymmetry();
537 break;
538 default:
539 {
540 // check for custom columns
541 for (const auto i : make_range(_custom_columns))
542 if (field_name == "CUSTOM" + Moose::stringify(i))
543 {
544 ret_val = new EBSDPointDataCustom(i);
545 break;
546 }
547 }
548 }
549
550 // If ret_val was not set by any of the above cases, throw an error.
551 if (!ret_val)
552 mooseError("Error: Please input supported EBSD_param");
553
554 // If we made it here, wrap up the the ret_val in a
555 // MooseSharedPointer and ship it off.
556 return MooseSharedPointer<EBSDPointDataFunctor>(ret_val);
557}

◆ getPointDataFieldType()

MooseEnum EBSDAccessFunctors::getPointDataFieldType ( )
staticinherited

Definition at line 13 of file EBSDAccessFunctors.C.

14{
15 return MooseEnum("phi1 phi phi2 feature_id phase symmetry", "", true);
16}

Referenced by EBSDReaderPointDataAux::validParams().

◆ indexFromIndex()

unsigned int EBSDReader::indexFromIndex ( unsigned int  var) const
protected

Transfer the index into the _avg_data array from given index.

Definition at line 420 of file EBSDReader.C.

421{
422
423 // Transfer the index into the _avg_data array.
424 unsigned avg_index = var;
425
426 // Don't access out of range!
427 if (avg_index >= _avg_data.size())
428 mooseError("Error! Index out of range in EBSDReader::indexFromIndex(), index: ",
429 avg_index,
430 " size: ",
431 _avg_data.size());
432
433 return avg_index;
434}

Referenced by getAvgData(), getAvgData(), and getEulerAngles().

◆ indexFromPoint()

unsigned int EBSDReader::indexFromPoint ( const Point &  p) const
protected

Computes a global index in the _data array given an input centroid point.

Definition at line 386 of file EBSDReader.C.

387{
388 // Don't assume an ordering on the input data, use the (x, y,
389 // z) values of this centroid to determine the index.
390 unsigned int x_index, y_index, z_index, global_index;
391
392 x_index = (unsigned int)((p(0) - _minx) / _dx);
393 y_index = (unsigned int)((p(1) - _miny) / _dy);
394 if (p(0) <= _minx || p(0) >= _maxx || p(1) <= _miny || p(1) >= _maxy)
395 mooseError("Data points must be on the interior of the mesh elements. In EBSDReader ", name());
396
397 if (_mesh_dimension == 3)
398 {
399 z_index = (unsigned int)((p(2) - _minz) / _dz);
400 global_index = z_index * _ny;
401 if (p(2) <= _minz || p(2) >= _maxz)
402 mooseError("Data points must be on the interior of the mesh elements. In EBSDReader ",
403 name());
404 }
405 else
406 global_index = 0;
407
408 // Compute the global index into the _data array. This stores points
409 // in a [z][y][x] ordering.
410 global_index = (global_index + y_index) * _nx + x_index;
411
412 // Don't access out of range!
413 mooseAssert(global_index < _data.size(),
414 "global_index " << global_index << " points out of _data range: " << _data.size());
415
416 return global_index;
417}
void ErrorVector unsigned int
Real _minx
Grid origin.
Definition EBSDReader.h:177
Real _maxx
Maximum grid extent.
Definition EBSDReader.h:180
const std::string & name() const

Referenced by getData(), and readFile().

◆ initialize()

virtual void EBSDReader::initialize ( )
inlinevirtual

Implements GeneralUserObject.

Definition at line 41 of file EBSDReader.h.

41{}

◆ meshChanged()

void EBSDReader::meshChanged ( )
virtual

Maps need to be updated when the mesh changes.

Reimplemented from GeneralUserObject.

Definition at line 458 of file EBSDReader.C.

459{
460 // maps are only rebuild for use in initial conditions, which happens in time step zero
461 if (_time_step == 0)
463}
void buildNodeWeightMaps()
Build grain and phase weight maps.
Definition EBSDReader.C:466

◆ readFile()

void EBSDReader::readFile ( )
virtual

Markley, F. Landis, Yang Cheng, John Lucas Crassidis, and Yaakov Oshman. "Averaging quaternions." Journal of Guidance, Control, and Dynamics 30, no. 4 (2007): 1193-1197. A 4 by N matrix (Q) is constructed, where N is the number of quaternions. A weight matrix (W) is created. The eigenvector corresponding to the maximum eigenvalue of Q*W*Q' is the weighted average quaternion

If no bin exists which has at least 50% of total quaternions in a grain then the EBSD data may not be reliable Note: The limit 50% is arbitrary

Definition at line 64 of file EBSDReader.C.

65{
66 std::string ebsd_filename;
68
69 // Fetch and check mesh or meshgenerators
70 EBSDMesh * mesh = dynamic_cast<EBSDMesh *>(&_mesh);
71 if (mesh != NULL)
72 {
73 ebsd_filename = mesh->getEBSDFilename();
74 geometry = mesh->getEBSDGeometry();
75 }
76 else
77 {
78 std::string ebsd_meshgenerator_name;
79 if (isParamValid("ebsd_meshgenerator"))
80 ebsd_meshgenerator_name = getParam<std::string>("ebsd_meshgenerator");
81 else
82 {
83 auto meshgenerator_names = _app.getMeshGeneratorNames();
84 for (auto & mgn : meshgenerator_names)
85 {
86 const EBSDMeshGenerator * emg =
87 dynamic_cast<const EBSDMeshGenerator *>(&_app.getMeshGenerator(mgn));
88 if (emg)
89 {
90 if (!ebsd_meshgenerator_name.empty())
91 mooseError("Found multiple EBSDMeshGenerator objects (",
92 ebsd_meshgenerator_name,
93 " and ",
94 mgn,
95 "). Use the 'ebsd_meshgenerator' parameter to specify which one to use.");
96 ebsd_meshgenerator_name = mgn;
97 }
98 }
99
100 if (ebsd_meshgenerator_name.empty())
101 mooseError("Failed to autodetect an EBSDMeshGenerator (or a deprecated EBSDMesh object).");
102 }
103
104 // get the selected or detected mesh generator
105 const EBSDMeshGenerator * emg =
106 dynamic_cast<const EBSDMeshGenerator *>(&_app.getMeshGenerator(ebsd_meshgenerator_name));
107 if (!emg)
108 paramError("ebsd_meshgenerator", "No valid EBSDMeshGenerator object found.");
109
110 ebsd_filename = emg->getEBSDFilename();
111 geometry = emg->getEBSDGeometry();
112 }
113
114 std::ifstream stream_in(ebsd_filename.c_str());
115 if (!stream_in)
116 mooseError("Can't open EBSD file: ", ebsd_filename);
117
118 // Copy file header data from the EBSDMesh
119 _dx = geometry.d[0];
120 _nx = geometry.n[0];
121 _minx = geometry.min[0];
122 _maxx = _minx + _dx * _nx;
123
124 _dy = geometry.d[1];
125 _ny = geometry.n[1];
126 _miny = geometry.min[1];
127 _maxy = _miny + _dy * _ny;
128
129 _dz = geometry.d[2];
130 _nz = geometry.n[2];
131 _minz = geometry.min[2];
132 _maxz = _minz + _dz * _nz;
133
134 // Resize the _data array
135 unsigned total_size = geometry.dim < 3 ? _nx * _ny : _nx * _ny * _nz;
136 _data.resize(total_size);
137
138 std::string line;
139 while (std::getline(stream_in, line))
140 {
141 if (line.find("#") != 0)
142 {
143 // Temporary variables to read in on each line
144 EBSDPointData d;
145 Real x, y, z;
146
147 std::istringstream iss(line);
148 iss >> d._phi1 >> d._Phi >> d._phi2 >> x >> y >> z >> d._feature_id >> d._phase >>
149 d._symmetry;
150
151 // Transform angles to degrees
152 d._phi1 *= 180.0 / libMesh::pi;
153 d._Phi *= 180.0 / libMesh::pi;
154 d._phi2 *= 180.0 / libMesh::pi;
155
156 // Custom columns
157 d._custom.resize(_custom_columns);
158 for (unsigned int i = 0; i < _custom_columns; ++i)
159 if (!(iss >> d._custom[i]))
160 mooseError("Unable to read in EBSD custom data column #", i);
161
162 if (x < _minx || y < _miny || x > _maxx || y > _maxy ||
163 (geometry.dim == 3 && (z < _minz || z > _maxz)))
164 mooseError("EBSD Data ouside of the domain declared in the header ([",
165 _minx,
166 ':',
167 _maxx,
168 "], [",
169 _miny,
170 ':',
171 _maxy,
172 "], [",
173 _minz,
174 ':',
175 _maxz,
176 "]) dim=",
177 geometry.dim,
178 "\n",
179 line);
180
181 d._p = Point(x, y, z);
182
183 // determine number of grains in the dataset
184 if (_global_id_map.find(d._feature_id) == _global_id_map.end())
185 _global_id_map[d._feature_id] = _grain_num++;
186
187 unsigned int global_index = indexFromPoint(Point(x, y, z));
188 _data[global_index] = d;
189 }
190 }
191 stream_in.close();
192
193 // Resize the variables
194 _avg_data.resize(_grain_num);
195 _avg_angles.resize(_grain_num);
196
197 // clear the averages
198 for (const auto i : make_range(_grain_num))
199 {
200 EBSDAvgData & a = _avg_data[i];
201 a._symmetry = a._phase = a._n = 0;
202 a._p = 0.0;
203 a._custom.assign(_custom_columns, 0.0);
204
206 b.phi1 = b.Phi = b.phi2 = 0.0;
207 }
208
209 // Array of vectors to store quaternions of each grain
210 std::vector<std::vector<Eigen::Quaternion<Real>>> quat(_grain_num);
211
212 // Iterate through data points to store orientation information for each grain
213 for (auto & j : _data)
214 {
215 EBSDAvgData & a = _avg_data[_global_id_map[j._feature_id]];
216 EulerAngles angles;
217
218 angles.phi1 = j._phi1;
219 angles.Phi = j._Phi;
220 angles.phi2 = j._phi2;
221
222 // convert Euler angles to quaternions
223 Eigen::Quaternion<Real> q = angles.toQuaternion();
224 quat[_global_id_map[j._feature_id]].push_back(q);
225
226 if (a._n == 0)
227 a._phase = j._phase;
228 else if (a._phase != j._phase)
229 mooseError("An EBSD feature needs to have a uniform phase.");
230
231 if (a._n == 0)
232 a._symmetry = j._symmetry;
233 else if (a._symmetry != j._symmetry)
234 mooseError("An EBSD feature needs to have a uniform symmetry parameter.");
235
236 for (unsigned int i = 0; i < _custom_columns; ++i)
237 a._custom[i] += j._custom[i];
238
239 // store the feature (or grain) ID
240 a._feature_id = j._feature_id;
241
242 a._p += j._p;
243 a._n++;
244 }
245
246 for (const auto i : make_range(_grain_num))
247 {
248 EBSDAvgData & a = _avg_data[i];
250
251 if (a._n == 0)
252 continue;
253
254 // creating a map to store the quaternion count for each bin index
255 std::map<std::tuple<int, int, int, int>, unsigned int> feature_weights;
256
257 // looping through all quaternions of the current grain
258 for (const auto & q : quat[i])
259 {
260 const auto bin = std::make_tuple<int, int, int, int>(std::floor(q.w() * 0.5 * _bins),
261 std::floor(q.x() * 0.5 * _bins),
262 std::floor(q.y() * 0.5 * _bins),
263 std::floor(q.z() * 0.5 * _bins));
264 feature_weights[bin]++;
265 }
266
276 // quaternion average matrix Q*w*Q^T
277 typedef Eigen::Matrix<Real, 4, 4> Matrix4x4;
278 Matrix4x4 quat_mat = Matrix4x4::Zero();
279 typedef Eigen::Matrix<Real, 4, 1> Vector4;
280
281 bool data_quality_ok = false;
282 Real total_weight = 0.0;
283 for (const auto & q : quat[i])
284 {
285 Vector4 v(q.w(), q.x(), q.y(), q.z());
286
287 const auto bin = std::make_tuple<int, int, int, int>(std::floor(q.w() * 0.5 * _bins),
288 std::floor(q.x() * 0.5 * _bins),
289 std::floor(q.y() * 0.5 * _bins),
290 std::floor(q.z() * 0.5 * _bins));
291 const auto bin_size = feature_weights[bin];
292 const auto weight = std::pow(bin_size, _L_norm);
294
295 quat_mat += v * weight * v.transpose();
296
302 if (bin_size * 2 > quat[i].size())
303 data_quality_ok = true;
304 }
305
306 quat_mat *= 1.0 / total_weight;
307
308 // throws a warning if EBSD data is not reliable
309 if (!data_quality_ok)
310 _console << COLOR_YELLOW << "EBSD orientation data may not be reliable for grain " << i
311 << '\n'
312 << COLOR_DEFAULT << std::flush;
313
314 // compute eigenvalues and eigenvectors
315 Eigen::EigenSolver<Matrix4x4> EigenSolver(quat_mat);
316 Vector4 eigen_values = EigenSolver.eigenvalues().real();
317 Matrix4x4 eigen_vectors = EigenSolver.eigenvectors().real();
318
319 // Selecting eigenvector corresponding to max eigenvalue to compute average Euler angle
320 Vector4::Index max_index = 0;
321 eigen_values.maxCoeff(&max_index);
322 const auto max_vec = eigen_vectors.col(max_index);
323 const Eigen::Quaternion<Real> q(max_vec(0), max_vec(1), max_vec(2), max_vec(3));
324 b = EulerAngles(q);
325
326 // link the EulerAngles into the EBSDAvgData for access via the functors
327 a._angles = &b;
328
329 if (a._phase >= _global_id.size())
330 _global_id.resize(a._phase + 1);
331
332 // The averaged per grain data locally contains the phase id, local id, and
333 // original feature id. It is stored contiguously indexed by global id.
334 a._local_id = _global_id[a._phase].size();
335 _global_id[a._phase].push_back(i);
336
337 a._p *= 1.0 / Real(a._n);
338
339 for (unsigned int i = 0; i < _custom_columns; ++i)
340 a._custom[i] /= Real(a._n);
341 }
342 // Build maps to indicate the weights with which grain and phase data
343 // from the surrounding elements contributes to a node for IC purposes
345}
const std::vector< double > y
const std::vector< double > x
const double v
const ConsoleStream _console
Mesh generated from parameters read from a DREAM3D EBSD file.
const Geometry & getEBSDGeometry() const
const std::string & getEBSDFilename() const
Mesh generated from parameters.
Definition EBSDMesh.h:21
Euler angle triplet.
Definition EulerAngles.h:26
Eigen::Quaternion< Real > toQuaternion()
Definition EulerAngles.C:55
std::vector< std::string > getMeshGeneratorNames() const
const MeshGenerator & getMeshGenerator(const std::string &name) const
void paramError(const std::string &param, Args... args) const
bool isParamValid(const std::string &name) const
dof_id_type weight(const MeshBase &mesh, const processor_id_type pid)
dof_id_type total_weight(const MeshBase &mesh)
const Real pi
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::array< Real, 3 > min
std::array< unsigned int, 3 > n

Referenced by EBSDReader().

◆ validParams()

InputParameters EBSDReader::validParams ( )
static

Definition at line 25 of file EBSDReader.C.

26{
28 params.addClassDescription("Load and manage DREAM.3D EBSD data files for running simulations on "
29 "reconstructed microstructures.");
30 params.addParam<unsigned int>(
31 "custom_columns", 0, "Number of additional custom data columns to read from the EBSD file");
32 params.addParam<unsigned int>("bins", 20, "Number of bins to segregate quaternions");
33 params.addParam<Real>("L_norm", 1, "Specifies the type of average the user intends to perform");
34 params.addParam<std::string>("ebsd_meshgenerator",
35 "Specify the name of the EBSDMeshGenerator. The EBSDReader can "
36 "autodetect this, if only one such MeshGenerator exists.");
37 return params;
38}
static InputParameters validParams()
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _angles

std::vector<EulerAngles>& EulerAngleProvider::_angles
protectedinherited

◆ _avg_angles

std::vector<EulerAngles> EBSDReader::_avg_angles
protected

Euler Angles by (global) grain ID.

Definition at line 144 of file EBSDReader.h.

Referenced by getEulerAngles(), and readFile().

◆ _avg_data

std::vector<EBSDAvgData> EBSDReader::_avg_data
protected

Averages by (global) grain ID.

Definition at line 141 of file EBSDReader.h.

Referenced by getAvgData(), getAvgData(), getFeatureID(), getFeatureID(), indexFromIndex(), and readFile().

◆ _bins

unsigned int EBSDReader::_bins
protected

number of bins for each quaternion component

Definition at line 165 of file EBSDReader.h.

Referenced by EBSDReader(), and readFile().

◆ _bottom_left

Point EBSDReader::_bottom_left
protected

Definition at line 129 of file EBSDReader.h.

◆ _custom_columns

unsigned int EBSDReader::_custom_columns
protected

number of additional custom data columns

Definition at line 135 of file EBSDReader.h.

Referenced by getAvgDataAccessFunctor(), getPointDataAccessFunctor(), and readFile().

◆ _data

std::vector<EBSDPointData> EBSDReader::_data
protected

Logically three-dimensional data indexed by geometric points in a 1D vector.

Definition at line 138 of file EBSDReader.h.

Referenced by getData(), indexFromPoint(), and readFile().

◆ _dx

Real EBSDReader::_dx
protected

The spacing of the values in x, y and z directions.

Definition at line 174 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _dy

Real EBSDReader::_dy
protected

Definition at line 174 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _dz

Real EBSDReader::_dz
protected

Definition at line 174 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _global_id

std::vector<std::vector<unsigned int> > EBSDReader::_global_id
protected

global ID for given phases and grains

Definition at line 150 of file EBSDReader.h.

Referenced by getAvgData(), getFeatureID(), getGlobalID(), getGrainNum(), getPhaseNum(), and readFile().

◆ _global_id_map

std::map<unsigned int, unsigned int> EBSDReader::_global_id_map
protected

map from feature_id to global_id

Definition at line 147 of file EBSDReader.h.

Referenced by getGlobalID(), and readFile().

◆ _grain_num

unsigned int EBSDReader::_grain_num
protected

Variables needed to determine reduced order parameter values.

Definition at line 128 of file EBSDReader.h.

Referenced by getGrainNum(), and readFile().

◆ _L_norm

unsigned int EBSDReader::_L_norm
protected

L_norm value for averaging.

Definition at line 168 of file EBSDReader.h.

Referenced by readFile().

◆ _maxx

Real EBSDReader::_maxx
protected

Maximum grid extent.

Definition at line 180 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _maxy

Real EBSDReader::_maxy
protected

Definition at line 180 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _maxz

Real EBSDReader::_maxz
protected

Definition at line 180 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _mesh

MooseMesh& EBSDReader::_mesh
protected

MooseMesh Variables.

Definition at line 123 of file EBSDReader.h.

Referenced by buildNodeWeightMaps(), and readFile().

◆ _mesh_dimension

unsigned int EBSDReader::_mesh_dimension
protected

Dimension of the problem domain.

Definition at line 162 of file EBSDReader.h.

Referenced by indexFromPoint().

◆ _minx

Real EBSDReader::_minx
protected

Grid origin.

Definition at line 177 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _miny

Real EBSDReader::_miny
protected

Definition at line 177 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _minz

Real EBSDReader::_minz
protected

Definition at line 177 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _nl

NonlinearSystemBase& EBSDReader::_nl
protected

Definition at line 124 of file EBSDReader.h.

◆ _node_to_grain_weight_map

std::map<dof_id_type, std::vector<Real> > EBSDReader::_node_to_grain_weight_map
protected

Map of grain weights per node.

Definition at line 153 of file EBSDReader.h.

Referenced by buildNodeWeightMaps(), and getNodeToGrainWeightMap().

◆ _node_to_phase_weight_map

std::map<dof_id_type, std::vector<Real> > EBSDReader::_node_to_phase_weight_map
protected

Map of phase weights per node.

Definition at line 156 of file EBSDReader.h.

Referenced by buildNodeWeightMaps(), and getNodeToPhaseWeightMap().

◆ _nx

unsigned EBSDReader::_nx
protected

The number of values in the x, y and z directions.

Definition at line 171 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _ny

unsigned EBSDReader::_ny
protected

Definition at line 171 of file EBSDReader.h.

Referenced by indexFromPoint(), and readFile().

◆ _nz

unsigned EBSDReader::_nz
protected

Definition at line 171 of file EBSDReader.h.

Referenced by readFile().

◆ _range

Point EBSDReader::_range
protected

Definition at line 131 of file EBSDReader.h.

◆ _time_step

const int& EBSDReader::_time_step
protected

current timestep. Maps are only rebuild on mesh change during time step zero

Definition at line 159 of file EBSDReader.h.

Referenced by meshChanged().

◆ _top_right

Point EBSDReader::_top_right
protected

Definition at line 130 of file EBSDReader.h.


The documentation for this class was generated from the following files: