www.mooseframework.org
CHSplitChemicalPotential.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 
11 
13 
14 template <>
15 InputParameters
17 {
18  InputParameters params = validParams<Kernel>();
19  params.addClassDescription("Chemical potential kernel in Split Cahn-Hilliard that solves "
20  "chemical potential in a weak form");
21  params.addRequiredParam<MaterialPropertyName>("chemical_potential_prop",
22  "Chemical potential property name");
23  params.addRequiredCoupledVar("c", "Concentration");
24  return params;
25 }
26 
27 CHSplitChemicalPotential::CHSplitChemicalPotential(const InputParameters & parameters)
28  : DerivativeMaterialInterface<Kernel>(parameters),
29  _mu_prop_name(getParam<MaterialPropertyName>("chemical_potential_prop")),
30  _chemical_potential(getMaterialProperty<Real>(_mu_prop_name)),
31  _dchemical_potential_dc(
32  getMaterialPropertyDerivative<Real>(_mu_prop_name, getVar("c", 0)->name())),
33  _c_var(coupled("c"))
34 {
35 }
36 
37 Real
39 {
40  return _test[_i][_qp] * (_u[_qp] - _chemical_potential[_qp]);
41 }
42 
43 Real
45 {
46  return _test[_i][_qp] * _phi[_j][_qp];
47 }
48 
49 Real
51 {
52  if (jvar == _c_var)
53  return -_test[_i][_qp] * _dchemical_potential_dc[_qp] * _phi[_j][_qp];
54  else
55  return 0.0;
56 }
registerMooseObject
registerMooseObject("PhaseFieldApp", CHSplitChemicalPotential)
CHSplitChemicalPotential::_dchemical_potential_dc
const MaterialProperty< Real > & _dchemical_potential_dc
Definition: CHSplitChemicalPotential.h:41
CHSplitChemicalPotential
Solves chemical potential in a weak sense (mu-mu_prop=0) Can be coupled to Cahn-Hilliard equation to ...
Definition: CHSplitChemicalPotential.h:27
CHSplitChemicalPotential::_chemical_potential
const MaterialProperty< Real > & _chemical_potential
Definition: CHSplitChemicalPotential.h:40
validParams< CHSplitChemicalPotential >
InputParameters validParams< CHSplitChemicalPotential >()
Definition: CHSplitChemicalPotential.C:16
CHSplitChemicalPotential::computeQpJacobian
virtual Real computeQpJacobian()
Definition: CHSplitChemicalPotential.C:44
CHSplitChemicalPotential::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
Definition: CHSplitChemicalPotential.C:50
CHSplitChemicalPotential::_c_var
const unsigned int _c_var
Definition: CHSplitChemicalPotential.h:42
name
const std::string name
Definition: Setup.h:21
CHSplitChemicalPotential::computeQpResidual
virtual Real computeQpResidual()
Definition: CHSplitChemicalPotential.C:38
CHSplitChemicalPotential::CHSplitChemicalPotential
CHSplitChemicalPotential(const InputParameters &parameters)
Definition: CHSplitChemicalPotential.C:27
CHSplitChemicalPotential.h