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.


Uses

  • module~~yaeos__adiff_hyperdual_ge_api~~UsesGraph module~yaeos__adiff_hyperdual_ge_api yaeos__adiff_hyperdual_ge_api module~hyperdual_mod hyperdual_mod module~yaeos__adiff_hyperdual_ge_api->module~hyperdual_mod module~yaeos__constants yaeos__constants module~yaeos__adiff_hyperdual_ge_api->module~yaeos__constants module~yaeos__models_ge yaeos__models_ge module~yaeos__adiff_hyperdual_ge_api->module~yaeos__models_ge module~hyperdual_mod->module~yaeos__constants iso_fortran_env iso_fortran_env module~yaeos__constants->iso_fortran_env module~yaeos__models_ge->module~yaeos__constants module~yaeos__models_base yaeos__models_base module~yaeos__models_ge->module~yaeos__models_base module~yaeos__substance yaeos__substance module~yaeos__models_base->module~yaeos__substance module~yaeos__substance->module~yaeos__constants

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_Cp
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))