FEDEM Solver
R8.0
Source code of the dynamics solver
|
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... | |
Module with utility subroutines for strain- and stress calculation.
real(dp) function, dimension(3) strainandstressutilitiesmodule::getglobalizedx | ( | real(dp), dimension(3), intent(in) | eZ | ) |
Calculates the X-axis direction of the globalized coordinate system.
[in] | eZ | Local Z-axis (normal vector) of 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.
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.
[in] | nenod | Number of element nodes (3 or 4) |
[in] | X | Global X-coordinates for the element |
[in] | Y | Global Y-coordinates for the element |
[in] | Z | Global Z-coordinates for the element |
[out] | V1 | Direction of local X-axis for the element |
[out] | V2 | Direction of local Y-axis for the element |
[out] | V3 | Direction of local Z-axis for the element |
[in] | lpu | File unit number for res-file output |
[out] | ierr | Error flag |
[in] | doGlobalize | If .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.
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.
[in] | eX | X-axis of the element coordinate system |
[in] | eZ | Z-axis of the element coordinate system |
[out] | T | In-plane transformation matrix |
[in] | lpu | File unit number for res-file output |
[out] | ierr | Error flag |
This subroutine computes the 2D transformation matrix from the element coordinate system to the continuous stress output coordinate system for a shell element.
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.
[in] | epsC | Strain components |
[out] | eps1 | Maximum principal strain |
[out] | eps2 | Minimum principal strain |
[out] | gamma | Maximum shear strain |
[out] | alpha1 | Angle between local X-axis and direction of eps1 |
[out] | alphaGamma | Angle 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.
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.
[in] | sigC | Stress components |
[out] | sig1 | Maximum principal stress |
[out] | sig2 | Minimum principal stress |
[out] | tau | Maximum shear stress |
[out] | alpha1 | Angle between local X-axis and direction of sig1 |
[out] | alphaTau | Angle 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.
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.
[in] | nndof | Number of DOFs per nodal point |
[in] | xEl | X-coordinates of the element nodes |
[in] | yEl | Y-coordinates of the element nodes |
[in] | zEl | Z-coordinates of the element nodes |
[in] | T_el | Global-to-local transformation matrix for the element |
[in] | zPos | Local position of top shell surface w.r.t. the mid-surface |
[out] | B_el | Strain-displacement matrix for the element |
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.
[in] | nndof | Number of DOFs per nodal point |
[in] | xEl | X-coordinates of the element nodes |
[in] | yEl | Y-coordinates of the element nodes |
[in] | zEl | Z-coordinates of the element nodes |
[in] | T_el | Global-to-local transformation matrix for the element |
[in] | xi | First coordinate in domain [-1,1] of evaluation point |
[in] | eta | Second coordinate in domain [-1,1] of evaluation point |
[in] | zPos | Local position of top shell surface w.r.t. the mid-surface |
[out] | B_el | Strain-displacement matrix for the element |