www.mooseframework.org
DerivativeTwoPhaseMaterial.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 DERIVATIVETWOPHASEMATERIAL_H
8 #define DERIVATIVETWOPHASEMATERIAL_H
9 
11 
12 // Forward Declarations
14 
15 template <>
17 
25 {
26 public:
27  DerivativeTwoPhaseMaterial(const InputParameters & parameters);
28 
29  virtual void initialSetup() override;
30 
31 protected:
32  virtual Real computeF() override;
33  virtual Real computeDF(unsigned int i_var) override;
34  virtual Real computeD2F(unsigned int i_var, unsigned int j_var) override;
35  virtual Real computeD3F(unsigned int i_var, unsigned int j_var, unsigned int k_var) override;
36 
38  const VariableValue & _eta;
39 
41  VariableName _eta_name;
42 
44  unsigned int _eta_var;
45 
48  const MaterialProperty<Real> & _h;
49  const MaterialProperty<Real> & _dh;
50  const MaterialProperty<Real> & _d2h;
51  const MaterialProperty<Real> & _d3h;
53 
56  const MaterialProperty<Real> & _g;
57  const MaterialProperty<Real> & _dg;
58  const MaterialProperty<Real> & _d2g;
59  const MaterialProperty<Real> & _d3g;
61 
63  Real _W;
64 
66  const MaterialProperty<Real> &_prop_Fa, &_prop_Fb;
67 
69  std::vector<const MaterialProperty<Real> *> _prop_dFa, _prop_dFb;
70 
72  std::vector<std::vector<const MaterialProperty<Real> *>> _prop_d2Fa, _prop_d2Fb;
73 
75  std::vector<std::vector<std::vector<const MaterialProperty<Real> *>>> _prop_d3Fa, _prop_d3Fb;
76 };
77 
78 #endif // DERIVATIVETWOPHASEMATERIAL_H
virtual Real computeF() override
Override this method to provide the free energy function.
virtual Real computeDF(unsigned int i_var) override
Override this method for calculating the first derivatives.
DerivativeTwoPhaseMaterial(const InputParameters &parameters)
const MaterialProperty< Real > & _dh
const VariableValue & _eta
Phase parameter (0=A-phase, 1=B-phase)
const MaterialProperty< Real > & _d3g
const MaterialProperty< Real > & _prop_Fa
Function value of the A and B phase.
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_d2Fa
Second derivatives of Fa and Fb.
const MaterialProperty< Real > & _g
std::vector< const MaterialProperty< Real > * > _prop_dFb
virtual Real computeD3F(unsigned int i_var, unsigned int j_var, unsigned int k_var) override
Override this method to calculate the third derivatives.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _prop_d3Fb
DerivativeMaterial child class to evaluate a parsed function for the free energy and automatically pr...
const MaterialProperty< Real > & _d2h
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _prop_d3Fa
Third derivatives of Fa and Fb.
InputParameters validParams< DerivativeTwoPhaseMaterial >()
Material base class central to compute the a phase free energy and its derivatives.
Real _W
Phase transformatuion energy barrier.
const MaterialProperty< Real > & _d3h
virtual void initialSetup() override
Check if we got the right number of components in the &#39;args&#39; coupled variable vector.
const MaterialProperty< Real > & _h
const MaterialProperty< Real > & _d2g
const MaterialProperty< Real > & _dg
std::vector< const MaterialProperty< Real > * > _prop_dFa
Derivatives of Fa and Fb with respect to arg[i].
VariableName _eta_name
name of the order parameter variable
const MaterialProperty< Real > & _prop_Fb
unsigned int _eta_var
libMesh variable number for eta
virtual Real computeD2F(unsigned int i_var, unsigned int j_var) override
Override this method to calculate the second derivatives.
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_d2Fb