www.mooseframework.org
DerivativeMultiPhaseBase.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 DerivativeMultiPhaseBase : public DerivativeFunctionMaterialBase
27 {
28 public:
29  DerivativeMultiPhaseBase(const InputParameters & parameters);
30 
31  virtual void initialSetup();
32 
33 protected:
34  virtual Real computeF();
35 
40  std::vector<int> _eta_index;
41 
43  std::vector<VariableValue *> _etas;
44 
46  unsigned int _num_etas;
47  std::vector<VariableName> _eta_names;
48  std::vector<unsigned int> _eta_vars;
49 
51  std::vector<MaterialPropertyName> _fi_names;
52  unsigned int _num_fi;
53 
55  std::vector<const MaterialProperty<Real> *> _prop_Fi;
56 
58  std::vector<std::vector<const MaterialProperty<Real> *>> _prop_dFi;
59 
61  std::vector<std::vector<std::vector<const MaterialProperty<Real> *>>> _prop_d2Fi;
62 
64  std::vector<std::vector<std::vector<std::vector<const MaterialProperty<Real> *>>>> _prop_d3Fi;
65 
67  std::vector<MaterialPropertyName> _hi_names;
68  unsigned int _num_hi;
69 
71  std::vector<const MaterialProperty<Real> *> _hi;
72 
74  MaterialPropertyName _g_name;
75 
77  const MaterialProperty<Real> & _g;
78 
80  std::vector<const MaterialProperty<Real> *> _dg;
81  std::vector<std::vector<const MaterialProperty<Real> *>> _d2g;
82  std::vector<std::vector<std::vector<const MaterialProperty<Real> *>>> _d3g;
83 
85  Real _W;
86 };
87 
DerivativeMultiPhaseBase::_eta_names
std::vector< VariableName > _eta_names
Definition: DerivativeMultiPhaseBase.h:47
DerivativeMultiPhaseBase::_hi
std::vector< const MaterialProperty< Real > * > _hi
Switching functions.
Definition: DerivativeMultiPhaseBase.h:71
DerivativeMultiPhaseBase::_num_etas
unsigned int _num_etas
name of the order parameter variable
Definition: DerivativeMultiPhaseBase.h:46
DerivativeMultiPhaseBase::_dg
std::vector< const MaterialProperty< Real > * > _dg
Barrier function derivatives.
Definition: DerivativeMultiPhaseBase.h:80
DerivativeMultiPhaseBase::_eta_vars
std::vector< unsigned int > _eta_vars
Definition: DerivativeMultiPhaseBase.h:48
validParams< DerivativeMultiPhaseBase >
InputParameters validParams< DerivativeMultiPhaseBase >()
Definition: DerivativeMultiPhaseBase.C:14
DerivativeMultiPhaseBase::_d3g
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d3g
Definition: DerivativeMultiPhaseBase.h:82
DerivativeMultiPhaseBase::initialSetup
virtual void initialSetup()
Definition: DerivativeMultiPhaseBase.C:133
DerivativeMultiPhaseBase
DerivativeMaterial child class to evaluate a parsed function for the free energy and automatically pr...
Definition: DerivativeMultiPhaseBase.h:26
DerivativeMultiPhaseBase::_num_hi
unsigned int _num_hi
Definition: DerivativeMultiPhaseBase.h:68
DerivativeMultiPhaseBase::_prop_d2Fi
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _prop_d2Fi
Second derivatives of Fi.
Definition: DerivativeMultiPhaseBase.h:61
DerivativeMultiPhaseBase::_num_fi
unsigned int _num_fi
Definition: DerivativeMultiPhaseBase.h:52
DerivativeMultiPhaseBase::_prop_dFi
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_dFi
Derivatives of Fi w.r.t. arg[i].
Definition: DerivativeMultiPhaseBase.h:58
DerivativeMultiPhaseBase::_fi_names
std::vector< MaterialPropertyName > _fi_names
phase derivative material names
Definition: DerivativeMultiPhaseBase.h:51
DerivativeMultiPhaseBase::_prop_d3Fi
std::vector< std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > > _prop_d3Fi
Third derivatives of Fi.
Definition: DerivativeMultiPhaseBase.h:64
DerivativeMultiPhaseBase::_W
Real _W
Phase transformation energy barrier.
Definition: DerivativeMultiPhaseBase.h:85
DerivativeMultiPhaseBase::_hi_names
std::vector< MaterialPropertyName > _hi_names
phase switching function names
Definition: DerivativeMultiPhaseBase.h:67
DerivativeMultiPhaseBase::computeF
virtual Real computeF()
Definition: DerivativeMultiPhaseBase.C:140
DerivativeMultiPhaseBase::DerivativeMultiPhaseBase
DerivativeMultiPhaseBase(const InputParameters &parameters)
Definition: DerivativeMultiPhaseBase.C:39
DerivativeMultiPhaseBase::_prop_Fi
std::vector< const MaterialProperty< Real > * > _prop_Fi
Function value of the i phase.
Definition: DerivativeMultiPhaseBase.h:55
DerivativeMultiPhaseBase::_g
const MaterialProperty< Real > & _g
Barrier function .
Definition: DerivativeMultiPhaseBase.h:77
DerivativeMultiPhaseBase::_etas
std::vector< VariableValue * > _etas
Phase parameter (0=A-phase, 1=B-phase)
Definition: DerivativeMultiPhaseBase.h:43
DerivativeMultiPhaseBase::_eta_index
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...
Definition: DerivativeMultiPhaseBase.h:40
DerivativeMultiPhaseBase::_d2g
std::vector< std::vector< const MaterialProperty< Real > * > > _d2g
Definition: DerivativeMultiPhaseBase.h:81
DerivativeMultiPhaseBase::_g_name
MaterialPropertyName _g_name
Barrier function name.
Definition: DerivativeMultiPhaseBase.h:74