https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
ExtraElementIDCopyGenerator Class Reference

#include <ExtraElementIDCopyGenerator.h>

Inheritance diagram for ExtraElementIDCopyGenerator:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 ExtraElementIDCopyGenerator (const InputParameters &params)
 
std::unique_ptr< MeshBase > generate () override
 
std::unique_ptr< MeshBase > generateInternal ()
 
const std::set< MeshGeneratorName > & getRequestedMeshGenerators () const
 
const std::set< MeshGeneratorName > & getRequestedMeshGeneratorsForSub () const
 
void addParentMeshGenerator (const MeshGenerator &mg, const AddParentChildKey)
 
void addChildMeshGenerator (const MeshGenerator &mg, const AddParentChildKey)
 
const std::set< const MeshGenerator *, Comparator > & getParentMeshGenerators () const
 
const std::set< const MeshGenerator *, Comparator > & getChildMeshGenerators () const
 
const std::set< const MeshGenerator *, Comparator > & getSubMeshGenerators () const
 
bool isParentMeshGenerator (const MeshGeneratorName &name, const bool direct=true) const
 
bool isChildMeshGenerator (const MeshGeneratorName &name, const bool direct=true) const
 
bool isNullMeshName (const MeshGeneratorName &name) const
 
bool hasSaveMesh () const
 
bool hasOutput () const
 
const std::string & getSavedMeshName () const
 
bool hasGenerateData () const
 
bool isDataOnly () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
virtual const std::string & name () const
 
std::string typeAndName () const
 
std::string errorPrefix (const std::string &error_type) const
 
void callMooseError (std::string msg, const bool with_prefix) const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
const InputParametersparameters () const
 
MooseObjectName uniqueName () const
 
const T & getParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const T * queryParam (const std::string &name) const
 
const T & getRenamedParam (const std::string &old_name, const std::string &new_name) const
 
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &nm) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void mooseError (Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static bool hasGenerateData (const InputParameters &params)
 
static void setHasGenerateData (InputParameters &params)
 

Public Attributes

const ConsoleStream _console
 

Static Public Attributes

static const std::string data_only_param
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Member Functions

virtual void generateData ()
 
T & copyMeshProperty (const std::string &target_data_name, const std::string &source_data_name, const std::string &source_mesh)
 
T & copyMeshProperty (const std::string &source_data_name, const std::string &source_mesh)
 
std::unique_ptr< MeshBase > & getMesh (const std::string &param_name, const bool allow_invalid=false)
 
std::vector< std::unique_ptr< MeshBase > *> getMeshes (const std::string &param_name)
 
std::unique_ptr< MeshBase > & getMeshByName (const MeshGeneratorName &mesh_generator_name)
 
std::vector< std::unique_ptr< MeshBase > *> getMeshesByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 
void declareMeshForSub (const std::string &param_name)
 
void declareMeshesForSub (const std::string &param_name)
 
void declareMeshForSubByName (const MeshGeneratorName &mesh_generator_name)
 
void declareMeshesForSubByName (const std::vector< MeshGeneratorName > &mesh_generator_names)
 
std::unique_ptr< MeshBase > buildMeshBaseObject (unsigned int dim=libMesh::invalid_uint)
 
std::unique_ptr< ReplicatedMesh > buildReplicatedMesh (unsigned int dim=libMesh::invalid_uint)
 
std::unique_ptr< DistributedMesh > buildDistributedMesh (unsigned int dim=libMesh::invalid_uint)
 
void addMeshSubgenerator (const std::string &type, const std::string &name, Ts... extra_input_parameters)
 
void addMeshSubgenerator (const std::string &type, const std::string &name, InputParameters params)
 
void declareNullMeshName (const MeshGeneratorName &name)
 
const T & getMeshProperty (const std::string &data_name, const std::string &prefix)
 
const T & getMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
T & declareMeshProperty (const std::string &data_name, Args &&... args)
 
T & declareMeshProperty (const std::string &data_name, const T &data_value)
 
T & declareMeshProperty (const std::string &data_name, Args &&... args)
 
T & declareMeshProperty (const std::string &data_name, const T &data_value)
 
T & setMeshProperty (const std::string &data_name, Args &&... args)
 
T & setMeshProperty (const std::string &data_name, const T &data_value)
 
T & setMeshProperty (const std::string &data_name, Args &&... args)
 
T & setMeshProperty (const std::string &data_name, const T &data_value)
 

Static Protected Member Functions

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

Protected Attributes

std::unique_ptr< MeshBase > & _input
 
MooseMesh *const _mesh
 
const bool & _enabled
 
MooseApp_app
 
const std::string _type
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
const Parallel::Communicator & _communicator
 

Detailed Description

Definition at line 14 of file ExtraElementIDCopyGenerator.h.

Constructor & Destructor Documentation

◆ ExtraElementIDCopyGenerator()

ExtraElementIDCopyGenerator::ExtraElementIDCopyGenerator ( const InputParameters params)

Definition at line 29 of file ExtraElementIDCopyGenerator.C.

30  : MeshGenerator(params), _input(getMesh("input"))
31 {
32 }
std::unique_ptr< MeshBase > & _input
MeshGenerator(const InputParameters &parameters)
std::unique_ptr< MeshBase > & getMesh(const std::string &param_name, const bool allow_invalid=false)

Member Function Documentation

◆ generate()

std::unique_ptr< MeshBase > ExtraElementIDCopyGenerator::generate ( )
overridevirtual

Implements MeshGenerator.

Definition at line 35 of file ExtraElementIDCopyGenerator.C.

36 {
37  std::unique_ptr<MeshBase> mesh = std::move(_input);
38 
39  auto src_id_name = getParam<std::string>("source_extra_element_id");
40  bool copy_subdomain_id = (src_id_name == "subdomain_id");
41  bool copy_element_id = (src_id_name == "element_id");
42  unsigned int src_id = 0;
43  if (!copy_subdomain_id && !copy_element_id)
44  {
45  if (!mesh->has_elem_integer(src_id_name))
46  mooseError("The source element ID does not exist on the input mesh");
47  src_id = mesh->get_elem_integer_index(src_id_name);
48  }
49 
50  auto target_id_names = getParam<std::vector<std::string>>("target_extra_element_ids");
51 
52  std::vector<unsigned int> target_ids;
53  for (auto & name : target_id_names)
54  {
55  if (!mesh->has_elem_integer(name))
56  mesh->add_elem_integer(name);
57 
58  target_ids.push_back(mesh->get_elem_integer_index(name));
59  }
60 
61  for (auto & elem : mesh->element_ptr_range())
62  {
63  dof_id_type id;
64  if (copy_subdomain_id)
65  id = elem->subdomain_id();
66  else if (copy_element_id)
67  id = elem->id();
68  else
69  id = elem->get_extra_integer(src_id);
70 
71  for (auto & target_id : target_ids)
72  elem->set_extra_integer(target_id, id);
73  }
74 
75  return mesh;
76 }
MeshBase & mesh
std::unique_ptr< MeshBase > & _input
virtual const std::string & name() const
void mooseError(Args &&... args) const
uint8_t dof_id_type

◆ validParams()

InputParameters ExtraElementIDCopyGenerator::validParams ( )
static

Definition at line 17 of file ExtraElementIDCopyGenerator.C.

18 {
20  params.addRequiredParam<MeshGeneratorName>("input", "The mesh we want to modify");
21  params.addRequiredParam<std::string>("source_extra_element_id",
22  "The extra element ID to be copied");
23  params.addRequiredParam<std::vector<std::string>>("target_extra_element_ids",
24  "The target extra element IDs");
25  params.addClassDescription("Copy an extra element ID to other extra element IDs.");
26  return params;
27 }
void addRequiredParam(const std::string &name, const std::string &doc_string)
static InputParameters validParams()
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _input

std::unique_ptr<MeshBase>& ExtraElementIDCopyGenerator::_input
protected

Definition at line 23 of file ExtraElementIDCopyGenerator.h.

Referenced by generate().


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