![]() |
FrontISTR 5.2.0
Large-scale structural analysis program with finit element method
|
This module provides functions: 1) obtain contact stiffness matrix of each contact pair and assemble it into global stiffness matrix. 2) obtain contact nodal force vector of each contact pair and assemble it into right-hand side vector to update non-equilibrated nodal force vector. 3) Modify Lagrange multiplier-related part of stiffness matrix and right-hand side vector for dealing with prescribed displacement boundary condition. More...
Functions/Subroutines | |
| subroutine, public | fstr_addcontactstiffness (cstep, iter, hecmat, fstrmat, fstrsolid) |
| This subroutine obtains contact stiffness matrix of each contact pair and assembles it into global stiffness matrix. | |
| subroutine, public | fstr_update_ndforce_contact (cstep, hecmesh, hecmat, fstrmat, fstrsolid, conmat) |
| This subroutine obtains contact nodal force vector of each contact pair and assembles it into right-hand side vector to update non-equilibrated nodal force vector. | |
| subroutine, public | update_ndforce_contact (nnode, ndlocal, id_lagrange, lagrange, ctnforce, cttforce, fstrsolid, hecmat) |
| This subroutine assembles contact nodal force vector into right-hand side vector to update non-equilibrated nodal force vector. | |
| subroutine, public | fstr_ass_load_contact (cstep, hecmesh, hecmat, fstrsolid, fstrmat) |
| This subroutine adds initial contact force vector to the right-hand side vector \at the beginning of each substep calculation. | |
| subroutine, public | fstr_mat_ass_bc_contact (hecmat, fstrmat, inode, idof, rhs) |
| Modify Lagrange multiplier-related part of stiffness matrix and right-hand side vector for dealing with prescribed displacement boundary condition. | |
This module provides functions: 1) obtain contact stiffness matrix of each contact pair and assemble it into global stiffness matrix. 2) obtain contact nodal force vector of each contact pair and assemble it into right-hand side vector to update non-equilibrated nodal force vector. 3) Modify Lagrange multiplier-related part of stiffness matrix and right-hand side vector for dealing with prescribed displacement boundary condition.
| subroutine, public m_addcontactstiffness::fstr_addcontactstiffness | ( | integer(kind=kint) | cstep, |
| integer(kind=kint) | iter, | ||
| type(hecmwst_matrix) | hecmat, | ||
| type(fstrst_matrix_contact_lagrange) | fstrmat, | ||
| type(fstr_solid) | fstrsolid | ||
| ) |
This subroutine obtains contact stiffness matrix of each contact pair and assembles it into global stiffness matrix.
| cstep | current loding step |
| hecmat | type hecmwST_matrix |
| fstrsolid | type fstr_solid |
| fstrmat | type fstrST_matrix_contact_lagrange |
Definition at line 39 of file fstr_AddContactStiff.f90.
| subroutine, public m_addcontactstiffness::fstr_ass_load_contact | ( | integer(kind=kint) | cstep, |
| type(hecmwst_local_mesh) | hecmesh, | ||
| type(hecmwst_matrix) | hecmat, | ||
| type(fstr_solid) | fstrsolid, | ||
| type(fstrst_matrix_contact_lagrange) | fstrmat | ||
| ) |
This subroutine adds initial contact force vector to the right-hand side vector \at the beginning of each substep calculation.
| hecmesh | type hecmwST_local_mesh |
| hecmat | type hecmwST_matrix |
| fstrsolid | type fstr_solid |
| fstrmat | type fstrST_matrix_contact_lagrange |
| cstep | current step |
Definition at line 456 of file fstr_AddContactStiff.f90.
| subroutine, public m_addcontactstiffness::fstr_mat_ass_bc_contact | ( | type(hecmwst_matrix) | hecmat, |
| type(fstrst_matrix_contact_lagrange) | fstrmat, | ||
| integer(kind=kint) | inode, | ||
| integer(kind=kint) | idof, | ||
| real(kind=kreal) | rhs | ||
| ) |
Modify Lagrange multiplier-related part of stiffness matrix and right-hand side vector for dealing with prescribed displacement boundary condition.
| hecmat | hecmwST_matrix |
| fstrmat | fstrST_matrix_contact_lagrange |
| idof | number of node; degree of freedom |
| rhs | value of prescribed displacement |
Definition at line 535 of file fstr_AddContactStiff.f90.
| subroutine, public m_addcontactstiffness::fstr_update_ndforce_contact | ( | integer(kind=kint) | cstep, |
| type(hecmwst_local_mesh) | hecmesh, | ||
| type(hecmwst_matrix) | hecmat, | ||
| type(fstrst_matrix_contact_lagrange) | fstrmat, | ||
| type(fstr_solid) | fstrsolid, | ||
| type(hecmwst_matrix), optional | conmat | ||
| ) |
This subroutine obtains contact nodal force vector of each contact pair and assembles it into right-hand side vector to update non-equilibrated nodal force vector.
| hecmesh | type hecmwST_local_mesh |
| hecmat | type hecmwST_matrix |
| fstrsolid | type fstr_solid |
| fstrmat | type fstrST_matrix_contact_lagrange |
| conmat | type hecmwST_matrix for contact part only |
| cstep | current calculation step |
Definition at line 260 of file fstr_AddContactStiff.f90.
| subroutine, public m_addcontactstiffness::update_ndforce_contact | ( | integer(kind=kint) | nnode, |
| integer(kind=kint), dimension(nnode + 1) | ndlocal, | ||
| integer(kind=kint) | id_lagrange, | ||
| real(kind=kreal) | lagrange, | ||
| real(kind=kreal), dimension((nnode+1)*3+1) | ctnforce, | ||
| real(kind=kreal), dimension((nnode+1)*3+1) | cttforce, | ||
| type(fstr_solid) | fstrsolid, | ||
| type(hecmwst_matrix) | hecmat | ||
| ) |
This subroutine assembles contact nodal force vector into right-hand side vector to update non-equilibrated nodal force vector.
| fstrsolid | type fstr_solid |
| hecmat | type hecmwST_matrix |
| ndlocal | number of nodes of master segment global number of nodes of contact pair |
| id_lagrange | number of Lagrange multiplier |
| lagrange | value of Lagrange multiplier |
| ctnforce | contact force vector |
| cttforce | contact force vector |
Definition at line 425 of file fstr_AddContactStiff.f90.