https://gitlab.opengeosys.org/ogs/ogs.git
Raw File
Tip revision: 02f935ea016ebba5a1c81cbac3bf38b5befad0ec authored by Lars Bilke on 04 March 2021, 12:54:58 UTC
Merge branch 'doxy-defines' into 'master'
Tip revision: 02f935e
DimensionLessGibbsFreeEnergyRegion1.h
/**
 *  \brief Declare a class for dimensionless Gibbs free energy, region1.
 *
 *  \copyright
 *   Copyright (c) 2012-2021, OpenGeoSys Community (http://www.opengeosys.org)
 *              Distributed under a Modified BSD License.
 *              See accompanying file LICENSE.txt or
 *              http://www.opengeosys.org/project/license
 *
 *  \file
 *
 * Created on December 8, 2016, 12:31 PM
 */

#pragma once

namespace MaterialLib
{
namespace Fluid
{
/**
 *  A class for dimensionless Gibbs free energy defined by
 *  \f[
 *     \gamma=\sum_{i=1}^{34}\left[
 *       n_i * (7.1-\pi)^{l_i}(\tau - 1.222)^{j_i}
 *     \right]
 *  \f]
 *  <a href="http://www.iapws.org/relguide/IF97-Rev.pdf">IF97-Rev</a>
 *
 *  Coefficients \f$n_i\f$, \f$j_i\f$ and \f$l_i\f$ are given in three static
 *  arrays in the cpp file.
 */
class DimensionLessGibbsFreeEnergyRegion1
{
public:
    DimensionLessGibbsFreeEnergyRegion1() = default;

    /**
     * Get the value
     * @param pi  Dimension less temperature
     * @param tau Dimension less pressure
     * @return    The value
     */
    static double get_gamma(const double tau, const double pi);

    /**
     * Get the 1st order partial derivative of the dimension less Gibbs free
     * energy with respect to dimension less temperature, tau
     *
     * @param pi  Dimension less temperature
     * @param tau Dimension less pressure
     * @return    The value
     */
    static double get_dgamma_dtau(const double tau, const double pi);

    /**
     * Get the 2nd order partial derivative of the dimension less Gibbs free
     * energy with respect to dimension less temperature, tau
     *
     * @param pi  Dimension less temperature
     * @param tau Dimension less pressure
     * @return    The value
     */
    static double get_dgamma_dtau_dtau(const double tau, const double pi);

    /**
     * Get the 1st order partial derivative of the dimension less Gibbs free
     * energy with respect to dimension less pressure, pi
     *
     * @param pi  Dimension less temperature
     * @param tau Dimension less pressure
     * @return    The value
     */
    static double get_dgamma_dpi(const double tau, const double pi);

    /**
     * Get the 2nd order partial derivative of the dimension less Gibbs free
     * energy with respect to dimension less pressure, pi
     *
     * @param pi  Dimension less temperature
     * @param tau Dimension less pressure
     * @return    The value
     */
    static double get_dgamma_dpi_dpi(const double tau, const double pi);

    /**
     * Get the 2nd order partial derivative of the dimension less Gibbs free
     * energy with respect to dimension less temperature, tau, and dimension
     * less pressure, pi
     * @param pi  Dimension less temperature
     * @param tau Dimension less pressure
     * @return    The value
     */
    static double get_dgamma_dtau_dpi(const double tau, const double pi);
};

}  // namespace Fluid
}  // namespace MaterialLib
back to top