FrontISTR  5.2.0
Large-scale structural analysis program with finit element method
fstr_matrix_con_contact Module Reference

This module provides functions of reconstructing. More...

Data Types

type  noderelated
 Structure for defining stiffness matrix structure. More...
 
type  fstrst_matrix_contact_lagrange
 Structure for Lagrange multiplier-related part of stiffness matrix (Lagrange multiplier-related matrix) More...
 

Functions/Subroutines

subroutine fstr_save_originalmatrixstructure (hecMAT)
 This subroutine saves original matrix structure constructed originally by hecMW_matrix. More...
 
subroutine fstr_mat_con_contact (cstep, hecMAT, fstrSOLID, fstrMAT, infoCTChange, conMAT)
 this subroutine reconstructs node-based (stiffness) matrix structure \corresponding to contact state More...
 
subroutine getoriginallistofrelatednodes (np, num_lagrange)
 Get original list of related nodes. More...
 
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. More...
 
subroutine constructnewmatrixstructure (hecMAT, fstrMAT, numNon0_node, numNon0_lagrange, conMAT)
 Construct new stiffness matrix structure. More...
 
subroutine fstr_copy_lagrange_contact (fstrSOLID, fstrMAT)
 Copy Lagrange multipliers. More...
 
logical function fstr_is_matrixstruct_symmetric (fstrSOLID, hecMESH)
 this function judges whether sitiffness matrix is symmetric or not More...
 

Variables

integer(kind=kint), save npl_org
 
integer(kind=kint), save npu_org
 original number of non-zero items More...
 
type(noderelated), dimension(:), pointer, save list_noderelated_org => null()
 original structure of matrix More...
 
type(noderelated), dimension(:), pointer list_noderelated => null()
 current structure of matrix More...
 
logical permission = .false.
 

Detailed Description

This module provides functions of reconstructing.

Function/Subroutine Documentation

◆ constructnewmatrixstructure()

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.

Parameters
hecmattype hecmwST_matrix
fstrmattype fstrST_matrix_contact_lagrange
numnon0_lagrangenode-based number of non-zero items in half of the matrix

Definition at line 250 of file fstr_mat_con_contact.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fstr_copy_lagrange_contact()

subroutine fstr_matrix_con_contact::fstr_copy_lagrange_contact ( type(fstr_solid fstrSOLID,
type(fstrst_matrix_contact_lagrange fstrMAT 
)

Copy Lagrange multipliers.

Parameters
fstrsolidtype fstr_solid
fstrmatfstrST_matrix_contact_lagrange

Definition at line 579 of file fstr_mat_con_contact.f90.

Here is the caller graph for this function:

◆ fstr_is_matrixstruct_symmetric()

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.

Here is the caller graph for this function:

◆ fstr_mat_con_contact()

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

Parameters
cstepcurrent loading step
hecmattype hecmwST_matrix
fstrsolidtype fstr_solid
fstrmattype fstrST_matrix_contact_lagrange
infoctchangetype fstr_contactChange

Definition at line 92 of file fstr_mat_con_contact.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fstr_save_originalmatrixstructure()

subroutine fstr_matrix_con_contact::fstr_save_originalmatrixstructure ( type(hecmwst_matrix hecMAT)

This subroutine saves original matrix structure constructed originally by hecMW_matrix.

Parameters
hecmattype hecmwST_matrix

Definition at line 52 of file fstr_mat_con_contact.f90.

Here is the caller graph for this function:

◆ getnewlistofrelatednodesandlagrangemultipliers()

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.

Parameters
fstrsolidtype fstr_solid
cstepcurrent loading step
nptotal number of nodes
countnon0lu_lagrangecounters of node-based number of non-zero items

Definition at line 165 of file fstr_mat_con_contact.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getoriginallistofrelatednodes()

subroutine fstr_matrix_con_contact::getoriginallistofrelatednodes ( integer(kind=kint)  np,
integer(kind=kint)  num_lagrange 
)

Get original list of related nodes.

Parameters
num_lagrangetotal number of nodes

Definition at line 135 of file fstr_mat_con_contact.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ list_noderelated

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.

◆ list_noderelated_org

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.

◆ npl_org

integer(kind=kint), save fstr_matrix_con_contact::npl_org

Definition at line 39 of file fstr_mat_con_contact.f90.

◆ npu_org

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.

◆ permission

logical fstr_matrix_con_contact::permission = .false.

Definition at line 44 of file fstr_mat_con_contact.f90.