FrontISTR  5.9.0
Large-scale structural analysis program with finit element method
m_static_lib_shell Module Reference

This module ... More...

Functions/Subroutines

subroutine shellmitc_preparenodalkinematics (etype, nn, thick, kinematics, finite_rotation, use_director_tangent, need_second_tangent, ecoord, nodal_state, ndtriad, ndreftriad, ndcurtriad, evaluation_coords, v1, v2, v3, director, reference_director, director_tangent, director_second_tangent)
 Prepare the evaluation coordinates and nodal directors shared by STF/UPDATE. More...
 
subroutine shellmitc_covariantbasis (nn, coords, director, zeta, shapefunc, shapederiv, covariant_basis)
 Evaluate shell covariant basis vectors at one point. More...
 
subroutine shellmitc_setupreferencedirectors (etype, nn, thick, elem, v1, v2, v3, director)
 Construct the reference nodal triads and half-thickness directors. More...
 
subroutine shellmitc_evaluatetyingpointvariation (etype, nn, ndof, tying_set, tying_point, zeta_tying, elem, shell_disp, director, director_tangent, use_green_lagrange, use_director_tangent, point_B, point_basis_variation, director_second_tangent, point_director_second_variation)
 Evaluate one MITC tying point. First and second variations are returned separately so UPDATE can retain only the B matrix while STF also keeps geometric-stiffness data. More...
 
subroutine shellmitc_builddrillingsecondvariation (nn, zeta, shapefunc, shapederiv, director_second_tangent, reciprocal_basis, local_basis, use_director_tangent, drilling_second_variation)
 Build the director second variation used by the drilling term. More...
 
subroutine shellmitc_evaluateassumedstrain (etype, nn, naturalcoord, zeta, elem, edisp, director, director_increment, use_green_lagrange, tying_strain, dstrain, strain_tensor, covariant_basis, reciprocal_basis, material_local_basis, material_reciprocal_basis, reference_basis, current_basis, reference_jacobian, current_jacobian)
 Evaluate the MITC assumed strain and stress-evaluation bases at one point. More...
 
subroutine shellmitc_transformoutput (use_gl_strain, S, E, covariant_basis, reciprocal_basis, reference_basis, current_basis, det_ref, det_cur, strain_out, stress_out)
 Transform shell-local stress and strain to the requested output measure. More...
 
pure subroutine shellstressvectortotensor (stress, tensor)
 
subroutine shellmitc_integrateinternalforcelayer (etype, nn, ndof, ilayer, kinematics, finite_rotation, use_director_tangent, use_green_lagrange, update_state, ecoord, evaluation_coords, total_nodal_state, strain_nodal_state, gausses, element, v1, v2, v3, director, reference_director, director_tangent, stress_elem, stress_director, stress_director_increment, nodal_kinematic_dofs, nddrill, qf_work)
 Integrate one physical shell layer for stress update and internal force. Only one zeta's tying B matrices are retained at a time. More...
 
subroutine, public stf_shell_mitc (etype, nn, ndof, ecoord, gausses, stiff, thick, mixflag, nddisp, element, ndtriad, ndreftriad, ndcurtriad, nddrill)
 Calculate the tangent stiffness matrix of a MITC shell element. More...
 
subroutine, public elementstress_shell_mitc (etype, nn, ndof, ecoord, gausses, edisp, strain, stress, thick, zeta, n_layer, surface_gauss_points, local_strain, local_stress, local_stress_override, ndtriad, ndreftriad, ndbase_disp)
 Evaluate MITC shell stress and strain for result output. More...
 
subroutine, public dl_shell (etype, nn, ndof, xx, yy, zz, rho, thick, ltype, params, vect, nsize, gausses)
 Calculate the distributed load vector of a MITC shell element. More...
 
subroutine, public dl_shell_33 (ic_type, nn, ndof, xx, yy, zz, rho, thick, ltype, params, vect, nsize, gausses)
 Adapt the natural shell load ordering to shell-solid mixed elements. More...
 
subroutine, public update_shell_mitc (etype, nn, ndof, ecoord, u, du, gausses, qf, thick, mixflag, nddisp, element, ndtriad, ndreftriad, ndcurtriad, nddrill)
 Update shell stress and assemble the equivalent nodal force. More...
 
subroutine, public update_shell_mitc33 (etype, nn, ndof, ecoord, u, du, gausses, qf, thick, mixflag, nddisp)
 Linear shell adapter for the split translational/rotational node layout. More...
 
subroutine, public mass_shell (etype, nn, elem, rho, thick, gausses, mass, lumped)
 Calculate the consistent and lumped mass matrices of a MITC shell. More...
 

Detailed Description

This module ...

Function/Subroutine Documentation

◆ dl_shell()

subroutine, public m_static_lib_shell::dl_shell ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
integer(kind=kint), intent(in)  ndof,
real(kind=kreal), dimension(*), intent(in)  xx,
real(kind=kreal), dimension(*), intent(in)  yy,
real(kind=kreal), dimension(*), intent(in)  zz,
real(kind=kreal), intent(in)  rho,
real(kind=kreal), intent(in)  thick,
integer, intent(in)  ltype,
real(kind=kreal), dimension(*), intent(in)  params,
real(kind=kreal), dimension(*), intent(out)  vect,
integer(kind=kint), intent(out)  nsize,
type(tgaussstatus), dimension(:), intent(in)  gausses 
)

Calculate the distributed load vector of a MITC shell element.

Definition at line 2122 of file static_LIB_shell.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dl_shell_33()

subroutine, public m_static_lib_shell::dl_shell_33 ( integer(kind=kint), intent(in)  ic_type,
integer(kind=kint), intent(in)  nn,
integer(kind=kint), intent(in)  ndof,
real(kind=kreal), dimension(*), intent(in)  xx,
real(kind=kreal), dimension(*), intent(in)  yy,
real(kind=kreal), dimension(*), intent(in)  zz,
real(kind=kreal), intent(in)  rho,
real(kind=kreal), intent(in)  thick,
integer, intent(in)  ltype,
real(kind=kreal), dimension(*), intent(in)  params,
real(kind=kreal), dimension(*), intent(out)  vect,
integer(kind=kint), intent(out)  nsize,
type(tgaussstatus), dimension(:), intent(in)  gausses 
)

Adapt the natural shell load ordering to shell-solid mixed elements.

Definition at line 2206 of file static_LIB_shell.f90.

Here is the call graph for this function:

◆ elementstress_shell_mitc()

subroutine, public m_static_lib_shell::elementstress_shell_mitc ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
integer(kind=kint), intent(in)  ndof,
real(kind=kreal), dimension(3, nn), intent(in)  ecoord,
type(tgaussstatus), dimension(:), intent(in)  gausses,
real(kind=kreal), dimension(6, nn), intent(in)  edisp,
real(kind=kreal), dimension(:, :), intent(out)  strain,
real(kind=kreal), dimension(:, :), intent(out)  stress,
real(kind=kreal), intent(in)  thick,
real(kind=kreal), intent(in)  zeta,
integer, intent(in)  n_layer,
logical, intent(in), optional  surface_gauss_points,
real(kind=kreal), dimension(:, :), intent(out), optional  local_strain,
real(kind=kreal), dimension(:, :), intent(out), optional  local_stress,
real(kind=kreal), dimension(:, :), intent(in), optional  local_stress_override,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndtriad,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndreftriad,
real(kind=kreal), dimension(6, nn), intent(in), optional  ndbase_disp 
)

Evaluate MITC shell stress and strain for result output.

Parameters
[in]ndtriadNodal frames (triads), packed as e1(1:3), e2(4:6), e3=director axis(7:9). The director itself (0.5*thick*e3) is computed inside ShellMITC_SetupNodalDirectors.
[in]ndreftriadNodal frames (triads), packed as e1(1:3), e2(4:6), e3=director axis(7:9). The director itself (0.5*thick*e3) is computed inside ShellMITC_SetupNodalDirectors.

Definition at line 2024 of file static_LIB_shell.f90.

Here is the call graph for this function:

◆ mass_shell()

subroutine, public m_static_lib_shell::mass_shell ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
real(kind=kreal), dimension(3, nn), intent(in)  elem,
real(kind=kreal), intent(in)  rho,
real(kind=kreal), intent(in)  thick,
type(tgaussstatus), dimension(:), intent(in)  gausses,
real(kind=kreal), dimension(:, :), intent(out)  mass,
real(kind=kreal), dimension(:), intent(out)  lumped 
)

Calculate the consistent and lumped mass matrices of a MITC shell.

Definition at line 2364 of file static_LIB_shell.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shellmitc_builddrillingsecondvariation()

subroutine m_static_lib_shell::shellmitc_builddrillingsecondvariation ( integer(kind=kint), intent(in)  nn,
real(kind=kreal), intent(in)  zeta,
real(kind=kreal), dimension(nn), intent(in)  shapefunc,
real(kind=kreal), dimension(nn, 2), intent(in)  shapederiv,
real(kind=kreal), dimension(3, 3, 3, nn), intent(in)  director_second_tangent,
real(kind=kreal), dimension(3, 3), intent(in)  reciprocal_basis,
real(kind=kreal), dimension(3, 3), intent(in)  local_basis,
logical, intent(in)  use_director_tangent,
real(kind=kreal), dimension(3, 3, nn), intent(out)  drilling_second_variation 
)

Build the director second variation used by the drilling term.

Definition at line 1015 of file static_LIB_shell.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shellmitc_covariantbasis()

subroutine m_static_lib_shell::shellmitc_covariantbasis ( integer(kind=kint), intent(in)  nn,
real(kind=kreal), dimension(3, nn), intent(in)  coords,
real(kind=kreal), dimension(3, nn), intent(in)  director,
real(kind=kreal), intent(in)  zeta,
real(kind=kreal), dimension(nn), intent(in)  shapefunc,
real(kind=kreal), dimension(nn, 2), intent(in)  shapederiv,
real(kind=kreal), dimension(3, 3), intent(out)  covariant_basis 
)

Evaluate shell covariant basis vectors at one point.

Definition at line 173 of file static_LIB_shell.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shellmitc_evaluateassumedstrain()

subroutine m_static_lib_shell::shellmitc_evaluateassumedstrain ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
real(kind=kreal), dimension(2), intent(in)  naturalcoord,
real(kind=kreal), intent(in)  zeta,
real(kind=kreal), dimension(3, nn), intent(in)  elem,
real(kind=kreal), dimension(6, nn), intent(in)  edisp,
real(kind=kreal), dimension(3, nn), intent(in)  director,
real(kind=kreal), dimension(3, nn), intent(in)  director_increment,
logical, intent(in)  use_green_lagrange,
real(kind=kreal), dimension(5, 6, 3), intent(in)  tying_strain,
real(kind=kreal), dimension(6), intent(out)  dstrain,
real(kind=kreal), dimension(3, 3), intent(out)  strain_tensor,
real(kind=kreal), dimension(3, 3), intent(out)  covariant_basis,
real(kind=kreal), dimension(3, 3), intent(out)  reciprocal_basis,
real(kind=kreal), dimension(3, 3), intent(out)  material_local_basis,
real(kind=kreal), dimension(3, 3), intent(out)  material_reciprocal_basis,
real(kind=kreal), dimension(3, 3), intent(out)  reference_basis,
real(kind=kreal), dimension(3, 3), intent(out)  current_basis,
real(kind=kreal), intent(out)  reference_jacobian,
real(kind=kreal), intent(out)  current_jacobian 
)

Evaluate the MITC assumed strain and stress-evaluation bases at one point.

Definition at line 1343 of file static_LIB_shell.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shellmitc_evaluatetyingpointvariation()

subroutine m_static_lib_shell::shellmitc_evaluatetyingpointvariation ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
integer(kind=kint), intent(in)  ndof,
integer(kind=kint), intent(in)  tying_set,
integer(kind=kint), intent(in)  tying_point,
real(kind=kreal), intent(in)  zeta_tying,
real(kind=kreal), dimension(3, nn), intent(in)  elem,
real(kind=kreal), dimension(6, nn), intent(in)  shell_disp,
real(kind=kreal), dimension(3, nn), intent(in)  director,
real(kind=kreal), dimension(3, 3, nn), intent(in)  director_tangent,
logical, intent(in)  use_green_lagrange,
logical, intent(in)  use_director_tangent,
real(kind=kreal), dimension(5, ndof*nn), intent(out)  point_B,
real(kind=kreal), dimension(3, ndof*nn, 3), intent(out)  point_basis_variation,
real(kind=kreal), dimension(3, 3, 3, nn), intent(in), optional  director_second_tangent,
real(kind=kreal), dimension(5, 3, 3, nn), intent(out), optional  point_director_second_variation 
)

Evaluate one MITC tying point. First and second variations are returned separately so UPDATE can retain only the B matrix while STF also keeps geometric-stiffness data.

Definition at line 538 of file static_LIB_shell.f90.

Here is the call graph for this function:

◆ shellmitc_integrateinternalforcelayer()

subroutine m_static_lib_shell::shellmitc_integrateinternalforcelayer ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
integer(kind=kint), intent(in)  ndof,
integer(kind=kint), intent(in)  ilayer,
integer(kind=kint), intent(in)  kinematics,
logical, intent(in)  finite_rotation,
logical, intent(in)  use_director_tangent,
logical, intent(in)  use_green_lagrange,
logical, intent(in)  update_state,
real(kind=kreal), dimension(3, nn), intent(in)  ecoord,
real(kind=kreal), dimension(3, nn), intent(in)  evaluation_coords,
real(kind=kreal), dimension(6, nn), intent(in)  total_nodal_state,
real(kind=kreal), dimension(6, nn), intent(in)  strain_nodal_state,
type(tgaussstatus), dimension(:), intent(in)  gausses,
type(telement), intent(inout), optional  element,
real(kind=kreal), dimension(3, nn), intent(in)  v1,
real(kind=kreal), dimension(3, nn), intent(in)  v2,
real(kind=kreal), dimension(3, nn), intent(in)  v3,
real(kind=kreal), dimension(3, nn), intent(in)  director,
real(kind=kreal), dimension(3, nn), intent(in)  reference_director,
real(kind=kreal), dimension(3, 3, nn), intent(in)  director_tangent,
real(kind=kreal), dimension(3, nn), intent(in)  stress_elem,
real(kind=kreal), dimension(3, nn), intent(in)  stress_director,
real(kind=kreal), dimension(3, nn), intent(in)  stress_director_increment,
real(kind=kreal), dimension(ndof*nn), intent(in)  nodal_kinematic_dofs,
real(kind=kreal), dimension(nn), intent(in), optional  nddrill,
real(kind=kreal), dimension(ndof*nn), intent(inout)  qf_work 
)

Integrate one physical shell layer for stress update and internal force. Only one zeta's tying B matrices are retained at a time.

Definition at line 1800 of file static_LIB_shell.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shellmitc_preparenodalkinematics()

subroutine m_static_lib_shell::shellmitc_preparenodalkinematics ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
real(kind=kreal), intent(in)  thick,
integer(kind=kint), intent(in)  kinematics,
logical, intent(in)  finite_rotation,
logical, intent(in)  use_director_tangent,
logical, intent(in)  need_second_tangent,
real(kind=kreal), dimension(3, nn), intent(in)  ecoord,
real(kind=kreal), dimension(6, nn), intent(in)  nodal_state,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndtriad,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndreftriad,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndcurtriad,
real(kind=kreal), dimension(3, nn), intent(out)  evaluation_coords,
real(kind=kreal), dimension(3, nn), intent(out)  v1,
real(kind=kreal), dimension(3, nn), intent(out)  v2,
real(kind=kreal), dimension(3, nn), intent(out)  v3,
real(kind=kreal), dimension(3, nn), intent(out)  director,
real(kind=kreal), dimension(3, nn), intent(out)  reference_director,
real(kind=kreal), dimension(3, 3, nn), intent(out)  director_tangent,
real(kind=kreal), dimension(3, 3, 3, nn), intent(out)  director_second_tangent 
)

Prepare the evaluation coordinates and nodal directors shared by STF/UPDATE.

Definition at line 148 of file static_LIB_shell.f90.

Here is the caller graph for this function:

◆ shellmitc_setupreferencedirectors()

subroutine m_static_lib_shell::shellmitc_setupreferencedirectors ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
real(kind=kreal), intent(in)  thick,
real(kind=kreal), dimension(3, nn), intent(in)  elem,
real(kind=kreal), dimension(3, nn), intent(out)  v1,
real(kind=kreal), dimension(3, nn), intent(out)  v2,
real(kind=kreal), dimension(3, nn), intent(out)  v3,
real(kind=kreal), dimension(3, nn), intent(out)  director 
)

Construct the reference nodal triads and half-thickness directors.

Definition at line 397 of file static_LIB_shell.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shellmitc_transformoutput()

subroutine m_static_lib_shell::shellmitc_transformoutput ( logical, intent(in)  use_gl_strain,
real(kind=kreal), dimension(3, 3), intent(in)  S,
real(kind=kreal), dimension(3, 3), intent(in)  E,
real(kind=kreal), dimension(3, 3), intent(in)  covariant_basis,
real(kind=kreal), dimension(3, 3), intent(in)  reciprocal_basis,
real(kind=kreal), dimension(3, 3), intent(in)  reference_basis,
real(kind=kreal), dimension(3, 3), intent(in)  current_basis,
real(kind=kreal), intent(in)  det_ref,
real(kind=kreal), intent(in)  det_cur,
real(kind=kreal), dimension(6), intent(out)  strain_out,
real(kind=kreal), dimension(6), intent(out)  stress_out 
)

Transform shell-local stress and strain to the requested output measure.

Definition at line 1457 of file static_LIB_shell.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ shellstressvectortotensor()

pure subroutine m_static_lib_shell::shellstressvectortotensor ( real(kind=kreal), dimension(6), intent(in)  stress,
real(kind=kreal), dimension(3, 3), intent(out)  tensor 
)

Definition at line 1530 of file static_LIB_shell.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stf_shell_mitc()

subroutine, public m_static_lib_shell::stf_shell_mitc ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
integer(kind=kint), intent(in)  ndof,
real(kind=kreal), dimension(3, nn), intent(in)  ecoord,
type(tgaussstatus), dimension(:), intent(in)  gausses,
real(kind=kreal), dimension(:, :), intent(out)  stiff,
real(kind=kreal), intent(in)  thick,
integer(kind=kint), intent(in)  mixflag,
real(kind=kreal), dimension(ndof, nn), intent(in), optional  nddisp,
type(telement), intent(in), optional  element,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndtriad,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndreftriad,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndcurtriad,
real(kind=kreal), dimension(nn), intent(in), optional  nddrill 
)

Calculate the tangent stiffness matrix of a MITC shell element.

Parameters
[in]ndtriadNodal frames (triads), packed as e1(1:3), e2(4:6), e3=director axis(7:9). The director itself (0.5*thick*e3) is computed inside this routine.

Definition at line 1959 of file static_LIB_shell.f90.

Here is the call graph for this function:

◆ update_shell_mitc()

subroutine, public m_static_lib_shell::update_shell_mitc ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
integer(kind=kint), intent(in)  ndof,
real(kind=kreal), dimension(3, nn), intent(in)  ecoord,
real(kind=kreal), dimension(:, :), intent(in)  u,
real(kind=kreal), dimension(:, :), intent(in)  du,
type(tgaussstatus), dimension(:), intent(in)  gausses,
real(kind=kreal), dimension(:), intent(out)  qf,
real(kind=kreal), intent(in)  thick,
integer(kind=kint), intent(in)  mixflag,
real(kind=kreal), dimension(ndof, nn), intent(in), optional  nddisp,
type(telement), intent(inout), optional  element,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndtriad,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndreftriad,
real(kind=kreal), dimension(9, nn), intent(in), optional  ndcurtriad,
real(kind=kreal), dimension(nn), intent(in), optional  nddrill 
)

Update shell stress and assemble the equivalent nodal force.

Parameters
[in]ndtriadNodal frames (triads), packed as e1(1:3), e2(4:6), e3=director axis(7:9). The director itself (0.5*thick*e3) is computed inside this routine.
[in]ndreftriadNodal frames (triads), packed as e1(1:3), e2(4:6), e3=director axis(7:9). The director itself (0.5*thick*e3) is computed inside this routine.

Definition at line 2231 of file static_LIB_shell.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_shell_mitc33()

subroutine, public m_static_lib_shell::update_shell_mitc33 ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
integer(kind=kint), intent(in)  ndof,
real(kind=kreal), dimension(3, nn), intent(in)  ecoord,
real(kind=kreal), dimension(3, nn*2), intent(in)  u,
real(kind=kreal), dimension(3, nn*2), intent(in)  du,
type(tgaussstatus), dimension(:), intent(in)  gausses,
real(kind=kreal), dimension(:), intent(out)  qf,
real(kind=kreal), intent(in)  thick,
integer(kind=kint), intent(in)  mixflag,
real(kind=kreal), dimension(3, nn), intent(in), optional  nddisp 
)

Linear shell adapter for the split translational/rotational node layout.

Definition at line 2318 of file static_LIB_shell.f90.

Here is the call graph for this function: