Enforce sum of phase sublattice concentrations to be the real concentration. More...
#include <SLKKSMultiPhaseConcentration.h>
Public Types | |
typedef DerivativeMaterialPropertyNameInterface::SymbolName | SymbolName |
Public Member Functions | |
SLKKSMultiPhaseConcentration (const InputParameters ¶meters) | |
const GenericMaterialProperty< U, is_ad > & | getDefaultMaterialProperty (const std::string &name) |
const GenericMaterialProperty< U, is_ad > & | getDefaultMaterialPropertyByName (const std::string &name) |
void | validateDerivativeMaterialPropertyBase (const std::string &base) |
const MaterialPropertyName | derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
GenericMaterialProperty< U, is_ad > & | declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) |
const GenericMaterialProperty< U, is_ad > & | getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="") |
void | validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true) |
void | validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true) |
void | validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
void | validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="") |
const MaterialPropertyName | propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const |
const MaterialPropertyName | propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const |
const MaterialPropertyName | propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const |
const MaterialPropertyName | propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
const MaterialPropertyName | propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const |
Static Public Member Functions | |
static InputParameters | validParams () |
Protected Member Functions | |
virtual Real | precomputeQpResidual () |
virtual Real | precomputeQpJacobian () |
virtual Real | computeQpOffDiagJacobian (unsigned int jvar) |
Protected Attributes | |
int | _l |
Position of the nonlinear variable in the cs list. More... | |
std::vector< unsigned int > | _ns |
Number of sublattices per phase. More... | |
std::vector< Real > | _a_cs |
Sublattice site numbers. More... | |
std::vector< unsigned int > | _phase |
phase index of each cs entry More... | |
const VariableValue & | _c |
Physical concentration. More... | |
const unsigned int | _c_var |
std::vector< const MaterialProperty< Real > * > | _prop_h |
Switching functions for each phase and their derivatives w.r.t. all etas. More... | |
std::vector< std::vector< const MaterialProperty< Real > * > > | _prop_dhdeta |
const std::size_t | _ncs |
Sublattice concentrations. More... | |
std::vector< const VariableValue * > | _cs |
const JvarMap & | _cs_map |
const std::size_t | _neta |
Order parameters for each phase \( \eta_j \). More... | |
std::vector< VariableName > | _eta_names |
const JvarMap & | _eta_map |
std::vector< MaterialPropertyName > | _h_names |
Switching function names. More... | |
const std::size_t | _nh |
Enforce sum of phase sublattice concentrations to be the real concentration.
D. Schwen et al. https://doi.org/10.1016/j.commatsci.2021.110466
Definition at line 20 of file SLKKSMultiPhaseConcentration.h.
SLKKSMultiPhaseConcentration::SLKKSMultiPhaseConcentration | ( | const InputParameters & | parameters | ) |
Definition at line 26 of file SLKKSMultiPhaseConcentration.C.
Definition at line 77 of file SLKKSMultiPhaseConcentration.C.
|
protectedvirtual |
Definition at line 71 of file SLKKSMultiPhaseConcentration.C.
|
protectedvirtual |
Definition at line 51 of file SLKKSMultiPhaseConcentration.C.
|
static |
Definition at line 15 of file SLKKSMultiPhaseConcentration.C.
|
protectedinherited |
Sublattice site numbers.
Definition at line 46 of file SLKKSMultiPhaseBase.h.
Referenced by computeQpOffDiagJacobian(), SLKKSMultiACBulkC::computeQpOffDiagJacobian(), precomputeQpJacobian(), SLKKSMultiACBulkC::precomputeQpJacobian(), precomputeQpResidual(), SLKKSMultiACBulkC::precomputeQpResidual(), and SLKKSMultiPhaseBase::SLKKSMultiPhaseBase().
|
protectedinherited |
Physical concentration.
Definition at line 57 of file SLKKSMultiPhaseBase.h.
Referenced by precomputeQpResidual().
|
protectedinherited |
Definition at line 58 of file SLKKSMultiPhaseBase.h.
Referenced by computeQpOffDiagJacobian(), and SLKKSMultiACBulkC::SLKKSMultiACBulkC().
|
protectedinherited |
|
protectedinherited |
Definition at line 33 of file SLKKSMultiPhaseBase.h.
Referenced by computeQpOffDiagJacobian(), and SLKKSMultiACBulkC::computeQpOffDiagJacobian().
|
protectedinherited |
Definition at line 42 of file SLKKSMultiPhaseBase.h.
Referenced by computeQpOffDiagJacobian(), and SLKKSMultiACBulkC::computeQpOffDiagJacobian().
|
protectedinherited |
Definition at line 41 of file SLKKSMultiPhaseBase.h.
Referenced by SLKKSMultiACBulkC::SLKKSMultiACBulkC(), SLKKSMultiPhaseBase::SLKKSMultiPhaseBase(), and SLKKSMultiPhaseConcentration().
|
protectedinherited |
Switching function names.
Definition at line 49 of file SLKKSMultiPhaseBase.h.
Referenced by SLKKSMultiACBulkC::SLKKSMultiACBulkC(), and SLKKSMultiPhaseConcentration().
|
protected |
Position of the nonlinear variable in the cs list.
Definition at line 33 of file SLKKSMultiPhaseConcentration.h.
Referenced by precomputeQpJacobian(), and SLKKSMultiPhaseConcentration().
|
protectedinherited |
Sublattice concentrations.
Definition at line 31 of file SLKKSMultiPhaseBase.h.
Referenced by computeQpOffDiagJacobian(), SLKKSMultiACBulkC::SLKKSMultiACBulkC(), SLKKSMultiPhaseBase::SLKKSMultiPhaseBase(), and SLKKSMultiPhaseConcentration().
|
protectedinherited |
Order parameters for each phase \( \eta_j \).
Definition at line 40 of file SLKKSMultiPhaseBase.h.
Referenced by SLKKSMultiACBulkC::SLKKSMultiACBulkC(), SLKKSMultiPhaseBase::SLKKSMultiPhaseBase(), and SLKKSMultiPhaseConcentration().
|
protectedinherited |
Definition at line 50 of file SLKKSMultiPhaseBase.h.
Referenced by SLKKSMultiACBulkC::computeQpOffDiagJacobian(), SLKKSMultiACBulkC::precomputeQpJacobian(), precomputeQpResidual(), SLKKSMultiACBulkC::precomputeQpResidual(), SLKKSMultiACBulkC::SLKKSMultiACBulkC(), SLKKSMultiPhaseBase::SLKKSMultiPhaseBase(), and SLKKSMultiPhaseConcentration().
|
protectedinherited |
Number of sublattices per phase.
Definition at line 37 of file SLKKSMultiPhaseBase.h.
Referenced by SLKKSMultiACBulkC::computeQpOffDiagJacobian(), SLKKSMultiACBulkC::precomputeQpJacobian(), precomputeQpResidual(), SLKKSMultiACBulkC::precomputeQpResidual(), and SLKKSMultiPhaseBase::SLKKSMultiPhaseBase().
|
protectedinherited |
phase index of each cs entry
Definition at line 54 of file SLKKSMultiPhaseBase.h.
Referenced by computeQpOffDiagJacobian(), SLKKSMultiACBulkC::computeQpOffDiagJacobian(), precomputeQpJacobian(), SLKKSMultiACBulkC::SLKKSMultiACBulkC(), and SLKKSMultiPhaseBase::SLKKSMultiPhaseBase().
|
protected |
Definition at line 37 of file SLKKSMultiPhaseConcentration.h.
Referenced by computeQpOffDiagJacobian(), and SLKKSMultiPhaseConcentration().
|
protected |
Switching functions for each phase and their derivatives w.r.t. all etas.
Definition at line 36 of file SLKKSMultiPhaseConcentration.h.
Referenced by computeQpOffDiagJacobian(), precomputeQpJacobian(), precomputeQpResidual(), and SLKKSMultiPhaseConcentration().