Huron-Vidal (like) mixing rules module
This module contains the mixing rules that are based/similar to the
mixing rules defined by Huron-Vidal
Description
Huron-Vidal presented a way to link a model with a Cubic EoS
mixing rule. This makes it possible to make good predictions on
polar compounds containing mixtures.
Examples
References
Interfaces
-
public function init_hvnrtl(b, del1, alpha, gji, use_kij, kij) result(mixrule)
Huron-Vidal NRTL mixing rule
This is the Huron-Vidal mixing rule that includes the NRTL model
modified by Huron and Vidal.
Description
This is the Huron-Vidal mixing rule that includes the NRTL model
modified by Huron and Vidal. It is a mixing rule that allows to
use the NRTL model as an excess Gibbs energy model and can. be
simplified to the classic Quatratic mixing rules when the parameters
are set to:
Examples
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
b(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
del1(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
alpha(:,:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
gji(:,:) |
|
logical,
|
intent(in) |
|
|
:: |
use_kij(:,:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
kij(:,:) |
|
Return Value
type(HV_NRTL)
-
private function init_mhv(Ge, b, q, lij) result(mixrule)
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(GeModel),
|
intent(in) |
|
|
:: |
Ge |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
b(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
q |
|
real(kind=pr),
|
intent(in), |
optional |
|
:: |
lij(:,:) |
|
Return Value
type(MHV)
Derived Types
Components
Type |
Visibility | Attributes |
|
Name |
| Initial | |
real(kind=pr),
|
public, |
allocatable
|
:: |
bi(:) |
|
|
|
real(kind=pr),
|
public, |
allocatable
|
:: |
del1(:) |
|
|
|
logical,
|
public |
|
:: |
dn2 |
= |
.false. |
Calculate second order derivatives
|
class(GeModel),
|
public, |
allocatable
|
:: |
ge |
|
|
|
Type-Bound Procedures
Huron-Vidal mixing rule including the NRTL model modified by Huron
and Vidal.
Read more…
Components
Type |
Visibility | Attributes |
|
Name |
| Initial | |
real(kind=pr),
|
public, |
allocatable
|
:: |
bi(:) |
|
|
|
real(kind=pr),
|
public, |
allocatable
|
:: |
del1(:) |
|
|
|
logical,
|
public |
|
:: |
dn2 |
= |
.false. |
Calculate second order derivatives
|
type(NRTLHV),
|
public |
|
:: |
ge |
|
|
|
real(kind=pr),
|
public, |
allocatable
|
:: |
kij(:,:) |
|
|
|
logical,
|
public, |
allocatable
|
:: |
use_kij(:,:) |
|
|
|
Constructor
public
function
init_hvnrtl
(b, del1, alpha, gji, use_kij, kij)
|
This is the Huron-Vidal mixing rule that includes the NRTL model
modified by Huron and Vidal. Read more… |
Type-Bound Procedures
Mixing rule at zero-pressure which allows for the inclusion of an
excess-gibbs model.
Read more…
Components
Type |
Visibility | Attributes |
|
Name |
| Initial | |
logical,
|
public |
|
:: |
dn2 |
= |
.false. |
Calculate second order derivatives
|
class(GeModel),
|
public, |
allocatable
|
:: |
ge |
|
|
|
real(kind=pr),
|
public, |
allocatable
|
:: |
l(:,:) |
|
|
|
real(kind=pr),
|
public |
|
:: |
q |
|
|
|
real(kind=pr),
|
private, |
allocatable
|
:: |
B |
|
|
|
real(kind=pr),
|
private, |
allocatable
|
:: |
bi(:) |
|
|
|
real(kind=pr),
|
private, |
allocatable
|
:: |
dBi(:) |
|
|
|
real(kind=pr),
|
private, |
allocatable
|
:: |
dBij(:,:) |
|
|
|
Constructor
private
function
init_mhv
(Ge, b, q, lij)
|
|
Type-Bound Procedures
Functions
This is the Huron-Vidal mixing rule that includes the NRTL model
modified by Huron and Vidal.
Read more…
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
b(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
del1(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
alpha(:,:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
gji(:,:) |
|
logical,
|
intent(in) |
|
|
:: |
use_kij(:,:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
kij(:,:) |
|
Return Value
type(HV_NRTL)
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(GeModel),
|
intent(in) |
|
|
:: |
Ge |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
b(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
q |
|
real(kind=pr),
|
intent(in), |
optional |
|
:: |
lij(:,:) |
|
Return Value
type(MHV)
Subroutines
Mixing rule at infinite pressure as defined in the book of Michelsen and
Møllerup.
Read more…
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(MHV),
|
intent(in) |
|
|
:: |
self |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
n(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
T |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
ai(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
daidt(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
daidt2(:) |
|
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(:,:) |
|
Quadratinc mixing rule for the repulsive parameter.
Read more…
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(HV),
|
intent(in) |
|
|
:: |
self |
|
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(:,:) |
|
Quadratinc mixing rule for the repulsive parameter.
Read more…
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(HV_NRTL),
|
intent(in) |
|
|
:: |
self |
|
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(:,:) |
|
Quadratinc mixing rule for the repulsive parameter, using
as a combining rule.
Read more…
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(MHV),
|
intent(in) |
|
|
:: |
self |
|
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(:,:) |
|
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(HV),
|
intent(in) |
|
|
:: |
self |
|
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(:,:) |
|
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(HV_NRTL),
|
intent(in) |
|
|
:: |
self |
|
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(:,:) |
|
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(MHV),
|
intent(in) |
|
|
:: |
self |
|
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(:,:) |
|
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(HV),
|
intent(in) |
|
|
:: |
self |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
n(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
T |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
ai(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
daidt(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
daidt2(:) |
|
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(:,:) |
|
Arguments
Type |
Intent | Optional | Attributes |
|
Name |
|
class(HV_NRTL),
|
intent(in) |
|
|
:: |
self |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
n(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
T |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
ai(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
daidt(:) |
|
real(kind=pr),
|
intent(in) |
|
|
:: |
daidt2(:) |
|
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(:,:) |
|