![]() |
FrontISTR
5.9.0
Large-scale structural analysis program with finit element method
|
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... | |
This module ...
| 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.
| 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.
| 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.
| [in] | ndtriad | Nodal 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] | ndreftriad | Nodal 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| [in] | ndtriad | Nodal 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.
| 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.
| [in] | ndtriad | Nodal 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] | ndreftriad | Nodal 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.
| 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.