https://mooseframework.inl.gov
Loading...
Searching...
No Matches
CHSplitConcentration.C
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
11
13
16{
19 "Concentration kernel in Split Cahn-Hilliard that solves chemical potential in a weak form");
20 params.addRequiredParam<MaterialPropertyName>("mobility", "Mobility property name");
21 params.addRequiredCoupledVar("chemical_potential_var", "Chemical potential variable");
22 return params;
23}
24
27 _mobility_name(getParam<MaterialPropertyName>("mobility")),
28 _mobility(getMaterialProperty<RealTensorValue>(_mobility_name)),
29 _dmobility_dc(getMaterialPropertyDerivative<RealTensorValue>(_mobility_name, name())),
30 _mu_var(coupled("chemical_potential_var")),
31 _grad_mu(coupledGradient("chemical_potential_var"))
32{
33}
34
35Real
37{
38 const RealVectorValue a = _mobility[_qp] * _grad_mu[_qp];
39 return _grad_test[_i][_qp] * a;
40}
41
42Real
44{
45 const RealVectorValue a = _dmobility_dc[_qp] * _grad_mu[_qp];
46 return _grad_test[_i][_qp] * a * _phi[_j][_qp];
47}
48
49Real
51{
52 if (jvar == _mu_var)
53 {
54 const RealVectorValue a = _mobility[_qp] * _grad_phi[_j][_qp];
55 return _grad_test[_i][_qp] * a;
56 }
57 else
58 return 0.0;
59}
registerMooseObject("PhaseFieldApp", CHSplitConcentration)
const std::string name
Definition Setup.h:21
Solves Cahn-Hilliard equation using chemical potential as non-linear variable.
virtual Real computeQpResidual()
virtual Real computeQpOffDiagJacobian(unsigned int)
const MaterialProperty< RealTensorValue > & _dmobility_dc
CHSplitConcentration(const InputParameters &parameters)
const unsigned int _mu_var
Chemical potential variable.
virtual Real computeQpJacobian()
const MaterialProperty< RealTensorValue > & _mobility
static InputParameters validParams()
const VariableGradient & _grad_mu
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
static InputParameters validParams()