lusol_ez_module Module

Wrapper for LUSOL. Will eventually be moved into a separate repo.


Uses

  • module~~lusol_ez_module~~UsesGraph module~lusol_ez_module lusol_ez_module module~lusol lusol module~lusol_ez_module->module~lusol module~lusol_precision lusol_precision module~lusol_ez_module->module~lusol_precision module~lusol->module~lusol_precision iso_fortran_env iso_fortran_env module~lusol_precision->iso_fortran_env

Used by

  • module~~lusol_ez_module~~UsedByGraph module~lusol_ez_module lusol_ez_module proc~nlesolver_solver nlesolver_module::nlesolver_type%nlesolver_solver proc~nlesolver_solver->module~lusol_ez_module program~main~2 main program~main~2->module~lusol_ez_module

Derived Types

type, public ::  lusol_settings

Components

Type Visibility Attributes Name Initial
integer(kind=ip), public :: nout = 6
integer(kind=ip), public :: lprint = 0
integer(kind=ip), public :: maxcol = 5
integer(kind=ip), public :: method = 0
integer(kind=ip), public :: keepLU = 1
real(kind=rp), public :: Ltol1 = 100.0_rp
real(kind=rp), public :: Ltol2 = 10.0_rp
real(kind=rp), public :: small = epsilon(1.0_rp)**0.8_rp
real(kind=rp), public :: Utol1 = epsilon(1.0_rp)**0.67_rp
real(kind=rp), public :: Utol2 = epsilon(1.0_rp)**0.67_rp
real(kind=rp), public :: Uspace = 3.0_rp
real(kind=rp), public :: dens1 = 0.3_rp
real(kind=rp), public :: dens2 = 0.5_rp
integer(kind=ip), public :: mode = 5

Subroutines

public subroutine solve(n_cols, n_rows, n_nonzero, irow, icol, mat, b, x, istat, settings)

Wrapper for lu1fac + lu6sol to solve a linear system A*x = b.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_cols

n: number of columns in A.

integer, intent(in) :: n_rows

m: number of rows in A.

integer, intent(in) :: n_nonzero

number of nonzero elements of A.

integer, intent(in), dimension(n_nonzero) :: irow

sparsity pattern (size is n_nonzero)

integer, intent(in), dimension(n_nonzero) :: icol

sparsity pattern (size is n_nonzero)

real(kind=rp), intent(in), dimension(n_nonzero) :: mat

matrix elements (size is n_nonzero)

real(kind=rp), intent(in), dimension(n_rows) :: b

right hand side (size is m)

real(kind=rp), intent(out), dimension(n_cols) :: x

solution !size is n

integer, intent(out) :: istat

status code

type(lusol_settings), intent(in), optional :: settings

settings (if not present, defaults are used)