https://mooseframework.inl.gov
VaporMixtureInterface.h
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 
10 #pragma once
11 
12 #include "InputParameters.h"
13 #include "InitialCondition.h"
15 
16 template <typename T = InitialCondition>
18 
22 template <class T>
23 class VaporMixtureInterface : public T
24 {
25 public:
26  VaporMixtureInterface(const InputParameters & parameters);
27 
28 protected:
32  std::vector<Real> getMassFractionVector() const;
33 
37  const unsigned int _n_secondary_vapors;
39  const std::vector<const VariableValue *> _x_secondary_vapors;
40 
41 public:
43 };
44 
45 template <class T>
48 {
50 
51  params.addRequiredCoupledVar("x_secondary_vapors", "Mass fractions of secondary vapors");
52  params.addRequiredParam<UserObjectName>("fp_vapor_mixture",
53  "Vapor mixture fluid properties user object name");
54 
55  return params;
56 }
57 
58 template <class T>
60  : T(parameters),
61  _fp_vapor_mixture(T::template getUserObject<VaporMixtureFluidProperties>("fp_vapor_mixture")),
62  _n_secondary_vapors(T::coupledComponents("x_secondary_vapors")),
63  _x_secondary_vapors(T::coupledValues("x_secondary_vapors"))
64 {
65 }
66 
67 template <class T>
68 std::vector<Real>
70 {
71  std::vector<Real> x_secondary_vapors(_n_secondary_vapors);
72  for (unsigned int i = 0; i < _n_secondary_vapors; ++i)
73  x_secondary_vapors[i] = (*_x_secondary_vapors[i])[T::_qp];
74  return x_secondary_vapors;
75 }
Base class for fluid properties of vapor mixtures.
const std::vector< const VariableValue * > _x_secondary_vapors
Mass fractions of secondary vapors.
std::vector< Real > getMassFractionVector() const
Gets the vector of mass fractions of each secondary vapor, at a quadrature point. ...
Interface for calculations involving vapor mixtures.
const VaporMixtureFluidProperties & _fp_vapor_mixture
Vapor mixture fluid properties.
void addRequiredParam(const std::string &name, const std::string &doc_string)
InputParameters emptyInputParameters()
const unsigned int _n_secondary_vapors
Number of secondary vapors.
VaporMixtureInterface(const InputParameters &parameters)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
static InputParameters validParams()