www.mooseframework.org
FauxGrainTracker.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "FeatureFloodCount.h"
13 #include "GrainTrackerInterface.h"
14 
15 class FauxGrainTracker;
16 
17 template <>
18 InputParameters validParams<FauxGrainTracker>();
19 
27 {
28 public:
29  FauxGrainTracker(const InputParameters & parameters);
30  virtual ~FauxGrainTracker();
31 
32  virtual void initialize() override;
33  virtual void finalize() override;
34  virtual Real getValue() override;
35  virtual void execute() override;
36 
37  // GrainTrackerInterface methods
38  virtual Real getEntityValue(dof_id_type entity_id,
40  std::size_t var_idx) const override;
41  virtual const std::vector<unsigned int> &
42  getVarToFeatureVector(dof_id_type elem_id) const override;
43  virtual unsigned int getFeatureVar(unsigned int feature_id) const override;
44  virtual std::size_t getNumberActiveGrains() const override;
45  virtual std::size_t getTotalFeatureCount() const override;
46  virtual Point getGrainCentroid(unsigned int grain_id) const override;
47  virtual bool doesFeatureIntersectBoundary(unsigned int feature_id) const override;
48 
49 private:
51  std::map<dof_id_type, unsigned int> _entity_id_to_var_num;
52 
53  std::map<dof_id_type, std::vector<unsigned int>> _entity_var_to_features;
54  std::vector<unsigned int> _empty_var_to_features;
55 
57  std::set<unsigned int> _variables_used;
58 
60  std::size_t _grain_count;
61 
62  // Convenience variable holding the number of variables coupled into this object
63  const std::size_t _n_vars;
64 
66  const int _tracking_step;
67 
69  std::vector<unsigned int> _op_to_grains;
70 
72  std::map<unsigned int, Real> _volume;
73 
75  std::map<unsigned int, unsigned int> _vol_count;
76 
78  std::map<unsigned int, Point> _centroid;
79 };
80 
FauxGrainTracker::getTotalFeatureCount
virtual std::size_t getTotalFeatureCount() const override
Returns the total feature count (active and inactive ids, useful for sizing vectors)
Definition: FauxGrainTracker.C:125
GrainTrackerInterface
This class defines the interface for the GrainTracking objects.
Definition: GrainTrackerInterface.h:24
FauxGrainTracker::_grain_count
std::size_t _grain_count
Total Grain Count.
Definition: FauxGrainTracker.h:60
FauxGrainTracker::_centroid
std::map< unsigned int, Point > _centroid
The centroid of the feature (average of coordinates from entities participating in the volume calcula...
Definition: FauxGrainTracker.h:78
FauxGrainTracker::getNumberActiveGrains
virtual std::size_t getNumberActiveGrains() const override
Returns the number of active grains current stored in the GrainTracker.
Definition: FauxGrainTracker.C:119
FauxGrainTracker::_entity_var_to_features
std::map< dof_id_type, std::vector< unsigned int > > _entity_var_to_features
Definition: FauxGrainTracker.h:53
FeatureFloodCount::FieldType
FieldType
Definition: FeatureFloodCount.h:103
FauxGrainTracker::getEntityValue
virtual Real getEntityValue(dof_id_type entity_id, FeatureFloodCount::FieldType field_type, std::size_t var_idx) const override
Definition: FauxGrainTracker.C:47
FeatureFloodCount
This object will mark nodes or elements of continuous regions all with a unique number for the purpos...
Definition: FeatureFloodCount.h:44
FauxGrainTracker::finalize
virtual void finalize() override
Definition: FauxGrainTracker.C:221
FauxGrainTracker
This class is a fake grain tracker object, it will not actually track grains nor remap them but will ...
Definition: FauxGrainTracker.h:26
FauxGrainTracker::execute
virtual void execute() override
Definition: FauxGrainTracker.C:155
FeatureFloodCount.h
FauxGrainTracker::_variables_used
std::set< unsigned int > _variables_used
Used as the lightweight grain counter.
Definition: FauxGrainTracker.h:57
FauxGrainTracker::getVarToFeatureVector
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.
Definition: FauxGrainTracker.C:100
FauxGrainTracker::initialize
virtual void initialize() override
Definition: FauxGrainTracker.C:141
FauxGrainTracker::getValue
virtual Real getValue() override
Definition: FauxGrainTracker.C:265
validParams< FauxGrainTracker >
InputParameters validParams< FauxGrainTracker >()
Definition: FauxGrainTracker.C:20
FauxGrainTracker::_tracking_step
const int _tracking_step
Used to emulate the tracking step of the real grain tracker object.
Definition: FauxGrainTracker.h:66
FauxGrainTracker::_op_to_grains
std::vector< unsigned int > _op_to_grains
Order parameter to grain indices (just a reflexive vector)
Definition: FauxGrainTracker.h:69
FauxGrainTracker::getGrainCentroid
virtual Point getGrainCentroid(unsigned int grain_id) const override
Returns the centroid for the given grain number.
Definition: FauxGrainTracker.C:131
GrainTrackerInterface.h
FauxGrainTracker::_vol_count
std::map< unsigned int, unsigned int > _vol_count
The count of entities contributing to the volume calculation.
Definition: FauxGrainTracker.h:75
FauxGrainTracker::doesFeatureIntersectBoundary
virtual bool doesFeatureIntersectBoundary(unsigned int feature_id) const override
Returns a Boolean indicating whether this feature intersects any boundary.
Definition: FauxGrainTracker.C:271
FauxGrainTracker::~FauxGrainTracker
virtual ~FauxGrainTracker()
Definition: FauxGrainTracker.C:44
FauxGrainTracker::getFeatureVar
virtual unsigned int getFeatureVar(unsigned int feature_id) const override
Returns the variable representing the passed in feature.
Definition: FauxGrainTracker.C:113
FauxGrainTracker::_entity_id_to_var_num
std::map< dof_id_type, unsigned int > _entity_id_to_var_num
The mapping of entities to grains, in this case always the order parameter.
Definition: FauxGrainTracker.h:51
FauxGrainTracker::_empty_var_to_features
std::vector< unsigned int > _empty_var_to_features
Definition: FauxGrainTracker.h:54
FauxGrainTracker::_n_vars
const std::size_t _n_vars
Definition: FauxGrainTracker.h:63
FauxGrainTracker::_volume
std::map< unsigned int, Real > _volume
The volume of the feature.
Definition: FauxGrainTracker.h:72
FauxGrainTracker::FauxGrainTracker
FauxGrainTracker(const InputParameters &parameters)
Definition: FauxGrainTracker.C:29