www.mooseframework.org
Public Types | Public Member Functions | Protected Attributes | List of all members
VanDerWaalsFreeEnergy Class Reference

Material class that provides the free energy of a Van der Waals gas with the expression builder and uses automatic differentiation to get the derivatives. More...

#include <VanDerWaalsFreeEnergy.h>

Inheritance diagram for VanDerWaalsFreeEnergy:
[legend]

Public Types

typedef std::vector< EBTermEBTermList
 
typedef std::vector< EBTermNode * > EBTermNodeList
 
typedef std::vector< const EBSubstitutionRule * > EBSubstitutionRuleList
 

Public Member Functions

 VanDerWaalsFreeEnergy (const InputParameters &parameters)
 
 BINARYFUNC_OP_IMPLEMENT (+, ADD) BINARYFUNC_OP_IMPLEMENT(-
 
SUB BINARYFUNC_OP_IMPLEMENT MUL BINARYFUNC_OP_IMPLEMENT (/, DIV) BINARYFUNC_OP_IMPLEMENT(%
 
SUB BINARYFUNC_OP_IMPLEMENT MUL MOD BINARYFUNC_OP_IMPLEMENT (<, LESS) BINARYFUNC_OP_IMPLEMENT(>
 
SUB BINARYFUNC_OP_IMPLEMENT MUL MOD GREATER BINARYFUNC_OP_IMPLEMENT (<=, LESSEQ) BINARYFUNC_OP_IMPLEMENT(>
 
SUB BINARYFUNC_OP_IMPLEMENT MUL MOD GREATER GREATEREQ BINARYFUNC_OP_IMPLEMENT (==, EQ) BINARYFUNC_OP_IMPLEMENT(!
 

Protected Attributes

const Real _a
 Van der Waals coefficient a in [eV*Ang^3] (default units) More...
 
const Real _b
 
const Real _log_tol
 Taylor expansion threshold for the logarithm in the free energy. More...
 
const EBTerm _T
 Coupled variable value for the Temperature. More...
 
const EBTerm _c
 Coupled variable value for the concentration \( c \). More...
 
const Real _omega
 lattice site volume More...
 
const Real _m
 gas molecule mass in eV*s^2/Ang^2 More...
 
const EBTerm _n
 gas number density n = N/V = c/Omega (where Omega is the lattice site volume) More...
 
const EBTerm _nq
 quantum concentration More...
 
const Real _h
 physical constants More...
 
const Real _kB
 

Detailed Description

Material class that provides the free energy of a Van der Waals gas with the expression builder and uses automatic differentiation to get the derivatives.

Definition at line 25 of file VanDerWaalsFreeEnergy.h.

Member Typedef Documentation

◆ EBSubstitutionRuleList

typedef std::vector<const EBSubstitutionRule *> ExpressionBuilder::EBSubstitutionRuleList
inherited

Definition at line 60 of file ExpressionBuilder.h.

◆ EBTermList

typedef std::vector<EBTerm> ExpressionBuilder::EBTermList
inherited

Definition at line 57 of file ExpressionBuilder.h.

◆ EBTermNodeList

typedef std::vector<EBTermNode *> ExpressionBuilder::EBTermNodeList
inherited

Definition at line 59 of file ExpressionBuilder.h.

Constructor & Destructor Documentation

◆ VanDerWaalsFreeEnergy()

VanDerWaalsFreeEnergy::VanDerWaalsFreeEnergy ( const InputParameters &  parameters)

Definition at line 34 of file VanDerWaalsFreeEnergy.C.

35  : GasFreeEnergyBase(parameters),
36  _a(getParam<Real>("a")),
37  _b(getParam<Real>("b")),
38  _log_tol(getParam<Real>("log_tol"))
39 {
40  // Definition of the free energy for the expression builder
41  EBFunction free_energy;
42  free_energy(_c, _T) =
43  -_n * _kB * _T * (plog(_nq * (1.0 / _n - _b), _log_tol) + 1.0) - _n * _n * _a;
44 
45  // Parse function for automatic differentiation
46  functionParse(free_energy);
47 }
GasFreeEnergyBase(const InputParameters &parameters)
const Real _a
Van der Waals coefficient a in [eV*Ang^3] (default units)
const EBTerm _n
gas number density n = N/V = c/Omega (where Omega is the lattice site volume)
const EBTerm _nq
quantum concentration
const EBTerm _T
Coupled variable value for the Temperature.
const Real _log_tol
Taylor expansion threshold for the logarithm in the free energy.
const EBTerm _c
Coupled variable value for the concentration .

Member Function Documentation

◆ BINARYFUNC_OP_IMPLEMENT() [1/5]

ExpressionBuilder::BINARYFUNC_OP_IMPLEMENT ( ,
ADD   
)
inherited

◆ BINARYFUNC_OP_IMPLEMENT() [2/5]

SUB BINARYFUNC_OP_IMPLEMENT MUL ExpressionBuilder::BINARYFUNC_OP_IMPLEMENT ( ,
DIV   
)
inherited

◆ BINARYFUNC_OP_IMPLEMENT() [3/5]

SUB BINARYFUNC_OP_IMPLEMENT MUL MOD ExpressionBuilder::BINARYFUNC_OP_IMPLEMENT ( )
inherited

◆ BINARYFUNC_OP_IMPLEMENT() [4/5]

SUB BINARYFUNC_OP_IMPLEMENT MUL MOD GREATER ExpressionBuilder::BINARYFUNC_OP_IMPLEMENT ( <=  ,
LESSEQ   
)
inherited

◆ BINARYFUNC_OP_IMPLEMENT() [5/5]

SUB BINARYFUNC_OP_IMPLEMENT MUL MOD GREATER GREATEREQ ExpressionBuilder::BINARYFUNC_OP_IMPLEMENT ( EQ  )
inherited

Member Data Documentation

◆ _a

const Real VanDerWaalsFreeEnergy::_a
protected

Van der Waals coefficient a in [eV*Ang^3] (default units)

Data from "Physics", M. Alonso, E.J. Finn (ISBN-13: 978-0201565188): He: 0.0593 eV*Ang^3 = 0.0095e-48 Pa*m^6 * 6.241506363e+18 eV/(Pa*m^3) * 1e30 Ang^3/m^3 Ar: 2.3275 eV*Ang^3 Xe: 7.3138 eV*Ang^3 Hg: 14.1133 eV*Ang^3

Definition at line 40 of file VanDerWaalsFreeEnergy.h.

Referenced by VanDerWaalsFreeEnergy().

◆ _b

const Real VanDerWaalsFreeEnergy::_b
protected

Definition at line 50 of file VanDerWaalsFreeEnergy.h.

Referenced by VanDerWaalsFreeEnergy().

◆ _c

const EBTerm GasFreeEnergyBase::_c
protectedinherited

Coupled variable value for the concentration \( c \).

Definition at line 36 of file GasFreeEnergyBase.h.

Referenced by IdealGasFreeEnergy::IdealGasFreeEnergy(), and VanDerWaalsFreeEnergy().

◆ _h

const Real GasFreeEnergyBase::_h
protectedinherited

physical constants

Definition at line 45 of file GasFreeEnergyBase.h.

◆ _kB

const Real GasFreeEnergyBase::_kB
protectedinherited

◆ _log_tol

const Real VanDerWaalsFreeEnergy::_log_tol
protected

Taylor expansion threshold for the logarithm in the free energy.

Definition at line 53 of file VanDerWaalsFreeEnergy.h.

Referenced by VanDerWaalsFreeEnergy().

◆ _m

const Real GasFreeEnergyBase::_m
protectedinherited

gas molecule mass in eV*s^2/Ang^2

Definition at line 42 of file GasFreeEnergyBase.h.

◆ _n

const EBTerm GasFreeEnergyBase::_n
protectedinherited

gas number density n = N/V = c/Omega (where Omega is the lattice site volume)

Definition at line 50 of file GasFreeEnergyBase.h.

Referenced by IdealGasFreeEnergy::IdealGasFreeEnergy(), and VanDerWaalsFreeEnergy().

◆ _nq

const EBTerm GasFreeEnergyBase::_nq
protectedinherited

quantum concentration

Definition at line 53 of file GasFreeEnergyBase.h.

Referenced by IdealGasFreeEnergy::IdealGasFreeEnergy(), and VanDerWaalsFreeEnergy().

◆ _omega

const Real GasFreeEnergyBase::_omega
protectedinherited

lattice site volume

Definition at line 39 of file GasFreeEnergyBase.h.

◆ _T

const EBTerm GasFreeEnergyBase::_T
protectedinherited

Coupled variable value for the Temperature.

Definition at line 33 of file GasFreeEnergyBase.h.

Referenced by IdealGasFreeEnergy::IdealGasFreeEnergy(), and VanDerWaalsFreeEnergy().


The documentation for this class was generated from the following files: