https://mooseframework.inl.gov
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 {
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 
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 };
virtual void initQpStatefulProperties() override
std::vector< std::vector< MaterialProperty< Real > * > > _d2Fadcadarg_copy
std::vector< MaterialProperty< Real > * > _dFidci_copy
KKSPhaseConcentrationMaterial(const InputParameters &parameters)
const Real _abs_tol
Absolute and relative tolerance of nested Newton iteration.
std::vector< const MaterialProperty< Real > * > _prop_Fi
const unsigned int _n_args
Number of coupled variables of free energies.
const MaterialName _Fa_name
Free energies.
const std::vector< const VariableValue * > _prop_c
Global concentrations.
MaterialBase * _Fa
Free energy instantiation of the MaterialBase class.
std::vector< const MaterialProperty< Real > * > _ci_old
const unsigned int _num_c
Number of global concentrations.
std::vector< const MaterialProperty< Real > * > _dFadarg
Derivative of free energies wrt coupled variables .
const bool _damped_newton
Add damping functionality to nested Newton solve.
NestedSolve _nested_solve
Instantiation of the NestedSolve class.
std::vector< std::vector< const MaterialProperty< Real > * > > _d2Fadcadarg
std::vector< MaterialProperty< Real > * > _dFadarg_copy
std::vector< std::vector< MaterialProperty< Real > * > > _d2Fadc1db1_copy
MaterialProperty< Real > & _iter
Number of nested Newton iteration.
std::vector< MaterialProperty< Real > * > _Fi_copy
const MaterialProperty< Real > & _prop_h
Switching functions.
MaterialName _condition_name
Material property that defines the confidence bounds for the newton solve.
std::vector< MaterialProperty< Real > * > _prop_ci
std::vector< std::vector< std::vector< const MaterialProperty< Real > * > > > _d2Fidcidbi
const std::vector< MaterialPropertyName > _ci_names
Phase concentrations.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & parameters() const
const std::vector< VariableName > _args_names
Coupled variables of free energies.
std::vector< const MaterialProperty< Real > * > _dFidci
Derivative of free energies wrt phase concentrations .
const MaterialProperty< Real > * _C
std::vector< MaterialProperty< Real > * > _dFbdarg_copy
std::vector< const MaterialProperty< Real > * > _dFbdarg
Derivative of free energies wrt coupled variables .