Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
 All Classes Files Functions Variables Typedefs Macros Groups Pages
SolverUtils.src File Reference

Data Types

module  solverutils
 

Functions/Subroutines

subroutine checkntelement (n, elno)
 
subroutine setelementvalues (n, elno)
 
subroutine setpointvalues (n)
 
subroutine setlimitervalues (n)
 
subroutine setperiodicboundariespass1 (Model, A, b, Name, DOF, NDOFs, Perm, This, Done)
 
subroutine setperiodicboundariespass2 (Model, A, b, Name, DOF, NDOFs, Perm, This, Done)
 
subroutine setelementloads (n)
 
subroutine setpointloads (n)
 
subroutine integmassconsistent (j, n, nrm)
 

Function/Subroutine Documentation

subroutine setdirichletboundaries::checkntelement ( integer  n,
integer  elno 
)

References coordinatesystems::coordinatesystemdimension(), lists::listcheckpresent(), lists::listgetlogical(), lists::listgetreal(), and solverutils::rotatentsystem().

Here is the call graph for this function:

subroutine averageboundarynormals::integmassconsistent ( integer  j,
integer  n,
real(kind=dp), dimension(:)  nrm 
)

References elementdescription::elementinfo(), integration::gausspoints(), and elementdescription::normalvector().

Here is the call graph for this function:

subroutine setnodalloads::setelementloads ( integer  n)

References lists::listgetreal(), and lists::listgetrealarray().

Here is the call graph for this function:

subroutine setdirichletboundaries::setelementvalues ( integer  n,
integer  elno 
)

Set values related to a specific boundary or bulk element.

References coordinatesystems::coordinatesystemdimension(), crsmatrix::crs_setsymmdirichlet(), lists::listgetlogical(), lists::listgetreal(), lists::listgetrealarray(), solverutils::rotatentsystem(), bandmatrix::sband_setdirichlet(), solverutils::setmatrixelement(), and solverutils::zerorow().

Here is the call graph for this function:

subroutine setdirichletboundaries::setlimitervalues ( integer  n)

Set values related to upper and lower limiters.

References crsmatrix::crs_setsymmdirichlet(), lists::listgetreal(), bandmatrix::sband_setdirichlet(), solverutils::setmatrixelement(), and solverutils::zerorow().

Here is the call graph for this function:

subroutine setdirichletboundaries::setperiodicboundariespass1 ( type(model_t)  Model,
type(matrix_t), pointer  A,
real(kind=dp), dimension(:)  b,
character(len=*)  Name,
integer  DOF,
integer  NDOFs,
integer, dimension(:)  Perm,
integer  This,
logical, dimension(:)  Done 
)

At first pass sum together the rows related to the periodic dofs.

Parameters
modelThe current model structure
aThe global matrix
bThe global RHS vector
namename of the dof to be set
doneHas the node already been done.
thisNumber of the current boundary.
dofThe order number of the dof
ndofsthe total number of DOFs for this equation
permThe node reordering info, this has been generated at the beginning of the simulation for bandwidth optimization

References solverutils::addtomatrixelement(), generalutils::allocatematrix(), crsmatrix::crs_sortmatrix(), g(), lists::listgetconstreal(), lists::listgetlogical(), solverutils::setmatrixelement(), lists::variableget(), and solverutils::zerorow().

Here is the call graph for this function:

subroutine setdirichletboundaries::setperiodicboundariespass2 ( type(model_t)  Model,
type(matrix_t), pointer  A,
real(kind=dp), dimension(:)  b,
character(len=*)  Name,
integer  DOF,
integer  NDOFs,
integer, dimension(:)  Perm,
integer  This,
logical, dimension(:)  Done 
)

At second pass add the [...1 .. -1 ...] row structure that results to the equality of the periodic dofs.

Parameters
modelThe current model structure
aThe global matrix
bThe global RHS vector
namename of the dof to be set
doneHas the node already been done.
thisNumber of the current boundary.
dofThe order number of the dof
ndofsthe total number of DOFs for this equation
permThe node reordering info, this has been generated at the

References solverutils::addtomatrixelement(), lists::listgetcreal(), lists::listgetlogical(), and solverutils::zerorow().

Here is the call graph for this function:

subroutine setnodalloads::setpointloads ( integer  n)

References lists::listgetreal(), lists::listgetrealarray(), and messages::warn().

Here is the call graph for this function:

subroutine setdirichletboundaries::setpointvalues ( integer  n)

Set values related to individual points.

References crsmatrix::crs_setsymmdirichlet(), lists::listgetreal(), lists::listgetrealarray(), bandmatrix::sband_setdirichlet(), solverutils::setmatrixelement(), messages::warn(), and solverutils::zerorow().

Here is the call graph for this function: