Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
|
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) |
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().
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().
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().
real(kind=dp) function stokessolver::mydot | ( | integer | n, |
real(kind=dp), dimension(:) | x, | ||
real(kind=dp), dimension(:) | y | ||
) |
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().
real(kind=dp) function stokessolver::mynorm | ( | integer | n, |
real(kind=dp), dimension(:) | x | ||
) |
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().
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().
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().
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().
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().
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().