www.mooseframework.org
DerivativeMultiPhaseBase.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 #ifndef DERIVATIVEMULTIPHASEBASE_H
8 #define DERIVATIVEMULTIPHASEBASE_H
9 
11 
12 // Forward Declarations
14 
15 template <>
17 
25 {
26 public:
27  DerivativeMultiPhaseBase(const InputParameters & parameters);
28 
29  virtual void initialSetup();
30 
31 protected:
32  virtual Real computeF();
33 
38  std::vector<int> _eta_index;
39 
41  std::vector<VariableValue *> _etas;
42 
44  unsigned int _num_etas;
45  std::vector<VariableName> _eta_names;
46  std::vector<unsigned int> _eta_vars;
47 
49  std::vector<MaterialPropertyName> _fi_names;
50  unsigned int _num_fi;
51 
53  std::vector<const MaterialProperty<Real> *> _prop_Fi;
54 
56  std::vector<std::vector<const MaterialProperty<Real> *>> _prop_dFi;
57 
59  std::vector<std::vector<std::vector<const MaterialProperty<Real> *>>> _prop_d2Fi;
60 
62  std::vector<std::vector<std::vector<std::vector<const MaterialProperty<Real> *>>>> _prop_d3Fi;
63 
65  std::vector<MaterialPropertyName> _hi_names;
66  unsigned int _num_hi;
67 
69  std::vector<const MaterialProperty<Real> *> _hi;
70 
72  MaterialPropertyName _g_name;
73 
75  const MaterialProperty<Real> & _g;
76 
78  std::vector<const MaterialProperty<Real> *> _dg;
79  std::vector<std::vector<const MaterialProperty<Real> *>> _d2g;
80  std::vector<std::vector<std::vector<const MaterialProperty<Real> *>>> _d3g;
81 
83  Real _W;
84 };
85 
86 #endif // DERIVATIVEMULTIPHASEBASE_H
virtual void initialSetup()
Check if we got the right number of components in the &#39;args&#39; coupled variable vector.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _prop_d2Fi
Second derivatives of Fi.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d3g
std::vector< const MaterialProperty< Real > * > _dg
Barrier function derivatives.
const MaterialProperty< Real > & _g
Barrier function .
std::vector< MaterialPropertyName > _hi_names
phase switching function names
unsigned int _num_etas
name of the order parameter variable
std::vector< std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > > _prop_d3Fi
Third derivatives of Fi.
Real _W
Phase transformation energy barrier.
std::vector< MaterialPropertyName > _fi_names
phase derivative material names
virtual Real computeF()
Override this method to provide the free energy function.
std::vector< const MaterialProperty< Real > * > _hi
Switching functions.
Material base class central to compute the a phase free energy and its derivatives.
std::vector< VariableName > _eta_names
MaterialPropertyName _g_name
Barrier function name.
DerivativeMultiPhaseBase(const InputParameters &parameters)
std::vector< std::vector< const MaterialProperty< Real > * > > _d2g
std::vector< int > _eta_index
If the variable a non-conserved OP this array holds the index into the etas parameter vector for a gi...
DerivativeMaterial child class to evaluate a parsed function for the free energy and automatically pr...
std::vector< const MaterialProperty< Real > * > _prop_Fi
Function value of the i phase.
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_dFi
Derivatives of Fi w.r.t. arg[i].
InputParameters validParams< DerivativeMultiPhaseBase >()
std::vector< VariableValue * > _etas
Phase parameter (0=A-phase, 1=B-phase)
std::vector< unsigned int > _eta_vars