https://mooseframework.inl.gov
KKSPhaseConcentrationMultiPhaseMaterial.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 
13 #include "NestedSolve.h"
14 
16 {
17 public:
19 
21 
22 protected:
23  virtual void initQpStatefulProperties() override;
24  virtual void initialSetup() override;
25  virtual void computeQpProperties() override;
26 
28  const std::vector<const VariableValue *> _prop_c;
29 
31  const unsigned int _num_c;
32 
34  const unsigned int _num_j;
35 
37  std::vector<MaterialPropertyName> _hj_names;
38  std::vector<const MaterialProperty<Real> *> _prop_hj;
40 
42  const std::vector<MaterialName> _Fj_names;
43  std::vector<const MaterialProperty<Real> *> _prop_Fi;
45 
47  std::vector<MaterialPropertyName> _ci_names;
48  std::vector<MaterialProperty<Real> *> _prop_ci;
49  std::vector<const MaterialProperty<Real> *> _ci_old;
50  std::vector<Real> _ci_IC;
52 
54  std::vector<std::vector<const MaterialProperty<Real> *>> _dFidci;
56 
59  std::vector<std::vector<std::vector<const MaterialProperty<Real> *>>> _d2Fidcidbi;
61 
63  const std::vector<VariableName> _args_names;
64 
66  const unsigned int _n_args;
67 
69  std::vector<std::vector<const MaterialProperty<Real> *>> _dFidarg;
71 
74  std::vector<std::vector<const MaterialProperty<Real> *>> _d2F1dc1darg;
76 
79 
81  const Real _abs_tol;
82  const Real _rel_tol;
84 
86  const bool _damped_newton;
87 
89  MaterialName _condition_name;
93 
96 
98  std::vector<MaterialBase *> _Fj_mat;
99 };
NestedSolve _nested_solve
Instantiation of the NestedSolve class.
const Real _abs_tol
Absolute and relative tolerance of nested Newton iteration.
std::vector< MaterialBase * > _Fj_mat
Free energy instantiation of the MaterialBase class.
const std::vector< MaterialName > _Fj_names
Free energies.
std::vector< MaterialPropertyName > _hj_names
Switching functions.
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidci
Derivative of free energies wrt phase concentrations .
std::vector< MaterialPropertyName > _ci_names
Phase concentrations.
MaterialName _condition_name
Condition that must be violated for damping to occur.
const bool _damped_newton
Check whether to use damping.
std::vector< std::vector< const MaterialProperty< Real > * > > _d2F1dc1darg
std::vector< MaterialProperty< Real > * > _prop_ci
std::vector< const MaterialProperty< Real > * > _ci_old
std::vector< const MaterialProperty< Real > * > _prop_hj
std::vector< const MaterialProperty< Real > * > _prop_Fi
const std::vector< VariableName > _args_names
Coupled variables of free energies.
const unsigned int _num_c
Number of global concentrations.
KKSPhaseConcentrationMultiPhaseMaterial(const InputParameters &parameters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const unsigned int _n_args
Number of coupled variables of free energies.
const InputParameters & parameters() const
MaterialProperty< Real > & _iter
Number of nested Newton iteration.
std::vector< std::vector< const MaterialProperty< Real > * > > _dFidarg
Derivative of free energies wrt coupled variables .
const unsigned int _num_j
Number of phase parameters.
const std::vector< const VariableValue * > _prop_c
Global concentrations.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d2Fidcidbi