Elmer FEM solver Elmer is an open source finite element software for multiphysical problems
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 )

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 )

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 )

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 )

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 )

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 )

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 )

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.

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 )

Here is the call graph for this function: