update_specification Subroutine

private subroutine update_specification(its, nc, np, X, dF, dXdS, ns, dS)

update_specification

Change the specified variable for the next step.

Description

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.

References

Arguments

Type IntentOptional 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) :: dS

Step size of the specification for the next point.


Variables

Type Visibility Attributes Name Initial
real(kind=pr), private :: dFdS(size(X))

Sensitivity of the functions wrt the specification.

integer, private :: i
integer, private :: lb

Lower bound of each phase

integer, private :: ub

Upper bound of each phase