yaeos__models_ar_cubic_mixing_base Module

Mixing rules core math

Procedures of the core calculations of CubicEoS mixing rules.

Description

This module holds all the basic math to use mixing rules in other codes. Keeping it simple and accesible.

Examples

bi = [0.2, 0.3]
lij = reshape([0.0, 0.2, 0.2, 0], [2,2])

! Calculate B parameter with Quadratric Mixing Rules.
call bmix_qmr(n, bi, lij, b, dbi, dbij)

References


Uses

  • module~~yaeos__models_ar_cubic_mixing_base~~UsesGraph module~yaeos__models_ar_cubic_mixing_base yaeos__models_ar_cubic_mixing_base module~yaeos__constants yaeos__constants module~yaeos__models_ar_cubic_mixing_base->module~yaeos__constants iso_fortran_env iso_fortran_env module~yaeos__constants->iso_fortran_env

Used by

  • module~~yaeos__models_ar_cubic_mixing_base~~UsedByGraph module~yaeos__models_ar_cubic_mixing_base yaeos__models_ar_cubic_mixing_base module~yaeos__models_ar_cubic_quadratic_mixing yaeos__models_ar_cubic_quadratic_mixing module~yaeos__models_ar_cubic_quadratic_mixing->module~yaeos__models_ar_cubic_mixing_base module~yaeos__models_cubic_mixing_rules_huron_vidal yaeos__models_cubic_mixing_rules_huron_vidal module~yaeos__models_cubic_mixing_rules_huron_vidal->module~yaeos__models_ar_cubic_mixing_base module~yaeos__models_cubic_mixing_rules_huron_vidal->module~yaeos__models_ar_cubic_quadratic_mixing proc~bmixhv HV%BmixHV proc~bmixhv->module~yaeos__models_ar_cubic_mixing_base proc~bmixhvnrtl HV_NRTL%BmixHVNRTL proc~bmixhvnrtl->module~yaeos__models_ar_cubic_mixing_base proc~bmixmhv MHV%BmixMHV proc~bmixmhv->module~yaeos__models_ar_cubic_mixing_base proc~d1mixhv HV%D1MixHV proc~d1mixhv->module~yaeos__models_ar_cubic_mixing_base proc~d1mixhvnrtl HV_NRTL%D1MixHVNRTL proc~d1mixhvnrtl->module~yaeos__models_ar_cubic_mixing_base proc~d1mixmhv MHV%D1MixMHV proc~d1mixmhv->module~yaeos__models_ar_cubic_mixing_base proc~dmixhvnrtl HV_NRTL%DmixHVNRTL proc~dmixhvnrtl->module~yaeos__models_ar_cubic_mixing_base proc~dmixhv~2 HV%DmixHV proc~dmixhv~2->module~yaeos__models_ar_cubic_mixing_base proc~rkpr_d1mix QMR%RKPR_D1mix proc~rkpr_d1mix->module~yaeos__models_ar_cubic_mixing_base module~yaeos__models yaeos__models module~yaeos__models->module~yaeos__models_ar_cubic_quadratic_mixing module~yaeos__models->module~yaeos__models_cubic_mixing_rules_huron_vidal proc~pengrobinson76 PengRobinson76 proc~pengrobinson76->module~yaeos__models_ar_cubic_quadratic_mixing proc~pengrobinson78 PengRobinson78 proc~pengrobinson78->module~yaeos__models_ar_cubic_quadratic_mixing proc~psrk PSRK proc~psrk->module~yaeos__models_cubic_mixing_rules_huron_vidal proc~rkpr RKPR proc~rkpr->module~yaeos__models_ar_cubic_quadratic_mixing proc~soaveredlichkwong SoaveRedlichKwong proc~soaveredlichkwong->module~yaeos__models_ar_cubic_quadratic_mixing module~yaeos yaeos module~yaeos->module~yaeos__models

Subroutines

public subroutine DmixHV(n, T, bi, B, dBi, dBij, D1, dD1i, dD1ij, ai, daidt, daidt2, Ge, GeT, GeT2, Gen, GeTn, Gen2, D, dDdT, dDdT2, dDi, dDidT, dDij)

Attractive parameter calculation for the Huron-Vidal mixing rule.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(in) :: n(:)
real(kind=pr), intent(in) :: T
real(kind=pr), intent(in) :: bi(:)

Covolume parameter

real(kind=pr), intent(in) :: B

mixture covolume parameter

real(kind=pr), intent(in) :: dBi(:)
real(kind=pr), intent(in) :: dBij(:,:)
real(kind=pr), intent(in) :: D1
real(kind=pr), intent(in) :: dD1i(:)
real(kind=pr), intent(in) :: dD1ij(:,:)
real(kind=pr), intent(in) :: ai(:)
real(kind=pr), intent(in) :: daidt(:)
real(kind=pr), intent(in) :: daidt2(:)
real(kind=pr), intent(in) :: Ge
real(kind=pr), intent(in) :: GeT
real(kind=pr), intent(in) :: GeT2
real(kind=pr), intent(in) :: Gen(:)
real(kind=pr), intent(in) :: GeTn(:)
real(kind=pr), intent(in) :: Gen2(:,:)
real(kind=pr), intent(out) :: D
real(kind=pr), intent(out) :: dDdT
real(kind=pr), intent(out) :: dDdT2
real(kind=pr), intent(out) :: dDi(:)
real(kind=pr), intent(out) :: dDidT(:)
real(kind=pr), intent(out) :: dDij(:,:)

public pure subroutine bmix_linear(n, bi, b, dbi, dbij)

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(in) :: n(:)
real(kind=pr), intent(in) :: bi(:)
real(kind=pr), intent(out) :: b
real(kind=pr), intent(out) :: dbi(:)
real(kind=pr), intent(out) :: dbij(:,:)

public pure subroutine bmix_qmr(n, bi, lij, b, dbi, dbij)

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(in) :: n(:)
real(kind=pr), intent(in) :: bi(:)
real(kind=pr), intent(in) :: lij(:,:)
real(kind=pr), intent(out) :: b
real(kind=pr), intent(out) :: dbi(:)
real(kind=pr), intent(out) :: dbij(:,:)

public pure subroutine d1mix_rkpr(n, d1i, D1, dD1i, dD1ij)

RKPR parameter mixing rule.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(in) :: n(:)
real(kind=pr), intent(in) :: d1i(:)
real(kind=pr), intent(out) :: D1
real(kind=pr), intent(out) :: dD1i(:)
real(kind=pr), intent(out) :: dD1ij(:,:)

public subroutine lamdba_hv(nc, d1, dd1i, dd1ij, L, dLi, dLij)

Infinite pressure limit parameter

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nc
real(kind=pr), intent(in) :: d1
real(kind=pr), intent(in), optional :: dd1i(nc)
real(kind=pr), intent(in), optional :: dd1ij(nc,nc)
real(kind=pr), intent(out) :: L
real(kind=pr), intent(out), optional :: dLi(nc)
real(kind=pr), intent(out), optional :: dLij(nc,nc)