Elmer FEM solver Elmer is an open source finite element software for multiphysical problems
bandmatrix Module Reference

## Public Member Functions

subroutine band_zeromatrix (A)

subroutine band_zerorow (A, n)

subroutine band_addtomatrixelement (A, i, j, value)

subroutine band_setmatrixelement (A, i, j, value)

real(kind=dp) function band_getmatrixelement (A, i, j)

subroutine band_gluelocalmatrix (A, N, Dofs, Indeces, LocalMatrix)

subroutine sband_setdirichlet (A, b, n, Value)

type(matrix_t) function, pointer band_creatematrix (N, Subband, Symmetric, AllocValues)

subroutine band_matrixvectormultiply (A, u, v)

subroutine band_matrixvectorprod (u, v, ipar)

subroutine band_diagprecondition (u, v, ipar)

## Member Function/Subroutine Documentation

 subroutine bandmatrix::band_addtomatrixelement ( type(matrix_t) A, integer i, integer j, real(kind=dp) value )

Add a given element to the band matrix.

Parameters
 a Structure holding matrix i row number of the matrix element j column number of the matrix element value Value to be added

Here is the caller graph for this function:

 type(matrix_t) function, pointer bandmatrix::band_creatematrix ( integer N, integer Subband, logical Symmetric, logical AllocValues )

Create the structures required for a Band format matrix.

Parameters
 n Number of rows for the matrix subband Max(ABS(Col-Diag(Row))) of the matrix symmetric Symmetric or not allocvalues Should the values arrays be allocated ?

References generalutils::allocatematrix(), and messages::fatal().

Referenced by elementutils::creatematrix().

Here is the call graph for this function:

Here is the caller graph for this function:

 subroutine bandmatrix::band_diagprecondition ( real(kind=dp), dimension(*) u, real(kind=dp), dimension(*) v, integer, dimension(*) ipar )

Diagonal preconditioning of a Band format matrix.

Parameters
 u Vector to be multiplied v Result vector of the multiplication ipar structure holding info from (HUTIter-iterative solver package)
 real(kind=dp) function bandmatrix::band_getmatrixelement ( type(matrix_t) A, integer i, integer j )

Get a given matrix element of a band matrix format.

Parameters
 a Structure holding matrix i row number of the matrix element j column number of the matrix element

Referenced by solverutils::getmatrixelement().

Here is the caller graph for this function:

 subroutine bandmatrix::band_gluelocalmatrix ( type(matrix_t) A, integer N, integer Dofs, integer, dimension(:) Indeces, real(kind=dp), dimension(:,:) LocalMatrix )

Add a set of values (.i.e. element stiffness matrix) to a Band format matrix.

Parameters
 localmatrix A (N x Dofs) x ( N x Dofs) matrix holding the values to be added to the Band format matrix a Structure holding matrix, values are affected in the process n Number of nodes in element dofs Number of degrees of freedom for one node indeces Maps element node numbers to global (or partition) node numbers (to matrix rows and columns, if Dofs = 1)

References localmatrix().

Here is the call graph for this function:

Here is the caller graph for this function:

 subroutine bandmatrix::band_matrixvectormultiply ( type(matrix_t) A, real(kind=dp), dimension(*) u, real(kind=dp), dimension(*) v )

Matrix vector product (v = Au) for a matrix given in Band format.

Parameters
 u vector to be multiplied v result vector a Structure holding the matrix

Referenced by solverutils::matrixvectormultiply().

Here is the caller graph for this function:

 subroutine bandmatrix::band_matrixvectorprod ( real(kind=dp), dimension(*) u, real(kind=dp), dimension(*) v, integer, dimension(*) ipar )

Matrix vector product (v = Au) for a matrix given in Band format. The matrix is accessed from a global variable GlobalMatrix.

Parameters
 u Vector to be multiplied v Result vector of the multiplication ipar structure holding info from (HUTIter-iterative solver package)
 subroutine bandmatrix::band_setmatrixelement ( type(matrix_t) A, integer i, integer j, real(kind=dp) value )

Set a given element in the band matrix.

Parameters
 a Structure holding matrix i row number of the matrix element j column number of the matrix element value Value to be set

Referenced by solverutils::setmatrixelement().

Here is the caller graph for this function:

 subroutine bandmatrix::band_zeromatrix ( type(matrix_t) A)

Zero a Band format matrix.

Parameters
 a Structure holding matrix

Referenced by solverutils::initializetozero().

Here is the caller graph for this function:

 subroutine bandmatrix::band_zerorow ( type(matrix_t) A, integer n )

Zero given row from a Band format matrix.

Parameters
 a Structure holding matrix n Row number to be zerod

Referenced by solverutils::zerorow().

Here is the caller graph for this function:

 subroutine bandmatrix::sband_setdirichlet ( type(matrix_t) A, real(kind=dp), dimension(:) b, integer, intent(in) n, real(kind=dp), intent(in) Value )

Set value of unkown x_n to given value for symmetric band matrix. This is done by replacing the equation of the unknown by x_n = Value (i.e. zeroing the row of the unkown in the matrix, and setting diagonal to identity). Also the respective column is set to zero (except for the diagonal) to preserve symmetry, while also substituting the rhs by by rhs(i) = rhs(i) - A(i,n) * Value.

Parameters
 a Structure holding matrix, values are affected in the process b RHS vector [in] value Value for the unknown [in] n Ordered number of the unkown (i.e. matrix row and column number)

Here is the caller graph for this function:

The documentation for this module was generated from the following file: