https://mooseframework.inl.gov
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 
17 registerMooseObject("ThermalHydraulicsApp", BinaryDiffusionCoefMaterial);
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 
56 void
58 {
60  _diff_coef[_qp] =
61  1.0 / (libMesh::pi * std::pow(_collision_diam, 2) * conc) *
62  std::sqrt(2.0 * FluidProperties::_R * _T[_qp] / libMesh::pi * (1.0 / _M1 + 1.0 / _M2));
63 }
Base class for fluid properties of vapor mixtures.
virtual void computeQpProperties() override
const ADMaterialProperty< Real > & _p
const auto boltzmann_constant
BinaryDiffusionCoefMaterial(const InputParameters &parameters)
static const Real _R
Universal gas constant (J/mol/K)
void addRequiredParam(const std::string &name, const std::string &doc_string)
unsigned int _qp
static InputParameters validParams()
registerMooseObject("ThermalHydraulicsApp", BinaryDiffusionCoefMaterial)
Computes the Stefan-Maxwell binary diffusion coefficient.
static InputParameters validParams()
static const std::string MASS_DIFFUSION_COEFFICIENT
Definition: THMNames.h:24
const ADMaterialProperty< Real > & _T
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void addClassDescription(const std::string &doc_string)
ADMaterialProperty< Real > & _diff_coef
MooseUnits pow(const MooseUnits &, int)
const Real pi