https://mooseframework.inl.gov
ADCHSplitConcentration.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 
10 #include "ADCHSplitConcentration.h"
11 
13 
16 {
18  params.addClassDescription("Concentration kernel in Split Cahn-Hilliard that solves chemical "
19  "potential in a weak form");
20  params.addRequiredCoupledVar("chemical_potential_var", "Chemical potential variable");
21  params.addRequiredParam<MaterialPropertyName>("mobility", "Mobility property name");
22  return params;
23 }
24 
26  : ADKernel(parameters),
27  _grad_mu(adCoupledGradient("chemical_potential_var")),
28  _mobility(getADMaterialProperty<Real>("mobility"))
29 {
30 }
31 
32 ADReal
34 {
35  return _mobility[_qp] * _grad_mu[_qp] * _grad_test[_i][_qp];
36 }
ADCHSplitConcentration(const InputParameters &parameters)
const ADTemplateVariableTestGradient< T > & _grad_test
Solves Cahn-Hilliard equation using chemical potential as non-linear variable.
const ADMaterialProperty< Real > & _mobility
DualNumber< Real, DNDerivativeType, true > ADReal
void addRequiredParam(const std::string &name, const std::string &doc_string)
const ADVariableGradient & _grad_mu
unsigned int _i
static InputParameters validParams()
registerMooseObject("PhaseFieldApp", ADCHSplitConcentration)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual ADReal computeQpResidual()
void addClassDescription(const std::string &doc_string)
unsigned int _qp