Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
 All Classes Files Functions Variables Typedefs Macros Groups Pages
Elmer library
Collaboration diagram for Elmer library:

Modules

 Default API
 

Data Types

module  adaptive
 
module  bandmatrix
 
module  bandwidthoptimize
 
module  blocksolve
 
module  clusteringmethods
 
module  coordinatesystems
 
module  crsmatrix
 
module  differentials
 
module  diffuseconvective
 
module  diffuseconvectivegeneral
 
module  directsolve
 
module  eigensolve
 
module  elementdescription
 
module  exchangecorrelations
 
module  fetisolve
 
module  freesurface
 
module  hashtable
 
module  integration
 
module  interpolation
 
module  iterativemethods
 
module  itersolve
 
module  linearalgebra
 
module  listmatrix
 
module  lists
 
module  maxwell
 
module  maxwellaxis
 
module  maxwellgeneral
 
module  meshutils
 
module  messages
 
module  modeldescription
 
module  multigrid
 
module  navierstokes
 
module  navierstokescylindrical
 
module  navierstokesgeneral
 
module  solverutils
 
module  paralleleigensolve
 
module  parallelutils
 
module  particleutils
 
module  pelementbase
 
module  pelementmaps
 
module  radiation
 
module  radiationfactorglobals
 
module  smoothers
 
module  sparitercomm
 
module  spariterglobals
 
module  spariterprecond
 
module  sparitersolve
 
module  stresslocal
 
module  stressgeneral
 
module  timeintegrate
 
module  types
 

Functions/Subroutines

subroutine multigridprec (u, v, ipar)
 
subroutine solvebandlapack (N, M, A, X, Subband, Band)
 
program solver
 
subroutine elmersolver (initialize)
 
subroutine addvtuoutputsolverhack ()
 
subroutine addsolvers ()
 
subroutine addmeshcoordinatesandtime ()
 
subroutine setinitialconditions ()
 
subroutine savecurrent (CurrentStep)
 
subroutine savetopost (CurrentStep)
 
recursive subroutine freemesh (Mesh)
 
subroutine freesolver (Solver)
 
subroutine freevaluelist (List)
 
subroutine freemodel (Model)
 
subroutine solvesbandlapack (N, M, A, X, Subband, Band)
 
subroutine vankaprec (u, v, ipar)
 
RECURSIVE INTEGER function eliminatedirichlet (Model, Solver, A, b, x, n, DOFs, Norm)
 
INTEGER function eliminateperiodic (Model, Solver, A, b, x, n, DOFs, Norm)
 
subroutine crs_sortmatrixvalues (A)
 

Detailed Description

Function/Subroutine Documentation

subroutine elmersolver::addmeshcoordinatesandtime ( )

Adds coordinate and time variables to the current mesh structure.

References solver(), lists::variableadd(), and lists::variableget().

Referenced by elmersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elmersolver::addsolvers ( )

Adds flags for active solvers.

References mainutils::addequationbasics(), mainutils::addequationsolution(), elementutils::freematrix(), lists::listaddlogical(), lists::listgetintegerarray(), lists::listgetlogical(), lists::listgetstring(), and solver().

Referenced by elmersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elmersolver::addvtuoutputsolverhack ( )

References messages::info(), lists::listaddlogical(), lists::listaddstring(), lists::listgetstring(), and lists::listremove().

Referenced by elmersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine eliminateperiodic::crs_sortmatrixvalues ( type(matrix_t), pointer  A)

Sort columns and values to ascending order for rows of a CRS format matrix.

References generalutils::sortf().

Referenced by eliminateperiodic(), matrixbandwidthoptimize(), and rigidbody().

Here is the call graph for this function:

Here is the caller graph for this function:

RECURSIVE INTEGER function eliminatedirichlet ( type(model_t)  Model,
type(solver_t)  Solver,
type(matrix_t), pointer  A,
real(kind=dp), dimension(n)  b,
real(kind=dp), dimension(n)  x,
integer  n,
integer  DOFs,
real(kind=dp)  Norm 
)

Subroutine for reducing a linsystem DOFs by eliminating DOFs correspondig to known DOF values.

References generalutils::allocatematrix(), solverutils::computechange(), crsmatrix::crs_sortmatrix(), elementutils::freematrix(), generalutils::i2s(), messages::info(), lists::listaddlogical(), lists::listgetlogical(), parallelutils::parallelinitmatrix(), solverutils::solvelinearsystem(), and solver().

Referenced by eliminateperiodic().

Here is the call graph for this function:

Here is the caller graph for this function:

INTEGER function eliminateperiodic ( type(model_t)  Model,
type(solver_t)  Solver,
type(matrix_t), pointer  A,
real(kind=dp), dimension(n)  b,
real(kind=dp), dimension(n)  x,
integer  n,
integer  DOFs,
real(kind=dp)  Norm 
)

Subroutine for eliminating DOFs related to periodic BCs.

References generalutils::allocatematrix(), crs_matrixmatrixmultiply(), crsmatrix::crs_matrixvectormultiply(), crs_sortmatrixvalues(), crs_transposelocal(), eliminatedirichlet(), messages::fatal(), elementutils::freematrix(), messages::info(), lists::listgetinteger(), lists::listgetlogical(), parallelutils::parallelinitmatrix(), periodiccnstr(), solverutils::solvelinearsystem(), and solver().

Here is the call graph for this function:

subroutine elmersolver ( integer  initialize)
recursive subroutine elmersolver::freemesh ( type(mesh_t), pointer  Mesh)

Release a mesh from the list of meshes.

References meshutils::releasemesh().

Referenced by freemodel().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elmersolver::freemodel ( type(model_t), pointer  Model)

Releases the whole model.

References elementutils::freematrix(), freemesh(), freesolver(), and freevaluelist().

Referenced by elmersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elmersolver::freesolver ( type(solver_t)  Solver)

Releases structures related to the Solver.

References elementutils::freematrix(), freevaluelist(), and solver().

Referenced by freemodel().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elmersolver::freevaluelist ( type(valuelist_t), pointer  List)

Releases value list which includes all the sif definitions, for example.

Referenced by freemodel(), and freesolver().

Here is the caller graph for this function:

subroutine multigridprec ( real(kind=dp), dimension(*), target  u,
real(kind=dp), dimension(*), target  v,
integer, dimension(*)  ipar 
)
Parameters
iparstructure holding info from (HUTIter-iterative solver package)

References messages::info(), and multigrid::multigridsolve().

Referenced by itersolve::itersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elmersolver::savecurrent ( integer  CurrentStep)

Saves current timestep to external files.

References generalutils::i2s(), lists::listgetlogical(), lists::listgetstring(), modeldescription::saveresult(), and savetopost().

Referenced by elmersolver(), execsimulation(), and resulttoresult().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elmersolver::savetopost ( integer  CurrentStep)

Saves results file to post processing file of ElmerPost format, if requested.

References generalutils::filenamequalified(), generalutils::i2s(), lists::listgetlogical(), lists::listgetstring(), generalutils::nextfreefilename(), meshutils::setcurrentmesh(), and modeldescription::writepostfile().

Referenced by elmersolver(), execsimulation(), resulttoresult(), and savecurrent().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elmersolver::setinitialconditions ( )

Sets initial conditions for the fields.

References coordinatesystems::coordinatesystemdimension(), defutils::getbc(), defutils::getelementfamily(), defutils::getelementnodes(), defutils::getlogical(), defutils::getreal(), defutils::getsimulation(), initcond(), lists::listgetlogical(), lists::listgetrealarray(), lists::listgetstring(), lists::listsetnamespace(), elementdescription::normalvector(), restart(), meshutils::setcurrentmesh(), solver(), and elementutils::tangentdirections().

Referenced by elmersolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine solvebandlapack ( integer  N,
integer  M,
real(kind=dp), dimension(band,n)  A,
real(kind=dp), dimension(m,n)  X,
integer  Subband,
integer  Band 
)

Call LAPACK band matrix solvers.

Referenced by directsolve::bandsolver().

Here is the caller graph for this function:

program solver ( )

A caller for the Elmer main program.

References elmersolver(), and generalutils::formatdate().

Referenced by acousticssolver(), defutils::activeboundaryelement(), solverutils::add1stordertime(), solverutils::add1stordertime_crs(), solverutils::add2ndordertime(), add2ndordertime2(), mainutils::addequationbasics(), mainutils::addequationsolution(), addglobaltime(), addheatfluxbc(), addheatgap(), addlocalfaceterms(), addmeshcoordinatesandtime(), mainutils::addsolverprocedure(), addsolvers(), advectiondiffusionsolver(), advectionreactionsolver(), amgbondsgeometric(), multigrid::amgsolve(), amgsweep(), amgtest(), eigensolve::arpackdampedeigensolve(), eigensolve::arpackeigensolve(), eigensolve::arpackeigensolvecomplex(), eigensolve::arpackstabeigensolve(), asciipointstomesh(), solverutils::backscalelinearsystem(), bcassembly(), bicgstablouteriteration(), bicgstabouteriteration(), bisectoptimize(), blocksolve::blockinitmatrix(), blocksolve::blockkryloviter(), blocksolve::blockmatrixprec(), blocksolve::blockpickmatrix(), blocksolve::blockprecmatrix(), blocksolveext(), blocksolve::blocksolveint(), mainutils::blocksolver(), blocksolve::blockstandarditer(), mainutils::blocksystemassembly(), blocksystemdirichlet(), boundaryassembly(), boundarylocalmatrix(), boxmovemesh(), breadthfirstsearch(), bsolver(), bulkassembly(), solverutils::calculatenodalweights(), calculatestresses(), chargedensitysolver(), checkcircleboundary(), checklatentheat(), mainutils::checksolveroptions(), solverutils::checkstepsize(), checkstepsizeblock(), directsolve::cholmod_solvesystem(), clusteringmethods::chooseclusternodes(), choosecoarsenodes(), clusterextrudedmesh(), meshutils::clusternodesbydirection(), cmgbonds(), cmgclusterform(), multigrid::cmgsolve(), cmgsweep(), compressibilityscale(), compressibilitysolver(), compressiblens(), computeacousticimpedance(), computeaveragevelocity(), computeblocknorm(), solverutils::computechange(), computefieldsatpoint(), computemasscenter(), computenodalfield(), solverutils::computenorm(), computepotential(), computestress(), computestressandstrain(), computevarloads(), computeveloatpoint(), concentratedloads(), coupledconstraintassembly(), mainutils::coupledsolver(), coupledtosinglevector(), blocksolve::createblockvariable(), creategridparticles(), createisotherm(), elementutils::creatematrix(), createnodes(), datatofieldsolver(), dcrcomplexsolver(), defutils::default1stordertimec(), defutils::default1stordertimeglobal(), defutils::default1stordertimer(), defutils::default2ndordertimec(), defutils::default2ndordertimeglobal(), defutils::default2ndordertimer(), defutils::defaultdirichletbcs(), defutils::defaultfinishassembly(), defutils::defaultfinishboundaryassembly(), defutils::defaultfinishbulkassembly(), defutils::defaultinitialize(), defutils::defaultsolve(), defutils::defaultupdatebulkc(), defutils::defaultupdatebulkr(), defutils::defaultupdatedampc(), defutils::defaultupdatedampr(), defutils::defaultupdateequationsc(), defutils::defaultupdateequationsr(), defutils::defaultupdateforcec(), defutils::defaultupdateforcer(), defutils::defaultupdatemassc(), defutils::defaultupdatemassr(), defutils::defaultupdatetimeforcec(), defutils::defaultupdatetimeforcer(), defutils::defaultvariableadd(), depthfirstsearch(), meshutils::detectextrudedstructure(), solverutils::determinesoftlimiter(), diffusegrayradiation(), direct1dsmoother(), directsolve::directsolver(), dirichletafromb(), discontindexes(), distancesolver(), distancesolver1(), distcomp(), distcomp0(), divergencesolver(), dosolve(), dxoutputsolver(), defutils::eigenorharmonicanalysis(), elasticsolver(), elementsizesolver(), eliminatedirichlet(), eliminateperiodic(), elmerpostoutputsolver(), elmersolver(), epsilonwall(), evaluatecostfunction(), execsimulation(), extractzerolevel(), solverutils::fct_correction(), fetisolve::feti(), fetisolve::fetiadddtob(), fetisolve::fetidirectsolver(), fetisolve::fetifloatingdomain(), fetisolve::fetimv(), fetisolver(), fetisolve::fetistopc(), filtertimeseries(), findgapindexes(), findoptimum(), findpullboundary(), meshutils::findrigidbodyfixingnodes(), solverutils::finishassembly(), flowsolver(), fluxsolver(), forcecompute(), fourierdiffusion3dsolver(), fourierdiffusionsolver(), timeintegrate::fractionalstep(), timeintegrate::fractionalstep_crs(), elementutils::freematrix(), freesolver(), freesurfacereduced(), freesurfacesolver(), fullitersolver(), gaugetree(), gaugetreefluxbc(), gcrouteriteration(), gebhardtfactors(), generalcurrent(), generalelectricflux(), geneticoptimize(), defutils::getactiveelement(), defutils::getboundaryelement(), defutils::getelementdofs(), defutils::getelementnodes(), defutils::getelementnofbdofs(), defutils::getelementnofdofs(), getlocalalevelocity(), meshutils::getmaxdefs(), modeldescription::getnodalelementsize(), defutils::getnofeigenmodes(), defutils::getscalarlocaleigenmode(), defutils::getscalarlocalsolution(), defutils::getsolver(), defutils::getsolverparams(), defutils::getvectorlocaleigenmode(), defutils::getvectorlocalsolution(), gidoutputsolver(), multigrid::gmgsolve(), gmgsweep(), gmshoutputsolver(), guessoptimum(), heatsolver(), helmholtzbemsolver(), helmholtzsolver(), initcond(), initfactorsolver(), initializeparticles(), solverutils::initializetimestep(), solverutils::initializetozero(), lists::initialpermutation(), innerouteriteration(), integratematrix(), integratesource(), interpolatef2cdistance(), itersolve::itersolver(), jfixpotentialsolver(), kesolver(), komega(), komegawalllaw(), solverutils::laplacematrixassembly(), levelsetcurvature(), levelsetdistance(), levelsetintegrate(), levelsetsolver(), levelsettimestep(), solverutils::linearsystemmultiply(), modeldescription::loadmodel(), modeldescription::loadrestartfile(), localfluxbc(), localmatrix(), localmatrixbc(), lumpedcartesianmass(), lumpeddisplacements(), lumpedfluidicforce(), lumpedsprings(), magneticsolver(), magneticw1solver(), magnetodynamics2d(), magnetodynamics2dharmonic(), magnetodynamicscalcfields(), magnetodynamicscalcfields_init(), magnetodynamicscalcfields_init0(), elementutils::makelistmatrix(), solverutils::massmatrixassembly(), matrixbandwidthoptimize(), meshsolver(), meshsolver_init(), meshutils::meshstabparams(), smoothers::mgsmooth(), monolithicsolve(), solverutils::mortarrobinsolver(), movingelstatsolver(), multigrid::msolveractivate(), multigrid::multigridsolve(), directsolve::mumps_solvesystem(), directsolve::mumpslocal_factorize(), directsolve::mumpslocal_solvenullspace(), directsolve::mumpslocal_solvesystem(), nodaldisplacementpenalty(), normalsolver(), omegawall(), openparticlefile(), optimalsolutionupdate(), outletcompute(), outletcompute_init(), paralleleigensolve::parallelarpackeigensolve(), parallelutils::parallelinitmatrix(), parallelutils::paralleliter(), parallelprojecttoplane(), parallelprojecttoplane_init(), directsolve::pardiso_solvesystem(), particleadvector(), particleadvector_init(), particledynamics(), particledynamics_init(), particleoutputsolver(), particletracker(), particleutils::particlevariablecreate(), particlewallcontact(), particledynamicsstuff::particlewallproc(), passiveextrudedmesh(), phasechangesolve(), pmggetelementdofs(), multigrid::pmgsolve(), pmgsweep(), meshutils::pointinmesh(), poissonbemsolver(), poissonboltzmannsolve(), freesurface::poissonsolve(), poissonsolver(), potential(), preconditioningiteration(), pressuresolver(), projecttoplane(), radiationfactors(), rateofchangesolver(), adaptive::refinemesh(), releaseratesolver(), reloadsolution(), remesh(), resultoutputsolver(), resulttopost(), resulttoresult(), reynoldspostprocess(), reynoldssolver(), richardspostprocess(), richardssolver(), rigidbody(), rigidmeshmapper(), saveboundaryvalues(), saveclusters(), savedependence(), savegriddata(), saveline(), savematerials(), savescalars(), scalarpotentialsolver(), solverutils::scalelinearsystem(), secantsearch(), setadvectedfield(), solverutils::setdirichletboundaries(), magnetodynamicsutils::setdoftovaluec(), magnetodynamicsutils::setdoftovaluer(), setinitialconditions(), solverutils::sgetelementdofs(), shallowwaternssolver(), shearratesolver(), shellsolver(), simplexoptimize(), mainutils::singlesolver(), singletocoupledvector(), smitcsolver(), sparitersolve::solve(), solvecoupled(), solverutils::solveeigensystem(), mainutils::solveequations(), solvefull(), solverutils::solveharmonicsystem(), solverutils::solvelinearsystem(), solvenonlinear(), mainutils::solveractivate(), solverutils::solvesystem(), solverutils::solvewithlinearrestriction(), spalartallmaras(), sparitersolve::sparitersolver(), splitonelevel(), directsolve::spqr_solvesystem(), sstkomega(), statcurrentsolver(), statelecforce(), statelecsolver(), statmagsolver(), steadyphasechange(), stokessolver(), streamsolver(), stresssolver(), structuredflowline(), structuredmeshmapper(), structuredprojecttoplane(), directsolve::superlu_solvesystem(), surfaceforceintegration(), surfacelocalmatrix(), thermoelectricsolver(), transientphasechange(), transportequationsolver(), directsolve::umfpack_solvesystem(), solverutils::updateexportedvariables(), meshutils::updatesolvermesh(), v2f(), v2f_ldm(), vankacreate(), lists::variableadd(), lists::variableaddvector(), velocitylocalmatrix(), velocitysolver(), viewfactors(), vorticitysolver(), vtkoutputsolver(), vtuoutputsolver(), wavefunctionsolver(), whitneyavharmonicsolver(), whitneyavsolver(), writenamesfile(), and writevtufile().

Here is the call graph for this function:

subroutine solvesbandlapack ( integer  N,
integer  M,
real(kind=dp), dimension(band,n)  A,
real(kind=dp), dimension(n,m)  X,
integer  Subband,
integer  Band 
)

Calls LAPACK symmetric band matrix solvers.

Referenced by directsolve::bandsolver().

Here is the caller graph for this function:

subroutine vankaprec ( real(kind=dp), dimension(*)  u,
real(kind=dp), dimension(*)  v,
integer, dimension(*)  ipar 
)

Vanka preconditioning for iterative methods.

References crsmatrix::crs_matrixvectorprod(), and sparitersolve::sparmatrixvector().

Referenced by itersolve::itersolver().

Here is the call graph for this function:

Here is the caller graph for this function: