Elmer FEM solver
Elmer is an open source finite element software for multiphysical problems
 All Classes Files Functions Variables Typedefs Macros Groups Pages
StressSolve.src File Reference

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)
 

Function/Subroutine Documentation

subroutine stresssolver::addglobaltime ( )

References timeintegrate::bossak2ndorder(), and solver().

Here is the call graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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 
)
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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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 
)
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().

Here is the call graph for this function:

Here is the caller graph for this function:

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 
)
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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

real(kind=dp) function stresssolver::trace ( real(kind=dp), dimension(:,:)  F,
integer  dim 
)