Manage a list of elasticity tensors for the grains. More...
#include <GrainTrackerElasticity.h>
Public Member Functions | |
GrainTrackerElasticity (const InputParameters ¶meters) | |
const RankFourTensor & | getData (unsigned int grain_id) const |
return data for selected grain More... | |
virtual void | meshChanged () override |
virtual void | initialize () override |
virtual void | execute () override |
virtual void | finalize () override |
virtual std::size_t | getTotalFeatureCount () const override |
Returns the total feature count (active and inactive ids, useful for sizing vectors) More... | |
virtual Real | getEntityValue (dof_id_type node_id, FieldType field_type, std::size_t var_index=0) const override |
virtual const std::vector< unsigned int > & | getVarToFeatureVector (dof_id_type elem_id) const override |
Returns a list of active unique feature ids for a particular element. More... | |
virtual unsigned int | getFeatureVar (unsigned int feature_id) const override |
Returns the variable representing the passed in feature. More... | |
virtual std::size_t | getNumberActiveGrains () const override |
Returns the number of active grains current stored in the GrainTracker. More... | |
virtual Point | getGrainCentroid (unsigned int grain_id) const override |
Returns the centroid for the given grain number. More... | |
virtual bool | doesFeatureIntersectBoundary (unsigned int feature_id) const override |
Returns a Boolean indicating whether this feature intersects any boundary. More... | |
virtual bool | doesFeatureIntersectSpecifiedBoundary (unsigned int feature_id) const override |
Returns a Boolean indicating whether this feature intersects boundaries in a user-supplied list. More... | |
virtual bool | isFeaturePercolated (unsigned int feature_id) const override |
Returns a Boolean indicating whether this feature is percolated (e.g. More... | |
virtual std::vector< unsigned int > | getNewGrainIDs () const override |
This method returns all of the new ids generated in an invocation of the GrainTracker. More... | |
virtual void | initialSetup () override |
virtual Real | getValue () const override |
std::size_t | getNumberActiveFeatures () const |
Return the number of active features. More... | |
virtual Point | featureCentroid (unsigned int feature_id) const |
Returns the centroid of the designated feature (only supported without periodic boundaries) More... | |
std::size_t | numCoupledVars () const |
Returns the number of coupled varaibles. More... | |
const std::vector< MooseVariable * > & | getCoupledVars () const |
Returns a const vector to the coupled variable pointers. More... | |
const std::vector< MooseVariableFEBase * > & | getFECoupledVars () const |
Returns a const vector to the coupled MooseVariableFEBase pointers. More... | |
bool | isElemental () const |
const std::vector< FeatureData > & | getFeatures () const |
Return a constant reference to the vector of all discovered features. More... | |
SubProblem & | getSubProblem () const |
bool | shouldDuplicateInitialExecution () const |
virtual Real | spatialValue (const Point &) const |
virtual const std::vector< Point > | spatialPoints () const |
void | gatherSum (T &value) |
void | gatherMax (T &value) |
void | gatherMin (T &value) |
void | gatherProxyValueMax (T1 &value, T2 &proxy) |
void | gatherProxyValueMin (T1 &value, T2 &proxy) |
void | setPrimaryThreadCopy (UserObject *primary) |
UserObject * | primaryThreadCopy () |
std::set< UserObjectName > | getDependObjects () const |
virtual bool | needThreadedCopy () const |
const std::set< std::string > & | getRequestedItems () override |
const std::set< std::string > & | getSuppliedItems () override |
unsigned int | systemNumber () const |
virtual bool | enabled () const |
MooseApp & | getMooseApp () const |
const std::string & | type () const |
virtual const std::string & | name () const |
std::string | typeAndName () const |
std::string | errorPrefix (const std::string &error_type) const |
void | callMooseError (std::string msg, const bool with_prefix) const |
MooseObjectParameterName | uniqueParameterName (const std::string ¶meter_name) const |
const InputParameters & | parameters () const |
MooseObjectName | uniqueName () const |
const T & | getParam (const std::string &name) const |
std::vector< std::pair< T1, T2 > > | getParam (const std::string ¶m1, const std::string ¶m2) const |
const T & | getRenamedParam (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 &nm) const |
void | paramError (const std::string ¶m, Args... args) const |
void | paramWarning (const std::string ¶m, Args... args) const |
void | paramInfo (const std::string ¶m, Args... args) const |
void | connectControllableParams (const std::string ¶meter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const |
void | mooseError (Args &&... args) const |
void | mooseErrorNonPrefixed (Args &&... args) const |
void | mooseWarning (Args &&... args) const |
void | mooseWarningNonPrefixed (Args &&... args) const |
void | mooseDeprecated (Args &&... args) const |
void | mooseInfo (Args &&... args) const |
std::string | getDataFileName (const std::string ¶m) const |
std::string | getDataFileNameByName (const std::string &name, const std::string *param=nullptr) const |
virtual void | timestepSetup () |
virtual void | timestepSetup () override |
virtual void | jacobianSetup () |
virtual void | jacobianSetup () override |
virtual void | residualSetup () |
virtual void | residualSetup () override |
virtual void | customSetup (const ExecFlagType &) |
virtual void | customSetup (const ExecFlagType &exec_type) override |
const ExecFlagEnum & | getExecuteOnEnum () const |
UserObjectName | getUserObjectName (const std::string ¶m_name) const |
const T & | getUserObject (const std::string ¶m_name, bool is_dependency=true) const |
const T & | getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const |
const UserObject & | getUserObjectBase (const std::string ¶m_name, bool is_dependency=true) const |
const UserObject & | getUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) 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) |
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > | getBlockMaterialProperty (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< SubdomainID > | getMaterialPropertyBlocks (const std::string &name) |
std::vector< SubdomainName > | getMaterialPropertyBlockNames (const std::string &name) |
std::set< BoundaryID > | getMaterialPropertyBoundaryIDs (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) |
bool | getMaterialPropertyCalled () const |
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 () |
const PostprocessorValue & | getCurrentValue () const |
const std::string & | PPName () const |
virtual bool | hasBlocks (SubdomainID) const override |
bool | supportsFaceArg () const override final |
bool | supportsElemSideQpArg () const override final |
void | buildOutputHideVariableList (std::set< std::string > variable_names) |
const std::set< OutputName > & | getOutputs () |
FunctorReturnType< Real, FET >::type | genericEvaluate (const Space &r, const State &state) const |
const MooseFunctorName & | functorName () const |
void | setCacheClearanceSchedule (const std::set< ExecFlagType > &clearance_schedule) |
virtual bool | isExtrapolatedBoundaryFace (const FaceInfo &, const Elem *, const StateArg &) const |
bool | isInternalFace (const FaceInfo &) const |
virtual bool | isConstant () const |
virtual bool | hasFaceSide (const FaceInfo &fi, const bool fi_elem_side) const override |
Moose::FaceArg | checkFace (const Moose::FaceArg &face) 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 ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_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) |
MaterialBase & | getMaterial (const std::string &name) |
MaterialBase & | getMaterial (const std::string &name) |
MaterialBase & | getMaterialByName (const std::string &name, bool no_warn=false) |
MaterialBase & | getMaterialByName (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 | hasGenericMaterialProperty (const std::string &name) |
bool | hasGenericMaterialProperty (const std::string &name) |
bool | hasGenericMaterialPropertyByName (const std::string &name) |
bool | hasGenericMaterialPropertyByName (const std::string &name) |
ValueType | operator() (const ElemArg &elem, const StateArg &state) const |
ValueType | operator() (const FaceArg &face, const StateArg &state) const |
ValueType | operator() (const ElemQpArg &qp, const StateArg &state) const |
ValueType | operator() (const ElemSideQpArg &qp, const StateArg &state) const |
ValueType | operator() (const ElemPointArg &elem_point, const StateArg &state) const |
ValueType | operator() (const NodeArg &node, const StateArg &state) const |
ValueType | operator() (const ElemArg &elem, const StateArg &state) const |
ValueType | operator() (const FaceArg &face, const StateArg &state) const |
ValueType | operator() (const ElemQpArg &qp, const StateArg &state) const |
ValueType | operator() (const ElemSideQpArg &qp, const StateArg &state) const |
ValueType | operator() (const ElemPointArg &elem_point, const StateArg &state) const |
ValueType | operator() (const NodeArg &node, const StateArg &state) const |
ValueType | operator() (const ElemArg &elem, const StateArg &state) const |
ValueType | operator() (const FaceArg &face, const StateArg &state) const |
ValueType | operator() (const ElemQpArg &qp, const StateArg &state) const |
ValueType | operator() (const ElemSideQpArg &qp, const StateArg &state) const |
ValueType | operator() (const ElemPointArg &elem_point, const StateArg &state) const |
ValueType | operator() (const NodeArg &node, const StateArg &state) const |
GradientType | gradient (const ElemArg &elem, const StateArg &state) const |
GradientType | gradient (const FaceArg &face, const StateArg &state) const |
GradientType | gradient (const ElemQpArg &qp, const StateArg &state) const |
GradientType | gradient (const ElemSideQpArg &qp, const StateArg &state) const |
GradientType | gradient (const ElemPointArg &elem_point, const StateArg &state) const |
GradientType | gradient (const NodeArg &node, const StateArg &state) const |
GradientType | gradient (const ElemArg &elem, const StateArg &state) const |
GradientType | gradient (const FaceArg &face, const StateArg &state) const |
GradientType | gradient (const ElemQpArg &qp, const StateArg &state) const |
GradientType | gradient (const ElemSideQpArg &qp, const StateArg &state) const |
GradientType | gradient (const ElemPointArg &elem_point, const StateArg &state) const |
GradientType | gradient (const NodeArg &node, const StateArg &state) const |
GradientType | gradient (const ElemArg &elem, const StateArg &state) const |
GradientType | gradient (const FaceArg &face, const StateArg &state) const |
GradientType | gradient (const ElemQpArg &qp, const StateArg &state) const |
GradientType | gradient (const ElemSideQpArg &qp, const StateArg &state) const |
GradientType | gradient (const ElemPointArg &elem_point, const StateArg &state) const |
GradientType | gradient (const NodeArg &node, const StateArg &state) const |
DotType | dot (const ElemArg &elem, const StateArg &state) const |
DotType | dot (const FaceArg &face, const StateArg &state) const |
DotType | dot (const ElemQpArg &qp, const StateArg &state) const |
DotType | dot (const ElemSideQpArg &qp, const StateArg &state) const |
DotType | dot (const ElemPointArg &elem_point, const StateArg &state) const |
DotType | dot (const NodeArg &node, const StateArg &state) const |
DotType | dot (const ElemArg &elem, const StateArg &state) const |
DotType | dot (const FaceArg &face, const StateArg &state) const |
DotType | dot (const ElemQpArg &qp, const StateArg &state) const |
DotType | dot (const ElemSideQpArg &qp, const StateArg &state) const |
DotType | dot (const ElemPointArg &elem_point, const StateArg &state) const |
DotType | dot (const NodeArg &node, const StateArg &state) const |
DotType | dot (const ElemArg &elem, const StateArg &state) const |
DotType | dot (const FaceArg &face, const StateArg &state) const |
DotType | dot (const ElemQpArg &qp, const StateArg &state) const |
DotType | dot (const ElemSideQpArg &qp, const StateArg &state) const |
DotType | dot (const ElemPointArg &elem_point, const StateArg &state) const |
DotType | dot (const NodeArg &node, const StateArg &state) const |
GradientType | gradDot (const ElemArg &elem, const StateArg &state) const |
GradientType | gradDot (const FaceArg &face, const StateArg &state) const |
GradientType | gradDot (const ElemQpArg &qp, const StateArg &state) const |
GradientType | gradDot (const ElemSideQpArg &qp, const StateArg &state) const |
GradientType | gradDot (const ElemPointArg &elem_point, const StateArg &state) const |
GradientType | gradDot (const NodeArg &node, const StateArg &state) const |
GradientType | gradDot (const ElemArg &elem, const StateArg &state) const |
GradientType | gradDot (const FaceArg &face, const StateArg &state) const |
GradientType | gradDot (const ElemQpArg &qp, const StateArg &state) const |
GradientType | gradDot (const ElemSideQpArg &qp, const StateArg &state) const |
GradientType | gradDot (const ElemPointArg &elem_point, const StateArg &state) const |
GradientType | gradDot (const NodeArg &node, const StateArg &state) const |
GradientType | gradDot (const ElemArg &elem, const StateArg &state) const |
GradientType | gradDot (const FaceArg &face, const StateArg &state) const |
GradientType | gradDot (const ElemQpArg &qp, const StateArg &state) const |
GradientType | gradDot (const ElemSideQpArg &qp, const StateArg &state) const |
GradientType | gradDot (const ElemPointArg &elem_point, const StateArg &state) const |
GradientType | gradDot (const NodeArg &node, const StateArg &state) const |
const Function & | getFunction (const std::string &name) const |
const Function & | getFunctionByName (const FunctionName &name) const |
bool | hasFunction (const std::string ¶m_name) const |
bool | hasFunctionByName (const FunctionName &name) const |
bool | isDefaultPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
bool | hasPostprocessor (const std::string ¶m_name, const unsigned int index=0) const |
bool | hasPostprocessorByName (const PostprocessorName &name) const |
std::size_t | coupledPostprocessors (const std::string ¶m_name) const |
const PostprocessorName & | getPostprocessorName (const std::string ¶m_name, const unsigned int index=0) const |
const VectorPostprocessorValue & | getVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
bool | hasVectorPostprocessor (const std::string ¶m_name, const std::string &vector_name) const |
bool | hasVectorPostprocessor (const std::string ¶m_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 ¶m_name) const |
T & | getSampler (const std::string &name) |
Sampler & | getSampler (const std::string &name) |
T & | getSamplerByName (const SamplerName &name) |
Sampler & | getSamplerByName (const SamplerName &name) |
const std::vector< MooseVariableScalar *> & | getCoupledMooseScalarVars () |
const std::set< TagID > & | getScalarVariableCoupleableVectorTags () const |
const std::set< TagID > & | getScalarVariableCoupleableMatrixTags () const |
PerfGraph & | perfGraph () |
const PostprocessorValue & | getPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOld (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOld (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOlder (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOlder (const std::string ¶m_name, const unsigned int index=0) const |
virtual const PostprocessorValue & | getPostprocessorValueByName (const PostprocessorName &name) const |
virtual const PostprocessorValue & | getPostprocessorValueByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOldByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOldByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOlderByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOlderByName (const PostprocessorName &name) const |
bool | isVectorPostprocessorDistributed (const std::string ¶m_name) const |
bool | isVectorPostprocessorDistributed (const std::string ¶m_name) const |
bool | isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const |
bool | isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const |
const Distribution & | getDistribution (const std::string &name) const |
const T & | getDistribution (const std::string &name) const |
const Distribution & | getDistribution (const std::string &name) const |
const T & | getDistribution (const std::string &name) const |
const Distribution & | getDistributionByName (const DistributionName &name) const |
const T & | getDistributionByName (const std::string &name) const |
const Distribution & | getDistributionByName (const DistributionName &name) const |
const T & | getDistributionByName (const std::string &name) const |
const Parallel::Communicator & | comm () const |
processor_id_type | n_processors () const |
processor_id_type | processor_id () const |
const ADVariableValue * | getADDefaultValue (const std::string &var_name) const |
const std::vector< MooseVariableFieldBase *> & | getCoupledMooseVars () const |
const std::vector< MooseVariable *> & | getCoupledStandardMooseVars () const |
const std::vector< VectorMooseVariable *> & | getCoupledVectorMooseVars () const |
const std::vector< ArrayMooseVariable *> & | getCoupledArrayMooseVars () const |
void | addFEVariableCoupleableVectorTag (TagID tag) |
void | addFEVariableCoupleableMatrixTag (TagID tag) |
std::set< TagID > & | getFEVariableCoupleableVectorTags () |
const std::set< TagID > & | getFEVariableCoupleableVectorTags () const |
std::set< TagID > & | getFEVariableCoupleableMatrixTags () |
const std::set< TagID > & | getFEVariableCoupleableMatrixTags () const |
auto & | getWritableCoupledVariables () const |
bool | hasWritableCoupledVariables () const |
const ADVectorVariableValue * | getADDefaultVectorValue (const std::string &var_name) const |
const ADVariableGradient & | getADDefaultGradient () const |
const ADVectorVariableGradient & | getADDefaultVectorGradient () const |
const ADVariableSecond & | getADDefaultSecond () const |
const std::set< MooseVariableFieldBase *> & | getMooseVariableDependencies () const |
std::set< MooseVariableFieldBase *> | checkAllVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_omit={}) |
std::set< MooseVariableFieldBase *> | checkVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_check) |
virtual const std::set< BoundaryID > & | boundaryIDs () const |
const std::vector< BoundaryName > & | boundaryNames () const |
unsigned int | numBoundaryIDs () const |
bool | hasBoundary (const BoundaryName &name) const |
bool | hasBoundary (const std::vector< BoundaryName > &names) const |
bool | hasBoundary (const BoundaryID &id) const |
bool | hasBoundary (const std::vector< BoundaryID > &ids, TEST_TYPE type=ALL) const |
bool | hasBoundary (const std::set< BoundaryID > &ids, TEST_TYPE type=ALL) const |
bool | isBoundarySubset (const std::set< BoundaryID > &ids) const |
bool | isBoundarySubset (const std::vector< BoundaryID > &ids) const |
bool | hasBoundaryMaterialProperty (const std::string &prop_name) const |
virtual bool | boundaryRestricted () const |
const std::set< BoundaryID > & | meshBoundaryIDs () const |
virtual bool | checkVariableBoundaryIntegrity () const |
Static Public Member Functions | |
static InputParameters | validParams () |
static void | sortDFS (typename std::vector< T > &vector) |
static void | cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header) |
static std::string | deduceFunctorName (const std::string &name, const InputParameters ¶ms) |
static bool | restricted (const std::set< BoundaryID > &ids) |
Public Attributes | |
const ConsoleStream | _console |
ALL | |
ANY | |
Static Public Attributes | |
static constexpr PropertyValue::id_type | default_property_id |
static constexpr PropertyValue::id_type | zero_property_id |
static constexpr auto | SYSTEM |
static constexpr auto | NAME |
static const std::size_t | invalid_size_t = std::numeric_limits<std::size_t>::max() |
static const unsigned int | invalid_id = std::numeric_limits<unsigned int>::max() |
static const processor_id_type | invalid_proc_id |
Protected Member Functions | |
RankFourTensor | newGrain (unsigned int new_grain_id) |
implement this method to initialize the data for the new grain More... | |
virtual void | newGrainCreated (unsigned int new_grain_id) |
This method is called when a new grain is detected. More... | |
virtual void | updateFieldInfo () override |
This method is used to populate any of the data structures used for storing field data (nodal or elemental). More... | |
virtual Real | getThreshold (std::size_t current_index) const override |
Return the starting comparison threshold to use when inspecting an entity during the flood stage. More... | |
void | prepopulateState (const FeatureFloodCount &ffc_object) |
This method extracts the necessary state from the passed in object necessary to continue tracking grains. More... | |
void | communicateHaloMap () |
void | assignGrains () |
When the tracking phase starts (_t_step == _tracking_step) it assigns a unique id to every FeatureData object found by the FeatureFloodCount object. More... | |
void | trackGrains () |
On subsequent time_steps, incoming FeatureData objects are compared to previous time_step information to track grains between time steps. More... | |
void | remapGrains () |
This method is called after trackGrains to remap grains that are too close to each other. More... | |
void | broadcastAndUpdateGrainData () |
Broadcast essential Grain information to all processors. More... | |
void | computeMinDistancesFromGrain (FeatureData &grain, std::vector< std::list< GrainDistance >> &min_distances) |
Populates and sorts a min_distances vector with the minimum distances to all grains in the simulation for a given grain. More... | |
bool | attemptGrainRenumber (FeatureData &grain, unsigned int depth, unsigned int max_depth) |
This is the recursive part of the remapping algorithm. More... | |
void | swapSolutionValues (FeatureData &grain, std::size_t new_var_index, std::vector< std::map< Node *, CacheValues >> &cache, RemapCacheMode cache_mode) |
A routine for moving all of the solution values from a given grain to a new variable number. More... | |
void | swapSolutionValuesHelper (Node *curr_node, std::size_t curr_var_index, std::size_t new_var_index, std::vector< std::map< Node *, CacheValues >> &cache, RemapCacheMode cache_mode) |
Helper method for actually performing the swaps. More... | |
Real | boundingRegionDistance (std::vector< BoundingBox > &bboxes1, std::vector< BoundingBox > &bboxes2) const |
This method returns the minimum periodic distance between two vectors of bounding boxes. More... | |
Real | centroidRegionDistance (std::vector< BoundingBox > &bboxes1, std::vector< BoundingBox > &bboxes2) const |
This method returns the minimum periodic distance between the centroids of two vectors of bounding boxes. More... | |
unsigned int | getNextUniqueID () |
Retrieve the next unique grain number if a new grain is detected during trackGrains. More... | |
template<typename T > | |
bool | isBoundaryEntity (const T *entity) const |
Returns a Boolean indicating whether the entity is on one of the desired boundaries. More... | |
bool | flood (const DofObject *dof_object, std::size_t current_index) |
This method will check if the current entity is above the supplied threshold and "mark" it. More... | |
virtual Real | getConnectingThreshold (std::size_t current_index) const |
Return the "connecting" comparison threshold to use when inspecting an entity during the flood stage. More... | |
bool | compareValueWithThreshold (Real entity_value, Real threshold) const |
This method is used to determine whether the current entity value is part of a feature or not. More... | |
virtual bool | isNewFeatureOrConnectedRegion (const DofObject *dof_object, std::size_t ¤t_index, FeatureData *&feature, Status &status, unsigned int &new_id) |
Method called during the recursive flood routine that should return whether or not the current entity is part of the current feature (if one is being explored), or if it's the start of a new feature. More... | |
void | expandPointHalos () |
This method takes all of the partial features and expands the local, ghosted, and halo sets around those regions to account for the diffuse interface. More... | |
void | expandEdgeHalos (unsigned int num_layers_to_expand) |
This method expands the existing halo set by some width determined by the passed in value. More... | |
template<typename T > | |
void | visitNeighborsHelper (const T *curr_entity, std::vector< const T *> neighbor_entities, FeatureData *feature, bool expand_halos_only, bool topological_neighbor, bool disjoint_only) |
The actual logic for visiting neighbors is abstracted out here. More... | |
virtual void | prepareDataForTransfer () |
This routine uses the local flooded data to build up the local feature data structures (_partial feature_sets). More... | |
void | serialize (std::string &serialized_buffer, unsigned int var_num=invalid_id) |
This routines packs the _partial_feature_sets data into a structure suitable for parallel communication operations. More... | |
void | deserialize (std::vector< std::string > &serialized_buffers, unsigned int var_num=invalid_id) |
This routine takes the vector of byte buffers (one for each processor), deserializes them into a series of FeatureSet objects, and appends them to the _feature_sets data structure. More... | |
virtual void | mergeSets () |
This routine is called on the primary rank only and stitches together the partial feature pieces seen on any processor. More... | |
virtual void | consolidateMergedFeatures (std::vector< std::list< FeatureData >> *saved_data=nullptr) |
This method consolidates all of the merged information from _partial_feature_sets into the _feature_sets vectors. More... | |
virtual bool | areFeaturesMergeable (const FeatureData &f1, const FeatureData &f2) const |
Method for determining whether two features are mergeable. More... | |
virtual processor_id_type | numberOfDistributedMergeHelpers () const |
Returns a number indicating the number of merge helpers when running in parallel based on certain implementer decided criteria. More... | |
void | communicateAndMerge () |
This routine handles all of the serialization, communication and deserialization of the data structures containing FeatureData objects. More... | |
virtual void | restoreOriginalDataStructures (std::vector< std::list< FeatureData >> &) |
void | sortAndLabel () |
Sort and assign ids to features based on their position in the container after sorting. More... | |
void | scatterAndUpdateRanks () |
Calls buildLocalToGlobalIndices to build the individual local to global indicies for each rank and scatters that information to all ranks. More... | |
virtual void | buildLocalToGlobalIndices (std::vector< std::size_t > &local_to_global_all, std::vector< int > &counts) const |
This routine populates a stacked vector of local to global indices per rank and the associated count vector for scattering the vector to the ranks. More... | |
void | buildFeatureIdToLocalIndices (unsigned int max_id) |
This method builds a lookup map for retrieving the right local feature (by index) given a global index or id. More... | |
virtual void | clearDataStructures () |
Helper routine for clearing up data structures during initialize and prior to parallel communication. More... | |
void | updateBoundaryIntersections (FeatureData &feature) const |
Update the feature's attributes to indicate boundary intersections. More... | |
void | appendPeriodicNeighborNodes (FeatureData &feature) const |
This routine adds the periodic node information to our data structure prior to packing the data this makes those periodic neighbors appear much like ghosted nodes in a multiprocessor setting. More... | |
void | updateRegionOffsets () |
This routine updates the _region_offsets variable which is useful for quickly determining the proper global number for a feature when using multimap mode. More... | |
std::string | deduceFunctorName (const std::string &name) const |
virtual void | addPostprocessorDependencyHelper (const PostprocessorName &name) const override |
virtual void | addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &name) const override |
virtual void | addUserObjectDependencyHelper (const UserObject &uo) const override |
void | addReporterDependencyHelper (const ReporterName &reporter_name) override |
const ReporterName & | getReporterName (const std::string ¶m_name) const |
T & | declareRestartableData (const std::string &data_name, Args &&... args) |
ManagedValue< T > | declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args) |
const T & | getRestartableData (const std::string &data_name) const |
T & | declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args) |
T & | declareRecoverableData (const std::string &data_name, Args &&... args) |
T & | declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args) |
T & | declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args) |
std::string | restartableName (const std::string &data_name) const |
const T & | getMeshProperty (const std::string &data_name, const std::string &prefix) |
const T & | getMeshProperty (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 |
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 |
Order | coupledScalarOrder (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarValue (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adCoupledScalarValue (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 VariableValue & | coupledVectorTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const |
const VariableValue & | coupledMatrixTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const |
const VariableValue & | coupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDot (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const |
const MooseVariableScalar * | getScalarVar (const std::string &var_name, unsigned int comp) const |
PerfID | registerTimedSection (const std::string §ion_name, const unsigned int level) const |
PerfID | registerTimedSection (const std::string §ion_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const |
std::string | timedSectionName (const std::string §ion_name) const |
virtual void | checkMaterialProperty (const std::string &name, const unsigned int state) |
void | markMatPropRequested (const std::string &) |
MaterialPropertyName | getMaterialPropertyName (const std::string &name) const |
void | checkExecutionStage () |
Moose::StateArg | determineState () const |
const Moose::Functor< T > & | getFunctor (const std::string &name) |
const Moose::Functor< T > & | getFunctor (const std::string &name, THREAD_ID tid) |
const Moose::Functor< T > & | getFunctor (const std::string &name, SubProblem &subproblem) |
const Moose::Functor< T > & | getFunctor (const std::string &name, SubProblem &subproblem, THREAD_ID tid) |
bool | isFunctor (const std::string &name) const |
bool | isFunctor (const std::string &name, const SubProblem &subproblem) const |
Moose::ElemArg | makeElemArg (const Elem *elem, bool correct_skewnewss=false) const |
void | checkFunctorSupportsSideIntegration (const std::string &name, bool qp_integration) |
const T & | getReporterValue (const std::string ¶m_name, const std::size_t time_index=0) |
const T & | getReporterValue (const std::string ¶m_name, ReporterMode mode, const std::size_t time_index=0) |
const T & | getReporterValue (const std::string ¶m_name, const std::size_t time_index=0) |
const T & | getReporterValue (const std::string ¶m_name, ReporterMode mode, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0) |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValue (const std::string ¶m_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) |
virtual GradientType | evaluateGradDot (const ElemArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const FaceArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemSideQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemPointArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const NodeArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const FaceArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemSideQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemPointArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const NodeArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const FaceArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemSideQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const ElemPointArg &, const StateArg &) const |
virtual GradientType | evaluateGradDot (const NodeArg &, const StateArg &) const |
bool | checkVar (const std::string &var_name, unsigned int comp=0, unsigned int comp_bound=0) const |
void | validateExecutionerType (const std::string &name, const std::string &fn_name) const |
virtual ValueType | evaluate (const ElemArg &elem, const StateArg &state) const =0 |
virtual ValueType | evaluate (const FaceArg &face, const StateArg &state) const =0 |
virtual ValueType | evaluate (const ElemQpArg &qp, const StateArg &state) const =0 |
virtual ValueType | evaluate (const ElemSideQpArg &side_qp, const StateArg &state) const =0 |
virtual ValueType | evaluate (const ElemPointArg &elem_point, const StateArg &state) const =0 |
virtual ValueType | evaluate (const NodeArg &node, const StateArg &state) const =0 |
virtual GradientType | evaluateGradient (const ElemArg &, const StateArg &) const |
virtual GradientType | evaluateGradient (const FaceArg &, const StateArg &) const |
virtual GradientType | evaluateGradient (const ElemQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradient (const ElemSideQpArg &, const StateArg &) const |
virtual GradientType | evaluateGradient (const ElemPointArg &, const StateArg &) const |
virtual GradientType | evaluateGradient (const NodeArg &, const StateArg &) const |
virtual DotType | evaluateDot (const ElemArg &, const StateArg &) const |
virtual DotType | evaluateDot (const FaceArg &, const StateArg &) const |
virtual DotType | evaluateDot (const ElemQpArg &, const StateArg &) const |
virtual DotType | evaluateDot (const ElemSideQpArg &, const StateArg &) const |
virtual DotType | evaluateDot (const ElemPointArg &, const StateArg &) const |
virtual DotType | evaluateDot (const NodeArg &, const StateArg &) const |
virtual void | coupledCallback (const std::string &, bool) const |
virtual bool | isCoupled (const std::string &var_name, unsigned int i=0) const |
virtual bool | isCoupledConstant (const std::string &var_name) const |
unsigned int | coupledComponents (const std::string &var_name) const |
VariableName | coupledName (const std::string &var_name, unsigned int comp=0) const |
std::vector< VariableName > | coupledNames (const std::string &var_name) const |
virtual unsigned int | coupled (const std::string &var_name, unsigned int comp=0) const |
std::vector< unsigned int > | coupledIndices (const std::string &var_name) const |
virtual const VariableValue & | coupledValue (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledValues (const std::string &var_name) const |
std::vector< const VectorVariableValue *> | coupledVectorValues (const std::string &var_name) const |
const GenericVariableValue< is_ad > & | coupledGenericValue (const std::string &var_name, unsigned int comp=0) const |
const GenericVariableValue< false > & | coupledGenericValue (const std::string &var_name, unsigned int comp) const |
const GenericVariableValue< true > & | coupledGenericValue (const std::string &var_name, unsigned int comp) const |
std::vector< const GenericVariableValue< is_ad > *> | coupledGenericValues (const std::string &var_name) const |
std::vector< const GenericVariableValue< false > *> | coupledGenericValues (const std::string &var_name) const |
std::vector< const GenericVariableValue< true > *> | coupledGenericValues (const std::string &var_name) const |
const GenericVariableValue< is_ad > & | coupledGenericDofValue (const std::string &var_name, unsigned int comp=0) const |
const GenericVariableValue< false > & | coupledGenericDofValue (const std::string &var_name, unsigned int comp) const |
const GenericVariableValue< true > & | coupledGenericDofValue (const std::string &var_name, unsigned int comp) const |
virtual const VariableValue & | coupledValueLower (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adCoupledValue (const std::string &var_name, unsigned int comp=0) const |
std::vector< const ADVariableValue *> | adCoupledValues (const std::string &var_name) const |
const ADVariableValue & | adCoupledLowerValue (const std::string &var_name, unsigned int comp=0) const |
const ADVectorVariableValue & | adCoupledVectorValue (const std::string &var_name, unsigned int comp=0) const |
std::vector< const ADVectorVariableValue *> | adCoupledVectorValues (const std::string &var_name) const |
virtual const VariableValue & | coupledVectorTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const |
virtual const VariableValue & | coupledVectorTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
std::vector< const VariableValue *> | coupledVectorTagValues (const std::string &var_names, TagID tag) const |
std::vector< const VariableValue *> | coupledVectorTagValues (const std::string &var_names, const std::string &tag_name) const |
virtual const ArrayVariableValue & | coupledVectorTagArrayValue (const std::string &var_names, TagID tag, unsigned int index=0) const |
virtual const ArrayVariableValue & | coupledVectorTagArrayValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
std::vector< const ArrayVariableValue *> | coupledVectorTagArrayValues (const std::string &var_names, TagID tag) const |
std::vector< const ArrayVariableValue *> | coupledVectorTagArrayValues (const std::string &var_names, const std::string &tag_name) const |
virtual const VariableGradient & | coupledVectorTagGradient (const std::string &var_names, TagID tag, unsigned int index=0) const |
virtual const VariableGradient & | coupledVectorTagGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
std::vector< const VariableGradient *> | coupledVectorTagGradients (const std::string &var_names, TagID tag) const |
std::vector< const VariableGradient *> | coupledVectorTagGradients (const std::string &var_names, const std::string &tag_name) const |
virtual const ArrayVariableGradient & | coupledVectorTagArrayGradient (const std::string &var_names, TagID tag, unsigned int index=0) const |
virtual const ArrayVariableGradient & | coupledVectorTagArrayGradient (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
std::vector< const ArrayVariableGradient *> | coupledVectorTagArrayGradients (const std::string &var_names, TagID tag) const |
std::vector< const ArrayVariableGradient *> | coupledVectorTagArrayGradients (const std::string &var_names, const std::string &tag_name) const |
virtual const VariableValue & | coupledVectorTagDofValue (const std::string &var_name, TagID tag, unsigned int index=0) const |
virtual const VariableValue & | coupledVectorTagDofValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
const ArrayVariableValue & | coupledVectorTagArrayDofValue (const std::string &var_name, const std::string &tag_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledVectorTagDofValues (const std::string &var_names, TagID tag) const |
std::vector< const VariableValue *> | coupledVectorTagDofValues (const std::string &var_names, const std::string &tag_name) const |
virtual const VariableValue & | coupledMatrixTagValue (const std::string &var_names, TagID tag, unsigned int index=0) const |
virtual const VariableValue & | coupledMatrixTagValue (const std::string &var_names, const std::string &tag_name, unsigned int index=0) const |
std::vector< const VariableValue *> | coupledMatrixTagValues (const std::string &var_names, TagID tag) const |
std::vector< const VariableValue *> | coupledMatrixTagValues (const std::string &var_names, const std::string &tag_name) const |
virtual const VectorVariableValue & | coupledVectorValue (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayValue (const std::string &var_name, unsigned int comp=0) const |
std::vector< const ArrayVariableValue *> | coupledArrayValues (const std::string &var_name) const |
MooseWritableVariable & | writableVariable (const std::string &var_name, unsigned int comp=0) |
virtual VariableValue & | writableCoupledValue (const std::string &var_name, unsigned int comp=0) |
void | checkWritableVar (MooseWritableVariable *var) |
virtual const VariableValue & | coupledValueOld (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledValuesOld (const std::string &var_name) const |
virtual const VariableValue & | coupledValueOlder (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledValuesOlder (const std::string &var_name) const |
virtual const VariableValue & | coupledValuePreviousNL (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorValueOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorValueOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayValueOld (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayValueOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableGradient & | coupledGradient (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableGradient *> | coupledGradients (const std::string &var_name) const |
const ADVariableGradient & | adCoupledGradient (const std::string &var_name, unsigned int comp=0) const |
const ADVariableGradient & | adCoupledGradientDot (const std::string &var_name, unsigned int comp=0) const |
std::vector< const ADVariableGradient *> | adCoupledGradients (const std::string &var_name) const |
const GenericVariableGradient< is_ad > & | coupledGenericGradient (const std::string &var_name, unsigned int comp=0) const |
const GenericVariableGradient< false > & | coupledGenericGradient (const std::string &var_name, unsigned int comp) const |
const GenericVariableGradient< true > & | coupledGenericGradient (const std::string &var_name, unsigned int comp) const |
std::vector< const GenericVariableGradient< is_ad > *> | coupledGenericGradients (const std::string &var_name) const |
std::vector< const GenericVariableGradient< false > *> | coupledGenericGradients (const std::string &var_name) const |
std::vector< const GenericVariableGradient< true > *> | coupledGenericGradients (const std::string &var_name) const |
const ADVectorVariableGradient & | adCoupledVectorGradient (const std::string &var_name, unsigned int comp=0) const |
const ADVariableSecond & | adCoupledSecond (const std::string &var_name, unsigned int comp=0) const |
const ADVectorVariableSecond & | adCoupledVectorSecond (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableGradient & | coupledGradientOld (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableGradient *> | coupledGradientsOld (const std::string &var_name) const |
virtual const VariableGradient & | coupledGradientOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableGradient & | coupledGradientPreviousNL (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableGradient & | coupledGradientDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableGradient & | coupledGradientDotDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableGradient & | coupledVectorGradient (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableGradient & | coupledVectorGradientOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableGradient & | coupledVectorGradientOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableGradient & | coupledArrayGradient (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableGradient & | coupledArrayGradientOld (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableGradient & | coupledArrayGradientOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableGradient & | coupledArrayGradientDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableCurl & | coupledCurl (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableCurl & | coupledCurlOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableCurl & | coupledCurlOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableSecond & | coupledSecond (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableSecond & | coupledSecondOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableSecond & | coupledSecondOlder (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableSecond & | coupledSecondPreviousNL (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDot (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledDots (const std::string &var_name) const |
virtual const VariableValue & | coupledDotDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDotDotOld (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adCoupledDot (const std::string &var_name, unsigned int comp=0) const |
std::vector< const ADVariableValue *> | adCoupledDots (const std::string &var_name) const |
const ADVariableValue & | adCoupledDotDot (const std::string &var_name, unsigned int comp=0) const |
const ADVectorVariableValue & | adCoupledVectorDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorDotDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VectorVariableValue & | coupledVectorDotDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledVectorDotDu (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledVectorDotDotDu (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayDot (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayDotDot (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const ArrayVariableValue & | coupledArrayDotDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDotDu (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDotDotDu (const std::string &var_name, unsigned int comp=0) const |
const VariableValue & | coupledArrayDotDu (const std::string &var_name, unsigned int comp=0) const |
const T & | coupledNodalValue (const std::string &var_name, unsigned int comp=0) const |
const Moose::ADType< T >::type & | adCoupledNodalValue (const std::string &var_name, unsigned int comp=0) const |
const T & | coupledNodalValueOld (const std::string &var_name, unsigned int comp=0) const |
const T & | coupledNodalValueOlder (const std::string &var_name, unsigned int comp=0) const |
const T & | coupledNodalValuePreviousNL (const std::string &var_name, unsigned int comp=0) const |
const T & | coupledNodalDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledNodalDotDot (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledNodalDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledNodalDotDotOld (const std::string &var_name, unsigned int comp=0) const |
virtual const VariableValue & | coupledDofValues (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledAllDofValues (const std::string &var_name) const |
virtual const VariableValue & | coupledDofValuesOld (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledAllDofValuesOld (const std::string &var_name) const |
virtual const VariableValue & | coupledDofValuesOlder (const std::string &var_name, unsigned int comp=0) const |
std::vector< const VariableValue *> | coupledAllDofValuesOlder (const std::string &var_name) const |
virtual const ArrayVariableValue & | coupledArrayDofValues (const std::string &var_name, unsigned int comp=0) const |
virtual const ADVariableValue & | adCoupledDofValues (const std::string &var_name, unsigned int comp=0) const |
const ADVariableValue & | adZeroValue () const |
const ADVariableGradient & | adZeroGradient () const |
const ADVariableSecond & | adZeroSecond () const |
const GenericVariableValue< is_ad > & | genericZeroValue () |
const GenericVariableValue< false > & | genericZeroValue () |
const GenericVariableValue< true > & | genericZeroValue () |
const GenericVariableGradient< is_ad > & | genericZeroGradient () |
const GenericVariableGradient< false > & | genericZeroGradient () |
const GenericVariableGradient< true > & | genericZeroGradient () |
const GenericVariableSecond< is_ad > & | genericZeroSecond () |
const GenericVariableSecond< false > & | genericZeroSecond () |
const GenericVariableSecond< true > & | genericZeroSecond () |
const MooseVariableFieldBase * | getFEVar (const std::string &var_name, unsigned int comp) const |
const MooseVariableFieldBase * | getFieldVar (const std::string &var_name, unsigned int comp) const |
MooseVariableFieldBase * | getFieldVar (const std::string &var_name, unsigned int comp) |
const T * | getVarHelper (const std::string &var_name, unsigned int comp) const |
T * | getVarHelper (const std::string &var_name, unsigned int comp) |
MooseVariable * | getVar (const std::string &var_name, unsigned int comp) |
const MooseVariable * | getVar (const std::string &var_name, unsigned int comp) const |
VectorMooseVariable * | getVectorVar (const std::string &var_name, unsigned int comp) |
const VectorMooseVariable * | getVectorVar (const std::string &var_name, unsigned int comp) const |
ArrayMooseVariable * | getArrayVar (const std::string &var_name, unsigned int comp) |
const ArrayMooseVariable * | getArrayVar (const std::string &var_name, unsigned int comp) const |
std::vector< T > | coupledVectorHelper (const std::string &var_name, const Func &func) const |
void | addMooseVariableDependency (MooseVariableFieldBase *var) |
void | addMooseVariableDependency (const std::vector< MooseVariableFieldBase * > &vars) |
bool | hasBoundaryMaterialPropertyHelper (const std::string &prop_name) const |
void | visitNodalNeighbors (const Node *node, FeatureData *feature, bool expand_halos_only) |
These two routines are utility routines used by the flood routine and by derived classes for visiting neighbors. More... | |
void | visitElementalNeighbors (const Elem *elem, FeatureData *feature, bool expand_halos_only, bool disjoint_only) |
Static Protected Member Functions | |
static std::string | meshPropertyName (const std::string &data_name, const std::string &prefix) |
Protected Attributes | |
const bool | _random_rotations |
generate random rotations when the Euler Angle provider runs out of data (otherwise error out) More... | |
RankFourTensor | _C_ijkl |
unrotated elasticity tensor More... | |
const EulerAngleProvider & | _euler |
object providing the Euler angles More... | |
std::vector< RankFourTensor > & | _grain_data |
per grain data More... | |
const int | _tracking_step |
The timestep to begin tracking grains. More... | |
const unsigned short | _halo_level |
The thickness of the halo surrounding each grain. More... | |
const unsigned short | _max_remap_recursion_depth |
Depth of renumbering recursion (a depth of zero means no recursion) More... | |
const unsigned short | _n_reserve_ops |
The number of reserved order parameters. More... | |
const std::size_t | _reserve_op_index |
The cutoff index where if variable index >= this number, no remapping TO that variable will occur. More... | |
const Real | _reserve_op_threshold |
The threshold above (or below) where a grain may be found on a reserve op field. More... | |
const Real | _bound_value |
Absolute value of the lower bound used to represent a region not assigned to this grain, used when a grain is remapped to another order parameter. More... | |
const bool | _remap |
Inidicates whether remapping should be done or not (remapping is independent of tracking) More... | |
const bool | _tolerate_failure |
Indicates whether we should continue after a remap failure (will result in non-physical results) More... | |
NonlinearSystemBase & | _nl |
A reference to the nonlinear system (used for retrieving solution vectors) More... | |
std::vector< FeatureData > | _feature_sets_old |
This data structure holds the map of unique grains from the previous time step. More... | |
const PolycrystalUserObjectBase *const | _poly_ic_uo |
An optional IC UserObject which can provide initial data structures to this object. More... | |
const short | _verbosity_level |
Verbosity level controlling the amount of information printed to the console. More... | |
bool & | _first_time |
Boolean to indicate the first time this object executes. More... | |
const bool | _error_on_grain_creation |
Boolean to terminate with an error if a new grain is created during the simulation. More... | |
std::vector< MooseVariableFEBase * > | _fe_vars |
The vector of coupled in variables. More... | |
std::vector< MooseVariable * > | _vars |
The vector of coupled in variables cast to MooseVariable. More... | |
const DofMap & | _dof_map |
Reference to the dof_map containing the coupled variables. More... | |
const Real | _threshold |
The threshold above (or below) where an entity may begin a new region (feature) More... | |
Real | _step_threshold |
const Real | _connecting_threshold |
The threshold above (or below) which neighboring entities are flooded (where regions can be extended but not started) More... | |
Real | _step_connecting_threshold |
MooseMesh & | _mesh |
A reference to the mesh. More... | |
unsigned long | _var_number |
This variable is used to build the periodic node map. More... | |
const bool | _single_map_mode |
This variable is used to indicate whether or not multiple maps are used during flooding. More... | |
const bool | _condense_map_info |
const bool | _global_numbering |
This variable is used to indicate whether or not we identify features with unique numbers on multiple maps. More... | |
const bool | _var_index_mode |
This variable is used to indicate whether the maps will contain unique region information or just the variable numbers owning those regions. More... | |
const bool | _compute_halo_maps |
Indicates whether or not to communicate halo map information with all ranks. More... | |
const bool | _compute_var_to_feature_map |
Indicates whether or not the var to feature map is populated. More... | |
const bool | _use_less_than_threshold_comparison |
Use less-than when comparing values against the threshold value. More... | |
const std::size_t | _n_vars |
const std::size_t | _maps_size |
Convenience variable holding the size of all the datastructures size by the number of maps. More... | |
const processor_id_type | _n_procs |
Convenience variable holding the number of processors in this simulation. More... | |
std::vector< std::set< dof_id_type > > | _entities_visited |
This variable keeps track of which nodes have been visited during execution. More... | |
std::vector< std::map< dof_id_type, int > > | _var_index_maps |
This map keeps track of which variables own which nodes. More... | |
std::unordered_map< dof_id_type, std::vector< const Elem * > > | _nodes_to_elem_map |
The data structure used to find neighboring elements give a node ID. More... | |
std::vector< unsigned int > | _feature_counts_per_map |
The number of features seen by this object per map. More... | |
unsigned int | _feature_count |
The number of features seen by this object (same as summing _feature_counts_per_map) More... | |
std::vector< std::list< FeatureData > > | _partial_feature_sets |
The data structure used to hold partial and communicated feature data, during the discovery and merging phases. More... | |
std::vector< FeatureData > & | _feature_sets |
The data structure used to hold the globally unique features. More... | |
std::vector< FeatureData > | _volatile_feature_sets |
Derived objects (e.g. More... | |
std::vector< std::map< dof_id_type, int > > | _feature_maps |
The feature maps contain the raw flooded node information and eventually the unique grain numbers. More... | |
std::vector< std::size_t > | _local_to_global_feature_map |
The vector recording the local to global feature indices. More... | |
std::vector< std::size_t > | _feature_id_to_local_index |
The vector recording the grain_id to local index (several indices will contain invalid_size_t) More... | |
PeriodicBoundaries * | _pbs |
A pointer to the periodic boundary constraints object. More... | |
std::unique_ptr< PointLocatorBase > | _point_locator |
const PostprocessorValue & | _element_average_value |
Average value of the domain which can optionally be used to find features in a field. More... | |
std::map< dof_id_type, int > | _ghosted_entity_ids |
The map for holding reconstructed ghosted element information. More... | |
std::vector< std::map< dof_id_type, int > > | _halo_ids |
The data structure for looking up halos around features. More... | |
std::multimap< dof_id_type, dof_id_type > | _periodic_node_map |
The data structure which is a list of nodes that are constrained to other nodes based on the imposed periodic boundary conditions. More... | |
std::unordered_set< dof_id_type > | _all_boundary_entity_ids |
The set of entities on the boundary of the domain used for determining if features intersect any boundary. More... | |
std::map< dof_id_type, std::vector< unsigned int > > | _entity_var_to_features |
std::vector< unsigned int > | _empty_var_to_features |
std::vector< BoundaryID > | _primary_perc_bnds |
std::vector< BoundaryID > | _secondary_perc_bnds |
std::vector< BoundaryID > | _specified_bnds |
const bool | _is_elemental |
Determines if the flood counter is elements or not (nodes) More... | |
bool | _is_boundary_restricted |
Indicates that this object should only run on one or more boundaries. More... | |
ConstBndElemRange * | _bnd_elem_range |
Boundary element range pointer. More... | |
const bool | _is_primary |
Convenience variable for testing primary rank. More... | |
SubProblem & | _subproblem |
FEProblemBase & | _fe_problem |
SystemBase & | _sys |
const THREAD_ID | _tid |
Assembly & | _assembly |
const Moose::CoordinateSystemType & | _coord_sys |
const bool | _duplicate_initial_execution |
std::set< std::string > | _depend_uo |
const bool & | _enabled |
MooseApp & | _app |
const std::string | _type |
const std::string | _name |
const InputParameters & | _pars |
Factory & | _factory |
ActionFactory & | _action_factory |
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 & | _sc_fe_problem |
const THREAD_ID | _sc_tid |
const Real & | _real_zero |
const VariableValue & | _scalar_zero |
const Point & | _point_zero |
MooseApp & | _pg_moose_app |
const std::string | _prefix |
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 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 |
int & | _t_step |
Real & | _dt |
Real & | _dt_old |
const std::string & | _pp_name |
const PostprocessorValue & | _current_value |
const Parallel::Communicator & | _communicator |
std::unordered_map< std::string, std::vector< std::unique_ptr< VariableValue > > > | _default_value |
const InputParameters & | _c_parameters |
const std::string & | _c_name |
const std::string & | _c_type |
FEProblemBase & | _c_fe_problem |
const SystemBase *const | _c_sys |
std::unordered_map< std::string, std::vector< MooseVariableFieldBase *> > | _coupled_vars |
std::vector< MooseVariableFieldBase *> | _coupled_moose_vars |
std::vector< MooseVariable *> | _coupled_standard_moose_vars |
std::vector< VectorMooseVariable *> | _coupled_vector_moose_vars |
std::vector< ArrayMooseVariable *> | _coupled_array_moose_vars |
std::vector< MooseVariableFV< Real > *> | _coupled_standard_fv_moose_vars |
const std::unordered_map< std::string, std::string > & | _new_to_deprecated_coupled_vars |
bool | _c_nodal |
bool | _c_is_implicit |
const bool | _c_allow_element_to_nodal_coupling |
THREAD_ID | _c_tid |
std::unordered_map< std::string, std::unique_ptr< MooseArray< DualReal > > > | _ad_default_value |
std::unordered_map< std::string, std::unique_ptr< VectorVariableValue > > | _default_vector_value |
std::unordered_map< std::string, std::unique_ptr< ArrayVariableValue > > | _default_array_value |
std::unordered_map< std::string, std::unique_ptr< MooseArray< ADRealVectorValue > > > | _ad_default_vector_value |
VariableValue | _default_value_zero |
VariableGradient | _default_gradient |
MooseArray< ADRealVectorValue > | _ad_default_gradient |
MooseArray< ADRealTensorValue > | _ad_default_vector_gradient |
VariableSecond | _default_second |
MooseArray< ADRealTensorValue > | _ad_default_second |
const VariableValue & | _zero |
const VariablePhiValue & | _phi_zero |
const MooseArray< DualReal > & | _ad_zero |
const VariableGradient & | _grad_zero |
const MooseArray< ADRealVectorValue > & | _ad_grad_zero |
const VariablePhiGradient & | _grad_phi_zero |
const VariableSecond & | _second_zero |
const MooseArray< ADRealTensorValue > & | _ad_second_zero |
const VariablePhiSecond & | _second_phi_zero |
const VectorVariableValue & | _vector_zero |
const VectorVariableCurl & | _vector_curl_zero |
VectorVariableValue | _default_vector_value_zero |
VectorVariableGradient | _default_vector_gradient |
VectorVariableCurl | _default_vector_curl |
ArrayVariableValue | _default_array_value_zero |
ArrayVariableGradient | _default_array_gradient |
ArrayVariableCurl | _default_array_curl |
bool | _coupleable_neighbor |
Static Protected Attributes | |
static const std::string | _interpolated_old |
static const std::string | _interpolated_older |
Manage a list of elasticity tensors for the grains.
Definition at line 20 of file GrainTrackerElasticity.h.
|
stronginherited |
This enumeration is used to inidacate status of boundary intersections.
Enumerator | |
---|---|
NONE | |
ANY_BOUNDARY | |
PRIMARY_PERCOLATION_BOUNDARY | |
SECONDARY_PERCOLATION_BOUNDARY | |
SPECIFIED_BOUNDARY |
Definition at line 129 of file FeatureFloodCount.h.
|
stronginherited |
Enumerator | |
---|---|
UNIQUE_REGION | |
VARIABLE_COLORING | |
GHOSTED_ENTITIES | |
HALOS | |
CENTROID | |
ACTIVE_BOUNDS | |
INTERSECTS_SPECIFIED_BOUNDARY |
Definition at line 102 of file FeatureFloodCount.h.
|
stronginherited |
Enumerator | |
---|---|
FILL | |
USE | |
BYPASS |
Definition at line 51 of file GrainTracker.h.
|
stronginherited |
This enumeration is used to indicate status of the grains in the _unique_grains data structure.
Enumerator | |
---|---|
CLEAR | |
MARKED | |
DIRTY | |
INACTIVE |
Definition at line 120 of file FeatureFloodCount.h.
GrainTrackerElasticity::GrainTrackerElasticity | ( | const InputParameters & | parameters | ) |
Definition at line 33 of file GrainTrackerElasticity.C.
|
protectedinherited |
This routine adds the periodic node information to our data structure prior to packing the data this makes those periodic neighbors appear much like ghosted nodes in a multiprocessor setting.
Definition at line 1819 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::prepareDataForTransfer().
|
protectedvirtualinherited |
Method for determining whether two features are mergeable.
This routine exists because derived classes may need to override this function rather than use the mergeable method in the FeatureData object.
Reimplemented in PolycrystalUserObjectBase.
Definition at line 1276 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::mergeSets().
|
protectedinherited |
When the tracking phase starts (_t_step == _tracking_step) it assigns a unique id to every FeatureData object found by the FeatureFloodCount object.
We need to assign grainIDs to get the simulation going. We'll use the default sorting that doesn't require valid grainIDs (relies on _min_entity_id and _var_index). These will be the unique grain numbers that we must track for remainder of the simulation.
Definition at line 451 of file GrainTracker.C.
Referenced by GrainTracker::finalize().
|
protectedinherited |
This is the recursive part of the remapping algorithm.
It attempts to remap a grain to a new index and recurses until max_depth is reached.
We have two grains that are getting close represented by the same order parameter. We need to map to the variable whose closest grain to this one is furthest away by bounding region to bounding region distance.
We have a vector of the distances to the closest grains represented by each of our variables. We just need to pick a suitable grain to replace with. We will start with the maximum of this this list: (max of the mins), but will settle for next to largest and so forth as we make more attempts at remapping grains. This is a graph coloring problem so more work will be required to optimize this process.
Note: We don't have an explicit check here to avoid remapping a variable to itself. This is unnecessary since the min_distance of a variable is explicitly set up above.
If we get to this case and the best distance is less than -1, we are in big trouble. This means that grains represented by all of the remaining order parameters are overlapping this one in at least two places. We'd have to maintain multiple recursive chains, or just start over from scratch... Let's just return false and see if there is another remapping option.
Propose a new variable index for the current grain and recurse. We don't need to mark the status as DIRTY here since the recursion may fail. For now, we'll just add MARKED to the status.
Definition at line 1252 of file GrainTracker.C.
Referenced by GrainTracker::remapGrains().
|
protectedinherited |
This method returns the minimum periodic distance between two vectors of bounding boxes.
If the bounding boxes overlap the result is always -1.0.
The region that each grain covers is represented by a bounding box large enough to encompassing all the points within that grain. When using periodic boundaries, we may have several discrete "pieces" of a grain each represented by a bounding box. The distance between any two grains is defined as the minimum distance between any pair of boxes, one selected from each grain.
Definition at line 1736 of file GrainTracker.C.
Referenced by GrainTracker::computeMinDistancesFromGrain().
|
protectedinherited |
Broadcast essential Grain information to all processors.
This method is used to get certain attributes like centroids distributed and whether or not a grain intersects a boundary updated.
Definition at line 388 of file GrainTracker.C.
Referenced by GrainTracker::finalize().
This method builds a lookup map for retrieving the right local feature (by index) given a global index or id.
max_id is passed to size the vector properly and may or may not be a globally consistent number. The assumption is that any id that is later queried from this object that is higher simply doesn't exist on the local processor.
Definition at line 660 of file FeatureFloodCount.C.
Referenced by GrainTracker::assignGrains(), FeatureFloodCount::scatterAndUpdateRanks(), and GrainTracker::trackGrains().
|
protectedvirtualinherited |
This routine populates a stacked vector of local to global indices per rank and the associated count vector for scattering the vector to the ranks.
The individual vectors can be different sizes. The ith vector will be distributed to the ith processor including the primary rank. e.g. [ ... n_0 ] [ ... n_1 ] ... [ ... n_m ]
It is intended to be overridden in derived classes.
Definition at line 614 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::scatterAndUpdateRanks().
|
protectedinherited |
This method returns the minimum periodic distance between the centroids of two vectors of bounding boxes.
Find the minimum centroid distance between any to pieces of the grains.
Definition at line 1709 of file GrainTracker.C.
Referenced by GrainTracker::trackGrains().
|
protectedvirtualinherited |
Helper routine for clearing up data structures during initialize and prior to parallel communication.
Definition at line 316 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::communicateAndMerge().
|
protectedinherited |
This routine handles all of the serialization, communication and deserialization of the data structures containing FeatureData objects.
The libMesh packed range routines handle the communication of the individual string buffers. Here we need to create a container to hold our type to serialize. It'll always be size one because we are sending a single byte stream of all the data to other processors. The stream need not be the same size on all processors.
Additionally we need to create a different container to hold the received byte buffers. The container type need not match the send container type. However, We do know the number of incoming buffers (num processors) so we'll go ahead and use a vector.
When we distribute merge work, we are reducing computational work by adding more communication. Each of the first _n_vars processors will receive one variable worth of information to merge. After each of those processors has merged that information, it'll be sent to the primary processor where final consolidation will occur.
Send the data from all processors to the first 'n_merging_procs' processors to create a complete global feature maps for each variable.
A call to gather_packed_range seems to populate the receiving buffer on all processors, not just the receiving buffer on the actual receiving processor. If we plan to call this function repeatedly, we must clear the buffers each time on all non-receiving processors. On the actual receiving processor, we'll save off the buffer for use later.
The FeatureFloodCount and derived objects rely on having the original data structures intact on all non-zero ranks. This is because local-only information (local entities) is never communicated and thus must remain intact. However, the distributed merging will destroy that information. The easiest thing to do is to swap out the data structure while we perform the distributed merge work.
Send the data from the merging processors to the root to create a complete global feature map.
Send the data from all processors to the root to create a complete global feature map.
Definition at line 403 of file FeatureFloodCount.C.
Referenced by GrainTracker::finalize(), and FeatureFloodCount::finalize().
|
protectedinherited |
Finally remove halo markings from interior regions. This step is necessary because we expand halos before we do communication but that expansion can and will likely go into the interior of the grain (from a single processor's perspective). We could expand halos after merging, but that would likely be less scalable.
Definition at line 1624 of file GrainTracker.C.
Referenced by GrainTracker::updateFieldInfo().
|
protectedinherited |
This method is used to determine whether the current entity value is part of a feature or not.
Comparisons can either be greater than or less than the threshold which is controlled via input parameter.
Definition at line 1451 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::isNewFeatureOrConnectedRegion().
|
protectedinherited |
Populates and sorts a min_distances vector with the minimum distances to all grains in the simulation for a given grain.
There are _vars.size() entries in the outer vector, one for each order parameter. A list of grains with the same OP are ordered in lists per OP.
In the diagram below assume we have 4 order parameters. The grain with the asterisk needs to be remapped. All order parameters are used in neighboring grains. For all "touching" grains, the value of the corresponding entry in min_distances will be a negative integer representing the number of immediate neighbors with that order parameter.
Note: Only the first member of the pair (the distance) is shown in the array below. e.g. [-2.0, -max, -1.0, -2.0]
After sorting, variable index 2 (value: -1.0) be at the end of the array and will be the first variable we attempt to renumber the current grain to.
__ ___ \ 0 / \ 2 \___/ 1 \___ / \ / \ __/ 1 \___/ 2 \ \ * / \ / 3 \___/ 3 \___/ / \ / __/ 0 \___/
See if we have any completely open OPs (excluding reserve order parameters) or the order parameter corresponding to this grain, we need to put them in the list or the grain tracker won't realize that those vars are available for remapping.
Definition at line 1178 of file GrainTracker.C.
Referenced by GrainTracker::attemptGrainRenumber().
|
protectedvirtualinherited |
This method consolidates all of the merged information from _partial_feature_sets into the _feature_sets vectors.
Now that the merges are complete we need to adjust the centroid, and halos. Additionally, To make several of the sorting and tracking algorithms more straightforward, we will move the features into a flat vector. Finally we can count the final number of features and find the max local index seen on any processor
Note: This is all occurring on rank 0 only!
IMPORTANT: FeatureFloodCount::_feature_count is set on rank 0 at this point but we can't broadcast it here because this routine is not collective.
Definition at line 1193 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::communicateAndMerge().
|
protectedinherited |
This routine takes the vector of byte buffers (one for each processor), deserializes them into a series of FeatureSet objects, and appends them to the _feature_sets data structure.
Note: It is assumed that local processor information may already be stored in the _feature_sets data structure so it is not cleared before insertion.
Usually we have the local processor data already in the _partial_feature_sets data structure. However, if we are doing distributed merge work, we also need to preserve all of the original data for use in later stages of the algorithm so it'll have been swapped out with clean buffers. This leaves us a choice, either we just duplicate the Features from the original data structure after we've swapped out the buffer, or we go ahead and unpack data that we would normally already have. So during distributed merging, that's exactly what we'll do. Later however when the primary is doing the final consolidating, we'll opt to just skip the local unpacking. To tell the difference, between these two modes, we just need to see if a var_num was passed in.
Definition at line 1103 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::communicateAndMerge().
|
overridevirtualinherited |
Returns a Boolean indicating whether this feature intersects any boundary.
Reimplemented from FeatureFloodCount.
Definition at line 175 of file GrainTracker.C.
|
overridevirtualinherited |
Returns a Boolean indicating whether this feature intersects boundaries in a user-supplied list.
Reimplemented from FeatureFloodCount.
Definition at line 191 of file GrainTracker.C.
|
overridevirtualinherited |
Reimplemented from FeatureFloodCount.
Definition at line 273 of file GrainTracker.C.
This method expands the existing halo set by some width determined by the passed in value.
This method does NOT mask off any local IDs.
Create a copy of the halo set so that as we insert new ids into the set we don't continue to iterate on those new ids.
We have to handle disjoint halo IDs slightly differently. Once you are disjoint, you can't go back so make sure that we keep placing these IDs in the disjoint set.
Definition at line 1560 of file FeatureFloodCount.C.
Referenced by GrainTracker::finalize(), and PolycrystalUserObjectBase::finalize().
|
protectedinherited |
This method takes all of the partial features and expands the local, ghosted, and halo sets around those regions to account for the diffuse interface.
Rather than using any kind of recursion here, we simply expand the region by all "point" neighbors from the actual grain cells since all point neighbors will contain contributions to the region.
To expand the feature element region to the actual flooded region (nodal basis) we need to add in all point neighbors of the current local region for each feature. This is because the elemental variable influence spreads from the elemental data out exactly one element from every mesh point.
Definition at line 1498 of file FeatureFloodCount.C.
|
virtualinherited |
Returns the centroid of the designated feature (only supported without periodic boundaries)
Definition at line 909 of file FeatureFloodCount.C.
Referenced by FeatureVolumeVectorPostprocessor::execute().
|
overridevirtualinherited |
Assign or Track Grains
Broadcast essential data
Remap Grains
Reimplemented from FeatureFloodCount.
Definition at line 330 of file GrainTracker.C.
|
protectedinherited |
This method will check if the current entity is above the supplied threshold and "mark" it.
It will then inspect neighboring entities that are above the connecting threshold and add them to the current feature.
If we reach this point (i.e. we haven't continued to the next queue entry), we've found a new mesh entity that's part of a feature. We need to mark the entity as visited at this point (and not before!) to avoid infinite recursion. If you mark the node too early you risk not coloring in a whole feature any time a "connecting threshold" is used since we may have already visited this entity earlier but it was in-between two thresholds.
See if this particular entity cell contributes to the centroid calculation. We only deal with elemental floods and only count it if it's owned by the current processor to avoid skewing the result.
Definition at line 1327 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::execute(), and PolycrystalUserObjectBase::execute().
|
protectedvirtualinherited |
Return the "connecting" comparison threshold to use when inspecting an entity during the flood stage.
Definition at line 1445 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::isNewFeatureOrConnectedRegion().
|
inlineinherited |
Returns a const vector to the coupled variable pointers.
Definition at line 97 of file FeatureFloodCount.h.
Referenced by AverageGrainVolume::AverageGrainVolume(), and FeatureVolumeVectorPostprocessor::FeatureVolumeVectorPostprocessor().
|
inherited |
return data for selected grain
Definition at line 45 of file GrainDataTracker.h.
|
overridevirtualinherited |
Reimplemented from FeatureFloodCount.
Definition at line 120 of file GrainTracker.C.
Referenced by OutputEulerAngles::precalculateValue().
|
inlineinherited |
Return a constant reference to the vector of all discovered features.
Definition at line 328 of file FeatureFloodCount.h.
Referenced by GrainTracker::prepopulateState().
Returns the variable representing the passed in feature.
Reimplemented from FeatureFloodCount.
Definition at line 137 of file GrainTracker.C.
|
inlineinherited |
Returns a const vector to the coupled MooseVariableFEBase pointers.
Definition at line 100 of file FeatureFloodCount.h.
Referenced by AverageGrainVolume::AverageGrainVolume().
|
overridevirtualinherited |
Returns the centroid for the given grain number.
Implements GrainTrackerInterface.
Definition at line 157 of file GrainTracker.C.
|
overridevirtualinherited |
This method returns all of the new ids generated in an invocation of the GrainTracker.
Reimplemented from GrainTrackerInterface.
Definition at line 898 of file GrainTracker.C.
|
protectedinherited |
Retrieve the next unique grain number if a new grain is detected during trackGrains.
This method handles reserve order parameter indices properly. Direct access to the next index should be avoided.
Get the next unique grain ID but make sure to respect reserve ids. Note, that the first valid ID for a new grain is _reserve_grain_first_index + _n_reserve_ops because _reserve_grain_first_index IS a valid index. It does not point to the last valid index of the non-reserved grains.
Definition at line 1786 of file GrainTracker.C.
Referenced by GrainTracker::trackGrains().
|
inherited |
Return the number of active features.
Definition at line 806 of file FeatureFloodCount.C.
Referenced by AverageGrainVolume::getValue().
|
overridevirtualinherited |
Returns the number of active grains current stored in the GrainTracker.
This value is the same value reported when the GrainTracker (FeatureFloodObject) is used as a Postprocessor.
Note: This value will count each piece of a split grain (often encountered in EBSD data sets).
Implements GrainTrackerInterface.
Definition at line 143 of file GrainTracker.C.
|
overrideprotectedvirtualinherited |
Return the starting comparison threshold to use when inspecting an entity during the flood stage.
Reimplemented from FeatureFloodCount.
Definition at line 286 of file GrainTracker.C.
|
overridevirtualinherited |
Returns the total feature count (active and inactive ids, useful for sizing vectors)
Since the FeatureFloodCount object doesn't maintain any information about features between invocations. The maximum id in use is simply the number of features.
Reimplemented from FeatureFloodCount.
Definition at line 150 of file GrainTracker.C.
|
overridevirtualinherited |
Implements GeneralPostprocessor.
Reimplemented in FauxGrainTracker.
Definition at line 800 of file FeatureFloodCount.C.
|
overridevirtualinherited |
Returns a list of active unique feature ids for a particular element.
The vector is indexed by variable number with each entry containing either an invalid size_t type (no feature active at that location) or a feature id if the variable is non-zero at that location.
Reimplemented from FeatureFloodCount.
Definition at line 131 of file GrainTracker.C.
Referenced by ComputePolycrystalElasticityTensor::computeQpElasticityTensor(), and ComputeGBMisorientationType::computeQpProperties().
|
overridevirtualinherited |
If we are passed the first time, we need to save the existing grains before beginning the tracking on the current step. We'll do that with a swap since the _feature_sets contents will be cleared anyway.
Reimplemented from FeatureFloodCount.
Definition at line 230 of file GrainTracker.C.
|
overridevirtualinherited |
Size the empty var to features vector to the number of coupled variables. This empty vector (but properly sized) vector is returned for elements that are queried but are not in the structure (which also shouldn't happen). The user is warned in this case but this helps avoid extra bounds checking in user code and avoids segfaults.
Reimplemented from GeneralPostprocessor.
Reimplemented in PolycrystalUserObjectBase, and FauxPolycrystalVoronoi.
Definition at line 263 of file FeatureFloodCount.C.
Referenced by PolycrystalUserObjectBase::initialSetup().
|
protectedinherited |
Returns a Boolean indicating whether the entity is on one of the desired boundaries.
Definition at line 1858 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::visitNeighborsHelper().
|
inlineinherited |
Definition at line 117 of file FeatureFloodCount.h.
Referenced by FeatureFloodCountAux::FeatureFloodCountAux().
|
overridevirtualinherited |
Returns a Boolean indicating whether this feature is percolated (e.g.
intersects at least two different boundaries from sets supplied by the user)
Reimplemented from FeatureFloodCount.
Definition at line 208 of file GrainTracker.C.
|
protectedvirtualinherited |
Method called during the recursive flood routine that should return whether or not the current entity is part of the current feature (if one is being explored), or if it's the start of a new feature.
If the value is only above the connecting threshold, it's still part of a feature but possibly part of one that we'll discard if there is never any starting threshold encountered.
Reimplemented in PolycrystalUserObjectBase.
Definition at line 1458 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::flood().
|
protectedvirtualinherited |
This routine is called on the primary rank only and stitches together the partial feature pieces seen on any processor.
Insert the new entity at the end of the list so that it may be checked against all other partial features again.
Now remove both halves the merged features: it2 contains the "moved" feature cell just inserted at the back of the list, it1 contains the mostly empty other half. We have to be careful about the order in which these two elements are deleted. We delete it2 first since we don't care where its iterator points after the deletion. We are going to break out of this loop anyway. If we delete it1 first, it may end up pointing at the same location as it2 which after the second deletion would cause both of the iterators to be invalidated.
Reimplemented in PolycrystalUserObjectBase.
Definition at line 1138 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::communicateAndMerge().
|
overridevirtualinherited |
Reimplemented from FeatureFloodCount.
Definition at line 248 of file GrainTracker.C.
|
protectedvirtual |
implement this method to initialize the data for the new grain
Implements GrainDataTracker< RankFourTensor >.
Definition at line 43 of file GrainTrackerElasticity.C.
|
protectedvirtualinherited |
This method is called when a new grain is detected.
It can be overridden by a derived class to handle setting new properties on the newly created grain.
Reimplemented from GrainTracker.
Definition at line 53 of file GrainDataTracker.h.
|
protectedvirtualinherited |
Returns a number indicating the number of merge helpers when running in parallel based on certain implementer decided criteria.
This is a communication versus computation trade-off that we are almost always willing to make except for small problems. The decision however may be more complicated for some derived classes.
Reimplemented in PolycrystalUserObjectBase.
Definition at line 397 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::communicateAndMerge().
|
inlineinherited |
|
protectedvirtualinherited |
This routine uses the local flooded data to build up the local feature data structures (_partial feature_sets).
This routine does not perform any communication so the _partial_feature_sets data structure will only contain information from the local processor after calling this routine. Any existing data in the _partial_feature_sets structure is destroyed by calling this routine.
_partial_feature_sets layout: The outer vector is sized to one when _single_map_mode == true, otherwise it is sized for the number of coupled variables. The inner list represents the flooded regions (local only after this call but fully populated after parallel communication and stitching).
If using a vector container, we need to sort all of the data structures for later operations such as checking for intersection and merging. The following "sort" function does nothing when invoked on a std::set.
Save off the min entity id present in the feature to uniquely identify the feature regardless of n_procs
Reimplemented in PolycrystalUserObjectBase.
Definition at line 1034 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::communicateAndMerge(), and PolycrystalUserObjectBase::prepareDataForTransfer().
|
protectedinherited |
This method extracts the necessary state from the passed in object necessary to continue tracking grains.
This method is meant to be used with the PolycrystalUserobjectBase class that sets up initial conditions for Polycrystal simulations. We can use the state of that object rather than rediscovering everything ourselves.
The minimum information needed to bootstrap the GrainTracker is as follows: _feature_sets _feature_count
Definition at line 298 of file GrainTracker.C.
Referenced by GrainTracker::finalize().
|
protectedinherited |
This method is called after trackGrains to remap grains that are too close to each other.
Map used for communicating remap indices to all ranks This map isn't populated until after the remap loop. It's declared here before we enter the root scope since it's needed by all ranks during the broadcast.
The remapping algorithm is recursive. We will use the status variable in each FeatureData to track which grains are currently being remapped so we don't have runaway recursion. To begin we need to clear all of the active (MARKED) flags (CLEAR).
Additionally we need to record each grain's variable index so that we can communicate changes to the non-root ranks later in a single batch.
We're not going to try very hard to look for a suitable remapping. Just set it to what we want and hope it all works out. Make the GrainTracker great again!
Loop over each grain and see if any grains represented by the same variable are "touching"
The remapping loop is complete but only on the primary process. Now we need to build the remap map and communicate it to the remaining processors.
Since the remapping algorithm only runs on the root process, the variable index on the primary's grains is inconsistent from the rest of the ranks. These are the grains with a status of DIRTY. As we build this map we will temporarily switch these variable indices back to the correct value so that all processors use the same algorithm to remap.
Definition at line 910 of file GrainTracker.C.
Referenced by GrainTracker::finalize().
|
inlineprotectedvirtualinherited |
Reimplemented in PolycrystalUserObjectBase.
Definition at line 487 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::communicateAndMerge().
|
protectedinherited |
Calls buildLocalToGlobalIndices to build the individual local to global indicies for each rank and scatters that information to all ranks.
Finally, the non-primary ranks update their own data structures to reflect the global mappings.
On non-root processors we can't maintain the full _feature_sets data structure since we don't have all of the global information. We'll move the items from the partial feature sets into a flat structure maintaining order and update the internal IDs with the proper global ID.
Important: Make sure we clear the local status if we received a valid global index for this feature. It's possible that we have a status of INVALID on the local processor because there was never any starting threshold found. However, the root processor wouldn't have sent an index if it didn't find a starting threshold connected to our local piece.
Definition at line 710 of file FeatureFloodCount.C.
Referenced by GrainTracker::assignGrains(), FeatureFloodCount::finalize(), and GrainTracker::trackGrains().
|
protectedinherited |
This routines packs the _partial_feature_sets data into a structure suitable for parallel communication operations.
Definition at line 1084 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::communicateAndMerge().
|
protectedinherited |
Sort and assign ids to features based on their position in the container after sorting.
Perform a sort to give a parallel unique sorting to the identified features. We use the "min_entity_id" inside each feature to assign it's position in the sorted vector.
Sanity check. Now that we've sorted the flattened vector of features we need to make sure that the counts vector still lines up appropriately with each feature's _var_index.
Definition at line 568 of file FeatureFloodCount.C.
Referenced by GrainTracker::assignGrains(), and FeatureFloodCount::finalize().
|
protectedinherited |
A routine for moving all of the solution values from a given grain to a new variable number.
It is called with different modes to only cache, or actually do the work, or bypass the cache altogether.
Definition at line 1427 of file GrainTracker.C.
Referenced by GrainTracker::remapGrains().
|
protectedinherited |
Helper method for actually performing the swaps.
Finally zero out the old variable. When using the FILL/USE combination to read/write variables, it's important to zero the variable on the FILL stage and not the USE stage. The reason for this is handling swaps as illustrated in the following diagram
/ \/ \ If adjacent grains (overlapping flood region) end up / 1 /\ 2 \ swapping variable indices and variables are zeroed on \ 2*\/ 1* / "USE", the overlap region will be incorrectly zeroed ___/___/ by whichever variable is written to second.
Definition at line 1466 of file GrainTracker.C.
Referenced by GrainTracker::swapSolutionValues().
|
protectedinherited |
On subsequent time_steps, incoming FeatureData objects are compared to previous time_step information to track grains between time steps.
This method updates the _feature_sets data structure. This method should only be called on the root processor
Only the primary rank does tracking, the remaining ranks wait to receive local to global indices from the primary.
To track grains across time steps, we will loop over our unique grains and link each one up with one of our new unique grains. The criteria for doing this will be to find the unique grain in the new list with a matching variable index whose centroid is closest to this unique grain.
The _feature_sets vector is constructed by _var_index so we can avoid looping over all indices. We can quickly jump to the first matching index to reduce the number of comparisons and terminate our loop when our variable index stops matching.
Don't try to do any matching unless the bounding boxes at least overlap. This is to avoid the corner case of having a grain split and a grain disappear during the same time step!
It's possible that multiple existing grains will map to a single new grain (indicated by finding multiple matches when we are building this map). This will happen any time a grain disappears during this time step. We need to figure out the rightful owner in this case and inactivate the old grain.
If the grain we just marked inactive was the one whose index was in the new grain to existing grain map (other_old_grain). Then we need to update the map to point to the new match winner.
At this point we have should have only two cases left to handle: Case 1: A grain in the new set who has an unset status (These are new grains, previously untracked) This case is easy to understand. Since we are matching up grains by looking at the old set and finding closest matches in the new set, any grain in the new set that isn't matched up is simply new since some other grain satisfied each and every request from the old set.
Case 2: A grain in the old set who has an unset status (These are inactive grains that haven't been marked) We can only fall into this case when the very last grain on a given variable disappears during the current time step. In that case we never have a matching _var_index in the comparison loop above so that old grain never competes for any new grain which means it can't be marked inactive in the loop above.
Now we need to figure out what kind of "new" grain this is. Is it a nucleating grain that we're just barely seeing for the first time or is it a "splitting" grain. A grain that gets pinched into two or more pieces usually as it is being absorbed by other grains or possibly due to external forces. We have to handle splitting grains this way so as to no confuse them with regular grains that just happen to be in contact in this step.
Splitting Grain: An grain that is unmatched by any old grain on the same order parameter with touching halos.
Nucleating Grain: A completely new grain appearing somewhere in the domain not overlapping any other grain's halo.
To figure out which case we are dealing with, we have to make another pass over all of the existing grains with matching variable indices to see if any of them have overlapping halos.
The "try-harder loop": OK so we still have an extra grain in the new set that isn't matched up against the old set and since the order parameter isn't reserved. We aren't really expecting a new grain. Let's try to make a few more attempts to see if this is a split grain even though it failed to match the criteria above. This might happen if the halo front is advancing too fast!
In this loop we'll make an attempt to match up this new grain to the old halos. If adaptivity is happening this could fail as elements in the new set may be at a different level than in the old set. If we get multiple matches, we'll compare the grain volumes (based on elements, not integrated to choose the closest).
Future ideas: Look at the volume fraction of the new grain and overlay it over the volume fraction of the old grain (would require more saved information, or an aux field hanging around (subject to projection problems).
Note that the old grains we are looking at will already be marked from the earlier tracking phase. We are trying to see if this unmatched grain is part of a larger whole. To do that we'll look at the halos across the time step.
Trigger callback for new grains
Definition at line 499 of file GrainTracker.C.
Referenced by GrainTracker::finalize().
|
protectedinherited |
Update the feature's attributes to indicate boundary intersections.
Definition at line 1772 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::prepareDataForTransfer().
|
overrideprotectedvirtualinherited |
This method is used to populate any of the data structures used for storing field data (nodal or elemental).
It is called at the end of finalize and can make use of any of the data structures created during the execution of this postprocessor.
Reimplemented from FeatureFloodCount.
Definition at line 1546 of file GrainTracker.C.
Referenced by GrainTracker::finalize().
|
protectedinherited |
This routine updates the _region_offsets variable which is useful for quickly determining the proper global number for a feature when using multimap mode.
|
static |
Definition at line 17 of file GrainTrackerElasticity.C.
|
protectedinherited |
Retrieve only the active neighbors for each side of this element, append them to the list of active neighbors
In general, {evaluable elements} >= {local elements} U {algebraic ghosting elements}. That is, the number of evaluable elements does NOT necessarily equal to the number of local and algebraic ghosting elements. The neighbors of evaluable elements can be remote even though we have two layers of geometric ghosting elements.
If the current element (passed into this method) doesn't have a connected neighbor but does have a topological neighbor, this might be a new disjoint region that we'll need to represent with a separate bounding box. To find out for sure, we'll need see if the new neighbors are present in any of the halo or disjoint halo sets. If they are not present, this is a new region.
In general, {evaluable elements} >= {local elements} U {algebraic ghosting elements}. That is, the number of evaluable elements does NOT necessarily equal to the number of local and algebraic ghosting elements. The neighbors of evaluable elements can be remote even though we have two layers of geometric ghosting elements.
This neighbor is NULL which means we need to expand the bounding box here in case this grain is up against multiple domain edges so we don't end up with a degenerate bounding box.
Definition at line 1616 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::expandEdgeHalos(), and FeatureFloodCount::flood().
|
protectedinherited |
The actual logic for visiting neighbors is abstracted out here.
This method is templated to handle the Nodal and Elemental cases together.
Only recurse where we own this entity and it's a topologically connected entity. We shouldn't even attempt to flood to the periodic boundary because we won't have solution information and if we are using DistributedMesh we probably won't have geometric information either.
When we only recurse on entities we own, we can never get more than one away from a local entity which should be in the ghosted zone.
Premark neighboring entities with a halo mark. These entities may or may not end up being part of the feature. We will not update the _entities_visited data structure here.
Definition at line 1715 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::visitElementalNeighbors(), and FeatureFloodCount::visitNodalNeighbors().
|
protectedinherited |
These two routines are utility routines used by the flood routine and by derived classes for visiting neighbors.
Since the logic is different for the elemental versus nodal case it's easier to split them up.
Definition at line 1701 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::expandEdgeHalos(), and FeatureFloodCount::flood().
|
protectedinherited |
The set of entities on the boundary of the domain used for determining if features intersect any boundary.
Definition at line 695 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::meshChanged().
|
protectedinherited |
Boundary element range pointer.
Definition at line 713 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::execute(), and FeatureFloodCount::isBoundaryEntity().
|
protectedinherited |
Absolute value of the lower bound used to represent a region not assigned to this grain, used when a grain is remapped to another order parameter.
The actual value used is -_bound_value
Definition at line 201 of file GrainTracker.h.
Referenced by GrainTracker::swapSolutionValuesHelper().
|
protected |
unrotated elasticity tensor
Definition at line 34 of file GrainTrackerElasticity.h.
Referenced by newGrain().
|
protectedinherited |
Indicates whether or not to communicate halo map information with all ranks.
Definition at line 588 of file FeatureFloodCount.h.
Referenced by GrainTracker::communicateHaloMap(), GrainTracker::meshChanged(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
Indicates whether or not the var to feature map is populated.
Definition at line 591 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::getVarToFeatureVector(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
Definition at line 577 of file FeatureFloodCount.h.
Referenced by GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
The threshold above (or below) which neighboring entities are flooded (where regions can be extended but not started)
Definition at line 561 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::initialize().
|
protectedinherited |
Reference to the dof_map containing the coupled variables.
Definition at line 553 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::flood().
|
protectedinherited |
Average value of the domain which can optionally be used to find features in a field.
Definition at line 676 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::initialize().
|
protectedinherited |
Definition at line 699 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::getVarToFeatureVector(), and FeatureFloodCount::initialSetup().
|
protectedinherited |
This variable keeps track of which nodes have been visited during execution.
We don't use the _feature_map for this since we don't want to explicitly store data for all the unmarked nodes in a serialized datastructures. This keeps our overhead down since this variable never needs to be communicated.
Definition at line 615 of file FeatureFloodCount.h.
Referenced by PolycrystalUserObjectBase::execute(), FeatureFloodCount::flood(), FeatureFloodCount::initialize(), FeatureFloodCount::initialSetup(), and PolycrystalUserObjectBase::isNewFeatureOrConnectedRegion().
|
protectedinherited |
Definition at line 697 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::getVarToFeatureVector(), FeatureFloodCount::initialize(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
Boolean to terminate with an error if a new grain is created during the simulation.
This is for simulations where new grains are not expected. Note, this does not impact the initial callback to newGrainCreated() nor does it get triggered for splitting grains.
Definition at line 237 of file GrainTracker.h.
Referenced by GrainTracker::trackGrains().
|
protected |
object providing the Euler angles
Definition at line 37 of file GrainTrackerElasticity.h.
Referenced by newGrain().
|
protectedinherited |
The vector of coupled in variables.
Definition at line 548 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureFloodCount(), and FeatureFloodCount::getFECoupledVars().
|
protectedinherited |
The number of features seen by this object (same as summing _feature_counts_per_map)
Definition at line 632 of file FeatureFloodCount.h.
Referenced by PolycrystalUserObjectBase::assignOpsToGrains(), PolycrystalUserObjectBase::buildGrainAdjacencyMatrix(), PolycrystalUserObjectBase::colorGraph(), FeatureFloodCount::communicateAndMerge(), FeatureFloodCount::consolidateMergedFeatures(), PolycrystalUserObjectBase::finalize(), FeatureFloodCount::flood(), FeatureFloodCount::getNumberActiveFeatures(), GrainTracker::getNumberActiveGrains(), FeatureFloodCount::getTotalFeatureCount(), FeatureFloodCount::getValue(), FeatureFloodCount::initialize(), PolycrystalUserObjectBase::isGraphValid(), GrainTracker::prepopulateState(), and FeatureFloodCount::sortAndLabel().
|
protectedinherited |
The number of features seen by this object per map.
Definition at line 629 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::consolidateMergedFeatures(), PolycrystalUserObjectBase::prepareDataForTransfer(), FeatureFloodCount::sortAndLabel(), and GrainTracker::trackGrains().
|
protectedinherited |
The vector recording the grain_id to local index (several indices will contain invalid_size_t)
Definition at line 668 of file FeatureFloodCount.h.
Referenced by GrainTracker::broadcastAndUpdateGrainData(), FeatureFloodCount::buildFeatureIdToLocalIndices(), FeatureFloodCount::doesFeatureIntersectBoundary(), GrainTracker::doesFeatureIntersectBoundary(), FeatureFloodCount::doesFeatureIntersectSpecifiedBoundary(), GrainTracker::doesFeatureIntersectSpecifiedBoundary(), FeatureFloodCount::featureCentroid(), FeatureFloodCount::getFeatureVar(), GrainTracker::getGrainCentroid(), GrainTracker::isFeaturePercolated(), FeatureFloodCount::isFeaturePercolated(), and GrainTracker::newGrainCreated().
|
protectedinherited |
The feature maps contain the raw flooded node information and eventually the unique grain numbers.
We have a vector of them so we can create one per variable if that level of detail is desired.
Definition at line 662 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::getEntityValue(), FeatureFloodCount::initialize(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
The data structure used to hold the globally unique features.
The sorting of the vector is implementation defined and may not correspond to anything useful. The ID of each feature should be queried from the FeatureData objects.
Definition at line 646 of file FeatureFloodCount.h.
Referenced by GrainTracker::assignGrains(), PolycrystalUserObjectBase::assignOpsToGrains(), GrainTracker::attemptGrainRenumber(), GrainTracker::broadcastAndUpdateGrainData(), FeatureFloodCount::buildFeatureIdToLocalIndices(), PolycrystalUserObjectBase::buildGrainAdjacencyMatrix(), FeatureFloodCount::buildLocalToGlobalIndices(), GrainTracker::communicateHaloMap(), GrainTracker::computeMinDistancesFromGrain(), FeatureFloodCount::consolidateMergedFeatures(), FeatureFloodCount::doesFeatureIntersectBoundary(), GrainTracker::doesFeatureIntersectBoundary(), FeatureFloodCount::doesFeatureIntersectSpecifiedBoundary(), GrainTracker::doesFeatureIntersectSpecifiedBoundary(), FeatureFloodCount::featureCentroid(), PolycrystalUserObjectBase::finalize(), FeatureFloodCount::getEntityValue(), FeatureFloodCount::getFeatures(), FeatureFloodCount::getFeatureVar(), GrainTracker::getGrainCentroid(), GrainTracker::initialize(), FeatureFloodCount::initialize(), GrainTracker::isFeaturePercolated(), FeatureFloodCount::isFeaturePercolated(), GrainTracker::newGrainCreated(), GrainTracker::prepopulateState(), GrainTracker::remapGrains(), FeatureFloodCount::scatterAndUpdateRanks(), FeatureFloodCount::sortAndLabel(), GrainTracker::trackGrains(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
This data structure holds the map of unique grains from the previous time step.
The information is updated each timestep to track grains over time.
Definition at line 216 of file GrainTracker.h.
Referenced by GrainTracker::initialize(), and GrainTracker::trackGrains().
|
protectedinherited |
Boolean to indicate the first time this object executes.
Note: _tracking_step isn't enough if people skip initial or execute more than once per step.
Definition at line 230 of file GrainTracker.h.
Referenced by GrainTracker::assignGrains(), GrainTracker::execute(), GrainTracker::finalize(), GrainTracker::initialize(), GrainTracker::newGrainCreated(), GrainTracker::prepopulateState(), GrainTracker::trackGrains(), and GrainTracker::updateFieldInfo().
|
protectedinherited |
The map for holding reconstructed ghosted element information.
Definition at line 679 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::getEntityValue(), FeatureFloodCount::initialize(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
This variable is used to indicate whether or not we identify features with unique numbers on multiple maps.
Definition at line 581 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
per grain data
Definition at line 34 of file GrainDataTracker.h.
|
protectedinherited |
The data structure for looking up halos around features.
The outer vector is for splitting out the information per variable. The inner map holds the actual halo information
Definition at line 685 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureData::clear(), GrainTracker::communicateHaloMap(), FeatureFloodCount::getEntityValue(), FeatureFloodCount::FeatureData::halosIntersect(), FeatureFloodCount::initialize(), FeatureFloodCount::FeatureData::merge(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
The thickness of the halo surrounding each grain.
Definition at line 182 of file GrainTracker.h.
Referenced by GrainTracker::finalize().
|
protectedinherited |
Indicates that this object should only run on one or more boundaries.
Definition at line 710 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::execute(), FeatureFloodCount::FeatureFloodCount(), and FeatureFloodCount::visitNeighborsHelper().
|
protectedinherited |
Determines if the flood counter is elements or not (nodes)
Definition at line 707 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::appendPeriodicNeighborNodes(), GrainTracker::communicateHaloMap(), FauxGrainTracker::execute(), FeatureFloodCount::execute(), PolycrystalUserObjectBase::execute(), FeatureFloodCount::expandEdgeHalos(), FauxGrainTracker::finalize(), FeatureFloodCount::flood(), FauxGrainTracker::initialize(), FeatureFloodCount::isElemental(), PolycrystalUserObjectBase::isNewFeatureOrConnectedRegion(), FeatureFloodCount::isNewFeatureOrConnectedRegion(), FeatureFloodCount::meshChanged(), FeatureFloodCount::prepareDataForTransfer(), GrainTracker::swapSolutionValues(), FeatureFloodCount::updateBoundaryIntersections(), and GrainTracker::updateFieldInfo().
|
protectedinherited |
Convenience variable for testing primary rank.
Definition at line 716 of file FeatureFloodCount.h.
Referenced by GrainTracker::assignGrains(), PolycrystalUserObjectBase::assignOpsToGrains(), GrainTracker::broadcastAndUpdateGrainData(), PolycrystalUserObjectBase::buildGrainAdjacencyMatrix(), FeatureFloodCount::buildLocalToGlobalIndices(), FeatureFloodCount::communicateAndMerge(), GrainTracker::communicateHaloMap(), FeatureFloodCount::consolidateMergedFeatures(), FeatureFloodCount::finalize(), PolycrystalUserObjectBase::finalize(), GrainTracker::newGrainCreated(), GrainTracker::prepopulateState(), GrainTracker::remapGrains(), FeatureFloodCount::scatterAndUpdateRanks(), FeatureFloodCount::sortAndLabel(), and GrainTracker::trackGrains().
|
protectedinherited |
The vector recording the local to global feature indices.
Definition at line 665 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::scatterAndUpdateRanks().
|
protectedinherited |
Convenience variable holding the size of all the datastructures size by the number of maps.
Definition at line 604 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::consolidateMergedFeatures(), FeatureFloodCount::FeatureFloodCount(), FeatureFloodCount::getEntityValue(), FeatureFloodCount::initialize(), FeatureFloodCount::mergeSets(), FeatureFloodCount::numberOfDistributedMergeHelpers(), PolycrystalUserObjectBase::restoreOriginalDataStructures(), FeatureFloodCount::sortAndLabel(), GrainTracker::trackGrains(), and GrainTracker::updateFieldInfo().
|
protectedinherited |
Depth of renumbering recursion (a depth of zero means no recursion)
Definition at line 185 of file GrainTracker.h.
Referenced by GrainTracker::remapGrains().
|
protectedinherited |
A reference to the mesh.
Definition at line 565 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::appendPeriodicNeighborNodes(), PolycrystalVoronoi::buildSearchTree(), GrainTracker::centroidRegionDistance(), GrainTracker::communicateHaloMap(), PolycrystalCircles::computeDiffuseInterface(), FauxGrainTracker::execute(), FeatureFloodCount::execute(), FeatureFloodCount::expandEdgeHalos(), FeatureFloodCount::expandPointHalos(), FeatureFloodCount::FeatureFloodCount(), PolycrystalVoronoi::findCenterPoint(), PolycrystalVoronoi::findNormalVector(), FauxGrainTracker::getEntityValue(), FeatureFloodCount::getEntityValue(), PolycrystalVoronoi::getGrainsBasedOnPoint(), PolycrystalCircles::getGrainsBasedOnPoint(), FauxPolycrystalVoronoi::initialSetup(), PolycrystalUserObjectBase::initialSetup(), PolycrystalUserObjectBase::isNewFeatureOrConnectedRegion(), GrainTracker::meshChanged(), FeatureFloodCount::meshChanged(), PolycrystalVoronoi::precomputeGrainStructure(), PolycrystalHex::precomputeGrainStructure(), FeatureFloodCount::prepareDataForTransfer(), GrainTracker::swapSolutionValues(), FeatureFloodCount::updateBoundaryIntersections(), GrainTracker::updateFieldInfo(), FeatureFloodCount::visitElementalNeighbors(), and FeatureFloodCount::visitNodalNeighbors().
|
protectedinherited |
Convenience variable holding the number of processors in this simulation.
Definition at line 607 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::buildLocalToGlobalIndices(), and GrainTracker::communicateHaloMap().
|
protectedinherited |
The number of reserved order parameters.
Definition at line 188 of file GrainTracker.h.
Referenced by GrainTracker::getNextUniqueID(), GrainTracker::trackGrains(), and GrainTracker::updateFieldInfo().
|
protectedinherited |
Definition at line 601 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::getVarToFeatureVector(), FeatureFloodCount::initialSetup(), FeatureFloodCount::numCoupledVars(), GrainTracker::remapGrains(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
A reference to the nonlinear system (used for retrieving solution vectors)
Definition at line 210 of file GrainTracker.h.
Referenced by GrainTracker::remapGrains(), and GrainTracker::swapSolutionValuesHelper().
|
protectedinherited |
The data structure used to find neighboring elements give a node ID.
Definition at line 626 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::meshChanged(), and FeatureFloodCount::visitNodalNeighbors().
|
protectedinherited |
The data structure used to hold partial and communicated feature data, during the discovery and merging phases.
The outer vector is indexed by map number (often variable number). The inner list is an unordered list of partially discovered features.
Definition at line 639 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::communicateAndMerge(), FeatureFloodCount::consolidateMergedFeatures(), FeatureFloodCount::deserialize(), FeatureFloodCount::expandEdgeHalos(), FeatureFloodCount::expandPointHalos(), FeatureFloodCount::flood(), FeatureFloodCount::initialize(), PolycrystalUserObjectBase::mergeSets(), FeatureFloodCount::mergeSets(), PolycrystalUserObjectBase::prepareDataForTransfer(), FeatureFloodCount::prepareDataForTransfer(), GrainTracker::prepopulateState(), FeatureFloodCount::scatterAndUpdateRanks(), and FeatureFloodCount::serialize().
|
protectedinherited |
A pointer to the periodic boundary constraints object.
Definition at line 671 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::initialSetup(), PolycrystalUserObjectBase::isNewFeatureOrConnectedRegion(), FeatureFloodCount::meshChanged(), and FeatureFloodCount::visitElementalNeighbors().
|
protectedinherited |
The data structure which is a list of nodes that are constrained to other nodes based on the imposed periodic boundary conditions.
Definition at line 691 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::appendPeriodicNeighborNodes(), FauxGrainTracker::getEntityValue(), FeatureFloodCount::getEntityValue(), and FeatureFloodCount::meshChanged().
|
protectedinherited |
Definition at line 673 of file FeatureFloodCount.h.
Referenced by PolycrystalUserObjectBase::isNewFeatureOrConnectedRegion(), FeatureFloodCount::meshChanged(), and FeatureFloodCount::visitElementalNeighbors().
|
protectedinherited |
An optional IC UserObject which can provide initial data structures to this object.
Definition at line 219 of file GrainTracker.h.
Referenced by GrainTracker::execute(), GrainTracker::finalize(), GrainTracker::GrainTracker(), and GrainTracker::updateFieldInfo().
|
protectedinherited |
Definition at line 701 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureFloodCount(), and FeatureFloodCount::updateBoundaryIntersections().
|
protected |
generate random rotations when the Euler Angle provider runs out of data (otherwise error out)
Definition at line 31 of file GrainTrackerElasticity.h.
Referenced by newGrain().
|
protectedinherited |
Inidicates whether remapping should be done or not (remapping is independent of tracking)
Definition at line 204 of file GrainTracker.h.
Referenced by GrainTracker::finalize().
|
protectedinherited |
The cutoff index where if variable index >= this number, no remapping TO that variable will occur.
Definition at line 192 of file GrainTracker.h.
Referenced by GrainTracker::computeMinDistancesFromGrain(), GrainTracker::getThreshold(), GrainTracker::remapGrains(), and GrainTracker::trackGrains().
|
protectedinherited |
The threshold above (or below) where a grain may be found on a reserve op field.
Definition at line 195 of file GrainTracker.h.
Referenced by GrainTracker::getThreshold().
|
protectedinherited |
Definition at line 702 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureFloodCount(), and FeatureFloodCount::updateBoundaryIntersections().
|
protectedinherited |
This variable is used to indicate whether or not multiple maps are used during flooding.
Definition at line 575 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::flood(), PolycrystalUserObjectBase::PolycrystalUserObjectBase(), FeatureFloodCount::sortAndLabel(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
Definition at line 704 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureFloodCount(), and FeatureFloodCount::updateBoundaryIntersections().
|
protectedinherited |
Definition at line 562 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::getConnectingThreshold(), and FeatureFloodCount::initialize().
|
protectedinherited |
Definition at line 557 of file FeatureFloodCount.h.
Referenced by GrainTracker::getThreshold(), FeatureFloodCount::getThreshold(), and FeatureFloodCount::initialize().
|
protectedinherited |
The threshold above (or below) where an entity may begin a new region (feature)
Definition at line 556 of file FeatureFloodCount.h.
Referenced by FauxGrainTracker::execute(), and FeatureFloodCount::initialize().
|
protectedinherited |
Indicates whether we should continue after a remap failure (will result in non-physical results)
Definition at line 207 of file GrainTracker.h.
Referenced by GrainTracker::GrainTracker(), and GrainTracker::remapGrains().
|
protectedinherited |
The timestep to begin tracking grains.
Definition at line 179 of file GrainTracker.h.
Referenced by GrainTracker::execute(), GrainTracker::finalize(), GrainTracker::getEntityValue(), GrainTracker::GrainTracker(), GrainTracker::initialize(), and GrainTracker::remapGrains().
|
protectedinherited |
Use less-than when comparing values against the threshold value.
True by default. If false, then greater-than comparison is used instead.
Definition at line 598 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::compareValueWithThreshold(), and FauxGrainTracker::execute().
|
protectedinherited |
This map keeps track of which variables own which nodes.
We need a vector of them for multimap mode where multiple variables can own a single mode.
Note: This map is only populated when "show_var_coloring" is set to true.
Definition at line 623 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureFloodCount(), FeatureFloodCount::getEntityValue(), FeatureFloodCount::initialize(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
This variable is used to indicate whether the maps will contain unique region information or just the variable numbers owning those regions.
Definition at line 585 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureFloodCount(), FeatureFloodCount::getEntityValue(), FeatureFloodCount::initialize(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
This variable is used to build the periodic node map.
Assumption: We are going to assume that either all variables are periodic or none are. This assumption can be relaxed at a later time if necessary.
Definition at line 572 of file FeatureFloodCount.h.
Referenced by GrainTracker::centroidRegionDistance(), and FeatureFloodCount::meshChanged().
|
protectedinherited |
The vector of coupled in variables cast to MooseVariable.
Definition at line 550 of file FeatureFloodCount.h.
Referenced by PolycrystalUserObjectBase::assignOpsToGrains(), GrainTracker::attemptGrainRenumber(), PolycrystalVoronoi::buildSearchTree(), PolycrystalCircles::computeDiffuseInterface(), FauxGrainTracker::execute(), FeatureFloodCount::execute(), FeatureFloodCount::FeatureFloodCount(), FauxGrainTracker::finalize(), PolycrystalVoronoi::findCenterPoint(), PolycrystalVoronoi::findNormalVector(), FeatureFloodCount::getCoupledVars(), FauxGrainTracker::getEntityValue(), PolycrystalVoronoi::getGrainsBasedOnPoint(), PolycrystalCircles::getGrainsBasedOnPoint(), FauxPolycrystalVoronoi::initialSetup(), FeatureFloodCount::initialSetup(), PolycrystalUserObjectBase::initialSetup(), FeatureFloodCount::isNewFeatureOrConnectedRegion(), PolycrystalHex::precomputeGrainStructure(), GrainTracker::swapSolutionValuesHelper(), and GrainTracker::updateFieldInfo().
|
protectedinherited |
Verbosity level controlling the amount of information printed to the console.
Definition at line 224 of file GrainTracker.h.
Referenced by GrainTracker::attemptGrainRenumber(), GrainTracker::finalize(), GrainTracker::remapGrains(), and GrainTracker::trackGrains().
|
protectedinherited |
Derived objects (e.g.
the GrainTracker) may require restartable data to track information across time steps. The FeatureFloodCounter however does not. This container is here so that we have the flexabilty to switch between volatile and non-volatile storage. The _feature_sets data structure can conditionally refer to this structure or a MOOSE-provided structure, which is backed up.
Definition at line 655 of file FeatureFloodCount.h.
|
staticinherited |
Definition at line 92 of file FeatureFloodCount.h.
Referenced by FeatureVolumeVectorPostprocessor::accumulateBoundaryFaces(), AverageGrainVolume::accumulateVolumes(), FeatureVolumeVectorPostprocessor::accumulateVolumes(), GrainTracker::assignGrains(), MultiGrainRigidBodyMotion::calculateAdvectionVelocity(), SingleGrainRigidBodyMotion::calculateAdvectionVelocity(), ComputePolycrystalElasticityTensor::computeQpElasticityTensor(), ComputeGBMisorientationType::computeQpProperties(), DeformedGrainMaterial::computeQpProperties(), FeatureFloodCount::deserialize(), FauxGrainTracker::execute(), FeatureVolumeVectorPostprocessor::execute(), FauxGrainTracker::FauxGrainTracker(), FeatureFloodCount::featureCentroid(), FeatureFloodCount::flood(), FeatureFloodCount::getFeatureVar(), GrainTracker::getNextUniqueID(), GrainTracker::getTotalFeatureCount(), SingleGrainRigidBodyMotion::getUserObjectJacobian(), MultiGrainRigidBodyMotion::getUserObjectJacobian(), PolycrystalVoronoi::getVariableValue(), PolycrystalCircles::getVariableValue(), FeatureFloodCount::initialSetup(), PolycrystalUserObjectBase::isNewFeatureOrConnectedRegion(), FeatureFloodCount::FeatureData::operator<(), operator<<(), FeatureFloodCountAux::precalculateValue(), FeatureFloodCount::serialize(), FeatureFloodCount::sortAndLabel(), GrainTracker::trackGrains(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
staticinherited |
Definition at line 93 of file FeatureFloodCount.h.
Referenced by PolycrystalUserObjectBase::numberOfDistributedMergeHelpers().
|
staticinherited |
Constants used for invalid indices set to the max value of std::size_t type
Definition at line 91 of file FeatureFloodCount.h.
Referenced by GrainTracker::broadcastAndUpdateGrainData(), FeatureFloodCount::buildFeatureIdToLocalIndices(), FeatureFloodCount::buildLocalToGlobalIndices(), FeatureFloodCount::doesFeatureIntersectBoundary(), GrainTracker::doesFeatureIntersectBoundary(), FeatureFloodCount::doesFeatureIntersectSpecifiedBoundary(), GrainTracker::doesFeatureIntersectSpecifiedBoundary(), PolycrystalUserObjectBase::execute(), FeatureFloodCount::featureCentroid(), FeatureFloodCount::flood(), FauxGrainTracker::getEntityValue(), FeatureFloodCount::getEntityValue(), FeatureFloodCount::getFeatureVar(), GrainTracker::getGrainCentroid(), GrainTracker::isFeaturePercolated(), FeatureFloodCount::isFeaturePercolated(), PolycrystalUserObjectBase::isNewFeatureOrConnectedRegion(), GrainTracker::newGrainCreated(), PolycrystalUserObjectBase::prepareDataForTransfer(), FeatureFloodCount::scatterAndUpdateRanks(), and GrainTracker::trackGrains().