https://mooseframework.inl.gov
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ACGrGrMultiTempl< is_ad > Class Template Reference

#include <ACGrGrMulti.h>

Inheritance diagram for ACGrGrMultiTempl< is_ad >:
[legend]

Public Member Functions

 ACGrGrMultiTempl (const InputParameters &parameters)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

GenericReal< is_ad > computedF0du ()
 

Protected Attributes

std::vector< MaterialPropertyName > _gamma_names
 Names of gammas for each order parameter. More...
 
unsigned int _num_j
 
std::vector< const GenericMaterialProperty< Real, is_ad > * > _prop_gammas
 Values of gammas for each order parameter. More...
 

Detailed Description

template<bool is_ad>
class ACGrGrMultiTempl< is_ad >

Definition at line 25 of file ACGrGrMulti.h.

Constructor & Destructor Documentation

◆ ACGrGrMultiTempl()

template<bool is_ad>
ACGrGrMultiTempl< is_ad >::ACGrGrMultiTempl ( const InputParameters parameters)

Definition at line 29 of file ACGrGrMulti.C.

30  : ACGrGrMultiBase<is_ad>(parameters),
31  _gamma_names(this->template getParam<std::vector<MaterialPropertyName>>("gamma_names")),
32  _num_j(_gamma_names.size()),
34 {
35  // check passed in parameter vectors
36  if (_num_j != this->coupledComponents("v"))
37  this->paramError(
38  "gamma_names",
39  "Need to pass in as many gamma_names as coupled variables in v in ACGrGrMulti");
40 
41  for (unsigned int n = 0; n < _num_j; ++n)
42  _prop_gammas[n] = &this->template getGenericMaterialProperty<Real, is_ad>(_gamma_names[n]);
43 }
std::vector< MaterialPropertyName > _gamma_names
Names of gammas for each order parameter.
Definition: ACGrGrMulti.h:34
unsigned int _num_j
Definition: ACGrGrMulti.h:35
typename std::conditional< is_ad, ADGrainGrowthBase, ACGrGrBase >::type ACGrGrMultiBase
This kernel calculates the residual for grain growth for a multi-phase, poly-crystal system...
Definition: ACGrGrMulti.h:22
std::vector< const GenericMaterialProperty< Real, is_ad > * > _prop_gammas
Values of gammas for each order parameter.
Definition: ACGrGrMulti.h:38

Member Function Documentation

◆ computedF0du()

template<bool is_ad>
GenericReal< is_ad > ACGrGrMultiTempl< is_ad >::computedF0du ( )
protected

Definition at line 113 of file ACGrGrMulti.C.

114 {
115  GenericReal<is_ad> SumGammaEtaj = 0.0;
116  for (const auto i : make_range(_op_num))
117  SumGammaEtaj += (*_prop_gammas[i])[_qp] * (*_vals[i])[_qp] * (*_vals[i])[_qp];
118 
119  return _u[_qp] * _u[_qp] * _u[_qp] - _u[_qp] + 2.0 * _u[_qp] * SumGammaEtaj;
120 }
Moose::GenericType< Real, is_ad > GenericReal
std::vector< const GenericMaterialProperty< Real, is_ad > * > _prop_gammas
Values of gammas for each order parameter.
Definition: ACGrGrMulti.h:38
IntRange< T > make_range(T beg, T end)

◆ validParams()

template<bool is_ad>
InputParameters ACGrGrMultiTempl< is_ad >::validParams ( )
static

Definition at line 17 of file ACGrGrMulti.C.

18 {
20  params.addClassDescription("Multi-phase poly-crystalline Allen-Cahn Kernel");
21  params.addRequiredParam<std::vector<MaterialPropertyName>>(
22  "gamma_names",
23  "List of gamma material property names for each other order parameter. Place "
24  "in same order as order parameters (v)!");
25  return params;
26 }
void addRequiredParam(const std::string &name, const std::string &doc_string)
InputParameters validParams()
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _gamma_names

template<bool is_ad>
std::vector<MaterialPropertyName> ACGrGrMultiTempl< is_ad >::_gamma_names
protected

Names of gammas for each order parameter.

Definition at line 34 of file ACGrGrMulti.h.

Referenced by ACGrGrMultiTempl< true >::ACGrGrMultiTempl().

◆ _num_j

template<bool is_ad>
unsigned int ACGrGrMultiTempl< is_ad >::_num_j
protected

Definition at line 35 of file ACGrGrMulti.h.

Referenced by ACGrGrMultiTempl< true >::ACGrGrMultiTempl().

◆ _prop_gammas

template<bool is_ad>
std::vector<const GenericMaterialProperty<Real, is_ad> *> ACGrGrMultiTempl< is_ad >::_prop_gammas
protected

Values of gammas for each order parameter.

Definition at line 38 of file ACGrGrMulti.h.

Referenced by ACGrGrMultiTempl< true >::ACGrGrMultiTempl().


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