![]() |
FrontISTR
5.7.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, hecLagMAT, fstrSOLID) |
This subroutine obtains contact stiffness matrix of each contact pair and assembles it into global stiffness matrix. More... | |
subroutine | gettiedstiffness (etype, nnode, idof, ctState, lagrange, stiffness) |
This subroutine obtains contact stiffness matrix of contact pair. More... | |
subroutine, public | fstr_update_ndforce_contact (cstep, hecMESH, hecMAT, hecLagMAT, 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 | gettiednodalforce (etype, nnode, idof, ndu, ctState, lagrange, ctNForce, ctTForce) |
This subroutine obtains contact nodal force vector of contact pair. More... | |
subroutine, public | update_ndforce_contact (nnode, ndLocal, id_lagrange, lagrange, ctNForce, ctTForce, hecMAT, cont_nforce, cont_fric) |
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, hecLagMAT) |
This subroutine adds initial contact force vector to the right-hand side vector \at the beginning of each substep calculation. 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(hecmwst_matrix_lagrange) | hecLagMAT, | ||
type(fstr_solid) | fstrSOLID | ||
) |
This subroutine obtains contact stiffness matrix of each contact pair and assembles it into global stiffness matrix.
cstep | current loading step |
hecmat | type hecmwST_matrix |
fstrsolid | type fstr_solid |
heclagmat | type hecmwST_matrix_lagrange |
Definition at line 38 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(hecmwst_matrix_lagrange) | hecLagMAT | ||
) |
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 |
heclagmat | type hecmwST_matrix_lagrange |
cstep | current step |
Definition at line 546 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(hecmwst_matrix_lagrange) | hecLagMAT, | ||
type(fstr_solid) | fstrSOLID, | ||
type(hecmwst_matrix) | 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 |
heclagmat | type hecmwST_matrix_lagrange |
conmat | type hecmwST_matrix for contact part only |
cstep | current calculation step |
Definition at line 257 of file fstr_AddContactStiff.f90.
subroutine m_addcontactstiffness::gettiednodalforce | ( | integer(kind=kint) | etype, |
integer(kind=kint) | nnode, | ||
integer(kind=kint) | idof, | ||
real(kind=kreal), dimension((nnode + 1)*3) | ndu, | ||
type(tcontactstate) | ctState, | ||
real(kind=kreal) | lagrange, | ||
real(kind=kreal), dimension((nnode+1)*3+1) | ctNForce, | ||
real(kind=kreal), dimension((nnode+1)*3+1) | ctTForce | ||
) |
This subroutine obtains contact nodal force vector of contact pair.
etype | type of master segment |
nnode | number of nodes of master segment |
ndu | nodal displacement |
ctstate | type tContactState |
lagrange | value of Lagrange multiplier |
ctnforce | tied contact force vector |
cttforce | tied contact force vector |
Definition at line 370 of file fstr_AddContactStiff.f90.
subroutine m_addcontactstiffness::gettiedstiffness | ( | integer(kind=kint) | etype, |
integer(kind=kint) | nnode, | ||
integer(kind=kint) | idof, | ||
type(tcontactstate) | ctState, | ||
real(kind=kreal) | lagrange, | ||
real(kind=kreal), dimension(:,:) | stiffness | ||
) |
This subroutine obtains contact stiffness matrix of contact pair.
etype | type of master segment |
nnode | number of nodes of master segment |
ctstate | type tContactState |
lagrange | value of Lagrange multiplier |
stiffness | contact stiffness matrix |
Definition at line 121 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(hecmwst_matrix) | hecMAT, | ||
real(kind=kreal), dimension(:), pointer | cont_nforce, | ||
real(kind=kreal), dimension(:), optional, pointer | cont_fric | ||
) |
This subroutine assembles contact nodal force vector into right-hand side vector to update non-equilibrated nodal force vector.
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 |
cont_nforce | contact force vector |
cont_fric | contact force vector |
Definition at line 515 of file fstr_AddContactStiff.f90.