Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
|
Modules | |
Default API | |
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) |
subroutine elmersolver::addmeshcoordinatesandtime | ( | ) |
Adds coordinate and time variables to the current mesh structure.
References solver(), lists::variableadd(), and lists::variableget().
Referenced by elmersolver().
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().
subroutine elmersolver::addvtuoutputsolverhack | ( | ) |
References messages::info(), lists::listaddlogical(), lists::listaddstring(), lists::listgetstring(), and lists::listremove().
Referenced by elmersolver().
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().
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().
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().
subroutine elmersolver | ( | integer | initialize) |
ElmerLib Elmer library routines
The main program for Elmer. Solves the equations as defined by the input files.
References addmeshcoordinatesandtime(), addsolvers(), addvtuoutputsolverhack(), meshutils::coordinatetransformation(), execsimulation(), messages::fatal(), freemodel(), defutils::getinteger(), modeldescription::getprocaddr(), generalutils::i2s(), messages::info(), elementdescription::initializeelementdescriptions(), lists::listaddconstreal(), lists::listaddlogical(), lists::listcheckpresent(), lists::listgetconstrealarray(), lists::listgetinteger(), lists::listgetintegerarray(), lists::listgetlogical(), lists::listgetstring(), modeldescription::loadmodel(), meshutils::meshextrude(), parallelutils::parallelfinalize(), parallelutils::parallelinit(), modeldescription::reloadinputfile(), savecurrent(), savetopost(), setinitialconditions(), solver(), mainutils::solveractivate(), and messages::warn().
Referenced by solver().
recursive subroutine elmersolver::freemesh | ( | type(mesh_t), pointer | Mesh) |
Release a mesh from the list of meshes.
References meshutils::releasemesh().
Referenced by freemodel().
subroutine elmersolver::freemodel | ( | type(model_t), pointer | Model) |
Releases the whole model.
References elementutils::freematrix(), freemesh(), freesolver(), and freevaluelist().
Referenced by elmersolver().
subroutine elmersolver::freesolver | ( | type(solver_t) | Solver) |
Releases structures related to the Solver.
References elementutils::freematrix(), freevaluelist(), and solver().
Referenced by freemodel().
subroutine elmersolver::freevaluelist | ( | type(valuelist_t), pointer | List) |
Releases value list which includes all the sif definitions, for example.
Referenced by freemodel(), and freesolver().
subroutine multigridprec | ( | real(kind=dp), dimension(*), target | u, |
real(kind=dp), dimension(*), target | v, | ||
integer, dimension(*) | ipar | ||
) |
ipar | structure holding info from (HUTIter-iterative solver package) |
References messages::info(), and multigrid::multigridsolve().
Referenced by itersolve::itersolver().
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().
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().
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().
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().
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().
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().
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().