MAT_SOLV Derived Type

type, public :: MAT_SOLV

MUSST high level system type


Inherits

type~~mat_solv~~InheritsGraph type~mat_solv MAT_SOLV MAT_MUMP MAT_MUMP type~mat_solv->MAT_MUMP matmump MAT_SULU MAT_SULU type~mat_solv->MAT_SULU matsulu type~mat_ma48 MAT_MA48 type~mat_solv->type~mat_ma48 matma48 type~mat_umfp MAT_UMFP type~mat_solv->type~mat_umfp matumfp c_ptr c_ptr type~mat_umfp->c_ptr c_symbolic, c_numeric

Inherited by

type~~mat_solv~~InheritedByGraph type~mat_solv MAT_SOLV type~ms_mat_solv MS_MAT_SOLV type~ms_mat_solv->type~mat_solv ts_mat, bs_mat

Components

Type Visibility Attributes Name Initial
real(kind=R8), public, dimension(:), allocatable :: a_elt

unassembled rigidity matrix

logical(kind=I4), public :: ana = .false.

the system is analyzed

real(kind=R8), public, dimension(:), allocatable :: b

right hand side vector

integer(kind=I4), public :: code

error code [not used yet]

integer(kind=I4), public, dimension(:), allocatable :: eltptr

element rows pointer

integer(kind=I4), public, dimension(:), allocatable :: eltvar

rows in assembled matrix

logical(kind=I4), public :: end = .false.

the system is closed

real(kind=R8), public :: error

error value [not used yet]

logical(kind=I4), public :: fac = .false.

the system is factorized

logical(kind=I4), public :: fre = .false.

the system is freed

logical(kind=I4), public :: ini = .false.

the system is initialized

integer(kind=I4), public, dimension(:), allocatable :: irow

line number

integer(kind=I4), public, dimension(:), allocatable :: jcol

column number

integer(kind=I4), public, dimension(:), allocatable :: jptr

line pointer

type(MAT_MA48), public :: matma48

matrices for ma48 solver

type(MAT_MUMP), public :: matmump

matrices for mumps solver

type(MAT_SULU), public :: matsulu

matrices for SuperLu solver

type(MAT_UMFP), public :: matumfp

matrices for Umfpack solver

character(len=1024), public :: mess

message [not used yet]

integer(kind=I4), public :: ne

number of elements

integer(kind=I4), public :: nn

number of nodes

integer(kind=I4), public :: nt

number of a priori non-zero terms in the matrix

integer(kind=I4), public :: nvar

eltvar length ( if 4-nodes elt -> 2 lines X number of elemental matrices)

integer(kind=I4), public :: nz

number of non-zero terms in the matrix

integer(kind=I4), public :: slv_t

solver type

logical(kind=I4), public :: sol = .false.

the system is solved

real(kind=R8), public, dimension(:), allocatable :: x

unknwon vector


Source Code

type MAT_SOLV
!! <span style="color:green">MUSST high level system type</span>
   integer(kind=I4) :: slv_t                             !! *solver type*
   logical(kind=I4) :: ini = .false.                     !! *the system is initialized*
   logical(kind=I4) :: ana = .false.                     !! *the system is analyzed*
   logical(kind=I4) :: fac = .false.                     !! *the system is factorized*
   logical(kind=I4) :: sol = .false.                     !! *the system is solved*
   logical(kind=I4) :: fre = .false.                     !! *the system is freed*
   logical(kind=I4) :: end = .false.                     !! *the system is closed*
   integer(kind=I4) :: nn                                !! *number of nodes*
   integer(kind=I4) :: ne                                !! *number of elements*
   integer(kind=I4) :: nt                                !! *number of **a priori** non-zero terms in the matrix*
   integer(kind=I4) :: nz                                !! *number of non-zero terms in the matrix*
   integer(kind=I4) :: nvar                              !! *eltvar length ( if 4-nodes elt -> 2 lines X number of elemental matrices)*
   integer(kind=I4) :: code                              !! *error code*   [not used yet]
   real(kind=R8)    :: error                             !! *error value*  [not used yet]
   character(len=1024) :: mess                           !! *message*      [not used yet]
   !.....................................................
   type(MAT_MUMP) :: matmump                             !! *matrices for mumps solver*
   type(MAT_MA48) :: matma48                             !! *matrices for ma48 solver*
   type(MAT_SULU) :: matsulu                             !! *matrices for SuperLu solver*
   type(MAT_UMFP) :: matumfp                             !! *matrices for Umfpack solver*
   !.....................................................
   integer(kind=I4), dimension(:), allocatable :: eltvar !! *rows in assembled matrix*
   integer(kind=I4), dimension(:), allocatable :: eltptr !! *element rows pointer*
   real(kind=R8),    dimension(:), allocatable :: a_elt  !! *unassembled rigidity matrix*
   !.....................................................
   integer(kind=I4), dimension(:), allocatable :: irow   !! *line number*
   integer(kind=I4), dimension(:), allocatable :: jcol   !! *column number*
   integer(kind=I4), dimension(:), allocatable :: jptr   !! *line pointer*
   !.....................................................
   real(kind=R8), dimension(:), allocatable    :: b      !! *right hand side vector*
   real(kind=R8), dimension(:), allocatable    :: x      !! *unknwon vector*
endtype MAT_SOLV