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

Functions/Subroutines

subroutine stokessolver (Model, Solver, dt, TransientSimulation)
 
real(kind=dp) function computepressureerror (ElementSol, Element, n, nd, tp, mu)
 
real(kind=dp) function computevelocityerror (ElementSol, Element, n, nd, tp, mu)
 
subroutine localmatrix (STIFF, Mass, FORCE, LOAD, Nodalrho, Nodalmu, NodalVelo, Element, n, nd, dim, Stabilization, Convect, GradDivParam)
 
subroutine lcondensatestabilizationbubble (n, nd, dim, K)
 
subroutine localmatrixboundary (STIFF, FORCE, Velocity, rho, Element, nd, dim, BlockPreconditioning, ABlock)
 
subroutine gcrouteriteration (n, A, l, PA, q, PM, PP, x, b, Rounds, TOL, dim, TractionBCIndeces, mu, dt)
 
subroutine preconditioningiteration (n, x, A, l, PA, q, PM, PP, r, dim, TOL, Rounds, TractionBCIndeces, mu, dt)
 
subroutine schurcomplementmatrix (Nodalrho, Nodalmu, Element, n, nd, dim, dt, MLocal, Plocal)
 
subroutine crs_matrixdivmultiply (A, u, v, dim)
 
subroutine bicgstab (n, A, x, b, Rounds, TOL)
 
subroutine pmv (A, x, b, Update)
 
real(kind=dp) function pnorm (n, x)
 
real(kind=dp) function pdot (n, x, y)
 
subroutine updateglobalpreconditioner (StiffMatrix, LocalStiffMatrix, n, NDOFs, NodeIndexes)
 
subroutine setboundaryconditions (Model, StiffMatrix, Name, DOF, NDOFs, Perm, rhs)
 

Function/Subroutine Documentation

subroutine stokessolver::bicgstab ( integer  n,
type(matrix_t), pointer  A,
real(kind=dp), dimension(n)  x,
real(kind=dp), dimension(n)  b,
integer  Rounds,
real(kind=dp)  TOL 
)

This is an internal ILU preconditioned BiCGStab method.

References crsmatrix::crs_lusolve(), pdot(), pmv(), and pnorm().

Here is the call graph for this function:

real(kind=dp) function stokessolver::computepressureerror ( real(kind=dp), dimension(:,:)  ElementSol,
type(element_t), pointer  Element,
integer  n,
integer  nd,
real(kind=dp)  tp,
real(kind=dp)  mu 
)

References elementdescription::elementinfo(), integration::gausspoints(), and defutils::getelementnodes().

Referenced by stokessolver().

Here is the call graph for this function:

Here is the caller graph for this function:

real(kind=dp) function stokessolver::computevelocityerror ( real(kind=dp), dimension(:,:)  ElementSol,
type(element_t), pointer  Element,
integer  n,
integer  nd,
real(kind=dp)  tp,
real(kind=dp)  mu 
)

References elementdescription::elementinfo(), integration::gausspoints(), and defutils::getelementnodes().

Referenced by stokessolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine stokessolver::crs_matrixdivmultiply ( type(matrix_t), pointer  A,
real(kind=dp), dimension(*)  u,
real(kind=dp), dimension(*)  v,
integer  dim 
)

Referenced by preconditioningiteration().

Here is the caller graph for this function:

subroutine stokessolver::gcrouteriteration ( integer  n,
type(matrix_t), pointer  A,
integer  l,
type(matrix_t), pointer  PA,
integer  q,
type(matrix_t), pointer  PM,
type(matrix_t), pointer  PP,
real(kind=dp), dimension(n)  x,
real(kind=dp), dimension(n)  b,
integer  Rounds,
real(kind=dp)  TOL,
integer  dim,
integer, dimension(:)  TractionBCIndeces,
real(kind=dp)  mu,
real(kind=dp)  dt 
)

References messages::info(), lists::listaddlogical(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetstring(), pdot(), pmv(), pnorm(), preconditioningiteration(), pressuresolver(), solver(), and velocitysolver().

Here is the call graph for this function:

subroutine stokessolver::lcondensatestabilizationbubble ( integer  n,
integer  nd,
integer  dim,
real(kind=dp), dimension(:,:)  K 
)

References linearalgebra::invertmatrix().

Here is the call graph for this function:

subroutine stokessolver::localmatrix ( real(kind=dp), dimension(:,:), target  STIFF,
real(kind=dp), dimension(:,:), target  Mass,
real(kind=dp), dimension(:), target  FORCE,
real(kind=dp), dimension(:,:), target  LOAD,
real(kind=dp), dimension(:)  Nodalrho,
real(kind=dp), dimension(:)  Nodalmu,
real(kind=dp), dimension(:,:)  NodalVelo,
type(element_t), pointer  Element,
integer  n,
integer  nd,
integer  dim,
logical  Stabilization,
logical  Convect,
real(kind=dp)  GradDivParam 
)

References elementdescription::elementdiameter(), elementdescription::elementinfo(), integration::gausspoints(), defutils::getelementnodes(), and lcondensatestabilizationbubble().

Here is the call graph for this function:

subroutine stokessolver::localmatrixboundary ( real(kind=dp), dimension(:,:), target  STIFF,
real(kind=dp), dimension(:), target  FORCE,
real(kind=dp), dimension(:,:)  Velocity,
real(kind=dp)  rho,
type(element_t), pointer  Element,
integer  nd,
integer  dim,
logical  BlockPreconditioning,
real(kind=dp), dimension(:,:), target  ABlock 
)

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

Here is the call graph for this function:

real(kind=dp) function stokessolver::pdot ( integer  n,
real(kind=dp), dimension(:)  x,
real(kind=dp), dimension(:)  y 
)

Referenced by bicgstab(), and gcrouteriteration().

Here is the caller graph for this function:

subroutine stokessolver::pmv ( type(matrix_t), pointer  A,
real(kind=dp), dimension(:)  x,
real(kind=dp), dimension(:)  b,
logical, optional  Update 
)

References crsmatrix::crs_matrixvectormultiply().

Referenced by bicgstab(), and gcrouteriteration().

Here is the call graph for this function:

Here is the caller graph for this function:

real(kind=dp) function stokessolver::pnorm ( integer  n,
real(kind=dp), dimension(:)  x 
)
subroutine stokessolver::preconditioningiteration ( integer  n,
real(kind=dp), dimension(n)  x,
type(matrix_t), pointer  A,
integer  l,
type(matrix_t), pointer  PA,
integer  q,
type(matrix_t), pointer  PM,
type(matrix_t), pointer  PP,
real(kind=dp), dimension(n)  r,
integer  dim,
real(kind=dp)  TOL,
integer  Rounds,
integer, dimension(:)  TractionBCIndeces,
real(kind=dp)  mu,
real(kind=dp)  dt 
)

References crs_matrixdivmultiply(), crsmatrix::crs_matrixvectormultiply(), g(), pressuresolver(), solverutils::solvelinearsystem(), solver(), and velocitysolver().

Here is the call graph for this function:

subroutine stokessolver::schurcomplementmatrix ( real(kind=dp), dimension(:)  Nodalrho,
real(kind=dp), dimension(:)  Nodalmu,
type(element_t), pointer  Element,
integer  n,
integer  nd,
integer  dim,
real(kind=dp), optional  dt,
real(kind=dp), dimension(:,:), target  MLocal,
real(kind=dp), dimension(:,:), target  Plocal 
)

References elementdescription::elementinfo(), integration::gausspoints(), and defutils::getelementnodes().

Here is the call graph for this function:

subroutine stokessolver::setboundaryconditions ( type(model_t)  Model,
type(matrix_t), pointer  StiffMatrix,
character(len=*)  Name,
integer  DOF,
integer  NDOFs,
integer, dimension(:)  Perm,
real(kind=dp), dimension(:), optional  rhs 
)

Sets internally Dirichlet boundary condition for given dof.

References defutils::getelementdofs(), defutils::getelementnofnodes(), lists::listgetreal(), solverutils::setmatrixelement(), and solverutils::zerorow().

Here is the call graph for this function:

subroutine stokessolver::updateglobalpreconditioner ( type(matrix_t), pointer  StiffMatrix,
real(kind=dp), dimension(:,:)  LocalStiffMatrix,
integer  n,
integer  NDOFs,
integer, dimension(:)  NodeIndexes 
)

References bandmatrix::band_gluelocalmatrix(), and crsmatrix::crs_gluelocalmatrix().

Here is the call graph for this function: