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

Functions/Subroutines

subroutine stokessolver (Model, Solver, dt, TransientSimulation)
 
subroutine gcrupdate (n, A, M, x, b, r, Snew, S, V, RR, Round, res, MParam)
 
subroutine localmatrix (STIFF, VeloBlock, Mass, FORCE, LOAD, Nodalrho, Nodalmu, Vx, Vy, Vz, Element, n, nd, dim, Convect, SkipPowerLaw, Newton, DiagonalA)
 
subroutine staticcondensation (N, Nb, dim, K, F)
 
real(kind=dp) function mydot (n, x, y)
 
subroutine mymv (A, x, b, Update)
 
real(kind=dp) function mynorm (n, x)
 
subroutine setboundaryconditions (Model, StiffMatrix, Name, DOF, NDOFs, Perm, rhs)
 
subroutine nullifyedgedofs (Model, StiffMatrix, NDOFs, Element, Perm, rhs)
 
subroutine navierstokesboundary (BoundaryMatrix, BoundaryVector, LoadVector, NodalExtPressure, NodalSlipCoeff, NormalTangential, Element, n, Nodes)
 
subroutine optimalmatrixscaling (K, A, Q, dim, b, Parallel)
 
subroutine computevarloads (Solver)
 

Function/Subroutine Documentation

subroutine stokessolver::computevarloads ( type(solver_t), target  Solver)

References solverutils::backrotatentsystem(), generalutils::getvarname(), solverutils::matrixvectormultiply(), parallelutils::parallelinitsolve(), parallelutils::parallelmatrixvector(), parallelutils::parallelsumvector(), solver(), and lists::variableget().

Referenced by stokessolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine stokessolver::gcrupdate ( integer  n,
type(matrix_t), pointer  A,
type(matrix_t), pointer  M,
real(kind=dp), dimension(:)  x,
real(kind=dp), dimension(:)  b,
real(kind=dp), dimension(:)  r,
real(kind=dp), dimension(:)  Snew,
real(kind=dp), dimension(:,:)  S,
real(kind=dp), dimension(:,:)  V,
real(kind=dp), dimension(:)  RR,
integer  Round,
real(kind=dp)  res,
integer  MParam 
)

References messages::info(), mydot(), mymv(), mynorm(), and parallelutils::parallelvector().

Here is the call graph for this function:

subroutine stokessolver::localmatrix ( real(kind=dp), dimension(:,:), target  STIFF,
real(kind=dp), dimension(:,:), target  VeloBlock,
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(:)  Vx,
real(kind=dp), dimension(:)  Vy,
real(kind=dp), dimension(:)  Vz,
type(element_t), pointer  Element,
integer  n,
integer  nd,
integer  dim,
logical  Convect,
logical  SkipPowerLaw,
logical  Newton,
logical  DiagonalA 
)

References materialmodels::effectiveviscosity(), elementdescription::elementinfo(), integration::gausspoints(), defutils::getelementnodes(), and lists::listcheckpresent().

Here is the call graph for this function:

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

References parallelutils::paralleldot().

Here is the call graph for this function:

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

References crsmatrix::crs_matrixvectormultiply(), and parallelutils::parallelmatrixvector().

Here is the call graph for this function:

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

References parallelutils::parallelnorm().

Here is the call graph for this function:

subroutine stokessolver::navierstokesboundary ( real(kind=dp), dimension(:,:)  BoundaryMatrix,
real(kind=dp), dimension(:)  BoundaryVector,
real(kind=dp), dimension(:,:)  LoadVector,
real(kind=dp), dimension(:)  NodalExtPressure,
real(kind=dp), dimension(:,:)  NodalSlipCoeff,
logical  NormalTangential,
type(element_t), pointer  Element,
integer  n,
type(nodes_t)  Nodes 
)

References coordinatesystems::coordinatesystemdimension(), elementdescription::elementinfo(), integration::gausspoints(), normal(), elementdescription::normalvector(), and elementutils::tangentdirections().

Referenced by flowsolver(), and stokessolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine stokessolver::nullifyedgedofs ( type(model_t)  Model,
type(matrix_t), pointer  StiffMatrix,
integer  NDOFs,
type(element_t), pointer  Element,
integer, dimension(:)  Perm,
real(kind=dp), dimension(:), optional  rhs 
)

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

Referenced by stokessolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine stokessolver::optimalmatrixscaling ( type(matrix_t)  K,
type(matrix_t)  A,
type(matrix_t)  Q,
integer  dim,
real(kind=dp), dimension(:)  b,
logical  Parallel 
)

References messages::info(), parallelutils::parallelreduction(), and parallelutils::parallelsumvector().

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 
)

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

Here is the call graph for this function:

subroutine stokessolver::staticcondensation ( integer  N,
integer  Nb,
integer  dim,
real(kind=dp), dimension(:,:)  K,
real(kind=dp), dimension(:)  F 
)

References linearalgebra::invertmatrix().

Referenced by stokessolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine stokessolver ( type(model_t)  Model,
type(solver_t), target  Solver,
real(kind=dp)  dt,
logical  TransientSimulation 
)

References defutils::activeboundaryelement(), generalutils::advanceoutput(), solverutils::backrotatentsystem(), solverutils::backscalelinearsystem(), computevarloads(), coordinatesystems::coordinatesystemdimension(), defutils::defaultdirichletbcs(), defutils::defaultfinishassembly(), defutils::defaultfinishbulkassembly(), defutils::defaultinitialize(), defutils::defaultsolve(), messages::fatal(), gcrupdate(), defutils::getactiveelement(), defutils::getbc(), defutils::getbodyforce(), defutils::getboundaryelement(), defutils::getelementdofs(), defutils::getelementfamily(), defutils::getelementnodes(), defutils::getelementnofbdofs(), defutils::getelementnofnodes(), defutils::getlogical(), defutils::getmaterial(), defutils::getmesh(), defutils::getnofactive(), defutils::getnofboundaryelements(), defutils::getreal(), defutils::getlocalsolution::getscalarlocalsolution(), defutils::getsolverparams(), generalutils::getvarname(), messages::info(), solverutils::initializetozero(), lists::listaddconstreal(), lists::listaddlogical(), lists::listcheckpresent(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetstring(), localmatrix(), mymv(), mynorm(), navierstokesboundary(), nullifyedgedofs(), parallelutils::parallelinitmatrix(), parallelutils::parallelinitsolve(), parallelutils::parallelmatrix(), parallelutils::parallelupdateresult(), parallelutils::parallelupdatesolve(), pressuresolver(), solverutils::rowequilibration(), solverutils::scalelinearsystem(), setboundaryconditions(), solver(), staticcondensation(), and velocitysolver().