yaeos__math_linalg Module

Wrapper module around LAPACK’s dgesv


Uses

  • module~~yaeos__math_linalg~~UsesGraph module~yaeos__math_linalg yaeos__math_linalg module~yaeos__constants yaeos__constants module~yaeos__math_linalg->module~yaeos__constants iso_fortran_env iso_fortran_env module~yaeos__constants->iso_fortran_env

Used by

  • module~~yaeos__math_linalg~~UsedByGraph module~yaeos__math_linalg yaeos__math_linalg module~nonlinear_solvers nonlinear_solvers module~nonlinear_solvers->module~yaeos__math_linalg module~yaeos__equilibria_boundaries_pure_saturation yaeos__equilibria_boundaries_pure_saturation module~yaeos__equilibria_boundaries_pure_saturation->module~yaeos__math_linalg module~yaeos__math_continuation yaeos__math_continuation module~yaeos__equilibria_boundaries_pure_saturation->module~yaeos__math_continuation module~yaeos__math yaeos__math module~yaeos__math->module~yaeos__math_linalg module~yaeos__math->module~yaeos__math_continuation module~yaeos__math_continuation->module~yaeos__math_linalg module~yaeos__math_nonlinearsolvers yaeos__math_nonlinearsolvers module~yaeos__math_nonlinearsolvers->module~yaeos__math_linalg proc~full_newton full_newton proc~full_newton->module~yaeos__math_linalg proc~lambda1 lambda1 proc~lambda1->module~yaeos__math_linalg proc~levenberg_marquardt levenberg_marquardt proc~levenberg_marquardt->module~yaeos__math_linalg proc~powel_hybrid powel_hybrid proc~powel_hybrid->module~yaeos__math_linalg proc~volume~2 CubicEoS%volume proc~volume~2->module~yaeos__math_linalg module~yaeos__equilibria yaeos__equilibria module~yaeos__equilibria->module~yaeos__equilibria_boundaries_pure_saturation module~yaeos__equilibria_binaries yaeos__equilibria_binaries module~yaeos__equilibria->module~yaeos__equilibria_binaries module~yaeos__equilibria_boundaries_generalized_isopleths yaeos__equilibria_boundaries_generalized_isopleths module~yaeos__equilibria->module~yaeos__equilibria_boundaries_generalized_isopleths module~yaeos__equilibria_boundaries_phase_envelopes_mp yaeos__equilibria_boundaries_phase_envelopes_mp module~yaeos__equilibria->module~yaeos__equilibria_boundaries_phase_envelopes_mp module~yaeos__equilibria_boundaries_phase_envelopes_mp_px yaeos__equilibria_boundaries_phase_envelopes_mp_px module~yaeos__equilibria->module~yaeos__equilibria_boundaries_phase_envelopes_mp_px module~yaeos__equilibria_boundaries_phase_envelopes_mp_tx yaeos__equilibria_boundaries_phase_envelopes_mp_tx module~yaeos__equilibria->module~yaeos__equilibria_boundaries_phase_envelopes_mp_tx module~yaeos__equilibria_boundaries_phase_envelopes_pt yaeos__equilibria_boundaries_phase_envelopes_pt module~yaeos__equilibria->module~yaeos__equilibria_boundaries_phase_envelopes_pt module~yaeos__equilibria_boundaries_phase_envelopes_pt3 yaeos__equilibria_boundaries_phase_envelopes_pt3 module~yaeos__equilibria->module~yaeos__equilibria_boundaries_phase_envelopes_pt3 module~yaeos__equilibria_boundaries_phase_envelopes_px yaeos__equilibria_boundaries_phase_envelopes_px module~yaeos__equilibria->module~yaeos__equilibria_boundaries_phase_envelopes_px module~yaeos__equilibria_boundaries_phase_envelopes_px3 yaeos__equilibria_boundaries_phase_envelopes_px3 module~yaeos__equilibria->module~yaeos__equilibria_boundaries_phase_envelopes_px3 module~yaeos__equilibria_boundaries_phase_envelopes_tx yaeos__equilibria_boundaries_phase_envelopes_tx module~yaeos__equilibria->module~yaeos__equilibria_boundaries_phase_envelopes_tx module~yaeos__equilibria_binaries->module~yaeos__math module~yaeos__equilibria_boundaries_auxiliar yaeos__equilibria_boundaries_auxiliar module~yaeos__equilibria_boundaries_auxiliar->module~yaeos__math module~yaeos__equilibria_boundaries_generalized_isopleths->module~yaeos__math module~yaeos__equilibria_boundaries_phase_envelopes_mp->module~yaeos__math module~yaeos__equilibria_boundaries_phase_envelopes_mp->module~yaeos__equilibria_boundaries_auxiliar module~yaeos__equilibria_boundaries_phase_envelopes_mp_px->module~yaeos__math module~yaeos__equilibria_boundaries_phase_envelopes_mp_px->module~yaeos__equilibria_boundaries_auxiliar module~yaeos__equilibria_boundaries_phase_envelopes_mp_tx->module~yaeos__math module~yaeos__equilibria_boundaries_phase_envelopes_mp_tx->module~yaeos__equilibria_boundaries_auxiliar module~yaeos__equilibria_boundaries_phase_envelopes_pt->module~yaeos__math_continuation module~yaeos__equilibria_boundaries_phase_envelopes_pt3->module~yaeos__math module~yaeos__equilibria_boundaries_phase_envelopes_px->module~yaeos__math_continuation module~yaeos__equilibria_boundaries_phase_envelopes_px->module~yaeos__equilibria_boundaries_auxiliar module~yaeos__equilibria_boundaries_phase_envelopes_px3->module~yaeos__math module~yaeos__equilibria_boundaries_phase_envelopes_px3->module~yaeos__equilibria_boundaries_auxiliar module~yaeos__equilibria_boundaries_phase_envelopes_tx->module~yaeos__math_continuation module~yaeos__equilibria_boundaries_phase_envelopes_tx->module~yaeos__equilibria_boundaries_auxiliar module~yaeos__models_ge_uniquac yaeos__models_ge_uniquac module~yaeos__models_ge_uniquac->module~yaeos__math proc~check_critical_jump check_critical_jump proc~check_critical_jump->module~yaeos__math proc~critical_line critical_line proc~critical_line->module~yaeos__math proc~critical_line->module~yaeos__math_continuation proc~critical_point critical_point proc~critical_point->module~yaeos__math proc~detect_critical~3 detect_critical proc~detect_critical~3->module~yaeos__math proc~homotopy homotopy proc~homotopy->module~yaeos__math proc~look_for_cep look_for_cep proc~look_for_cep->module~yaeos__math proc~refit_rkpr_k refit_rkpr_k proc~refit_rkpr_k->module~yaeos__equilibria_boundaries_pure_saturation proc~solve_generalized_point solve_generalized_point proc~solve_generalized_point->module~yaeos__math proc~solve_mp_flash_point solve_mp_flash_point proc~solve_mp_flash_point->module~yaeos__math proc~solve_point PXEnvelMP%solve_point proc~solve_point->module~yaeos__math proc~solve_point~4 PTEnvelMP%solve_point proc~solve_point~4->module~yaeos__math proc~solve_point~7 TXEnvelMP%solve_point proc~solve_point~7->module~yaeos__math proc~solve_tp solve_TP proc~solve_tp->module~nonlinear_solvers proc~solve_tp->module~yaeos__math proc~solve_tp->module~yaeos__math_nonlinearsolvers proc~solve_vxvyt solve_VxVyT proc~solve_vxvyt->module~yaeos__math proc~three_phase_line_f three_phase_line_F proc~three_phase_line_f->module~yaeos__math proc~three_phase_line_f_solve three_phase_line_F_solve proc~three_phase_line_f_solve->module~yaeos__math proc~volume Gerg2008%volume proc~volume->module~yaeos__math proc~volume~3 ArModel%volume proc~volume~3->module~yaeos__math module~yaeos yaeos module~yaeos->module~yaeos__equilibria module~yaeos__models yaeos__models module~yaeos->module~yaeos__models module~yaeos__models_ge_implementations yaeos__models_ge_implementations module~yaeos__models_ge_implementations->module~yaeos__models_ge_uniquac module~yaeos__models->module~yaeos__models_ge_implementations proc~psrk PSRK proc~psrk->module~yaeos__models_ge_implementations

Functions

public function solve_system(a, b) result(x)

Solve a linear sytem AX = b

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(in) :: a(size(b),size(b))
real(kind=pr), intent(in) :: b(:)

Return Value real(kind=pr), (size(b))


Subroutines

public subroutine cubic_roots(parameters, real_roots, complex_roots, flag)

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(in) :: parameters(4)
real(kind=pr), intent(out) :: real_roots(3)
complex(kind=pr), intent(out) :: complex_roots(3)
integer, intent(out) :: flag

flag that identifies which case the solution is - 0: 3 real rotos, one of them repeated (use real_roots(1) and real_roots(2)) - 1: 1 real root, 2 complex roots. Use real_roots(1) and complex_roots(1) and complex_roots(2) - -1: 3 real roots, all different

public subroutine cubic_roots_rosendo(parameters, real_roots, complex_roots, flag)

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(in) :: parameters(4)
real(kind=pr), intent(out) :: real_roots(3)
complex(kind=pr), intent(out) :: complex_roots(3)
integer, intent(out) :: flag

public subroutine eigen(A, eigenvalues, eigenvectors)

Calculate the eigenvalues and eigenvectors of a real symmetric matrix A using LAPACK’s dsyev. The eigenvectors are stored in the columns of eigenvectors. The eigenvalues are stored in eigenvalues.

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=pr), intent(inout) :: A(:,:)
real(kind=pr), intent(out) :: eigenvalues(:)
real(kind=pr), intent(out), optional :: eigenvectors(:,:)