Go to the source code of this file.
|
template<> |
void | dataStore (std::ostream &stream, FeatureFloodCount::FeatureData &feature, void *context) |
|
template<> |
void | dataStore (std::ostream &stream, BoundingBox &bbox, void *context) |
|
template<> |
void | dataLoad (std::istream &stream, FeatureFloodCount::FeatureData &feature, void *context) |
|
template<> |
void | dataLoad (std::istream &stream, BoundingBox &bbox, void *context) |
|
void | updateBBoxExtremesHelper (BoundingBox &bbox, const Point &node) |
|
void | updateBBoxExtremesHelper (BoundingBox &bbox, const Elem &elem) |
|
bool | areElemListsMergeable (const std::list< dof_id_type > &elem_list1, const std::list< dof_id_type > &elem_list2, MeshBase &mesh) |
|
| registerMooseObject ("PhaseFieldApp", FeatureFloodCount) |
|
template<> |
InputParameters | validParams< FeatureFloodCount > () |
|
std::ostream & | operator<< (std::ostream &out, const FeatureFloodCount::FeatureData &feature) |
|
◆ areElemListsMergeable()
bool areElemListsMergeable |
( |
const std::list< dof_id_type > & |
elem_list1, |
|
|
const std::list< dof_id_type > & |
elem_list2, |
|
|
MeshBase & |
mesh |
|
) |
| |
◆ dataLoad() [1/2]
template<>
void dataLoad |
( |
std::istream & |
stream, |
|
|
BoundingBox & |
bbox, |
|
|
void * |
context |
|
) |
| |
Definition at line 87 of file FeatureFloodCount.C.
89 loadHelper(stream, bbox.min(), context);
90 loadHelper(stream, bbox.max(), context);
◆ dataLoad() [2/2]
Note that _local_ids is not loaded here. It's not needed for restart, and not needed during the parallel merge operation
Definition at line 64 of file FeatureFloodCount.C.
71 loadHelper(stream, feature.
_halo_ids, context);
74 loadHelper(stream, feature.
_var_index, context);
75 loadHelper(stream, feature.
_id, context);
76 loadHelper(stream, feature.
_bboxes, context);
77 loadHelper(stream, feature.
_orig_ids, context);
79 loadHelper(stream, feature.
_vol_count, context);
80 loadHelper(stream, feature.
_centroid, context);
81 loadHelper(stream, feature.
_status, context);
Referenced by FeatureFloodCount::deserialize().
◆ dataStore() [1/2]
template<>
void dataStore |
( |
std::ostream & |
stream, |
|
|
BoundingBox & |
bbox, |
|
|
void * |
context |
|
) |
| |
Definition at line 56 of file FeatureFloodCount.C.
58 storeHelper(stream, bbox.min(), context);
59 storeHelper(stream, bbox.max(), context);
◆ dataStore() [2/2]
Note that _local_ids is not stored here. It's not needed for restart, and not needed during the parallel merge operation
Definition at line 33 of file FeatureFloodCount.C.
40 storeHelper(stream, feature.
_halo_ids, context);
43 storeHelper(stream, feature.
_var_index, context);
44 storeHelper(stream, feature.
_id, context);
45 storeHelper(stream, feature.
_bboxes, context);
46 storeHelper(stream, feature.
_orig_ids, context);
48 storeHelper(stream, feature.
_vol_count, context);
49 storeHelper(stream, feature.
_centroid, context);
50 storeHelper(stream, feature.
_status, context);
Referenced by FeatureFloodCount::serialize().
◆ operator<<()
Definition at line 2138 of file FeatureFloodCount.C.
2140 static const bool debug =
true;
2142 out <<
"Grain ID: ";
2150 out <<
"\nGhosted Entities: ";
2152 out << ghosted_id <<
" ";
2154 out <<
"\nLocal Entities: ";
2156 out << local_id <<
" ";
2158 out <<
"\nHalo Entities: ";
2160 out << halo_id <<
" ";
2162 out <<
"\nPeriodic Node IDs: ";
2164 out << periodic_node <<
" ";
2169 for (
const auto & bbox : feature.
_bboxes)
2171 out <<
"\nMax: " << bbox.max() <<
" Min: " << bbox.min();
2172 volume += (bbox.max()(0) - bbox.min()(0)) * (bbox.max()(1) - bbox.min()(1)) *
2173 (MooseUtils::absoluteFuzzyEqual(bbox.max()(2), bbox.min()(2))
2175 : bbox.max()(2) - bbox.min()(2));
2178 out <<
"\nStatus: ";
2190 out <<
"\nOrig IDs (rank, index): ";
2191 for (
const auto & orig_pair : feature.
_orig_ids)
2192 out <<
'(' << orig_pair.first <<
", " << orig_pair.second <<
") ";
2193 out <<
"\nVar_index: " << feature.
_var_index;
◆ registerMooseObject()
◆ updateBBoxExtremesHelper() [1/2]
void updateBBoxExtremesHelper |
( |
BoundingBox & |
bbox, |
|
|
const Elem & |
elem |
|
) |
| |
Definition at line 2215 of file FeatureFloodCount.C.
2218 for (MooseIndex(elem.n_nodes()) node_n = 0; node_n < elem.n_nodes(); ++node_n)
◆ updateBBoxExtremesHelper() [2/2]
void updateBBoxExtremesHelper |
( |
BoundingBox & |
bbox, |
|
|
const Point & |
node |
|
) |
| |
◆ validParams< FeatureFloodCount >()
The FeatureFloodCount and derived objects should not to operate on the displaced mesh. These objects consume variable values from the nonlinear system and use a lot of raw geometric element information from the mesh. If you use the displaced system with EBSD information for instance, you'll have difficulties reconciling the difference between the coordinates from the EBSD data file and the potential displacements applied via boundary conditions.
Definition at line 104 of file FeatureFloodCount.C.
106 InputParameters params = validParams<GeneralPostprocessor>();
107 params += validParams<BoundaryRestrictable>();
109 params.addRequiredCoupledVar(
111 "The variable(s) for which to find connected regions of interests, i.e. \"features\".");
112 params.addParam<Real>(
113 "threshold", 0.5,
"The threshold value for which a new feature may be started");
114 params.addParam<Real>(
115 "connecting_threshold",
116 "The threshold for which an existing feature may be extended (defaults to \"threshold\")");
117 params.addParam<
bool>(
"use_single_map",
119 "Determine whether information is tracked per "
120 "coupled variable or consolidated into one "
122 params.addParam<
bool>(
125 "Determines whether we condense all the node values when in multimap mode (default: false)");
126 params.addParam<
bool>(
"use_global_numbering",
128 "Determine whether or not global numbers are "
129 "used to label features on multiple maps "
131 params.addParam<
bool>(
"enable_var_coloring",
133 "Instruct the Postprocessor to populate the variable index map.");
134 params.addParam<
bool>(
137 "Instruct the Postprocessor to communicate proper halo information to all ranks");
138 params.addParam<
bool>(
"compute_var_to_feature_map",
140 "Instruct the Postprocessor to compute the active vars to features map");
141 params.addParam<
bool>(
142 "use_less_than_threshold_comparison",
144 "Controls whether features are defined to be less than or greater than the threshold value.");
146 params.addParam<std::vector<BoundaryName>>(
147 "primary_percolation_boundaries",
148 "A list of boundaries used in conjunction with the corresponding "
149 "\"secondary_percolation_boundaries\" parameter for determining if a feature creates a path "
150 "connecting any pair of boundaries");
151 params.addParam<std::vector<BoundaryName>>(
152 "secondary_percolation_boundaries",
153 "Paired boundaries with \"primaryary_percolation_boundaries\" parameter");
154 params.addParam<std::vector<BoundaryName>>(
155 "specified_boundaries",
156 "An optional list of boundaries; if supplied, each feature is checked to determine whether "
157 "it intersects any of the specified boundaries in this list.");
166 params.set<
bool>(
"use_displaced_mesh") =
false;
172 params.addPrivateParam<
bool>(
"restartable_required",
false);
174 params.addParamNamesToGroup(
175 "use_single_map condense_map_info use_global_numbering primary_percolation_boundaries",
178 MooseEnum flood_type(
"NODAL ELEMENTAL",
"ELEMENTAL");
179 params.addParam<MooseEnum>(
"flood_entity_type",
181 "Determines whether the flood algorithm runs on nodes or elements");
183 params.addClassDescription(
"The object is able to find and count \"connected components\" in any "
184 "solution field or number of solution fields. A primary example would "
185 "be to count \"bubbles\".");
187 params.addRelationshipManager(
"ElementSideNeighborLayers",
188 Moose::RelationshipManagerType::GEOMETRIC |
189 Moose::RelationshipManagerType::ALGEBRAIC);
Referenced by validParams< GrainTracker >(), validParams< GrainTrackerInterface >(), and validParams< PolycrystalUserObjectBase >().