Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
|
Functions/Subroutines | |
subroutine | stresssolver_init (Model, Solver, dt, Transient) |
subroutine | stresssolver (Model, Solver, dt, Transient) |
subroutine | bulkassembly () |
subroutine | bcassembly () |
subroutine | addglobaltime () |
subroutine | computenormaldisplacement (Displacement, NormalDisplacement, DisplPerm, STDOfs) |
subroutine | computestress (Displacement, NodalStress, VonMises, DisplPerm, StressPerm, NodalStrain, PrincipalStress, PrincipalStrain, Tresca, PrincipalAngle) |
real(kind=dp) function | trace (F, dim) |
subroutine | coordinateintegrals (Area, Center, Moments, maxnodes) |
subroutine | lumpedloads (Permutation, Area, Center, Moments, Forces) |
subroutine | lumpeddisplacements (Model, Permutation, Area, Center) |
subroutine | lumpedsprings (Permutation, Area, Center, Moments, maxnodes) |
subroutine | lumpedcartesianmass () |
real(kind=dp) function, dimension(2) | stressboundaryresidual (Model, Edge, Mesh, Quant, Perm, Gnorm) |
real(kind=dp) function, dimension(2) | stressedgeresidual (Model, Edge, Mesh, Quant, Perm) |
real(kind=dp) function, dimension(2) | stressinsideresidual (Model, Element, Mesh, Quant, Perm, Fnorm) |
double precision function | ddotprod (A, B, N) |
subroutine stresssolver::addglobaltime | ( | ) |
subroutine stresssolver::bcassembly | ( | ) |
References defutils::activeboundaryelement(), coordinatesystems::currentcoordinatesystem(), defutils::eigenorharmonicanalysis(), defutils::getbc(), defutils::getboundaryelement(), defutils::getelementnodes(), defutils::getelementnofdofs(), defutils::getelementnofnodes(), defutils::getlogical(), defutils::getreal(), defutils::getlocalsolution::getscalarlocalsolution(), generalutils::getvarname(), generalutils::i2s(), lists::listcheckpresent(), lists::listgetrealarray(), lumpedloads(), defutils::possiblefluxelement(), solver(), stressboundary(), and stressgeneralboundary().
subroutine stresssolver::bulkassembly | ( | ) |
References generalutils::advanceoutput(), coordinatesystems::currentcoordinatesystem(), defutils::eigenorharmonicanalysis(), messages::fatal(), defutils::getactiveelement(), defutils::getbodyforce(), defutils::getconstrealarray(), defutils::getelementnodes(), defutils::getelementnofdofs(), defutils::getelementnofnodes(), defutils::getequation(), defutils::getlogical(), defutils::getmaterial(), defutils::getnofactive(), defutils::getreal(), defutils::getlocalsolution::getscalarlocalsolution(), defutils::getlocalsolution::getvectorlocalsolution(), inputtensor(), lists::listgetinteger(), lists::listgetrealarray(), solver(), generalutils::startadvanceoutput(), stresslocal::stresscompose(), stresslocal::stressforcecompose(), and stressgeneralcompose().
subroutine stresssolver::computenormaldisplacement | ( | real(kind=dp), dimension(:) | Displacement, |
real(kind=dp), dimension(:) | NormalDisplacement, | ||
integer, dimension(:) | DisplPerm, | ||
integer | STDOfs | ||
) |
References defutils::activeboundaryelement(), defutils::getbc(), defutils::getboundaryelement(), defutils::getelementnodes(), defutils::getelementnofnodes(), defutils::getlogical(), defutils::getreal(), normal(), elementdescription::normalvector(), and defutils::possiblefluxelement().
Referenced by stresssolver().
subroutine stresssolver::computestress | ( | real(kind=dp), dimension(:) | Displacement, |
real(kind=dp), dimension(:) | NodalStress, | ||
real(kind=dp), dimension(:) | VonMises, | ||
integer, dimension(:) | DisplPerm, | ||
integer, dimension(:), pointer | StressPerm, | ||
real(kind=dp), dimension(:) | NodalStrain, | ||
real(kind=dp), dimension(:) | PrincipalStress, | ||
real(kind=dp), dimension(:) | PrincipalStrain, | ||
real(kind=dp), dimension(:) | Tresca, | ||
real(kind=dp), dimension(:) | PrincipalAngle | ||
) |
References coordinatesystems::coordinatesystemdimension(), elementutils::creatematrix(), coordinatesystems::currentcoordinatesystem(), defutils::defaultinitialize(), defutils::defaultsolve(), elementdescription::elementinfo(), elementutils::freematrix(), integration::gausspoints(), defutils::getactiveelement(), defutils::getcreal(), defutils::getelementdofs(), defutils::getelementnodes(), defutils::getelementnofnodes(), defutils::getequation(), defutils::getlogical(), defutils::getmaterial(), defutils::getreal(), defutils::getlocalsolution::getscalarlocalsolution(), defutils::getlocalsolution::getvectorlocalsolution(), messages::info(), inputtensor(), lists::listaddconstreal(), lists::listaddlogical(), lists::listgetlogical(), lists::listremove(), lists::listsetnamespace(), localstress(), solver(), trace(), lists::variableaddvector(), and lists::variableget().
Referenced by stresssolver().
subroutine stresssolver::coordinateintegrals | ( | real(kind=dp) | Area, |
real(kind=dp), dimension(:) | Center, | ||
real(kind=dp), dimension(:,:) | Moments, | ||
integer | maxnodes | ||
) |
References defutils::activeboundaryelement(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), messages::fatal(), integration::gausspoints(), defutils::getbc(), defutils::getboundaryelement(), defutils::getelementnodes(), defutils::getelementnofnodes(), defutils::getlogical(), and defutils::possiblefluxelement().
Referenced by stresssolver().
double precision function stressinsideresidual::ddotprod | ( | double precision, dimension(:,:) | A, |
double precision, dimension(:,:) | B, | ||
integer | N | ||
) |
subroutine stresssolver::lumpedcartesianmass | ( | ) |
References coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), integration::gausspoints(), lists::listaddconstreal(), lists::listgetinteger(), lists::listgetreal(), lists::listgetstring(), and solver().
Referenced by stresssolver().
subroutine stresssolver::lumpeddisplacements | ( | type(model_t) | Model, |
integer | Permutation, | ||
real(kind=dp) | Area, | ||
real(kind=dp), dimension(:) | Center | ||
) |
References defutils::activeboundaryelement(), defutils::getbc(), defutils::getboundaryelement(), defutils::getelementnofnodes(), defutils::getlogical(), solverutils::setdirichletpoint(), and solver().
Referenced by stresssolver().
subroutine stresssolver::lumpedloads | ( | integer | Permutation, |
real (kind=dp) | Area, | ||
real (kind=dp), dimension(:) | Center, | ||
real (kind=dp), dimension(:,:) | Moments, | ||
real (kind=dp), dimension(:,:) | Forces | ||
) |
References messages::warn().
Referenced by bcassembly().
subroutine stresssolver::lumpedsprings | ( | integer | Permutation, |
real(kind=dp) | Area, | ||
real(kind=dp), dimension(:) | Center, | ||
real(kind=dp), dimension(:,:) | Moments, | ||
integer | maxnodes | ||
) |
References defutils::activeboundaryelement(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), messages::fatal(), integration::gausspoints(), defutils::getbc(), defutils::getboundaryelement(), defutils::getelementnodes(), defutils::getelementnofnodes(), defutils::getlogical(), defutils::getlocalsolution::getvectorlocalsolution(), messages::info(), linearalgebra::invertmatrix(), lists::listgetlogical(), lists::listgetstring(), solverutils::matrixvectormultiply(), defutils::possiblefluxelement(), and solver().
Referenced by stresssolver().
real(kind=dp) function, dimension(2) stressboundaryresidual | ( | type(model_t) | Model, |
type( element_t ), pointer | Edge, | ||
type( mesh_t ), pointer | Mesh, | ||
real(kind=dp), dimension(:) | Quant, | ||
integer, dimension(:) | Perm, | ||
real(kind=dp) | Gnorm | ||
) |
References coordinatesystems::coordinatesystemdimension(), coordinatesystems::coordinatesysteminfo(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), integration::gausspoints(), defutils::getbc(), defutils::getelementnodes(), defutils::getelementnofdofs(), defutils::getelementnofnodes(), defutils::getequation(), defutils::getlogical(), defutils::getmaterial(), defutils::getreal(), defutils::getlocalsolution::getvectorlocalsolution(), inputtensor(), lists::listcheckpresent(), localstress(), normal(), and elementdescription::normalvector().
Referenced by stresssolver().
real(kind=dp) function, dimension(2) stressedgeresidual | ( | type(model_t) | Model, |
type( element_t ), pointer | Edge, | ||
type( mesh_t ), pointer | Mesh, | ||
real(kind=dp), dimension(:) | Quant, | ||
integer, dimension(:) | Perm | ||
) |
References coordinatesystems::coordinatesystemdimension(), coordinatesystems::coordinatesysteminfo(), coordinatesystems::currentcoordinatesystem(), elementdescription::elementinfo(), integration::gausspoints(), defutils::getelementnodes(), defutils::getelementnofdofs(), defutils::getelementnofnodes(), defutils::getequation(), defutils::getlogical(), defutils::getmaterial(), defutils::getreal(), defutils::getlocalsolution::getvectorlocalsolution(), inputtensor(), localstress(), normal(), and elementdescription::normalvector().
Referenced by stresssolver().
real(kind=dp) function, dimension(2) stressinsideresidual | ( | type(model_t) | Model, |
type( element_t ), pointer | Element, | ||
type( mesh_t ), pointer | Mesh, | ||
real(kind=dp), dimension(:) | Quant, | ||
integer, dimension(:) | Perm, | ||
real(kind=dp) | Fnorm | ||
) |
References coordinatesystems::coordinatesystemdimension(), coordinatesystems::coordinatesysteminfo(), coordinatesystems::currentcoordinatesystem(), ddotprod(), elementdescription::elementinfo(), integration::gausspoints(), defutils::getbodyforce(), defutils::getelementdofs(), defutils::getelementnodes(), defutils::getelementnofdofs(), defutils::getelementnofnodes(), defutils::getequation(), defutils::getlogical(), defutils::getmaterial(), defutils::getreal(), defutils::getlocalsolution::getscalarlocalsolution(), defutils::getlocalsolution::getvectorlocalsolution(), inputtensor(), lists::listgetstring(), localstress(), and lists::variableget().
Referenced by stresssolver().
subroutine stresssolver | ( | type(model_t) | Model, |
type(solver_t), target | Solver, | ||
real(kind=dp) | dt, | ||
logical | Transient | ||
) |
Solves the elastic displacement assuming linear stress-strain relationship. The solver is burdened with a plethora of different options. For example, various kinds of stresses may be computed. Also some basic features for model lumping and contact analysis exist.
References addglobaltime(), bcassembly(), bulkassembly(), computenormaldisplacement(), computestress(), coordinateintegrals(), coordinatesystems::coordinatesystemdimension(), coordinatesystems::currentcoordinatesystem(), defutils::defaultdirichletbcs(), defutils::defaultfinishassembly(), defutils::defaultfinishboundaryassembly(), defutils::defaultfinishbulkassembly(), defutils::defaultinitialize(), defutils::defaultsolve(), meshutils::displacemesh(), defutils::eigenorharmonicanalysis(), messages::fatal(), defutils::getactiveelement(), defutils::getconstreal(), defutils::getelementnofnodes(), defutils::getinteger(), defutils::getlogical(), defutils::getsolverparams(), defutils::getstring(), messages::info(), invalidatevariable(), lists::listaddlogical(), lists::listcheckpresent(), lists::listgetlogical(), lists::listgetstring(), lists::listremove(), lumpedcartesianmass(), lumpeddisplacements(), lumpedsprings(), adaptive::refinemesh(), solver(), stressboundaryresidual(), stressedgeresidual(), stressinsideresidual(), lists::variableadd(), and lists::variableget().
Referenced by mainutils::addequationbasics().
subroutine stresssolver_init | ( | type(model_t) | Model, |
type(solver_t) | Solver, | ||
real(kind=dp) | dt, | ||
logical | Transient | ||
) |
Initialization for the primary solver: StressSolver.
References coordinatesystems::coordinatesystemdimension(), defutils::getlogical(), defutils::getsolverparams(), defutils::getstring(), lists::listaddinteger(), lists::listaddlogical(), lists::listaddstring(), lists::listcheckpresent(), and lists::nextfreekeyword().
real(kind=dp) function stresssolver::trace | ( | real(kind=dp), dimension(:,:) | F, |
integer | dim | ||
) |