www.mooseframework.org
ComputeExtraStressVDWGas.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 
12 registerMooseObject("TensorMechanicsApp", ComputeExtraStressVDWGas);
13 
15 
16 InputParameters
18 {
19  InputParameters params = ComputeExtraStressBase::validParams();
20  params.addClassDescription(
21  "Computes a hydrostatic stress corresponding to the pressure of a van der Waals gas that is "
22  "added as an extra_stress to the stress computed by the constitutive model");
23  params.addRequiredParam<MaterialPropertyName>(
24  "b", "Hard-sphere exclusion volume of van der Waals gas atoms in nm^3");
25  params.addRequiredParam<MaterialPropertyName>("Va", "Atomic volume of lattice atoms in nm^3");
26  params.addRequiredParam<MaterialPropertyName>("T", "Temperature in K");
27  params.addRequiredCoupledVar("cg", "Gas concentration (relative to lattice atoms)");
28  params.addParam<Real>("nondim_factor",
29  1.0,
30  "Optional factor to non-dimensionalize pressure (pressure is calculated in "
31  "Pa, set this factor to characteristic energy density used for "
32  "non-dimensionalization if desired)");
33  return params;
34 }
35 
36 ComputeExtraStressVDWGas::ComputeExtraStressVDWGas(const InputParameters & parameters)
37  : ComputeExtraStressBase(parameters),
38  _b(getMaterialProperty<Real>("b")),
39  _Va(getMaterialProperty<Real>("Va")),
40  _T(getMaterialProperty<Real>("T")),
41  _cg(coupledValue("cg")),
42  _nondim_factor(getParam<Real>("nondim_factor")),
43  _kB(1.38064852e-23) // Boltzmann constant in J/K
44 {
45 }
46 
47 void
49 {
50  _extra_stress[_qp].zero();
51  _extra_stress[_qp].addIa(-_kB * _T[_qp] / (_Va[_qp] / _cg[_qp] - _b[_qp]) * 1.0e27 /
53 }
ComputeExtraStressVDWGas::ComputeExtraStressVDWGas
ComputeExtraStressVDWGas(const InputParameters &parameters)
Definition: ComputeExtraStressVDWGas.C:36
ComputeExtraStressVDWGas::_nondim_factor
const Real _nondim_factor
Definition: ComputeExtraStressVDWGas.h:38
ComputeExtraStressVDWGas::_Va
const MaterialProperty< Real > & _Va
Definition: ComputeExtraStressVDWGas.h:34
ComputeExtraStressVDWGas::_kB
const Real _kB
Definition: ComputeExtraStressVDWGas.h:39
ComputeExtraStressVDWGas::computeQpExtraStress
virtual void computeQpExtraStress()
Definition: ComputeExtraStressVDWGas.C:48
ComputeExtraStressBase::validParams
static InputParameters validParams()
Definition: ComputeExtraStressBase.C:15
ComputeExtraStressBase::_extra_stress
MaterialProperty< RankTwoTensor > & _extra_stress
Definition: ComputeExtraStressBase.h:38
ComputeExtraStressVDWGas
Computes a concentration-dependent ExtraStress bases on the van der Waals equation of state that is a...
Definition: ComputeExtraStressVDWGas.h:23
defineLegacyParams
defineLegacyParams(ComputeExtraStressVDWGas)
ComputeExtraStressVDWGas.h
ComputeExtraStressVDWGas::validParams
static InputParameters validParams()
Definition: ComputeExtraStressVDWGas.C:17
ComputeExtraStressVDWGas::_T
const MaterialProperty< Real > & _T
Definition: ComputeExtraStressVDWGas.h:35
ComputeExtraStressBase
ComputeExtraStressBase is the base class for extra_stress, which is added to stress calculated by the...
Definition: ComputeExtraStressBase.h:24
ComputeExtraStressVDWGas::_b
const MaterialProperty< Real > & _b
Definition: ComputeExtraStressVDWGas.h:33
registerMooseObject
registerMooseObject("TensorMechanicsApp", ComputeExtraStressVDWGas)
ComputeExtraStressVDWGas::_cg
const VariableValue & _cg
Definition: ComputeExtraStressVDWGas.h:37