www.mooseframework.org
SwitchingFunctionMultiPhaseMaterial.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 "Material.h"
13 #include "DerivativeMaterialInterface.h"
14 
15 // Forward Declarations
17 
18 template <>
20 
28 class SwitchingFunctionMultiPhaseMaterial : public DerivativeMaterialInterface<Material>
29 {
30 public:
31  SwitchingFunctionMultiPhaseMaterial(const InputParameters & parameters);
32 
33 protected:
34  virtual void computeQpProperties();
35 
37  MaterialPropertyName _h_name;
38 
40  unsigned int _num_eta_p;
41  std::vector<const VariableValue *> _eta_p;
42  std::vector<VariableName> _eta_p_names;
43 
45  unsigned int _num_eta;
46  std::vector<const VariableValue *> _eta;
47  std::vector<VariableName> _eta_names;
48 
50  std::vector<bool> _is_p;
51 
53  MaterialProperty<Real> & _prop_h;
54  std::vector<MaterialProperty<Real> *> _prop_dh;
55  std::vector<std::vector<MaterialProperty<Real> *>> _prop_d2h;
56 };
57 
SwitchingFunctionMultiPhaseMaterial::_prop_d2h
std::vector< std::vector< MaterialProperty< Real > * > > _prop_d2h
Definition: SwitchingFunctionMultiPhaseMaterial.h:55
SwitchingFunctionMultiPhaseMaterial::_eta_p_names
std::vector< VariableName > _eta_p_names
Definition: SwitchingFunctionMultiPhaseMaterial.h:42
SwitchingFunctionMultiPhaseMaterial::_num_eta
unsigned int _num_eta
Order parameters for all phases (including alpha)
Definition: SwitchingFunctionMultiPhaseMaterial.h:45
SwitchingFunctionMultiPhaseMaterial::_h_name
MaterialPropertyName _h_name
Name of the function.
Definition: SwitchingFunctionMultiPhaseMaterial.h:37
SwitchingFunctionMultiPhaseMaterial::_eta_p
std::vector< const VariableValue * > _eta_p
Definition: SwitchingFunctionMultiPhaseMaterial.h:41
SwitchingFunctionMultiPhaseMaterial::_eta_names
std::vector< VariableName > _eta_names
Definition: SwitchingFunctionMultiPhaseMaterial.h:47
SwitchingFunctionMultiPhaseMaterial
SwitchingFunctionMultiPhaseMaterial is a switching function for a multi-phase, multi-order parameter ...
Definition: SwitchingFunctionMultiPhaseMaterial.h:28
SwitchingFunctionMultiPhaseMaterial::_prop_h
MaterialProperty< Real > & _prop_h
Switching function and derivatives.
Definition: SwitchingFunctionMultiPhaseMaterial.h:53
SwitchingFunctionMultiPhaseMaterial::_is_p
std::vector< bool > _is_p
List of which order parameters in the full list of all etas belong to phase p.
Definition: SwitchingFunctionMultiPhaseMaterial.h:50
SwitchingFunctionMultiPhaseMaterial::computeQpProperties
virtual void computeQpProperties()
Definition: SwitchingFunctionMultiPhaseMaterial.C:81
validParams< SwitchingFunctionMultiPhaseMaterial >
InputParameters validParams< SwitchingFunctionMultiPhaseMaterial >()
Definition: SwitchingFunctionMultiPhaseMaterial.C:16
SwitchingFunctionMultiPhaseMaterial::_prop_dh
std::vector< MaterialProperty< Real > * > _prop_dh
Definition: SwitchingFunctionMultiPhaseMaterial.h:54
SwitchingFunctionMultiPhaseMaterial::_eta
std::vector< const VariableValue * > _eta
Definition: SwitchingFunctionMultiPhaseMaterial.h:46
SwitchingFunctionMultiPhaseMaterial::SwitchingFunctionMultiPhaseMaterial
SwitchingFunctionMultiPhaseMaterial(const InputParameters &parameters)
Definition: SwitchingFunctionMultiPhaseMaterial.C:28
SwitchingFunctionMultiPhaseMaterial::_num_eta_p
unsigned int _num_eta_p
Order parameters for phase alpha.
Definition: SwitchingFunctionMultiPhaseMaterial.h:40