Phase boundaries line on the plane calculation procedures.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=pr), | private | :: | Vy | ||||
real(kind=pr), | private | :: | Vz |
Critical point
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=pr), | public | :: | P |
Pressure [bar] |
|||
real(kind=pr), | public | :: | T |
Temperature [K] |
Two-phase isopleth. Phase boundary line of a fluid at constant composition.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(CriticalPoint), | public, | allocatable | :: | cps(:) |
Critical points found along the line. |
||
type(EquilibriumState), | public, | allocatable | :: | points(:) |
Each point through the line. |
procedure, public, pass :: write => write_PTEnvel2 | |
generic, public :: write (FORMATTED) => write |
Find a liquid-liquid phase boundary on the PT plane. At a specified pressure. The procedure consists in looking for the temperature at which the fugacity of a component in the mixture is higher than the fugacity of the same component in a pure phase. This is done for each component in the mixture. The component with the highest temperature is selected as it should be the first one appearing. If all components have a negative difference then the mixture is probably stable at all temperatures.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ArModel), | intent(in) | :: | model |
Equation of state model |
||
real(kind=pr), | intent(in) | :: | z(:) |
Mole fractions |
||
real(kind=pr), | intent(in) | :: | T0 |
Initial temperature [K] |
||
real(kind=pr), | intent(in) | :: | P0 |
Search pressure [bar] |
PT two-phase envelope calculation procedure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ArModel), | intent(in) | :: | model |
Thermodyanmic model |
||
real(kind=pr), | intent(in) | :: | z(:) |
Vector of molar fractions |
||
type(EquilibriumState), | intent(in) | :: | first_point |
Initial point of the envelope |
||
integer, | intent(in), | optional | :: | points |
Maxmimum number of points, defaults to 500 |
|
integer, | intent(in), | optional | :: | iterations |
Point solver maximum iterations, defaults to 100 |
|
real(kind=pr), | intent(in), | optional | :: | delta_0 |
Initial extrapolation |
|
integer, | intent(in), | optional | :: | specified_variable_0 |
Position of specified variable, since the vector of variables is the values for specification will be for the equilibria constants, for and for . |
|
procedure(continuation_solver), | optional | :: | solver |
Specify solver for each point, defaults to a full newton procedure |
||
procedure(continuation_stopper), | optional | :: | stop_conditions |
Function that returns true if the continuation method should stop |
||
real(kind=pr), | intent(in), | optional | :: | maximum_pressure |
Maximum pressure to calculate [bar] |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(PTEnvel2), | intent(in) | :: | pt2 | |||
integer, | intent(in) | :: | unit | |||
character(len=*), | intent(in) | :: | iotype | |||
integer, | intent(in) | :: | v_list(:) | |||
integer, | intent(out) | :: | iostat | |||
character(len=*), | intent(inout) | :: | iomsg |