www.mooseframework.org
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
KKSSplitCHCRes Class Reference

SplitCHBulk child class that takes all the necessary data from a KKSBaseMaterial. More...

#include <KKSSplitCHCRes.h>

Inheritance diagram for KKSSplitCHCRes:
[legend]

Public Member Functions

 KKSSplitCHCRes (const InputParameters &parameters)
 

Protected Member Functions

virtual Real computeDFDC (PFFunctionType type)
 Note that per product and chain rules: \( \frac{d}{du_j}\left(F(u)\nabla u\right) = \nabla u \frac {dF(u)}{du}\frac{du}{du_j} + F(u)\frac{d\nabla u}{du_j} \) which is: \( \nabla u \frac {dF(u)}{du} \phi_j + F(u) \nabla \phi_j \). More...
 
virtual Real computeQpOffDiagJacobian (unsigned int jvar)
 
virtual Real computeQpResidual ()
 
virtual void initialSetup ()
 

Private Attributes

unsigned int _nvar
 Number of coupled variables. More...
 
const MaterialProperty< Real > & _dFadca
 chemical potential More...
 
std::vector< const MaterialProperty< Real > * > _d2Fadcadarg
 Second derivatives of fa with respect to all ca and coupled variables. More...
 
unsigned int _w_var
 Chemical potential. More...
 
const VariableValue & _w
 
unsigned int _ca_var
 Phase concnetration variable. More...
 
VariableName _ca_name
 

Detailed Description

SplitCHBulk child class that takes all the necessary data from a KKSBaseMaterial.

We calculate \( \frac{\partial F_a}{\partial c_a} \). This takes advantage of the KKS identity

\( dF/dc = dF_a/dc_a (= dF_b/dc_b) \)

The non-linear variable for this Kernel is the concentration 'c'. The user picks one phase free energy \( F_a \) (f_base) and its corresponding phase concentration \( c_a \)

Definition at line 34 of file KKSSplitCHCRes.h.

Constructor & Destructor Documentation

◆ KKSSplitCHCRes()

KKSSplitCHCRes::KKSSplitCHCRes ( const InputParameters &  parameters)

Definition at line 34 of file KKSSplitCHCRes.C.

35  : DerivativeMaterialInterface<JvarMapKernelInterface<SplitCHBase>>(parameters),
36  _nvar(_coupled_moose_vars.size()),
37  _ca_var(coupled("ca")),
38  _ca_name(getVar("ca", 0)->name()),
39  _dFadca(getMaterialPropertyDerivative<Real>("fa_name", _ca_name)),
41  _w_var(coupled("w")),
42  _w(coupledValue("w"))
43 {
44  // Iterate over all coupled variables
45  for (unsigned int i = 0; i < _nvar; ++i)
46  {
47  // get the second derivative material property
48  const auto & var_name = this->_coupled_moose_vars[i]->name();
49  _d2Fadcadarg[i] = &getMaterialPropertyDerivative<Real>("fa_name", _ca_name, var_name);
50  }
51 }

Member Function Documentation

◆ computeDFDC()

Real KKSSplitCHCRes::computeDFDC ( PFFunctionType  type)
protectedvirtual

Note that per product and chain rules: \( \frac{d}{du_j}\left(F(u)\nabla u\right) = \nabla u \frac {dF(u)}{du}\frac{du}{du_j} + F(u)\frac{d\nabla u}{du_j} \) which is: \( \nabla u \frac {dF(u)}{du} \phi_j + F(u) \nabla \phi_j \).

Definition at line 77 of file KKSSplitCHCRes.C.

78 {
79  switch (type)
80  {
81  case Residual:
82  return _dFadca[_qp]; // dFa/dca ( = dFb/dcb = dF/dc)
83 
84  case Jacobian:
85  return 0.0;
86  }
87 
88  mooseError("Invalid type passed in");
89 }

◆ computeQpOffDiagJacobian()

Real KKSSplitCHCRes::computeQpOffDiagJacobian ( unsigned int  jvar)
protectedvirtual

Definition at line 92 of file KKSSplitCHCRes.C.

93 {
94  // treat w variable explicitly
95  if (jvar == _w_var)
96  return -_phi[_j][_qp] * _test[_i][_qp];
97 
98  // get the coupled variable jvar is referring to
99  const unsigned int cvar = mapJvarToCvar(jvar);
100  return _phi[_j][_qp] * _test[_i][_qp] * (*_d2Fadcadarg[cvar])[_qp];
101 }

◆ computeQpResidual()

Real KKSSplitCHCRes::computeQpResidual ( )
protectedvirtual

Definition at line 61 of file KKSSplitCHCRes.C.

62 {
63  Real residual = SplitCHBase::computeQpResidual();
64  residual += -_w[_qp] * _test[_i][_qp];
65 
66  return residual;
67 }

◆ initialSetup()

void KKSSplitCHCRes::initialSetup ( )
protectedvirtual

Definition at line 54 of file KKSSplitCHCRes.C.

55 {
56  validateNonlinearCoupling<Real>("fa_name");
57  validateDerivativeMaterialPropertyBase<Real>("fa_name");
58 }

Member Data Documentation

◆ _ca_name

VariableName KKSSplitCHCRes::_ca_name
private

Definition at line 51 of file KKSSplitCHCRes.h.

Referenced by KKSSplitCHCRes().

◆ _ca_var

unsigned int KKSSplitCHCRes::_ca_var
private

Phase concnetration variable.

Definition at line 50 of file KKSSplitCHCRes.h.

◆ _d2Fadcadarg

std::vector<const MaterialProperty<Real> *> KKSSplitCHCRes::_d2Fadcadarg
private

Second derivatives of fa with respect to all ca and coupled variables.

Definition at line 58 of file KKSSplitCHCRes.h.

Referenced by computeQpOffDiagJacobian(), and KKSSplitCHCRes().

◆ _dFadca

const MaterialProperty<Real>& KKSSplitCHCRes::_dFadca
private

chemical potential

Definition at line 55 of file KKSSplitCHCRes.h.

Referenced by computeDFDC().

◆ _nvar

unsigned int KKSSplitCHCRes::_nvar
private

Number of coupled variables.

Definition at line 47 of file KKSSplitCHCRes.h.

Referenced by KKSSplitCHCRes().

◆ _w

const VariableValue& KKSSplitCHCRes::_w
private

Definition at line 62 of file KKSSplitCHCRes.h.

Referenced by computeQpResidual().

◆ _w_var

unsigned int KKSSplitCHCRes::_w_var
private

Chemical potential.

Definition at line 61 of file KKSSplitCHCRes.h.

Referenced by computeQpOffDiagJacobian().


The documentation for this class was generated from the following files:
KKSSplitCHCRes::_d2Fadcadarg
std::vector< const MaterialProperty< Real > * > _d2Fadcadarg
Second derivatives of fa with respect to all ca and coupled variables.
Definition: KKSSplitCHCRes.h:58
SplitCHBase::computeQpResidual
virtual Real computeQpResidual()
Definition: SplitCHBase.C:40
KKSSplitCHCRes::_w
const VariableValue & _w
Definition: KKSSplitCHCRes.h:62
KKSSplitCHCRes::_w_var
unsigned int _w_var
Chemical potential.
Definition: KKSSplitCHCRes.h:61
KKSSplitCHCRes::_nvar
unsigned int _nvar
Number of coupled variables.
Definition: KKSSplitCHCRes.h:47
KKSSplitCHCRes::_ca_name
VariableName _ca_name
Definition: KKSSplitCHCRes.h:51
KKSSplitCHCRes::_ca_var
unsigned int _ca_var
Phase concnetration variable.
Definition: KKSSplitCHCRes.h:50
KKSSplitCHCRes::_dFadca
const MaterialProperty< Real > & _dFadca
chemical potential
Definition: KKSSplitCHCRes.h:55