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

Functions/Subroutines

subroutine elasticsolver (Model, Solver, dt, TransientSimulation)
 
integer function elasticitygausspoints (Element)
 
subroutine localmatrix (MassMatrix, DampMatrix, StiffMatrix, ForceVector, LoadVector, InertialLoad, ElasticModulus, NodalPoisson, NodalDensity, NodalDamping, PlaneStress, NodalHeatExpansion, NodalTemperature, Element, n, Nodes, NodalDisplacement, Isotropic, RotateModuli, TransformMatrix)
 
subroutine neohookeanlocalmatrix (MassMatrix, DampMatrix, StiffMatrix, ForceVector, LoadVector, InertialLoad, NodalYoung, NodalPoisson, NodalDensity, NodalDamping, PlaneStress, NodalHeatExpansion, NodalTemperature, Element, n, Nodes, NodalDisplacement)
 
subroutine stressgeneralcompose (MassMatrix, DampMatrix, StiffMatrix, ForceVector, LoadVector, NodalYoung, NodalPoisson, NodalDensity, NodalDamping, PlaneStress, NodalHeatExpansion, NodalTemperature, Element, n, Nodes, NodalDisplacement)
 
subroutine backstressgeneralcompose (MassMatrix, DampMatrix, StiffMatrix, ForceVector, LoadVector, NodalYoung, NodalPoisson, NodalDensity, NodalDamping, PlaneStress, NodalHeatExpansion, NodalTemperature, Element, n, Nodes, NodalDisplacement)
 
subroutine localboundarymatrix (BoundaryMatrix, BoundaryVector, LoadVector, NodalAlpha, NodalBeta, NodalDisplacement, Element, n, Nodes, Parent, pn, ParentNodes, Flow, fn, FlowNodes, Velocity, Pressure, NodalViscosity, NodalDensity, CompressibilityDefined)
 
subroutine stressgeneralboundary (BoundaryMatrix, BoundaryVector, LoadVector, NodalAlpha, NodalBeta, NodalDisplacement, Element, n, Nodes, Parent, pn, ParentNodes, Flow, fn, FlowNodes, Velocity, Pressure, NodalViscosity, NodalDensity, CompressibilityDefined)
 
subroutine computestressandstrain (Displacement, NodalStrain, NodalStress, VonMises, Perm, CalculateStrains, CalcStressAll, NeoHookeanMaterial, PrincipalStress, PrincipalStrain, Tresca, PrincipalAngle)
 
double precision function trace (A, N)
 
double precision function ddot_product (A, B, N)
 
subroutine elasticsolver_init (Model, Solver, dt, Transient)
 
real(kind=dp) function,
dimension(2) 
elastboundaryresidual (Model, Edge, Mesh, Quant, Perm, Gnorm)
 
real(kind=dp) function,
dimension(2) 
elastedgeresidual (Model, Edge, Mesh, Quant, Perm)
 
real(kind=dp) function,
dimension(2) 
elastinsideresidual (Model, Element, Mesh, Quant, Perm, Fnorm)
 
double precision function ddotprod (A, B, N)
 

Function/Subroutine Documentation

subroutine elasticsolver::backstressgeneralcompose ( real(kind=dp), dimension(:,:)  MassMatrix,
real(kind=dp), dimension(:,:)  DampMatrix,
real(kind=dp), dimension(:,:)  StiffMatrix,
real(kind=dp), dimension(:)  ForceVector,
real(kind=dp), dimension(:,:)  LoadVector,
real(kind=dp), dimension(:)  NodalYoung,
real(kind=dp), dimension(:)  NodalPoisson,
real(kind=dp), dimension(n)  NodalDensity,
real(kind=dp), dimension(n)  NodalDamping,
logical  PlaneStress,
real(kind=dp), dimension(:,:,:)  NodalHeatExpansion,
real(kind=dp), dimension(:)  NodalTemperature,
type(element_t)  Element,
integer  n,
type(nodes_t)  Nodes,
real(kind=dp), dimension(:,:)  NodalDisplacement 
)

References coordinatesystems::coordinatesystemdimension(), coordinatesystems::coordinatesysteminfo(), ddot_product(), elementdescription::elementinfo(), messages::fatal(), integration::gausspoints(), and trace().

Here is the call graph for this function:

subroutine elasticsolver::computestressandstrain ( real(kind=dp), dimension(:)  Displacement,
real(kind=dp), dimension(:)  NodalStrain,
real(kind=dp), dimension(:)  NodalStress,
real(kind=dp), dimension(:)  VonMises,
integer, dimension(:), pointer  Perm,
logical  CalculateStrains,
logical  CalcStressAll,
logical  NeoHookeanMaterial,
real(kind=dp), dimension(:)  PrincipalStress,
real(kind=dp), dimension(:)  PrincipalStrain,
real(kind=dp), dimension(:)  Tresca,
real(kind=dp), dimension(:)  PrincipalAngle 
)
double precision function elasticsolver::ddot_product ( double precision, dimension(:,:)  A,
double precision, dimension(:,:)  B,
integer  N 
)

Referenced by backstressgeneralcompose(), and stressgeneralcompose().

Here is the caller graph for this function:

double precision function elastinsideresidual::ddotprod ( double precision, dimension(:,:)  A,
double precision, dimension(:,:)  B,
integer  N 
)

Referenced by elastinsideresidual(), and stressinsideresidual().

Here is the caller graph for this function:

real(kind=dp) function, dimension(2) elastboundaryresidual ( 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(), lists::listgetconstreal(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetreal(), normal(), elementdescription::normalvector(), and trace().

Referenced by elasticsolver().

Here is the call graph for this function:

Here is the caller graph for this function:

real(kind=dp) function, dimension(2) elastedgeresidual ( 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(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetreal(), normal(), elementdescription::normalvector(), and trace().

Referenced by elasticsolver().

Here is the call graph for this function:

Here is the caller graph for this function:

integer function elasticsolver::elasticitygausspoints ( type(element_t)  Element)

References messages::fatal().

Referenced by localmatrix(), neohookeanlocalmatrix(), and stressgeneralcompose().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elasticsolver_init ( type(model_t)  Model,
type(solver_t)  Solver,
real(kind=dp)  dt,
logical  Transient 
)

Initialization for the primary solver, i.e. ElasticSolver.

References coordinatesystems::coordinatesystemdimension(), defutils::getsolverparams(), lists::listaddinteger(), lists::listaddstring(), and lists::listcheckpresent().

Here is the call graph for this function:

real(kind=dp) function, dimension(2) elastinsideresidual ( 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(), lists::listgetinteger(), lists::listgetlogical(), lists::listgetreal(), lists::listgetstring(), trace(), and lists::variableget().

Referenced by elasticsolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elasticsolver::localboundarymatrix ( real(kind=dp), dimension(:,:)  BoundaryMatrix,
real(kind=dp), dimension(:)  BoundaryVector,
real(kind=dp), dimension(:,:)  LoadVector,
real(kind=dp), dimension(:,:)  NodalAlpha,
real(kind=dp), dimension(:)  NodalBeta,
real(kind=dp), dimension(:,:)  NodalDisplacement,
type(element_t), pointer  Element,
integer  n,
type(nodes_t)  Nodes,
type(element_t), pointer  Parent,
integer  pn,
type(nodes_t)  ParentNodes,
type(element_t), pointer  Flow,
integer  fn,
type(nodes_t)  FlowNodes,
real(kind=dp), dimension(:,:)  Velocity,
real(kind=dp), dimension(:)  Pressure,
real(kind=dp), dimension(:)  NodalViscosity,
real(kind=dp), dimension(:)  NodalDensity,
logical  CompressibilityDefined 
)

References coordinatesystems::coordinatesystemdimension(), materialmodels::effectiveviscosity(), elementdescription::elementinfo(), fx, integration::gausspoints(), linearalgebra::invertmatrix(), normal(), elementdescription::normalvector(), and trace().

Referenced by elasticsolver(), and richardssolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elasticsolver::localmatrix ( real(kind=dp), dimension(:,:)  MassMatrix,
real(kind=dp), dimension(:,:)  DampMatrix,
real(kind=dp), dimension(:,:)  StiffMatrix,
real(kind=dp), dimension(:)  ForceVector,
real(kind=dp), dimension(:,:)  LoadVector,
real(kind=dp), dimension(:,:)  InertialLoad,
real(kind=dp), dimension(:,:,:)  ElasticModulus,
real(kind=dp), dimension(:)  NodalPoisson,
real(kind=dp), dimension(:)  NodalDensity,
real(kind=dp), dimension(:)  NodalDamping,
logical  PlaneStress,
real(kind=dp), dimension(:,:,:)  NodalHeatExpansion,
real(kind=dp), dimension(:)  NodalTemperature,
type(element_t)  Element,
integer  n,
type(nodes_t)  Nodes,
real(kind=dp), dimension(:,:)  NodalDisplacement,
logical  Isotropic,
logical  RotateModuli,
real(kind=dp), dimension(3,3)  TransformMatrix 
)

References coordinatesystems::coordinatesystemdimension(), elasticitygausspoints(), elementdescription::elementinfo(), messages::fatal(), g(), integration::gausspoints(), stresslocal::rotateelasticitymatrix(), stresslocal::strain2stress(), and trace().

Here is the call graph for this function:

subroutine elasticsolver::neohookeanlocalmatrix ( real(kind=dp), dimension(:,:)  MassMatrix,
real(kind=dp), dimension(:,:)  DampMatrix,
real(kind=dp), dimension(:,:)  StiffMatrix,
real(kind=dp), dimension(:)  ForceVector,
real(kind=dp), dimension(:,:)  LoadVector,
real(kind=dp), dimension(:,:)  InertialLoad,
real(kind=dp), dimension(:,:,:)  NodalYoung,
real(kind=dp), dimension(:)  NodalPoisson,
real(kind=dp), dimension(:)  NodalDensity,
real(kind=dp), dimension(:)  NodalDamping,
logical  PlaneStress,
real(kind=dp), dimension(:,:,:)  NodalHeatExpansion,
real(kind=dp), dimension(:)  NodalTemperature,
type(element_t)  Element,
integer  n,
type(nodes_t)  Nodes,
real(kind=dp), dimension(:,:)  NodalDisplacement 
)

References coordinatesystems::coordinatesystemdimension(), elasticitygausspoints(), elementdescription::elementinfo(), integration::gausspoints(), linearalgebra::invertmatrix(), and trace().

Referenced by elasticsolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elasticsolver::stressgeneralboundary ( real(kind=dp), dimension(:,:)  BoundaryMatrix,
real(kind=dp), dimension(:)  BoundaryVector,
real(kind=dp), dimension(:,:)  LoadVector,
real(kind=dp), dimension(:,:)  NodalAlpha,
real(kind=dp), dimension(:)  NodalBeta,
real(kind=dp), dimension(:,:)  NodalDisplacement,
type(element_t), pointer  Element,
integer  n,
type(nodes_t)  Nodes,
type(element_t), pointer  Parent,
integer  pn,
type(nodes_t)  ParentNodes,
type(element_t), pointer  Flow,
integer  fn,
type(nodes_t)  FlowNodes,
real(kind=dp), dimension(:,:)  Velocity,
real(kind=dp), dimension(:)  Pressure,
real(kind=dp), dimension(:)  NodalViscosity,
real(kind=dp), dimension(:)  NodalDensity,
logical  CompressibilityDefined 
)

References coordinatesystems::coordinatesysteminfo(), materialmodels::effectiveviscosity(), elementdescription::elementinfo(), integration::gausspoints(), normal(), elementdescription::normalvector(), and trace().

Referenced by bcassembly(), and elasticsolver().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine elasticsolver::stressgeneralcompose ( real(kind=dp), dimension(:,:)  MassMatrix,
real(kind=dp), dimension(:,:)  DampMatrix,
real(kind=dp), dimension(:,:)  StiffMatrix,
real(kind=dp), dimension(:)  ForceVector,
real(kind=dp), dimension(:,:)  LoadVector,
real(kind=dp), dimension(:,:,:)  NodalYoung,
real(kind=dp), dimension(:)  NodalPoisson,
real(kind=dp), dimension(:)  NodalDensity,
real(kind=dp), dimension(:)  NodalDamping,
logical  PlaneStress,
real(kind=dp), dimension(:,:,:)  NodalHeatExpansion,
real(kind=dp), dimension(:)  NodalTemperature,
type(element_t)  Element,
integer  n,
type(nodes_t)  Nodes,
real(kind=dp), dimension(:,:)  NodalDisplacement 
)

References coordinatesystems::coordinatesystemdimension(), coordinatesystems::coordinatesysteminfo(), ddot_product(), elasticitygausspoints(), elementdescription::elementinfo(), integration::gausspoints(), and trace().

Referenced by bulkassembly(), and elasticsolver().

Here is the call graph for this function:

Here is the caller graph for this function:

double precision function trace ( double precision, dimension(:,:)  A,
integer  N 
)

Referenced by backstressgeneralcompose(), computestress(), computestressandstrain(), elastboundaryresidual(), elastedgeresidual(), elastinsideresidual(), localboundarymatrix(), localmatrix(), neohookeanlocalmatrix(), stressgeneralboundary(), and stressgeneralcompose().

Here is the caller graph for this function: