yaeos__adiff_hyperdual_ge_api Module

Module that contains the automatic differentiation logic for an Ge model.

All that is needed to define an Ge model that uses automatic differentiation with hyperdual numbers is to define a new derived type that overloads the method to the Ge function that you want to use.



Abstract Interfaces

abstract interface

  • public function hyperdual_Ge(self, n, t)

    Arguments

    Type IntentOptional Attributes Name
    class(GeModelAdiff) :: self
    type(hyperdual), intent(in) :: n(:)
    type(hyperdual), intent(in) :: t

    Return Value type(hyperdual)


Derived Types

type, public, abstract, extends(GeModel) ::  GeModelAdiff

Components

Type Visibility Attributes Name Initial
type(Substances), public :: components

Substances contained in the module

Type-Bound Procedures

procedure(hyperdual_Ge), public, deferred :: Ge
procedure, public :: excess_enthalpy
procedure, public :: excess_entropy
procedure, public :: excess_gibbs
procedure, public :: ln_activity_coefficient

Subroutines

public subroutine excess_gibbs(self, n, t, Ge, GeT, GeT2, Gen, GeTn, Gen2)

Arguments

Type IntentOptional Attributes Name
class(GeModelAdiff), intent(in) :: self
real(kind=pr), intent(in) :: n(:)
real(kind=pr), intent(in) :: t
real(kind=pr), intent(out), optional :: Ge
real(kind=pr), intent(out), optional :: GeT
real(kind=pr), intent(out), optional :: GeT2
real(kind=pr), intent(out), optional, dimension(size(n)) :: Gen
real(kind=pr), intent(out), optional, dimension(size(n)) :: GeTn
real(kind=pr), intent(out), optional :: Gen2(size(n),size(n))