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

This module provides functions to calcualte contact stiff matrix. More...

Functions/Subroutines

subroutine print_contatct_pair (file, pair)
 Write out the contact definition read from mesh file.
 
subroutine fstr_set_contact_penalty (maxv)
 
logical function fstr_is_contact_active ()
 
subroutine fstr_set_contact_active (a)
 
logical function fstr_is_contact_conv (ctalgo, infoctchange, hecmesh)
 
logical function fstr_is_matrixstructure_changed (infoctchange)
 
subroutine fstr_contact2mpc (contacts, mpcs)
 Contact states to equation conditions.
 
subroutine fstr_del_contactmpc (mpcs)
 Delete mpcs derived from contact conditions.
 
subroutine fstr_write_mpc (file, mpcs)
 Print out mpc conditions.
 
subroutine fstr_scan_contact_state (cstep, sub_step, cont_step, dt, ctalgo, hecmesh, fstrsolid, infoctchange, b)
 Scanning contact state.
 
subroutine fstr_scan_contact_state_exp (cstep, hecmesh, fstrsolid, infoctchange)
 Scanning contact state.
 
subroutine fstr_update_contact0 (hecmesh, fstrsolid, b)
 Update lagrangian multiplier.
 
subroutine fstr_update_contact_multiplier (hecmesh, fstrsolid, ctchanged)
 Update lagrangian multiplier.
 
subroutine fstr_update_contact_tangentforce (fstrsolid)
 Update tangent force.
 
subroutine fstr_contactbc (iter, hecmesh, hecmat, fstrsolid)
 Introduce contact stiff into global stiff matrix or mpc conditions into hecMESH.
 
subroutine initialize_contact_output_vectors (fstrsolid, hecmat)
 
subroutine setup_contact_elesurf_for_area (cstep, hecmesh, fstrsolid)
 
subroutine calc_contact_area (hecmesh, fstrsolid, flag)
 
subroutine calc_nodalarea_surfelement (etype, nn, ecoord, sid, vect)
 

Variables

integer(kind=kint), save n_contact_mpc
 
real(kind=kreal), save mu =1.d10
 penalty, default value
 
real(kind=kreal), save mut =1.d6
 penalty along tangent direction
 
real(kind=kreal), save cdotp =1.d3
 mu=cdotp*maxval
 
real(kind=kreal), save cgn =1.d-5
 convergent condition of penetration
 
real(kind=kreal), save cgt =1.d-3
 convergent condition of relative tangent disp
 
real(kind=kreal), dimension(2), save gnt
 1:current avarage penetration; 2:current relative tangent displacement
 
real(kind=kreal), dimension(2), save bakgnt
 1:current avarage penetration; 2:current relative tangent displacement!
 

Detailed Description

This module provides functions to calcualte contact stiff matrix.

Function/Subroutine Documentation

◆ calc_contact_area()

subroutine mcontact::calc_contact_area ( type( hecmwst_local_mesh ), intent(in)  hecmesh,
type(fstr_solid), intent(inout)  fstrsolid,
integer(kind=kint), intent(in)  flag 
)
Parameters
[in]hecmeshtype mesh
[in,out]fstrsolidtype fstr_solid
[in]flagset 1 if called in NR iteration

Definition at line 531 of file fstr_contact.f90.

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

◆ calc_nodalarea_surfelement()

subroutine mcontact::calc_nodalarea_surfelement ( integer(kind=kint), intent(in)  etype,
integer(kind=kint), intent(in)  nn,
real(kind=kreal), dimension(:,:), intent(in)  ecoord,
integer(kind=kint), intent(in)  sid,
real(kind=kreal), dimension(:), intent(out)  vect 
)

Definition at line 582 of file fstr_contact.f90.

Here is the caller graph for this function:

◆ fstr_contact2mpc()

subroutine mcontact::fstr_contact2mpc ( type( tcontact ), dimension(:), intent(in)  contacts,
type( hecmwst_mpc ), intent(inout)  mpcs 
)

Contact states to equation conditions.

Parameters
[in]contactscurrent contact state
[in,out]mpcsto who mpc be appended

Definition at line 170 of file fstr_contact.f90.

◆ fstr_contactbc()

subroutine mcontact::fstr_contactbc ( integer(kind=kint), intent(in)  iter,
type (hecmwst_local_mesh), intent(inout)  hecmesh,
type (hecmwst_matrix), intent(inout)  hecmat,
type(fstr_solid), intent(inout)  fstrsolid 
)

Introduce contact stiff into global stiff matrix or mpc conditions into hecMESH.

Parameters
[in]iterNR iterations
[in,out]hecmeshtype mesh
[in,out]hecmattype matrix
[in,out]fstrsolidtype fstr_solid

Definition at line 371 of file fstr_contact.f90.

Here is the caller graph for this function:

◆ fstr_del_contactmpc()

subroutine mcontact::fstr_del_contactmpc ( type( hecmwst_mpc ), intent(inout)  mpcs)

Delete mpcs derived from contact conditions.

Parameters
[in,out]mpcsmpcs to be modified

Definition at line 192 of file fstr_contact.f90.

Here is the call graph for this function:

◆ fstr_is_contact_active()

logical function mcontact::fstr_is_contact_active

Definition at line 51 of file fstr_contact.f90.

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

◆ fstr_is_contact_conv()

logical function mcontact::fstr_is_contact_conv ( integer(kind=kint), intent(in)  ctalgo,
type (fstr_info_contactchange), intent(in)  infoctchange,
type (hecmwst_local_mesh), intent(in)  hecmesh 
)
Parameters
[in]ctalgocontact analysis algorithm
[in]infoctchangefstr_contactChange

Definition at line 60 of file fstr_contact.f90.

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

◆ fstr_is_matrixstructure_changed()

logical function mcontact::fstr_is_matrixstructure_changed ( type (fstr_info_contactchange infoctchange)
Parameters
infoctchangefstr_contactChange

Definition at line 87 of file fstr_contact.f90.

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

◆ fstr_scan_contact_state()

subroutine mcontact::fstr_scan_contact_state ( integer(kind=kint), intent(in)  cstep,
integer(kind=kint), intent(in)  sub_step,
integer(kind=kint), intent(in)  cont_step,
real(kind=kreal), intent(in)  dt,
integer(kind=kint), intent(in)  ctalgo,
type( hecmwst_local_mesh ), intent(in)  hecmesh,
type(fstr_solid), intent(inout)  fstrsolid,
type(fstr_info_contactchange), intent(inout)  infoctchange,
real(kind=kreal), dimension(:), optional  b 
)

Scanning contact state.

Parameters
[in]cstepcurrent step number
[in]sub_stepcurrent sub-step number
[in]cont_stepcurrent contact step number
[in]ctalgocontact analysis algorithm
[in]hecmeshtype mesh
[in,out]fstrsolidtype fstr_solid
bnodal force residual

Definition at line 217 of file fstr_contact.f90.

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

◆ fstr_scan_contact_state_exp()

subroutine mcontact::fstr_scan_contact_state_exp ( integer(kind=kint), intent(in)  cstep,
type( hecmwst_local_mesh ), intent(in)  hecmesh,
type(fstr_solid), intent(inout)  fstrsolid,
type(fstr_info_contactchange), intent(inout)  infoctchange 
)

Scanning contact state.

Parameters
[in]cstepcurrent step number
[in]hecmeshtype mesh
[in,out]fstrsolidtype fstr_solid

Definition at line 285 of file fstr_contact.f90.

Here is the call graph for this function:

◆ fstr_set_contact_active()

subroutine mcontact::fstr_set_contact_active ( logical, intent(in)  a)

Definition at line 55 of file fstr_contact.f90.

◆ fstr_set_contact_penalty()

subroutine mcontact::fstr_set_contact_penalty ( real(kind=kreal), intent(in)  maxv)

Definition at line 44 of file fstr_contact.f90.

Here is the caller graph for this function:

◆ fstr_update_contact0()

subroutine mcontact::fstr_update_contact0 ( type( hecmwst_local_mesh ), intent(in)  hecmesh,
type(fstr_solid), intent(inout)  fstrsolid,
real(kind=kreal), dimension(:), intent(inout)  b 
)

Update lagrangian multiplier.

Parameters
[in]hecmeshtype mesh
[in,out]fstrsolidtype fstr_solid
[in,out]bnodal force residual

Definition at line 328 of file fstr_contact.f90.

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

◆ fstr_update_contact_multiplier()

subroutine mcontact::fstr_update_contact_multiplier ( type( hecmwst_local_mesh ), intent(in)  hecmesh,
type(fstr_solid), intent(inout)  fstrsolid,
logical, intent(out)  ctchanged 
)

Update lagrangian multiplier.

Definition at line 342 of file fstr_contact.f90.

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

◆ fstr_update_contact_tangentforce()

subroutine mcontact::fstr_update_contact_tangentforce ( type(fstr_solid), intent(inout)  fstrsolid)

Update tangent force.

Definition at line 359 of file fstr_contact.f90.

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

◆ fstr_write_mpc()

subroutine mcontact::fstr_write_mpc ( integer(kind=kint), intent(in)  file,
type( hecmwst_mpc ), intent(in)  mpcs 
)

Print out mpc conditions.

Parameters
[in]filefile number
[in]mpcsmpcs to be printed

Definition at line 199 of file fstr_contact.f90.

◆ initialize_contact_output_vectors()

subroutine mcontact::initialize_contact_output_vectors ( type(fstr_solid fstrsolid,
type(hecmwst_matrix hecmat 
)
Parameters
fstrsolidtype fstr_solid
hecmattype hecmwST_matrix

Definition at line 431 of file fstr_contact.f90.

Here is the caller graph for this function:

◆ print_contatct_pair()

subroutine mcontact::print_contatct_pair ( integer(kind=kint), intent(in)  file,
type( hecmwst_contact_pair ), intent(in)  pair 
)

Write out the contact definition read from mesh file.

Definition at line 32 of file fstr_contact.f90.

◆ setup_contact_elesurf_for_area()

subroutine mcontact::setup_contact_elesurf_for_area ( integer(kind=kint), intent(in)  cstep,
type( hecmwst_local_mesh ), intent(in)  hecmesh,
type(fstr_solid), intent(inout)  fstrsolid 
)
Parameters
[in]cstepcurrent step number
[in]hecmeshtype mesh
[in,out]fstrsolidtype fstr_solid

Definition at line 472 of file fstr_contact.f90.

Variable Documentation

◆ bakgnt

real(kind=kreal), dimension(2), save mcontact::bakgnt

1:current avarage penetration; 2:current relative tangent displacement!

Definition at line 26 of file fstr_contact.f90.

◆ cdotp

real(kind=kreal), save mcontact::cdotp =1.d3

mu=cdotp*maxval

Definition at line 19 of file fstr_contact.f90.

◆ cgn

real(kind=kreal), save mcontact::cgn =1.d-5

convergent condition of penetration

Definition at line 21 of file fstr_contact.f90.

◆ cgt

real(kind=kreal), save mcontact::cgt =1.d-3

convergent condition of relative tangent disp

Definition at line 22 of file fstr_contact.f90.

◆ gnt

real(kind=kreal), dimension(2), save mcontact::gnt

1:current avarage penetration; 2:current relative tangent displacement

Definition at line 24 of file fstr_contact.f90.

◆ mu

real(kind=kreal), save mcontact::mu =1.d10

penalty, default value

Definition at line 17 of file fstr_contact.f90.

◆ mut

real(kind=kreal), save mcontact::mut =1.d6

penalty along tangent direction

Definition at line 18 of file fstr_contact.f90.

◆ n_contact_mpc

integer(kind=kint), save mcontact::n_contact_mpc

Definition at line 14 of file fstr_contact.f90.