diff --git a/src/thermophysicalModels/mySpecie/thermo/H2Thermo/H2ThermoI.H b/src/thermophysicalModels/mySpecie/thermo/H2Thermo/H2ThermoI.H
new file mode 100644
index 0000000000000000000000000000000000000000..08e9e2eb8e759f38bc2887d8c95390f42eea753c
--- /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
+    );
+}
+
+
+// ************************************************************************* //