www.mooseframework.org
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
MultiAuxVariablesAction Class Reference

Automatically generates all auxvariables given vectors telling it the names and how many to create. More...

#include <MultiAuxVariablesAction.h>

Inheritance diagram for MultiAuxVariablesAction:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 MultiAuxVariablesAction (const InputParameters &params)
 
virtual void act ()
 
virtual void addRelationshipManagers (Moose::RelationshipManagerType when_type) override
 
bool addRelationshipManagers (Moose::RelationshipManagerType when_type, const InputParameters &moose_object_pars)
 
virtual void addRelationshipManagers (Moose::RelationshipManagerType when_type)
 
InputParametersgetObjectParams ()
 
const InputParametersgetObjectParams () const
 
const std::string & getMooseObjectType () const
 
void timedAct ()
 
MooseObjectName uniqueActionName () const
 
const std::string & specificTaskName () const
 
const std::set< std::string > & getAllTasks () const
 
void appendTask (const std::string &task)
 
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 & 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 mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
PerfGraphperfGraph ()
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &name, const std::string *param=nullptr) 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 MooseEnum getAuxVariableFamilies ()
 
static MooseEnum getAuxVariableOrders ()
 
static MooseEnum getNonlinearVariableFamilies ()
 
static MooseEnum getNonlinearVariableOrders ()
 
static FEType feType (const InputParameters &params)
 
static std::string determineType (const FEType &fe_type, unsigned int components, bool is_fv=false)
 
static std::string variableType (const FEType &fe_type, const bool is_fv=false, const bool is_array=false)
 

Public Attributes

const ConsoleStream _console
 

Static Public Attributes

static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Member Functions

bool addRelationshipManagers (Moose::RelationshipManagerType when_type, const InputParameters &moose_object_pars)
 
void init () override
 
void addVariable (const std::string &var_name)
 
void createInitialConditionAction ()
 
std::set< SubdomainIDgetSubdomainIDs ()
 
void associateWithParameter (const std::string &param_name, InputParameters &params) const
 
void associateWithParameter (const InputParameters &from_params, const std::string &param_name, InputParameters &params) const
 
const T & getMeshProperty (const std::string &data_name, const std::string &prefix)
 
const T & getMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 

Static Protected Member Functions

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

Protected Attributes

const unsigned int _grain_num
 number of grains to create More...
 
const std::vector< std::string > & _var_name_base
 base name for the auxvariables More...
 
const unsigned int _num_var
 number of auxvariables More...
 
const MultiMooseEnum_data_type
 list of material properties to be used More...
 
const unsigned int _data_size
 number of properties More...
 
FEType _fe_type
 
bool _scalar_var
 
bool _fv_var
 
unsigned int _components
 
std::function< void(FEProblemBase &, const std::string &, const std::string &, InputParameters &)> _problem_add_var_method
 
std::string _type
 
InputParameters _moose_object_pars
 
std::string _registered_identifier
 
std::string _specific_task_name
 
std::set< std::string > _all_tasks
 
ActionWarehouse_awh
 
const std::string & _current_task
 
std::shared_ptr< MooseMesh > & _mesh
 
std::shared_ptr< MooseMesh > & _displaced_mesh
 
std::shared_ptr< FEProblemBase > & _problem
 
PerfID _act_timer
 
MooseApp_app
 
const std::string _name
 
const InputParameters_pars
 
Factory_factory
 
ActionFactory_action_factory
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
const Parallel::Communicator & _communicator
 

Detailed Description

Automatically generates all auxvariables given vectors telling it the names and how many to create.

Definition at line 18 of file MultiAuxVariablesAction.h.

Constructor & Destructor Documentation

◆ MultiAuxVariablesAction()

MultiAuxVariablesAction::MultiAuxVariablesAction ( const InputParameters params)

Definition at line 35 of file MultiAuxVariablesAction.C.

36  : AddAuxVariableAction(params),
37  _grain_num(getParam<unsigned int>("grain_num")),
38  _var_name_base(getParam<std::vector<std::string>>("variable_base")),
39  _num_var(_var_name_base.size()),
40  _data_type(getParam<MultiMooseEnum>("data_type")),
42 {
43 }
const MultiMooseEnum & _data_type
list of material properties to be used
const std::vector< std::string > & _var_name_base
base name for the auxvariables
const unsigned int _num_var
number of auxvariables
AddAuxVariableAction(const InputParameters &params)
unsigned int size() const
const T & getParam(const std::string &name) const
const unsigned int _grain_num
number of grains to create
const unsigned int _data_size
number of properties

Member Function Documentation

◆ act()

void MultiAuxVariablesAction::act ( )
virtual

for extracting data from MaterialProperty<std::vector<Real> >

for extracting data from MaterialProperty<std::vector<RealGradient> >

The name of the variable is the variable name base followed by the order parameter and a suffix mentioning dimension it applies to.

Reimplemented from AddAuxVariableAction.

Definition at line 46 of file MultiAuxVariablesAction.C.

47 {
48  init();
49 
50  if (_num_var != _data_size)
51  mooseError("Data type not provided for all the AuxVariables in MultiAuxVariablesAction");
52 
53  // mesh dimension & components required for gradient variables
54  const unsigned int dim = _mesh->dimension();
55  const std::vector<char> suffix = {'x', 'y', 'z'};
56 
57  // Loop through the number of order parameters
58  for (unsigned int val = 0; val < _num_var; ++val)
59  for (unsigned int gr = 0; gr < _grain_num; ++gr)
60  {
62  if (_data_type[val] == "Real")
63  {
64  // Create variable names with variable name base followed by the order parameter it applies
65  // to.
66  std::string var_name = _var_name_base[val] + Moose::stringify(gr);
67 
68  _problem->addAuxVariable(_type, var_name, _moose_object_pars);
69  }
71  if (_data_type[val] == "RealGradient")
72  for (unsigned int x = 0; x < dim; ++x)
73  {
78  std::string var_name = _var_name_base[val] + Moose::stringify(gr) + "_" + suffix[x];
79 
80  _problem->addAuxVariable(_type, var_name, _moose_object_pars);
81  }
82  }
83 }
const MultiMooseEnum & _data_type
list of material properties to be used
const std::vector< std::string > & _var_name_base
base name for the auxvariables
const unsigned int _num_var
number of auxvariables
unsigned int dim
void init() override
const std::vector< double > x
std::string stringify(const T &t)
std::shared_ptr< MooseMesh > & _mesh
InputParameters _moose_object_pars
void mooseError(Args &&... args) const
std::shared_ptr< FEProblemBase > & _problem
const unsigned int _grain_num
number of grains to create
const unsigned int _data_size
number of properties

◆ validParams()

InputParameters MultiAuxVariablesAction::validParams ( )
static

Definition at line 18 of file MultiAuxVariablesAction.C.

19 {
21  params.addClassDescription("Set up auxvariables for components of "
22  "MaterialProperty<std::vector<data_type> > for polycrystal sample.");
23  params.addRequiredParam<unsigned int>(
24  "grain_num", "Specifies the number of grains to create the aux variables for.");
25  params.addRequiredParam<std::vector<std::string>>(
26  "variable_base", "Vector that specifies the base name of the variables.");
27  MultiMooseEnum data_type("Real RealGradient", "Real");
29  "data_type",
30  data_type,
31  "Specifying data type of the materials property, variables are created accordingly");
32  return params;
33 }
MPI_Datatype data_type
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
static InputParameters validParams()

Member Data Documentation

◆ _data_size

const unsigned int MultiAuxVariablesAction::_data_size
protected

number of properties

Definition at line 41 of file MultiAuxVariablesAction.h.

Referenced by act().

◆ _data_type

const MultiMooseEnum& MultiAuxVariablesAction::_data_type
protected

list of material properties to be used

Definition at line 38 of file MultiAuxVariablesAction.h.

Referenced by act().

◆ _grain_num

const unsigned int MultiAuxVariablesAction::_grain_num
protected

number of grains to create

Definition at line 29 of file MultiAuxVariablesAction.h.

Referenced by act().

◆ _num_var

const unsigned int MultiAuxVariablesAction::_num_var
protected

number of auxvariables

Definition at line 35 of file MultiAuxVariablesAction.h.

Referenced by act().

◆ _var_name_base

const std::vector<std::string>& MultiAuxVariablesAction::_var_name_base
protected

base name for the auxvariables

Definition at line 32 of file MultiAuxVariablesAction.h.

Referenced by act().


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