Procedures of the core calculations of CubicEoS mixing rules.
This module holds all the basic math to use mixing rules in other codes. Keeping it simple and accesible.
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)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=pr), | intent(in) | :: | n(:) | |||
| real(kind=pr), | intent(in) | :: | bijk(:,:,:) | |||
| real(kind=pr), | intent(out) | :: | Bmix | |||
| real(kind=pr), | intent(out) | :: | dBi(:) | |||
| real(kind=pr), | intent(out) | :: | dBij(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=pr), | intent(in) | :: | n(:) |
Moles vector [mol] |
||
| real(kind=pr), | intent(in) | :: | V |
Volume [L] (unused) |
||
| real(kind=pr), | intent(in) | :: | T |
Temperature [K] |
||
| real(kind=pr), | intent(in) | :: | a(:,:,:) | |||
| real(kind=pr), | intent(in) | :: | dadt(:,:,:) | |||
| real(kind=pr), | intent(in) | :: | dadt2(:,:,:) | |||
| real(kind=pr), | intent(out) | :: | D |
Mixture attractive parameter |
||
| real(kind=pr), | intent(out) | :: | dDdV |
|
||
| real(kind=pr), | intent(out) | :: | dDdT |
|
||
| real(kind=pr), | intent(out) | :: | dDdV2 |
|
||
| real(kind=pr), | intent(out) | :: | dDdT2 |
|
||
| real(kind=pr), | intent(out) | :: | dDi(:) |
|
||
| real(kind=pr), | intent(out) | :: | dDdTV |
|
||
| real(kind=pr), | intent(out) | :: | dDidV(:) |
|
||
| real(kind=pr), | intent(out) | :: | dDidT(:) |
|
||
| real(kind=pr), | intent(out) | :: | dDij(:,:) |
|
Calculate the tensor of the CMR.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=pr), | intent(in) | :: | ai(:) |
|
||
| real(kind=pr), | intent(in) | :: | daidt(:) |
|
||
| real(kind=pr), | intent(in) | :: | daidt2(:) |
|
||
| real(kind=pr), | intent(in) | :: | k(:,:,:) |
k_{ijk} matrix |
||
| real(kind=pr), | intent(in) | :: | dkdt(:,:,:) |
|
||
| real(kind=pr), | intent(in) | :: | dkdt2(:,:,:) |
|
||
| real(kind=pr), | intent(out) | :: | a(:,:,:) |
matrix |
||
| real(kind=pr), | intent(out) | :: | dadt(:,:,:) |
matrix |
||
| real(kind=pr), | intent(out) | :: | dadt2(:,:,:) |
matrix |
Attractive parameter calculation for the Huron-Vidal mixing rule.
| Type | Intent | Optional | 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(:,:) |
| Type | Intent | Optional | 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(:,:) |
| Type | Intent | Optional | 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(:,:) |
RKPR parameter mixing rule.
| Type | Intent | Optional | 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(:,:) |
Infinite pressure limit parameter
| Type | Intent | Optional | 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) |