www.mooseframework.org
SplitCHCRes.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 #include "SplitCHCRes.h"
11 
14 {
16  params.addClassDescription("Split formulation Cahn-Hilliard Kernel");
17  params.addRequiredCoupledVar("w", "Chemical potential");
18  params.addRequiredParam<MaterialPropertyName>("kappa_name", "The kappa used with the kernel");
19  return params;
20 }
21 
23  : SplitCHBase(parameters),
24  _kappa(getMaterialProperty<Real>("kappa_name")),
25  _w_var(coupled("w")),
26  _w(coupledValue("w"))
27 {
28 }
29 
30 /*Real
31 SplitCHCRes::computeDFDC(PFFunctionType type)
32 {
33  switch (type)
34  {
35  case Residual:
36  return _u[_qp]*_u[_qp]*_u[_qp] - _u[_qp]; // return Residual value
37 
38  case Jacobian:
39  return (3.0*_u[_qp]*_u[_qp] - 1.0)*_phi[_j][_qp]; //return Jacobian value
40 
41  }
42 
43  mooseError("Invalid type passed in");
44 }*/
45 
46 Real
48 {
49  Real residual =
50  SplitCHBase::computeQpResidual(); //(f_prime_zero+e_prime)*_test[_i][_qp] from SplitCHBase
51 
52  residual += -_w[_qp] * _test[_i][_qp];
53  residual += _kappa[_qp] * _grad_u[_qp] * _grad_test[_i][_qp];
54 
55  return residual;
56 }
57 
58 Real
60 {
61  Real jacobian = SplitCHBase::computeQpJacobian(); //(df_prime_zero_dc+de_prime_dc)*_test[_i][_qp];
62  // from SplitCHBase
63 
64  jacobian += _kappa[_qp] * _grad_phi[_j][_qp] * _grad_test[_i][_qp];
65 
66  return jacobian;
67 }
68 
69 Real
71 {
72  if (jvar == _w_var)
73  {
74  return -_phi[_j][_qp] * _test[_i][_qp];
75  }
76 
77  return 0.0;
78 }
SplitCHCRes(const InputParameters &parameters)
Definition: SplitCHCRes.C:22
const VariableGradient & _grad_u
virtual Real computeQpResidual()
Definition: SplitCHBase.C:39
const MaterialProperty< Real > & _kappa
Definition: SplitCHCRes.h:29
const VariablePhiGradient & _grad_phi
static InputParameters validParams()
Definition: SplitCHCRes.C:13
void addRequiredParam(const std::string &name, const std::string &doc_string)
virtual Real computeQpJacobian()
Definition: SplitCHBase.C:50
const VariableTestValue & _test
static InputParameters validParams()
Definition: SplitCHBase.C:13
unsigned int _w_var
Definition: SplitCHCRes.h:30
unsigned int _i
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
Definition: SplitCHCRes.C:70
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
The couple, SplitCHBase and SplitCHWRes, splits the CH equation by replacing chemical potential with ...
Definition: SplitCHBase.h:17
unsigned int _j
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableTestGradient & _grad_test
void addClassDescription(const std::string &doc_string)
virtual Real computeQpJacobian()
Definition: SplitCHCRes.C:59
virtual Real computeQpResidual()
Definition: SplitCHCRes.C:47
const VariablePhiValue & _phi
const VariableValue & _w
Definition: SplitCHCRes.h:31
unsigned int _qp