From 5a20f4ddf1b209c2ad43b0c16e735bfc4ad8dec8 Mon Sep 17 00:00:00 2001 From: Sebastian Weiss <sebastian.weiss@ptb.de> Date: Tue, 25 Oct 2022 08:34:06 +0000 Subject: [PATCH] Upload New File --- .../mySpecie/thermo/H2Thermo/H2ThermoI.H | 234 ++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 src/thermophysicalModels/mySpecie/thermo/H2Thermo/H2ThermoI.H diff --git a/src/thermophysicalModels/mySpecie/thermo/H2Thermo/H2ThermoI.H b/src/thermophysicalModels/mySpecie/thermo/H2Thermo/H2ThermoI.H new file mode 100644 index 0000000..08e9e2e --- /dev/null +++ b/src/thermophysicalModels/mySpecie/thermo/H2Thermo/H2ThermoI.H @@ -0,0 +1,234 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | www.openfoam.com + \\/ M anipulation | +------------------------------------------------------------------------------- + Copyright (C) 2011-2017 OpenFOAM Foundation +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +template<class EquationOfState> +inline Foam::H2Thermo<EquationOfState>::H2Thermo +( + const EquationOfState& st +) +: + EquationOfState(st) +{} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template<class EquationOfState> +inline Foam::H2Thermo<EquationOfState>::H2Thermo +( + const word& name, + const H2Thermo& ct +) +: + EquationOfState(name, ct) +{} + + +template<class EquationOfState> +inline Foam::autoPtr<Foam::H2Thermo<EquationOfState>> +Foam::H2Thermo<EquationOfState>::clone() const +{ + return autoPtr<H2Thermo<EquationOfState>>::New(*this); +} + + +template<class EquationOfState> +inline Foam::autoPtr<Foam::H2Thermo<EquationOfState>> +Foam::H2Thermo<EquationOfState>::New(const dictionary& dict) +{ + return autoPtr<H2Thermo<EquationOfState>>::New(dict); +} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template<class EquationOfState> +inline Foam::scalar Foam::H2Thermo<EquationOfState>::limit +( + const scalar T +) const +{ + return T; +} + + +template<class EquationOfState> +inline Foam::scalar Foam::H2Thermo<EquationOfState>::Cp +( + const scalar p, + const scalar T +) const +{ + return EquationOfState::Cp(p, T); +} + + +template<class EquationOfState> +inline Foam::scalar Foam::H2Thermo<EquationOfState>::Ha +( + const scalar p, const scalar T +) const +{ + return Hs(p, T) + Hc(); +} + + +template<class EquationOfState> +inline Foam::scalar Foam::H2Thermo<EquationOfState>::Hs +( + const scalar p, const scalar T +) const +{ + return EquationOfState::H(p, T); +} + + +template<class EquationOfState> +inline Foam::scalar Foam::H2Thermo<EquationOfState>::Hc() const +{ + return 0.0; +} + + +template<class EquationOfState> +inline Foam::scalar Foam::H2Thermo<EquationOfState>::S +( + const scalar p, const scalar T +) const +{ + return EquationOfState::S(p, T); +} + + +template<class EquationOfState> +inline Foam::scalar Foam::H2Thermo<EquationOfState>::Gstd +( + const scalar T +) const +{ + return EquationOfState::H(Pstd, T) - T*EquationOfState::S(Pstd, T); +} + + +template<class EquationOfState> +inline Foam::scalar Foam::H2Thermo<EquationOfState>::dCpdT +( + const scalar p, const scalar T +) const +{ + return EquationOfState::dCpdT(p, T);; +} + +// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // + +template<class EquationOfState> +inline void Foam::H2Thermo<EquationOfState>::operator+= +( + const H2Thermo<EquationOfState>& ct +) +{ + scalar Y1 = this->Y(); + + EquationOfState::operator+=(ct); + + if (mag(this->Y()) > SMALL) + { + Y1 /= this->Y(); + scalar Y2 = ct.Y()/this->Y(); + } +} + + +// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * // + +template<class EquationOfState> +inline Foam::H2Thermo<EquationOfState> Foam::operator+ +( + const H2Thermo<EquationOfState>& ct1, + const H2Thermo<EquationOfState>& ct2 +) +{ + EquationOfState eofs + ( + static_cast<const EquationOfState&>(ct1) + + static_cast<const EquationOfState&>(ct2) + ); + + if (mag(eofs.Y()) < SMALL) + { + return H2Thermo<EquationOfState> + ( + eofs + ); + } + else + { + return H2Thermo<EquationOfState> + ( + eofs + ); + } +} + + +template<class EquationOfState> +inline Foam::H2Thermo<EquationOfState> Foam::operator* +( + const scalar s, + const H2Thermo<EquationOfState>& ct +) +{ + return H2Thermo<EquationOfState> + ( + s*static_cast<const EquationOfState&>(ct) + ); +} + + +template<class EquationOfState> +inline Foam::H2Thermo<EquationOfState> Foam::operator== +( + const H2Thermo<EquationOfState>& ct1, + const H2Thermo<EquationOfState>& ct2 +) +{ + EquationOfState eofs + ( + static_cast<const EquationOfState&>(ct1) + == static_cast<const EquationOfState&>(ct2) + ); + + return H2Thermo<EquationOfState> + ( + eofs + ); +} + + +// ************************************************************************* // -- GitLab