Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
|
Public Member Functions | |
recursive subroutine | multigridsolve (Matrix1, Solution, ForceVector, DOFs, Solver, Level, NewSystem) |
recursive subroutine | gmgsolve (Matrix1, Solution, ForceVector, DOFs, Solver, Level, NewSystem) |
recursive subroutine | multigridsolve (Matrix1, Solution, ForceVector, DOFs, Solver, Level, NewSystem) |
recursive subroutine | gmgsolve (Matrix1, Solution, ForceVector, DOFs, Solver, Level, NewSystem) |
recursive subroutine | pmgsolve (Matrix1, Solution, ForceVector, DOFs, Solver, Level, NewSystem) |
recursive subroutine | amgsolve (Matrix1, Solution, ForceVector, DOFs, Solver, Level, NewSystem) |
recursive subroutine | cmgsolve (Matrix1, Solution, ForceVector, DOFs, Solver, Level, NewSystem) |
subroutine | msolveractivate (Model, Solver, dt, TransientSimulation) |
recursive subroutine | pmgsolve (Matrix1, Solution, ForceVector, DOFs, Solver, Level, NewSystem) |
recursive subroutine | amgsolve (Matrix1, Solution, ForceVector, DOFs, Solver, Level, NewSystem) |
recursive subroutine | cmgsolve (Matrix1, Solution, ForceVector, DOFs, Solver, Level, NewSystem) |
subroutine | msolveractivate (Model, Solver, dt, TransientSimulation) |
recursive subroutine multigrid::amgsolve | ( | type(matrix_t), pointer | Matrix1, |
real(kind=dp), dimension(:) | Solution, | ||
real(kind=dp), dimension(:) | ForceVector, | ||
integer | DOFs, | ||
type(solver_t), target | Solver, | ||
integer | Level, | ||
logical, optional | NewSystem | ||
) |
Subroutine containing algebraic multigrid solver using roughly the standard Ruge-Stuben interpolation. Also some ideas of compatible relaxation have been tested within the context but their usability has so far been rather limited.
References amgsweep(), amgtest(), choosecoarsenodes(), crsmatrix::crs_ilut(), crsmatrix::crs_incompletelu(), crs_projectmatrixcreate(), crsmatrix::crs_transpose(), directsolve::directsolver(), messages::fatal(), elementutils::freematrix(), messages::info(), itersolve::itersolver(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetstring(), lists::listsetnamespace(), mgmv(), mgnorm(), parallelutils::parallelinitsolve(), parallelutils::paralleliter(), parallelutils::parallelmatrix(), parallelutils::parallelupdateresult(), savematrix(), solver(), and messages::warn().
Referenced by multigridsolve().
recursive subroutine multigrid::amgsolve | ( | type(matrix_t), pointer | Matrix1, |
real(kind=dp), dimension(:) | Solution, | ||
real(kind=dp), dimension(:) | ForceVector, | ||
integer | DOFs, | ||
type(solver_t), target | Solver, | ||
integer | Level, | ||
logical, optional | NewSystem | ||
) |
Subroutine containing algebraic multigrid solver using roughly the standard Ruge-Stuben interpolation. Also some ideas of compatible relaxation have been tested within the context but their usability has so far been rather limited.
References amgsweep(), amgtest(), choosecoarsenodes(), crsmatrix::crs_ilut(), crsmatrix::crs_incompletelu(), crs_projectmatrixcreate(), crsmatrix::crs_transpose(), directsolve::directsolver(), messages::fatal(), elementutils::freematrix(), messages::info(), itersolve::itersolver(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetstring(), lists::listsetnamespace(), mgmv(), mgnorm(), parallelutils::parallelinitsolve(), parallelutils::paralleliter(), parallelutils::parallelmatrix(), parallelutils::parallelupdateresult(), savematrix(), solver(), and messages::warn().
recursive subroutine multigrid::cmgsolve | ( | type(matrix_t), pointer | Matrix1, |
real(kind=dp), dimension(:) | Solution, | ||
real(kind=dp), dimension(:) | ForceVector, | ||
integer | DOFs, | ||
type(solver_t), target | Solver, | ||
integer | Level, | ||
logical, optional | NewSystem | ||
) |
Subroutine containing agglomeration or cluster multigrid solver. This provides in princinple an economical approach to multilevel schemes. The utilization of the routines are still not complete.
References clusteringmethods::chooseclusternodes(), cmgsweep(), crs_clustermatrixcreate(), crsmatrix::crs_ilut(), crsmatrix::crs_incompletelu(), directsolve::directsolver(), messages::fatal(), elementutils::freematrix(), messages::info(), itersolve::itersolver(), lists::listgetconstreal(), lists::listgetconstrealarray(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetstring(), lists::listsetnamespace(), mgmv(), smoothers::mgsmooth(), parallelutils::parallelinitsolve(), parallelutils::paralleliter(), parallelutils::parallelmatrix(), parallelutils::parallelreduction(), parallelutils::parallelupdateresult(), saveclusters(), solver(), and messages::warn().
Referenced by multigridsolve().
recursive subroutine multigrid::cmgsolve | ( | type(matrix_t), pointer | Matrix1, |
real(kind=dp), dimension(:) | Solution, | ||
real(kind=dp), dimension(:) | ForceVector, | ||
integer | DOFs, | ||
type(solver_t), target | Solver, | ||
integer | Level, | ||
logical, optional | NewSystem | ||
) |
Subroutine containing agglomeration or cluster multigrid solver. This provides in princinple an economical approach to multilevel schemes. The utilization of the routines are still not complete.
References clusteringmethods::chooseclusternodes(), cmgsweep(), crs_clustermatrixcreate(), crsmatrix::crs_ilut(), crsmatrix::crs_incompletelu(), directsolve::directsolver(), messages::fatal(), elementutils::freematrix(), messages::info(), itersolve::itersolver(), lists::listgetconstreal(), lists::listgetconstrealarray(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetstring(), lists::listsetnamespace(), mgmv(), smoothers::mgsmooth(), parallelutils::parallelinitsolve(), parallelutils::paralleliter(), parallelutils::parallelmatrix(), parallelutils::parallelreduction(), parallelutils::parallelupdateresult(), saveclusters(), solver(), and messages::warn().
recursive subroutine multigrid::gmgsolve | ( | type(matrix_t), pointer | Matrix1, |
real(kind=dp), dimension(:), target | Solution, | ||
real(kind=dp), dimension(:), target | ForceVector, | ||
integer | DOFs, | ||
type(solver_t), target | Solver, | ||
integer | Level, | ||
logical, optional | NewSystem | ||
) |
Geometric multigrid solution procedure.
References crsmatrix::crs_ilut(), crsmatrix::crs_incompletelu(), directsolve::directsolver(), gmgsweep(), messages::info(), itersolve::itersolver(), lists::listaddinteger(), lists::listaddlogical(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetstring(), lists::listsetnamespace(), meshutils::loadmesh(), lists::meshprojector(), mgmv(), smoothers::mgsmooth(), msolveractivate(), parallelutils::parallelinitmatrix(), parallelutils::parallelinitsolve(), parallelutils::paralleliter(), parallelutils::parallelmatrix(), parallelutils::parallelreduction(), parallelutils::parallelupdateresult(), projectmatrix(), savematrix(), meshutils::setcurrentmesh(), solver(), meshutils::updatesolvermesh(), lists::variableadd(), lists::variableget(), and messages::warn().
recursive subroutine multigrid::gmgsolve | ( | type(matrix_t), pointer | Matrix1, |
real(kind=dp), dimension(:), target | Solution, | ||
real(kind=dp), dimension(:), target | ForceVector, | ||
integer | DOFs, | ||
type(solver_t), target | Solver, | ||
integer | Level, | ||
logical, optional | NewSystem | ||
) |
Geometric multigrid solution procedure.
References crsmatrix::crs_ilut(), crsmatrix::crs_incompletelu(), directsolve::directsolver(), messages::fatal(), gmgsweep(), messages::info(), itersolve::itersolver(), lists::listaddinteger(), lists::listaddlogical(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetstring(), lists::listsetnamespace(), meshutils::loadmesh(), lists::meshprojector(), mgmv(), smoothers::mgsmooth(), msolveractivate(), parallelutils::parallelinitmatrix(), parallelutils::parallelinitsolve(), parallelutils::paralleliter(), parallelutils::parallelmatrix(), parallelutils::parallelreduction(), parallelutils::parallelupdateresult(), projectmatrix(), savematrix(), meshutils::setcurrentmesh(), solver(), meshutils::updatesolvermesh(), lists::variableadd(), lists::variableget(), and messages::warn().
Referenced by multigridsolve().
subroutine multigrid::msolveractivate | ( | type(model_t) | Model, |
type(solver_t), target | Solver, | ||
real(kind=dp) | dt, | ||
logical | TransientSimulation | ||
) |
References lists::checkelementequation(), lists::listaddinteger(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetstring(), lists::listsetnamespace(), parallelutils::parallelactive(), meshutils::setcurrentmesh(), solver(), and lists::variableget().
Referenced by gmgsolve().
subroutine multigrid::msolveractivate | ( | type(model_t) | Model, |
type(solver_t), target | Solver, | ||
real(kind=dp) | dt, | ||
logical | TransientSimulation | ||
) |
References lists::checkelementequation(), lists::listaddinteger(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetstring(), lists::listsetnamespace(), parallelutils::parallelactive(), meshutils::setcurrentmesh(), solver(), and lists::variableget().
recursive subroutine multigrid::multigridsolve | ( | type(matrix_t), pointer | Matrix1, |
real(kind=dp), dimension(:) | Solution, | ||
real(kind=dp), dimension(:) | ForceVector, | ||
integer | DOFs, | ||
type(solver_t) | Solver, | ||
integer | Level, | ||
logical, optional | NewSystem | ||
) |
Multigrid solution subroutine common for all different multilevel strategies. Multigrid methods include own developments of geometric, algebraic, clustering and p-element versions.
References amgsolve(), cmgsolve(), gmgsolve(), messages::info(), lists::listgetlogical(), lists::listgetstring(), pmgsolve(), and solver().
Referenced by amgsweep(), eigensolve::arpackeigensolve(), eigensolve::arpackeigensolvecomplex(), eigensolve::arpackstabeigensolve(), cmgsweep(), gmgsweep(), multigridprec(), paralleleigensolve::parallelarpackeigensolve(), pmgsweep(), and solverutils::solvelinearsystem().
recursive subroutine multigrid::multigridsolve | ( | type(matrix_t), pointer | Matrix1, |
real(kind=dp), dimension(:) | Solution, | ||
real(kind=dp), dimension(:) | ForceVector, | ||
integer | DOFs, | ||
type(solver_t) | Solver, | ||
integer | Level, | ||
logical, optional | NewSystem | ||
) |
Multigrid solution subroutine common for all different multilevel strategies. Multigrid methods include own developments of geometric, algebraic, clustering and p-element versions.
References amgsolve(), cmgsolve(), gmgsolve(), lists::listgetlogical(), lists::listgetstring(), pmgsolve(), and solver().
recursive subroutine multigrid::pmgsolve | ( | type(matrix_t), pointer | Matrix1, |
real(kind=dp), dimension(:), target | Solution, | ||
real(kind=dp), dimension(:), target | ForceVector, | ||
integer | DOFs, | ||
type(solver_t), target | Solver, | ||
integer | Level, | ||
logical, optional | NewSystem | ||
) |
Multigrid solution in the case when different levels are different power of element basis functions.
References generalutils::allocatematrix(), crsmatrix::crs_ilut(), crsmatrix::crs_incompletelu(), directsolve::directsolver(), elementdescription::elementinfo(), messages::info(), itersolve::itersolver(), lists::listaddlogical(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetintegerarray(), lists::listgetlogical(), lists::listgetstring(), lists::listsetnamespace(), mgmv(), mgnorm(), parallelutils::parallelinitsolve(), parallelutils::paralleliter(), parallelutils::parallelmatrix(), parallelutils::parallelupdateresult(), pmggetelementdofs(), pmgsweep(), savematrix(), and solver().
Referenced by multigridsolve().
recursive subroutine multigrid::pmgsolve | ( | type(matrix_t), pointer | Matrix1, |
real(kind=dp), dimension(:), target | Solution, | ||
real(kind=dp), dimension(:), target | ForceVector, | ||
integer | DOFs, | ||
type(solver_t), target | Solver, | ||
integer | Level, | ||
logical, optional | NewSystem | ||
) |
Multigrid solution in the case when different levels are different power of element basis functions.
References generalutils::allocatematrix(), crsmatrix::crs_ilut(), crsmatrix::crs_incompletelu(), directsolve::directsolver(), elementdescription::elementinfo(), messages::info(), itersolve::itersolver(), lists::listaddlogical(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetintegerarray(), lists::listgetlogical(), lists::listgetstring(), lists::listsetnamespace(), mgmv(), mgnorm(), parallelutils::parallelinitsolve(), parallelutils::paralleliter(), parallelutils::parallelmatrix(), parallelutils::parallelupdateresult(), pmggetelementdofs(), pmgsweep(), savematrix(), and solver().