FEDEM Solver  R8.0
Source code of the dynamics solver
Functions/Subroutines
strainandstressutilitiesmodule Module Reference

Module with utility subroutines for strain- and stress calculation. More...

Functions/Subroutines

subroutine principlestrains2d (epsC, eps1, eps2, gamma, alpha1, alphaGamma)
 Calculation of principal strains in 2D. More...
 
subroutine principlestresses2d (sigC, sig1, sig2, tau, alpha1, alphaTau)
 Calculation of principal stresses in 2D. More...
 
subroutine straindispcst (nndof, xEl, yEl, zEl, T_el, zPos, B_el)
 Computes strain-displacement matrix for constant strain triangle. More...
 
subroutine straindispquad4 (nndof, xEl, yEl, zEl, T_el, xi, eta, zPos, B_el)
 Computes strain-displacement matrix for the 4-noded quadrilateral. More...
 
real(dp) function, dimension(3) getglobalizedx (eZ)
 Calculates the X-axis direction of the globalized coordinate system. More...
 
subroutine getshellelementaxes (nenod, X, Y, Z, V1, V2, V3, lpu, ierr, doGlobalize)
 Computes the local element axes for a thin shell element. More...
 
subroutine getshellstresstrans (eX, eZ, T, lpu, ierr)
 Computes the stress transformation matrix for a thin shell element. More...
 

Detailed Description

Module with utility subroutines for strain- and stress calculation.

Function/Subroutine Documentation

◆ getglobalizedx()

real(dp) function, dimension(3) strainandstressutilitiesmodule::getglobalizedx ( real(dp), dimension(3), intent(in)  eZ)

Calculates the X-axis direction of the globalized coordinate system.

Parameters
[in]eZLocal Z-axis (normal vector) of the shell surface
Returns
Globalized X-axis direction vector for the shell surface

This function computes the vector V1 defined by the projection of the global X-axis onto the plane defined by the normal vector eZ.

Author
Knut Morten Okstad
Date
30 Nov 2000
Here is the caller graph for this function:

◆ getshellelementaxes()

subroutine strainandstressutilitiesmodule::getshellelementaxes ( integer, intent(in)  nenod,
real(dp), dimension(nenod), intent(in)  X,
real(dp), dimension(nenod), intent(in)  Y,
real(dp), dimension(nenod), intent(in)  Z,
real(dp), dimension(3), intent(out)  V1,
real(dp), dimension(3), intent(out)  V2,
real(dp), dimension(3), intent(out)  V3,
integer, intent(in)  lpu,
integer, intent(out)  ierr,
logical, optional  doGlobalize 
)

Computes the local element axes for a thin shell element.

Parameters
[in]nenodNumber of element nodes (3 or 4)
[in]XGlobal X-coordinates for the element
[in]YGlobal Y-coordinates for the element
[in]ZGlobal Z-coordinates for the element
[out]V1Direction of local X-axis for the element
[out]V2Direction of local Y-axis for the element
[out]V3Direction of local Z-axis for the element
[in]lpuFile unit number for res-file output
[out]ierrError flag
[in]doGlobalizeIf .true., the globalized shell axes are computed

The local-to-global transformation matrix is then T = [V1,V2,V3]. Optionally, the globalized shell element axes can be computed instead of the local element axes.

Author
Knut Morten Okstad
Date
30 Nov 2000
Here is the caller graph for this function:

◆ getshellstresstrans()

subroutine strainandstressutilitiesmodule::getshellstresstrans ( real(dp), dimension(3), intent(in)  eX,
real(dp), dimension(3), intent(in)  eZ,
real(dp), dimension(2,2), intent(out)  T,
integer, intent(in)  lpu,
integer, intent(out)  ierr 
)

Computes the stress transformation matrix for a thin shell element.

Parameters
[in]eXX-axis of the element coordinate system
[in]eZZ-axis of the element coordinate system
[out]TIn-plane transformation matrix
[in]lpuFile unit number for res-file output
[out]ierrError flag

This subroutine computes the 2D transformation matrix from the element coordinate system to the continuous stress output coordinate system for a shell element.

Author
Knut Morten Okstad
Date
30 Nov 2000
Here is the caller graph for this function:

◆ principlestrains2d()

subroutine strainandstressutilitiesmodule::principlestrains2d ( real(dp), dimension(3), intent(in)  epsC,
real(dp), intent(out)  eps1,
real(dp), intent(out)  eps2,
real(dp), intent(out)  gamma,
real(dp), intent(out), optional  alpha1,
real(dp), intent(out), optional  alphaGamma 
)

Calculation of principal strains in 2D.

Parameters
[in]epsCStrain components
[out]eps1Maximum principal strain
[out]eps2Minimum principal strain
[out]gammaMaximum shear strain
[out]alpha1Angle between local X-axis and direction of eps1
[out]alphaGammaAngle between local X-axis and direction of gamma

This subroutine computes the principle strains, max shear strain, angle to the (max) principle strain and angle to the max shear strain. Using Mohr's circle interpretation.

Note
The shear strain epsC(3) is assumed to be the quantity γxy = εxy + εyx where εxy = εyx is the tensorial shear strain component.
Author
Bjorn Haugen
Date
13 Apr 2000
Here is the caller graph for this function:

◆ principlestresses2d()

subroutine strainandstressutilitiesmodule::principlestresses2d ( real(dp), dimension(3), intent(in)  sigC,
real(dp), intent(out)  sig1,
real(dp), intent(out)  sig2,
real(dp), intent(out)  tau,
real(dp), intent(out), optional  alpha1,
real(dp), intent(out), optional  alphaTau 
)

Calculation of principal stresses in 2D.

Parameters
[in]sigCStress components
[out]sig1Maximum principal stress
[out]sig2Minimum principal stress
[out]tauMaximum shear stress
[out]alpha1Angle between local X-axis and direction of sig1
[out]alphaTauAngle between local X-axis and direction of tau

This subroutine computes the principle stresses, max shear stress, angle to the (max) principle stress and angle to the max shear stress. Using Mohr's circle interpretation.

Author
Bjorn Haugen
Date
13 Apr 2000
Here is the caller graph for this function:

◆ straindispcst()

subroutine strainandstressutilitiesmodule::straindispcst ( integer, intent(in)  nndof,
real(dp), dimension(:), intent(in)  xEl,
real(dp), dimension(:), intent(in)  yEl,
real(dp), dimension(:), intent(in)  zEl,
real(dp), dimension(3,3), intent(in)  T_el,
real(dp), intent(in)  zPos,
real(dp), dimension(3,nndof,3), intent(out)  B_el 
)

Computes strain-displacement matrix for constant strain triangle.

Parameters
[in]nndofNumber of DOFs per nodal point
[in]xElX-coordinates of the element nodes
[in]yElY-coordinates of the element nodes
[in]zElZ-coordinates of the element nodes
[in]T_elGlobal-to-local transformation matrix for the element
[in]zPosLocal position of top shell surface w.r.t. the mid-surface
[out]B_elStrain-displacement matrix for the element
Author
Bjorn Haugen
Date
13 Apr 2000
Here is the caller graph for this function:

◆ straindispquad4()

subroutine strainandstressutilitiesmodule::straindispquad4 ( integer, intent(in)  nndof,
real(dp), dimension(:), intent(in)  xEl,
real(dp), dimension(:), intent(in)  yEl,
real(dp), dimension(:), intent(in)  zEl,
real(dp), dimension(3,3), intent(in)  T_el,
real(dp), intent(in)  xi,
real(dp), intent(in)  eta,
real(dp), intent(in)  zPos,
real(dp), dimension(3,nndof,4), intent(out)  B_el 
)

Computes strain-displacement matrix for the 4-noded quadrilateral.

Parameters
[in]nndofNumber of DOFs per nodal point
[in]xElX-coordinates of the element nodes
[in]yElY-coordinates of the element nodes
[in]zElZ-coordinates of the element nodes
[in]T_elGlobal-to-local transformation matrix for the element
[in]xiFirst coordinate in domain [-1,1] of evaluation point
[in]etaSecond coordinate in domain [-1,1] of evaluation point
[in]zPosLocal position of top shell surface w.r.t. the mid-surface
[out]B_elStrain-displacement matrix for the element
Author
Bjorn Haugen
Date
13 Apr 2000
Here is the caller graph for this function: