![]() |
FrontISTR 5.2.0
Large-scale structural analysis program with finit element method
|
This module provides functions of reconstructing. More...
Data Types | |
type | fstrst_matrix_contact_lagrange |
Structure for Lagrange multiplier-related part of stiffness matrix (Lagrange multiplier-related matrix) More... | |
type | noderelated |
Structure for defining stiffness matrix structure. More... | |
Functions/Subroutines | |
subroutine | fstr_save_originalmatrixstructure (hecmat) |
This subroutine saves original matrix structure constructed originally by hecMW_matrix. | |
subroutine | fstr_mat_con_contact (cstep, hecmat, fstrsolid, fstrmat, infoctchange, conmat) |
this subroutine reconstructs node-based (stiffness) matrix structure \corresponding to contact state | |
subroutine | getoriginallistofrelatednodes (np, num_lagrange) |
Get original list of related nodes. | |
subroutine | getnewlistofrelatednodesandlagrangemultipliers (cstep, np, fstrsolid, countnon0lu_node, countnon0lu_lagrange) |
Construct new list of related nodes and Lagrange multipliers. Here, a procedure similar to HEC_MW is used. | |
subroutine | constructnewmatrixstructure (hecmat, fstrmat, numnon0_node, numnon0_lagrange, conmat) |
Construct new stiffness matrix structure. | |
subroutine | fstr_copy_lagrange_contact (fstrsolid, fstrmat) |
Copy Lagrange multipliers. | |
logical function | fstr_is_matrixstruct_symmetric (fstrsolid, hecmesh) |
this function judges whether sitiffness matrix is symmetric or not | |
Variables | |
integer(kind=kint), save | npl_org |
integer(kind=kint), save | npu_org |
original number of non-zero items | |
type(noderelated), dimension(:), pointer, save | list_noderelated_org => null() |
original structure of matrix | |
type(noderelated), dimension(:), pointer | list_noderelated => null() |
current structure of matrix | |
logical | permission = .false. |
This module provides functions of reconstructing.
subroutine fstr_matrix_con_contact::constructnewmatrixstructure | ( | type(hecmwst_matrix) | hecmat, |
type(fstrst_matrix_contact_lagrange) | fstrmat, | ||
integer(kind=kint) | numnon0_node, | ||
integer(kind=kint) | numnon0_lagrange, | ||
type(hecmwst_matrix), optional | conmat | ||
) |
Construct new stiffness matrix structure.
hecmat | type hecmwST_matrix |
fstrmat | type fstrST_matrix_contact_lagrange |
numnon0_lagrange | node-based number of non-zero items in half of the matrix |
Definition at line 250 of file fstr_mat_con_contact.f90.
subroutine fstr_matrix_con_contact::fstr_copy_lagrange_contact | ( | type(fstr_solid) | fstrsolid, |
type(fstrst_matrix_contact_lagrange) | fstrmat | ||
) |
Copy Lagrange multipliers.
fstrsolid | type fstr_solid |
fstrmat | fstrST_matrix_contact_lagrange |
Definition at line 579 of file fstr_mat_con_contact.f90.
logical function fstr_matrix_con_contact::fstr_is_matrixstruct_symmetric | ( | type(fstr_solid ) | fstrsolid, |
type(hecmwst_local_mesh) | hecmesh | ||
) |
this function judges whether sitiffness matrix is symmetric or not
Definition at line 599 of file fstr_mat_con_contact.f90.
subroutine fstr_matrix_con_contact::fstr_mat_con_contact | ( | integer(kind=kint) | cstep, |
type(hecmwst_matrix) | hecmat, | ||
type(fstr_solid) | fstrsolid, | ||
type(fstrst_matrix_contact_lagrange) | fstrmat, | ||
type(fstr_info_contactchange) | infoctchange, | ||
type (hecmwst_matrix), optional | conmat | ||
) |
this subroutine reconstructs node-based (stiffness) matrix structure \corresponding to contact state
cstep | current loading step |
hecmat | type hecmwST_matrix |
fstrsolid | type fstr_solid |
fstrmat | type fstrST_matrix_contact_lagrange |
infoctchange | type fstr_contactChange |
Definition at line 92 of file fstr_mat_con_contact.f90.
subroutine fstr_matrix_con_contact::fstr_save_originalmatrixstructure | ( | type(hecmwst_matrix) | hecmat | ) |
This subroutine saves original matrix structure constructed originally by hecMW_matrix.
hecmat | type hecmwST_matrix |
Definition at line 52 of file fstr_mat_con_contact.f90.
subroutine fstr_matrix_con_contact::getnewlistofrelatednodesandlagrangemultipliers | ( | integer(kind=kint) | cstep, |
integer(kind=kint) | np, | ||
type(fstr_solid) | fstrsolid, | ||
integer(kind=kint) | countnon0lu_node, | ||
integer(kind=kint) | countnon0lu_lagrange | ||
) |
Construct new list of related nodes and Lagrange multipliers. Here, a procedure similar to HEC_MW is used.
fstrsolid | type fstr_solid |
cstep | current loading step |
np | total number of nodes |
countnon0lu_lagrange | counters of node-based number of non-zero items |
Definition at line 165 of file fstr_mat_con_contact.f90.
subroutine fstr_matrix_con_contact::getoriginallistofrelatednodes | ( | integer(kind=kint) | np, |
integer(kind=kint) | num_lagrange | ||
) |
Get original list of related nodes.
num_lagrange | total number of nodes |
Definition at line 135 of file fstr_mat_con_contact.f90.
type(noderelated), dimension(:), pointer fstr_matrix_con_contact::list_noderelated => null() |
current structure of matrix
Definition at line 42 of file fstr_mat_con_contact.f90.
type(noderelated), dimension(:), pointer, save fstr_matrix_con_contact::list_noderelated_org => null() |
original structure of matrix
Definition at line 40 of file fstr_mat_con_contact.f90.
integer(kind=kint), save fstr_matrix_con_contact::npl_org |
Definition at line 39 of file fstr_mat_con_contact.f90.
integer(kind=kint), save fstr_matrix_con_contact::npu_org |
original number of non-zero items
Definition at line 39 of file fstr_mat_con_contact.f90.
logical fstr_matrix_con_contact::permission = .false. |
Definition at line 44 of file fstr_mat_con_contact.f90.