GrainTracker derived class template to base objects on which maintain physical parameters for individual grains. More...
#include <GrainDataTracker.h>
Public Types | |
enum | RemapCacheMode { RemapCacheMode::FILL, RemapCacheMode::USE, RemapCacheMode::BYPASS } |
enum | FieldType { FieldType::UNIQUE_REGION, FieldType::VARIABLE_COLORING, FieldType::GHOSTED_ENTITIES, FieldType::HALOS, FieldType::CENTROID, FieldType::ACTIVE_BOUNDS } |
enum | Status : unsigned char { Status::CLEAR = 0x0, Status::MARKED = 0x1, Status::DIRTY = 0x2, Status::INACTIVE = 0x4 } |
This enumeration is used to indicate status of the grains in the _unique_grains data structure. More... | |
enum | BoundaryIntersection : unsigned char { BoundaryIntersection::NONE = 0x0, BoundaryIntersection::ANY_BOUNDARY = 0x1, BoundaryIntersection::PRIMARY_PERCOLATION_BOUNDARY = 0x2, BoundaryIntersection::SECONDARY_PERCOLATION_BOUNDARY = 0x4, BoundaryIntersection::SPECIFIED_BOUNDARY = 0x8 } |
This enumeration is used to inidacate status of boundary intersections. More... | |
Public Member Functions | |
GrainDataTracker (const InputParameters ¶meters) | |
const T & | 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 () 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... | |
Static Public Attributes | |
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() |
Protected Member Functions | |
virtual T | newGrain (unsigned int new_grain_id)=0 |
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... | |
void | prepareDataForTransfer () |
This routine uses the local flooded data to build up the local feature data structures (_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 master rank only and stitches together the partial feature pieces seen on any processor. More... | |
virtual bool | areFeaturesMergeable (const FeatureData &f1, const FeatureData &f2) const |
Method for determining whether two features are mergeable. More... | |
void | communicateAndMerge () |
This routine handles all of the serialization, communication and deserialization of the data structures containing FeatureData objects. More... | |
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... | |
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 | |
template<class InputIterator > | |
static bool | setsIntersect (InputIterator first1, InputIterator last1, InputIterator first2, InputIterator last2) |
This method detects whether two sets intersect without building a result set. More... | |
Protected Attributes | |
std::vector< T > | _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 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 * | _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::vector< 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_master |
Convenience variable for testing master rank. More... | |
Private Member Functions | |
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... | |
Static Private Member Functions | |
template<class T > | |
static void | sort (std::set< T > &) |
template<class T > | |
static void | sort (std::vector< T > &container) |
template<class T > | |
static void | reserve (std::set< T > &, std::size_t) |
template<class T > | |
static void | reserve (std::vector< T > &container, std::size_t size) |
Private Attributes | |
unsigned int | _reserve_grain_first_index |
Holds the first unique grain index when using _reserve_op (all the remaining indices are sequential) More... | |
unsigned int | _old_max_grain_id |
The previous max grain id (needed to figure out which ids are new in a given step) More... | |
unsigned int & | _max_curr_grain_id |
Holds the next "regular" grain ID (a grain found or remapped to the standard op vars) More... | |
const bool | _is_transient |
Boolean to indicate whether this is a Steady or Transient solve. More... | |
std::vector< std::pair< dof_id_type, dof_id_type > > | _all_ranges |
Data structure to hold element ID ranges when using Distributed Mesh (populated on rank 0 only) More... | |
const PerfID | _finalize_timer |
Timers. More... | |
const PerfID | _remap_timer |
const PerfID | _track_grains |
const PerfID | _broadcast_update |
const PerfID | _update_field_info |
std::deque< const DofObject * > | _entity_queue |
The data structure for maintaining entities to flood during discovery. More... | |
const bool | _distribute_merge_work |
Keeps track of whether we are distributing the merge work. More... | |
const PerfID | _execute_timer |
Timers. More... | |
const PerfID | _merge_timer |
const PerfID | _comm_and_merge |
const PerfID | _expand_halos |
const PerfID | _prepare_for_transfer |
const PerfID | _consolidate_merged_features |
GrainTracker derived class template to base objects on which maintain physical parameters for individual grains.
Definition at line 19 of file GrainDataTracker.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 |
Definition at line 103 of file FeatureFloodCount.h.
|
stronginherited |
Enumerator | |
---|---|
FILL | |
USE | |
BYPASS |
Definition at line 53 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.
GrainDataTracker< T >::GrainDataTracker | ( | const InputParameters & | parameters | ) |
Definition at line 38 of file GrainDataTracker.h.
|
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 1771 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 1243 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 450 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 1259 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 1745 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().
|
protectedinherited |
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 665 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 master rank. e.g. [ ... n_0 ] [ ... n_1 ] ... [ ... n_m ]
It is intended to be overridden in derived classes.
Definition at line 619 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 1718 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 330 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 master processor where final consolidation will occur.
Send the data from all processors to the first _n_vars 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 algorithms rely on having the 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 412 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 1632 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 1418 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 1185 of file GrainTracker.C.
Referenced by GrainTracker::attemptGrainRenumber().
|
privateinherited |
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 1176 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 master 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 1086 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 |
|
protectedinherited |
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 1527 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 1465 of file FeatureFloodCount.C.
|
virtualinherited |
Returns the centroid of the designated feature (only supported without periodic boundaries)
Definition at line 900 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 1294 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 1412 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::isNewFeatureOrConnectedRegion().
|
inlineinherited |
Returns a const vector to the coupled variable pointers.
Definition at line 98 of file FeatureFloodCount.h.
Referenced by AverageGrainVolume::AverageGrainVolume(), and FeatureVolumeVectorPostprocessor::FeatureVolumeVectorPostprocessor().
const T & GrainDataTracker< T >::getData | ( | unsigned int | grain_id | ) | const |
return data for selected grain
Definition at line 44 of file GrainDataTracker.h.
Referenced by ComputePolycrystalElasticityTensor::computeQpElasticityTensor().
|
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 340 of file FeatureFloodCount.h.
Referenced by GrainTracker::prepopulateState().
|
overridevirtualinherited |
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 101 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 901 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 1795 of file GrainTracker.C.
Referenced by GrainTracker::trackGrains().
|
inherited |
Return the number of active features.
Definition at line 791 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 |
Reimplemented in FauxGrainTracker.
Definition at line 785 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().
|
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 in PolycrystalUserObjectBase.
Definition at line 277 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 1810 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 1425 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::flood().
|
protectedvirtualinherited |
This routine is called on the master 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 1121 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::communicateAndMerge().
|
overridevirtualinherited |
|
protectedpure virtual |
implement this method to initialize the data for the new grain
Implemented in GrainTrackerElasticity.
|
protectedvirtual |
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 52 of file GrainDataTracker.h.
|
inlineinherited |
|
protectedinherited |
This routine uses the local flooded data to build up the local feature data structures (_feature_sets).
This routine does not perform any communication so the _feature_sets data structure will only contain information from the local processor after calling this routine. Any existing data in the _feature_sets structure is destroyed by calling this routine.
_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
Definition at line 1017 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::communicateAndMerge().
|
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 master 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 master'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 913 of file GrainTracker.C.
Referenced by GrainTracker::finalize().
|
inlinestaticprivateinherited |
Definition at line 748 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureData::consolidate(), FeatureFloodCount::FeatureData::merge(), and FeatureFloodCount::FeatureData::updateBBoxExtremes().
|
inlinestaticprivateinherited |
Definition at line 754 of file FeatureFloodCount.h.
|
protectedinherited |
Calls buildLocalToGlobalIndices to build the individual local to global indicies for each rank and scatters that information to all ranks.
Finally, the non-master 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 717 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 1067 of file FeatureFloodCount.C.
Referenced by FeatureFloodCount::communicateAndMerge().
|
inlinestaticprotectedinherited |
This method detects whether two sets intersect without building a result set.
It exits as soon as any intersection is detected.
Definition at line 543 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureData::ghostedIntersect(), FeatureFloodCount::FeatureData::halosIntersect(), and FeatureFloodCount::FeatureData::periodicBoundariesIntersect().
|
inlinestaticprivateinherited |
Definition at line 736 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::prepareDataForTransfer().
|
inlinestaticprivateinherited |
Definition at line 742 of file FeatureFloodCount.h.
|
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 573 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 1434 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 1473 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 master rank does tracking, the remaining ranks wait to receive local to global indices from the master.
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 497 of file GrainTracker.C.
Referenced by GrainTracker::finalize().
|
protectedinherited |
Update the feature's attributes to indicate boundary intersections.
Definition at line 1724 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 1553 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.
|
protectedinherited |
Retrieve only the active neighbors for each side of this element, append them to the list of active neighbors
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.
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 1584 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 1667 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 1653 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 711 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::meshChanged().
|
privateinherited |
Data structure to hold element ID ranges when using Distributed Mesh (populated on rank 0 only)
Definition at line 248 of file GrainTracker.h.
Referenced by GrainTracker::communicateHaloMap(), and GrainTracker::meshChanged().
|
protectedinherited |
Boundary element range pointer.
Definition at line 729 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::execute(), and FeatureFloodCount::isBoundaryEntity().
|
privateinherited |
Definition at line 254 of file GrainTracker.h.
Referenced by GrainTracker::broadcastAndUpdateGrainData().
|
privateinherited |
Definition at line 775 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::communicateAndMerge().
|
protectedinherited |
Indicates whether or not to communicate halo map information with all ranks.
Definition at line 604 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 607 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::getVarToFeatureVector(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
Definition at line 593 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 577 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::initialize().
|
privateinherited |
Definition at line 779 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::consolidateMergedFeatures().
|
privateinherited |
Keeps track of whether we are distributing the merge work.
Definition at line 769 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::communicateAndMerge().
|
protectedinherited |
Reference to the dof_map containing the coupled variables.
Definition at line 569 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 692 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::initialize().
|
protectedinherited |
Definition at line 715 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 631 of file FeatureFloodCount.h.
Referenced by PolycrystalUserObjectBase::execute(), FeatureFloodCount::flood(), FeatureFloodCount::initialize(), FeatureFloodCount::initialSetup(), and PolycrystalUserObjectBase::isNewFeatureOrConnectedRegion().
|
privateinherited |
The data structure for maintaining entities to flood during discovery.
Definition at line 766 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::flood(), and FeatureFloodCount::visitNeighborsHelper().
|
protectedinherited |
Definition at line 713 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 232 of file GrainTracker.h.
Referenced by GrainTracker::trackGrains().
|
privateinherited |
Timers.
Definition at line 772 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::execute().
|
privateinherited |
Definition at line 776 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::expandEdgeHalos().
|
protectedinherited |
The vector of coupled in variables.
Definition at line 564 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 648 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 645 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::consolidateMergedFeatures(), 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 684 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 678 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 662 of file FeatureFloodCount.h.
Referenced by GrainTracker::assignGrains(), 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 211 of file GrainTracker.h.
Referenced by GrainTracker::initialize(), and GrainTracker::trackGrains().
|
privateinherited |
|
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 225 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 695 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 597 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::updateFieldInfo().
|
protected |
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 701 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 183 of file GrainTracker.h.
Referenced by GrainTracker::finalize().
|
protectedinherited |
Indicates that this object should only run on one or more boundaries.
Definition at line 726 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 723 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 master rank.
Definition at line 732 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().
|
privateinherited |
Boolean to indicate whether this is a Steady or Transient solve.
Definition at line 245 of file GrainTracker.h.
Referenced by GrainTracker::swapSolutionValuesHelper().
|
protectedinherited |
The vector recording the local to global feature indices.
Definition at line 681 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 620 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::consolidateMergedFeatures(), FeatureFloodCount::FeatureFloodCount(), FeatureFloodCount::getEntityValue(), FeatureFloodCount::initialize(), FeatureFloodCount::mergeSets(), FeatureFloodCount::sortAndLabel(), GrainTracker::trackGrains(), and GrainTracker::updateFieldInfo().
|
privateinherited |
Holds the next "regular" grain ID (a grain found or remapped to the standard op vars)
Definition at line 242 of file GrainTracker.h.
Referenced by GrainTracker::assignGrains(), GrainTracker::getNewGrainIDs(), GrainTracker::getNextUniqueID(), GrainTracker::getTotalFeatureCount(), and GrainTracker::trackGrains().
|
protectedinherited |
Depth of renumbering recursion (a depth of zero means no recursion)
Definition at line 186 of file GrainTracker.h.
Referenced by GrainTracker::remapGrains().
|
privateinherited |
Definition at line 773 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::mergeSets().
|
protectedinherited |
A reference to the mesh.
Definition at line 581 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::appendPeriodicNeighborNodes(), 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(), 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 623 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::buildLocalToGlobalIndices(), and GrainTracker::communicateHaloMap().
|
protectedinherited |
The number of reserved order parameters.
Definition at line 189 of file GrainTracker.h.
Referenced by GrainTracker::getNextUniqueID(), GrainTracker::trackGrains(), and GrainTracker::updateFieldInfo().
|
protectedinherited |
Definition at line 617 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::communicateAndMerge(), 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 205 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 642 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::meshChanged(), and FeatureFloodCount::visitNodalNeighbors().
|
privateinherited |
The previous max grain id (needed to figure out which ids are new in a given step)
Definition at line 239 of file GrainTracker.h.
Referenced by GrainTracker::getNewGrainIDs(), and GrainTracker::trackGrains().
|
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 655 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::communicateAndMerge(), FeatureFloodCount::consolidateMergedFeatures(), FeatureFloodCount::deserialize(), FeatureFloodCount::expandEdgeHalos(), FeatureFloodCount::expandPointHalos(), FeatureFloodCount::flood(), FeatureFloodCount::initialize(), PolycrystalUserObjectBase::mergeSets(), FeatureFloodCount::mergeSets(), FeatureFloodCount::prepareDataForTransfer(), GrainTracker::prepopulateState(), FeatureFloodCount::scatterAndUpdateRanks(), and FeatureFloodCount::serialize().
|
protectedinherited |
A pointer to the periodic boundary constraints object.
Definition at line 687 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 707 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::appendPeriodicNeighborNodes(), FauxGrainTracker::getEntityValue(), FeatureFloodCount::getEntityValue(), and FeatureFloodCount::meshChanged().
|
protectedinherited |
Definition at line 689 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 214 of file GrainTracker.h.
Referenced by GrainTracker::execute(), GrainTracker::finalize(), GrainTracker::GrainTracker(), and GrainTracker::updateFieldInfo().
|
privateinherited |
Definition at line 778 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::prepareDataForTransfer().
|
protectedinherited |
Definition at line 717 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureFloodCount(), and FeatureFloodCount::updateBoundaryIntersections().
|
protectedinherited |
Inidicates whether remapping should be done or not (remapping is independent of tracking)
Definition at line 199 of file GrainTracker.h.
Referenced by GrainTracker::finalize().
|
privateinherited |
Definition at line 252 of file GrainTracker.h.
Referenced by GrainTracker::remapGrains().
|
privateinherited |
Holds the first unique grain index when using _reserve_op (all the remaining indices are sequential)
Definition at line 236 of file GrainTracker.h.
Referenced by GrainTracker::assignGrains(), GrainTracker::getNextUniqueID(), GrainTracker::trackGrains(), and GrainTracker::updateFieldInfo().
|
protectedinherited |
The cutoff index where if variable index >= this number, no remapping TO that variable will occur.
Definition at line 193 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 196 of file GrainTracker.h.
Referenced by GrainTracker::getThreshold().
|
protectedinherited |
Definition at line 718 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 591 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::flood(), PolycrystalUserObjectBase::PolycrystalUserObjectBase(), FeatureFloodCount::sortAndLabel(), GrainTracker::updateFieldInfo(), and FeatureFloodCount::updateFieldInfo().
|
protectedinherited |
Definition at line 720 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::FeatureFloodCount(), and FeatureFloodCount::updateBoundaryIntersections().
|
protectedinherited |
Definition at line 578 of file FeatureFloodCount.h.
Referenced by FeatureFloodCount::getConnectingThreshold(), and FeatureFloodCount::initialize().
|
protectedinherited |
Definition at line 573 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 572 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 202 of file GrainTracker.h.
Referenced by GrainTracker::GrainTracker(), and GrainTracker::remapGrains().
|
privateinherited |
Definition at line 253 of file GrainTracker.h.
Referenced by GrainTracker::trackGrains().
|
protectedinherited |
The timestep to begin tracking grains.
Definition at line 180 of file GrainTracker.h.
Referenced by GrainTracker::execute(), GrainTracker::finalize(), GrainTracker::getEntityValue(), GrainTracker::GrainTracker(), GrainTracker::initialize(), and GrainTracker::remapGrains().
|
privateinherited |
Definition at line 255 of file GrainTracker.h.
Referenced by GrainTracker::updateFieldInfo().
|
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 614 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 639 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 601 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 588 of file FeatureFloodCount.h.
Referenced by GrainTracker::centroidRegionDistance(), and FeatureFloodCount::meshChanged().
|
protectedinherited |
The vector of coupled in variables cast to MooseVariable.
Definition at line 566 of file FeatureFloodCount.h.
Referenced by PolycrystalUserObjectBase::assignOpsToGrains(), GrainTracker::attemptGrainRenumber(), PolycrystalCircles::computeDiffuseInterface(), GrainTracker::computeMinDistancesFromGrain(), FauxGrainTracker::execute(), FeatureFloodCount::execute(), FeatureFloodCount::FeatureFloodCount(), FauxGrainTracker::finalize(), PolycrystalVoronoi::findCenterPoint(), PolycrystalVoronoi::findNormalVector(), FeatureFloodCount::getCoupledVars(), FauxGrainTracker::getEntityValue(), PolycrystalVoronoi::getGrainsBasedOnPoint(), PolycrystalCircles::getGrainsBasedOnPoint(), FeatureFloodCount::initialSetup(), PolycrystalUserObjectBase::initialSetup(), FeatureFloodCount::isNewFeatureOrConnectedRegion(), GrainTracker::swapSolutionValuesHelper(), and GrainTracker::updateFieldInfo().
|
protectedinherited |
Verbosity level controlling the amount of information printed to the console.
Definition at line 219 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 671 of file FeatureFloodCount.h.
|
staticinherited |
Definition at line 94 of file FeatureFloodCount.h.
Referenced by FeatureVolumeVectorPostprocessor::accumulateBoundaryFaces(), AverageGrainVolume::accumulateVolumes(), FeatureVolumeVectorPostprocessor::accumulateVolumes(), GrainTracker::assignGrains(), MultiGrainRigidBodyMotion::calculateAdvectionVelocity(), SingleGrainRigidBodyMotion::calculateAdvectionVelocity(), ComputePolycrystalElasticityTensor::computeQpElasticityTensor(), 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 |
Constants used for invalid indices set to the max value of std::size_t type
Definition at line 93 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(), FeatureFloodCount::scatterAndUpdateRanks(), and GrainTracker::trackGrains().