https://mooseframework.inl.gov
Loading...
Searching...
No Matches
BinaryDiffusionCoefMaterial.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#include "FluidProperties.h"
14#include "PhysicalConstants.h"
15#include "THMNames.h"
16
18
21{
23
24 params.addRequiredParam<UserObjectName>("vapor_mixture_fp",
25 "The VaporMixtureFluidProperties object");
26 params.addRequiredParam<Real>("primary_collision_diameter",
27 "Collision diameter for the first gas component [m]");
28 params.addRequiredParam<Real>("secondary_collision_diameter",
29 "Collision diameter for the second gas component [m]");
30 params.addClassDescription("Computes the Stefan-Maxwell binary diffusion coefficient.");
31
32 return params;
33}
34
36 : Material(parameters),
37
38 _fp_mix(getUserObject<VaporMixtureFluidProperties>("vapor_mixture_fp")),
39 _fp1(_fp_mix.getPrimaryFluidProperties()),
40 _fp2(_fp_mix.getSecondaryFluidProperties()),
41
42 _M1(_fp1.molarMass()),
43 _M2(_fp2.molarMass()),
44
45 _collision_diam1(getParam<Real>("primary_collision_diameter")),
46 _collision_diam2(getParam<Real>("secondary_collision_diameter")),
47 _collision_diam(0.5 * (_collision_diam1 + _collision_diam2)),
48
49 _p(getADMaterialProperty<Real>(THM::PRESSURE)),
50 _T(getADMaterialProperty<Real>(THM::TEMPERATURE)),
51
52 _diff_coef(declareADProperty<Real>(THM::MASS_DIFFUSION_COEFFICIENT))
53{
54}
55
56void
58{
59 using std::sqrt, std::pow;
60
63 1.0 / (libMesh::pi * pow(_collision_diam, 2) * conc) *
64 sqrt(2.0 * FluidProperties::_R * _T[_qp] / libMesh::pi * (1.0 / _M1 + 1.0 / _M2));
65}
DualNumber< Real, DNDerivativeType, true > ADReal
registerMooseObject("ThermalHydraulicsApp", BinaryDiffusionCoefMaterial)
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Computes the Stefan-Maxwell binary diffusion coefficient.
BinaryDiffusionCoefMaterial(const InputParameters &parameters)
const ADMaterialProperty< Real > & _p
ADMaterialProperty< Real > & _diff_coef
virtual void computeQpProperties() override
const ADMaterialProperty< Real > & _T
static const Real _R
Universal gas constant (J/mol/K)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
unsigned int _qp
static InputParameters validParams()
Base class for fluid properties of vapor mixtures.
const auto boltzmann_constant
const Real pi