FEDEM Solver  R8.0
Source code of the dynamics solver
Public Member Functions | List of all members
solextensionmodule::cssolve Interface Reference

Solves the linear system of equations Ax = B. More...

Public Member Functions

subroutine cssolvea (iop, iopSing, sysMat, rhs, lpu, ierr, eqnInErr, meqnInErr, tolFactorize, scaleOnSing, neq1)
 Solves the linear system of equations Ax = B. More...
 
subroutine cssolveb (iop, iopSing, sysMat, rhs, nrhs, lpu, ierr, eqnInErr, meqnInErr, tolFactorize, scaleOnSing, neq1)
 Solves the linear system of equations Ax = B. More...
 

Detailed Description

Solves the linear system of equations Ax = B.

See also
solextensionmodule::cssolveb.

Member Function/Subroutine Documentation

◆ cssolvea()

subroutine solextensionmodule::cssolve::cssolvea ( integer, intent(in)  iop,
integer, intent(in)  iopSing,
type(sysmatrixtype), intent(inout)  sysMat,
real(dp), dimension(:,:), intent(inout)  rhs,
integer, intent(in)  lpu,
integer, intent(out)  ierr,
integer(ik), intent(out), optional  eqnInErr,
integer(ik), dimension(:), intent(out), optional  meqnInErr,
real(dp), intent(in), optional  tolFactorize,
real(dp), intent(in), optional  scaleOnSing,
integer, intent(in), optional  neq1 
)

Solves the linear system of equations Ax = B.

This version accepts the right-hand-side vectors rhs to be provided as a 2D neq×nrhs matrix instead of a 1D array.

See also
solextensionmodule::cssolveb for detailed parameter description

◆ cssolveb()

subroutine solextensionmodule::cssolve::cssolveb ( integer, intent(in)  iop,
integer, intent(in)  iopSing,
type(sysmatrixtype), intent(inout)  sysMat,
real(dp), dimension(:), intent(inout)  rhs,
integer, intent(in)  nrhs,
integer, intent(in)  lpu,
integer, intent(out)  ierr,
integer(ik), intent(out), optional  eqnInErr,
integer(ik), dimension(:), intent(out), optional  meqnInErr,
real(dp), intent(in), optional  tolFactorize,
real(dp), intent(in), optional  scaleOnSing,
integer, intent(in), optional  neq1 
)

Solves the linear system of equations Ax = B.

Parameters
[in]iopCalculation option (see below)
[in]iopSingSingularity handling options (see below)
sysMatThe coefficient matrix A
rhsThe right-hand-side vector(s) B, solution on output
[in]nrhsNumber of right-hand-side vectors
[in]lpuFile unit number for res-file output
[out]ierrError flag
[out]eqnInErrEquation number of the first singularity detected
[out]meqnInErrEquation numbers of all singularities detected
[in]tolFactorizeSingularity tolerance
[in]scaleOnSingScaling factor for singular pivot elements
[in]neq1Number of equations to solve for

Basic equations: Ax = B, LDL'x = B, LDy = B, L'x = y. The value on the input argument iop defines which solution step to do:

  • = 1 : Factorization (compute L and D in A = LDL')
  • = 2 : Factorization and forward reduction (compute L and D in A = LDL' and y in LDy = B)
  • = 3 : Factorization, forward reduction and back substitution (compute L and D in A = LDL', y in LDy = B and x in L'x = y)
  • = 4 : Forward reduction and back substitution (compute y in LDy = B and x in L'x = y)
  • = 5 : Forward reduction only (compute y in LDy = B)
  • = 6 : Back substitution only (compute x in L'x = y)

The singularity handling flag iopSing is interpreted as follows:

  • > 1 : Do a solve with modified matrix to override singularities
  • = 1 : Same as for > 1, but override only the true singularities
  • = 0 : Abort if the matrix is singular
  • < 0 : Same as for > 0, but suppress all the singular equations
Author
Bjorn Haugen
Date
Sep 1998
Author
Knut Morten Okstad
Date
Jan 2003

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