Change the specified variable for the next step.
Using the information of a converged point and the Jacobian matrix of the function. It is possible to determine the sensitivity of the variables with respect to the specification. This information is used to update the specification for the next point. Choosing the variable with the highest sensitivity. This can be done by solving the system of equations:
for the vector. The variable with the highest value of is chosen as the new specification.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | its |
Iterations to solve the current point. |
||
| integer, | intent(in) | :: | nc |
Number of components in the mixture. |
||
| integer, | intent(in) | :: | np |
Number of main phases. |
||
| real(kind=pr), | intent(inout) | :: | X(:) |
Vector of variables. |
||
| real(kind=pr), | intent(inout) | :: | dF(:,:) |
Jacobian matrix. |
||
| real(kind=pr), | intent(inout) | :: | dXdS(:) |
Sensitivity of the variables wrt the specification. |
||
| integer, | intent(inout) | :: | ns |
Number of the specified variable. |
||
| real(kind=pr), | intent(inout) | :: | S |
Specified value. |
||
| real(kind=pr), | intent(inout) | :: | dS |
Step size of the specification for the next point. |
||
| logical, | intent(out) | :: | near_crit |
If true, the point is near a critical point. |
||
| integer, | intent(out) | :: | l_nc |
Index of the phase near a critical point. |
||
| integer, | intent(out) | :: | i_nc |
Index of the component with the maximum lnK if near a critical point. |
||
| integer, | intent(out) | :: | j_nc |
Index of the component with the minimum lnK if near a critical point. |
||
| real(kind=pr), | intent(in) | :: | Vl(:) |
Molar volumes of the main phases [L/mol]. |
||
| real(kind=pr), | intent(in) | :: | Vw |
Molar volume of the reference phase [L/mol]. |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=pr), | private | :: | cf |
Critical factor, defined by Lingfei Xu & Huazhou Li* |
|||
| real(kind=pr), | private | :: | dFdS(size(X)) |
Sensitivity of the functions wrt the specification. |
|||
| real(kind=pr), | private | :: | dP | ||||
| real(kind=pr), | private | :: | dT | ||||
| integer, | private | :: | i | ||||
| integer, | private | :: | iBetas(np) | ||||
| integer, | private | :: | iP | ||||
| integer, | private | :: | iT | ||||
| integer, | private | :: | l |
Phase index |
|||
| integer, | private | :: | lb |
Lower bound of each phase |
|||
| real(kind=pr), | private | :: | lnKdiff |
If near critical equals lnK_{max} - lnK_{min} |
|||
| integer, | private | :: | ub |
Upper bound of each phase |