FrontISTR 5.2.0
Large-scale structural analysis program with finit element method
Loading...
Searching...
No Matches
fstr_matrix_con_contact Module Reference

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.
 

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 call graph for this function:
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.