![]() |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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.