www.mooseframework.org
DerivativeTwoPhaseMaterial.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "DerivativeFunctionMaterialBase.h"
13 
14 // Forward Declarations
16 
17 template <>
19 
26 class DerivativeTwoPhaseMaterial : public DerivativeFunctionMaterialBase
27 {
28 public:
29  DerivativeTwoPhaseMaterial(const InputParameters & parameters);
30 
31  virtual void initialSetup() override;
32 
33 protected:
34  virtual Real computeF() override;
35  virtual Real computeDF(unsigned int i_var) override;
36  virtual Real computeD2F(unsigned int i_var, unsigned int j_var) override;
37  virtual Real computeD3F(unsigned int i_var, unsigned int j_var, unsigned int k_var) override;
38 
40  const VariableValue & _eta;
41 
43  VariableName _eta_name;
44 
46  unsigned int _eta_var;
47 
50  const MaterialProperty<Real> & _h;
51  const MaterialProperty<Real> & _dh;
52  const MaterialProperty<Real> & _d2h;
53  const MaterialProperty<Real> & _d3h;
55 
58  const MaterialProperty<Real> & _g;
59  const MaterialProperty<Real> & _dg;
60  const MaterialProperty<Real> & _d2g;
61  const MaterialProperty<Real> & _d3g;
63 
65  Real _W;
66 
68  const MaterialProperty<Real> &_prop_Fa, &_prop_Fb;
69 
71  std::vector<const MaterialProperty<Real> *> _prop_dFa, _prop_dFb;
72 
74  std::vector<std::vector<const MaterialProperty<Real> *>> _prop_d2Fa, _prop_d2Fb;
75 
77  std::vector<std::vector<std::vector<const MaterialProperty<Real> *>>> _prop_d3Fa, _prop_d3Fb;
78 };
79 
DerivativeTwoPhaseMaterial::computeD3F
virtual Real computeD3F(unsigned int i_var, unsigned int j_var, unsigned int k_var) override
Definition: DerivativeTwoPhaseMaterial.C:151
DerivativeTwoPhaseMaterial::_dh
const MaterialProperty< Real > & _dh
Definition: DerivativeTwoPhaseMaterial.h:51
DerivativeTwoPhaseMaterial::computeDF
virtual Real computeDF(unsigned int i_var) override
Definition: DerivativeTwoPhaseMaterial.C:122
DerivativeTwoPhaseMaterial::DerivativeTwoPhaseMaterial
DerivativeTwoPhaseMaterial(const InputParameters &parameters)
Definition: DerivativeTwoPhaseMaterial.C:45
DerivativeTwoPhaseMaterial::_d3g
const MaterialProperty< Real > & _d3g
Definition: DerivativeTwoPhaseMaterial.h:61
DerivativeTwoPhaseMaterial::_prop_Fb
const MaterialProperty< Real > & _prop_Fb
Definition: DerivativeTwoPhaseMaterial.h:68
DerivativeTwoPhaseMaterial::_g
const MaterialProperty< Real > & _g
Definition: DerivativeTwoPhaseMaterial.h:58
DerivativeTwoPhaseMaterial::_eta_var
unsigned int _eta_var
libMesh variable number for eta
Definition: DerivativeTwoPhaseMaterial.h:46
DerivativeTwoPhaseMaterial::_prop_dFb
std::vector< const MaterialProperty< Real > * > _prop_dFb
Definition: DerivativeTwoPhaseMaterial.h:71
DerivativeTwoPhaseMaterial::_d2g
const MaterialProperty< Real > & _d2g
Definition: DerivativeTwoPhaseMaterial.h:60
DerivativeTwoPhaseMaterial::computeF
virtual Real computeF() override
Definition: DerivativeTwoPhaseMaterial.C:116
DerivativeTwoPhaseMaterial::_prop_d2Fa
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_d2Fa
Second derivatives of Fa and Fb.
Definition: DerivativeTwoPhaseMaterial.h:74
DerivativeTwoPhaseMaterial::_eta_name
VariableName _eta_name
name of the order parameter variable
Definition: DerivativeTwoPhaseMaterial.h:43
DerivativeTwoPhaseMaterial::_h
const MaterialProperty< Real > & _h
Definition: DerivativeTwoPhaseMaterial.h:50
DerivativeTwoPhaseMaterial::_prop_d3Fb
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _prop_d3Fb
Definition: DerivativeTwoPhaseMaterial.h:77
DerivativeTwoPhaseMaterial::_W
Real _W
Phase transformatuion energy barrier.
Definition: DerivativeTwoPhaseMaterial.h:65
DerivativeTwoPhaseMaterial::_prop_dFa
std::vector< const MaterialProperty< Real > * > _prop_dFa
Derivatives of Fa and Fb with respect to arg[i].
Definition: DerivativeTwoPhaseMaterial.h:71
DerivativeTwoPhaseMaterial::_d2h
const MaterialProperty< Real > & _d2h
Definition: DerivativeTwoPhaseMaterial.h:52
DerivativeTwoPhaseMaterial::_dg
const MaterialProperty< Real > & _dg
Definition: DerivativeTwoPhaseMaterial.h:59
DerivativeTwoPhaseMaterial::_prop_d2Fb
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_d2Fb
Definition: DerivativeTwoPhaseMaterial.h:74
DerivativeTwoPhaseMaterial::_d3h
const MaterialProperty< Real > & _d3h
Definition: DerivativeTwoPhaseMaterial.h:53
DerivativeTwoPhaseMaterial::_prop_Fa
const MaterialProperty< Real > & _prop_Fa
Function value of the A and B phase.
Definition: DerivativeTwoPhaseMaterial.h:68
validParams< DerivativeTwoPhaseMaterial >
InputParameters validParams< DerivativeTwoPhaseMaterial >()
Definition: DerivativeTwoPhaseMaterial.C:16
DerivativeTwoPhaseMaterial::computeD2F
virtual Real computeD2F(unsigned int i_var, unsigned int j_var) override
Definition: DerivativeTwoPhaseMaterial.C:134
DerivativeTwoPhaseMaterial::initialSetup
virtual void initialSetup() override
Definition: DerivativeTwoPhaseMaterial.C:109
DerivativeTwoPhaseMaterial::_eta
const VariableValue & _eta
Phase parameter (0=A-phase, 1=B-phase)
Definition: DerivativeTwoPhaseMaterial.h:40
DerivativeTwoPhaseMaterial
DerivativeMaterial child class to evaluate a parsed function for the free energy and automatically pr...
Definition: DerivativeTwoPhaseMaterial.h:26
DerivativeTwoPhaseMaterial::_prop_d3Fa
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _prop_d3Fa
Third derivatives of Fa and Fb.
Definition: DerivativeTwoPhaseMaterial.h:77