www.mooseframework.org
Public Member Functions | Private Attributes | List of all members
PolycrystalVariablesAction Class Reference

Automatically generates all variables to model a polycrystal with op_num orderparameters. More...

#include <PolycrystalVariablesAction.h>

Inheritance diagram for PolycrystalVariablesAction:
[legend]

Public Member Functions

 PolycrystalVariablesAction (const InputParameters &params)
 
virtual void act ()
 

Private Attributes

const unsigned int _op_num
 
const std::string _var_name_base
 

Detailed Description

Automatically generates all variables to model a polycrystal with op_num orderparameters.

Definition at line 21 of file PolycrystalVariablesAction.h.

Constructor & Destructor Documentation

◆ PolycrystalVariablesAction()

PolycrystalVariablesAction::PolycrystalVariablesAction ( const InputParameters &  params)

Definition at line 51 of file PolycrystalVariablesAction.C.

52  : Action(params),
53  _op_num(getParam<unsigned int>("op_num")),
54  _var_name_base(getParam<std::string>("var_name_base"))
55 {
56 }

Member Function Documentation

◆ act()

void PolycrystalVariablesAction::act ( )
virtual

Definition at line 59 of file PolycrystalVariablesAction.C.

60 {
61  // take initial values from file?
62  bool initial_from_file = getParam<bool>("initial_from_file");
63 
64  // Loop through the number of order parameters
65  for (unsigned int op = 0; op < _op_num; op++)
66  {
67  // Create variable names
68  std::string var_name = _var_name_base + Moose::stringify(op);
69 
70  // Add the variable
71  if (_current_task == "add_variable")
72  {
73  auto fe_type = AddVariableAction::feType(_pars);
74  auto type = AddVariableAction::determineType(fe_type, 1);
75  auto var_params = _factory.getValidParams(type);
76 
77  var_params.applySpecificParameters(_pars, {"order", "family"});
78  var_params.set<std::vector<Real>>("scaling") = {_pars.get<Real>("scaling")};
79  _problem->addVariable(type, var_name, var_params);
80  }
81 
82  // Setup initial from file if requested
83  if (initial_from_file)
84  {
85  if (_current_task == "check_copy_nodal_vars")
86  _app.setFileRestart() = true;
87 
88  if (_current_task == "copy_nodal_vars")
89  {
90  auto * system = &_problem->getNonlinearSystemBase();
91  system->addVariableToCopy(var_name, var_name, "LATEST");
92  }
93  }
94  }
95 }

Member Data Documentation

◆ _op_num

const unsigned int PolycrystalVariablesAction::_op_num
private

Definition at line 29 of file PolycrystalVariablesAction.h.

Referenced by act().

◆ _var_name_base

const std::string PolycrystalVariablesAction::_var_name_base
private

Definition at line 30 of file PolycrystalVariablesAction.h.

Referenced by act().


The documentation for this class was generated from the following files:
PolycrystalVariablesAction::_op_num
const unsigned int _op_num
Definition: PolycrystalVariablesAction.h:29
PolycrystalVariablesAction::_var_name_base
const std::string _var_name_base
Definition: PolycrystalVariablesAction.h:30