www.mooseframework.org
Public Member Functions | Protected Attributes | List of all members
NonconservedAction Class Reference

#include <NonconservedAction.h>

Inheritance diagram for NonconservedAction:
[legend]

Public Member Functions

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

Protected Attributes

const NonlinearVariableName _var_name
 Name of the variable being created. More...
 
const FEType _fe_type
 FEType for the variable being created. More...
 

Detailed Description

Definition at line 24 of file NonconservedAction.h.

Constructor & Destructor Documentation

◆ NonconservedAction()

NonconservedAction::NonconservedAction ( const InputParameters &  params)

Definition at line 63 of file NonconservedAction.C.

64  : Action(params),
65  _var_name(name()),
66  _fe_type(Utility::string_to_enum<Order>(getParam<MooseEnum>("order")),
67  Utility::string_to_enum<FEFamily>(getParam<MooseEnum>("family")))
68 {
69 }

Member Function Documentation

◆ act()

void NonconservedAction::act ( )
virtual

Definition at line 72 of file NonconservedAction.C.

73 {
74  //
75  // Add variable
76  //
77  if (_current_task == "add_variable")
78  {
79  auto type = AddVariableAction::determineType(_fe_type, 1);
80  auto var_params = _factory.getValidParams(type);
81 
82  var_params.applySpecificParameters(_pars, {"family", "order"});
83  var_params.set<std::vector<Real>>("scaling") = {getParam<Real>("scaling")};
84 
85  // Create nonconserved variable
86  _problem->addVariable(type, _var_name, var_params);
87  }
88 
89  //
90  // Add Kernels
91  //
92  else if (_current_task == "add_kernel")
93  {
94  // Add time derivative kernel
95  std::string kernel_type = "TimeDerivative";
96 
97  std::string kernel_name = _var_name + "_" + kernel_type;
98  InputParameters params1 = _factory.getValidParams(kernel_type);
99  params1.set<NonlinearVariableName>("variable") = _var_name;
100  params1.applyParameters(parameters());
101 
102  _problem->addKernel(kernel_type, kernel_name, params1);
103 
104  // Add AllenCahn kernel
105  kernel_type = "AllenCahn";
106 
107  kernel_name = _var_name + "_" + kernel_type;
108  InputParameters params2 = _factory.getValidParams(kernel_type);
109  params2.set<NonlinearVariableName>("variable") = _var_name;
110  params2.set<MaterialPropertyName>("mob_name") = getParam<MaterialPropertyName>("mobility");
111  params2.set<MaterialPropertyName>("f_name") = getParam<MaterialPropertyName>("free_energy");
112  params2.applyParameters(parameters());
113 
114  _problem->addKernel(kernel_type, kernel_name, params2);
115 
116  // Add ACInterface kernel
117  kernel_type = "ACInterface";
118 
119  kernel_name = _var_name + "_" + kernel_type;
120  InputParameters params3 = _factory.getValidParams(kernel_type);
121  params3.set<NonlinearVariableName>("variable") = _var_name;
122  params3.set<MaterialPropertyName>("mob_name") = getParam<MaterialPropertyName>("mobility");
123  params3.set<MaterialPropertyName>("kappa_name") = getParam<MaterialPropertyName>("kappa");
124  params3.set<bool>("variable_L") = getParam<bool>("variable_mobility");
125  params3.applyParameters(parameters());
126 
127  _problem->addKernel(kernel_type, kernel_name, params3);
128  }
129 }

Member Data Documentation

◆ _fe_type

const FEType NonconservedAction::_fe_type
protected

FEType for the variable being created.

Definition at line 35 of file NonconservedAction.h.

Referenced by act().

◆ _var_name

const NonlinearVariableName NonconservedAction::_var_name
protected

Name of the variable being created.

Definition at line 33 of file NonconservedAction.h.

Referenced by act().


The documentation for this class was generated from the following files:
NonconservedAction::_fe_type
const FEType _fe_type
FEType for the variable being created.
Definition: NonconservedAction.h:35
name
const std::string name
Definition: Setup.h:21
NonconservedAction::_var_name
const NonlinearVariableName _var_name
Name of the variable being created.
Definition: NonconservedAction.h:33