https://mooseframework.inl.gov
Loading...
Searching...
No Matches
KKSPhaseConcentrationMaterial.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{
17public:
19
21
22protected:
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
35
37 const std::vector<MaterialPropertyName> _ci_names;
38 std::vector<MaterialProperty<Real> *> _prop_ci;
39 std::vector<const MaterialProperty<Real> *> _ci_old;
40 const std::vector<Real> _ci_IC;
42
44 const MaterialName _Fa_name;
45 const MaterialName _Fb_name;
46 std::vector<const MaterialProperty<Real> *> _prop_Fi;
47 std::vector<MaterialProperty<Real> *> _Fi_copy;
49
51 std::vector<const MaterialProperty<Real> *> _dFidci;
52 std::vector<MaterialProperty<Real> *> _dFidci_copy;
54
57 std::vector<std::vector<std::vector<const MaterialProperty<Real> *>>> _d2Fidcidbi;
58 std::vector<std::vector<MaterialProperty<Real> *>> _d2Fadc1db1_copy;
60
62 const std::vector<VariableName> _args_names;
63
65 const unsigned int _n_args;
66
68 std::vector<const MaterialProperty<Real> *> _dFadarg;
69 std::vector<MaterialProperty<Real> *> _dFadarg_copy;
71
73 std::vector<const MaterialProperty<Real> *> _dFbdarg;
74 std::vector<MaterialProperty<Real> *> _dFbdarg_copy;
76
79 std::vector<std::vector<const MaterialProperty<Real> *>> _d2Fadcadarg;
80 std::vector<std::vector<MaterialProperty<Real> *>> _d2Fadcadarg_copy;
82
85
87 const Real _abs_tol;
88 const Real _rel_tol;
90
92 const bool _damped_newton;
93
95 MaterialName _condition_name;
99
102
107};
std::vector< MaterialProperty< Real > * > _prop_ci
MaterialBase * _Fa
Free energy instantiation of the MaterialBase class.
const std::vector< const VariableValue * > _prop_c
Global concentrations.
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d2Fidcidbi
const MaterialProperty< Real > * _C
std::vector< const MaterialProperty< Real > * > _prop_Fi
std::vector< const MaterialProperty< Real > * > _ci_old
std::vector< std::vector< MaterialProperty< Real > * > > _d2Fadc1db1_copy
std::vector< const MaterialProperty< Real > * > _dFadarg
Derivative of free energies wrt coupled variables .
MaterialProperty< Real > & _iter
Number of nested Newton iteration.
const unsigned int _n_args
Number of coupled variables of free energies.
std::vector< const MaterialProperty< Real > * > _dFbdarg
Derivative of free energies wrt coupled variables .
const bool _damped_newton
Add damping functionality to nested Newton solve.
std::vector< MaterialProperty< Real > * > _dFadarg_copy
const unsigned int _num_c
Number of global concentrations.
const MaterialName _Fa_name
Free energies.
std::vector< MaterialProperty< Real > * > _dFidci_copy
const Real _abs_tol
Absolute and relative tolerance of nested Newton iteration.
std::vector< std::vector< const MaterialProperty< Real > * > > _d2Fadcadarg
const std::vector< MaterialPropertyName > _ci_names
Phase concentrations.
std::vector< std::vector< MaterialProperty< Real > * > > _d2Fadcadarg_copy
std::vector< MaterialProperty< Real > * > _dFbdarg_copy
NestedSolve _nested_solve
Instantiation of the NestedSolve class.
std::vector< MaterialProperty< Real > * > _Fi_copy
const MaterialProperty< Real > & _prop_h
Switching functions.
const std::vector< VariableName > _args_names
Coupled variables of free energies.
MaterialName _condition_name
Material property that defines the confidence bounds for the newton solve.
std::vector< const MaterialProperty< Real > * > _dFidci
Derivative of free energies wrt phase concentrations .