FrontISTR  5.9.0
Large-scale structural analysis program with finit element method
mcontactdef Module Reference

This module manages the data structure for contact calculation. More...

Data Types

type  tcontactstate
 This structure records contact status. More...
 
type  tcontact
 Structure to includes all info needed by contact calculation. More...
 
type  fstr_info_contactchange
 

Functions/Subroutines

subroutine contact_state_init (cstate)
 Initializer. More...
 
subroutine contact_state_copy (cstate1, cstate2)
 Copy. More...
 
pure logical function is_contact_active (state)
 Whether the contact state has active LM constraint (STICK or SLIP) More...
 
pure logical function has_projection (state)
 Whether the contact state has valid projection info (NEAR, STICK, or SLIP) More...
 
pure logical function is_contact_free (state)
 Whether the contact state is completely free (no projection info) More...
 
subroutine print_contact_state (fnum, cstate)
 Print out contact state. More...
 
subroutine fstr_write_contact (file, contact)
 Write out contact definition. More...
 
subroutine fstr_contact_finalize (contact)
 Finalizer. More...
 
logical function fstr_contact_check (contact, hecMESH)
 Check the consistency with given mesh of contact definition. More...
 
logical function fstr_contact_init (contact, hecMESH, cparam, myrank)
 Initializer of tContactState. More...
 
logical function fstr_embed_init (embed, hecMESH, cparam, myrank)
 Initializer of tContactState for embed case. More...
 
integer(kind=kint) function check_apply_contact_if (contact_if, contacts)
 
subroutine clear_contact_state (contact)
 Reset contact state all to free. More...
 
subroutine print_contatct_pair (file, pair)
 Write out the contact definition read from mesh file. More...
 

Variables

real(kind=kreal), save cgn =1.d-5
 convergent condition of penetration More...
 
real(kind=kreal), save cgt =1.d-3
 convergent condition of relative tangent disp More...
 
real(kind=kreal), dimension(2), save gnt
 1:current average penetration; 2:current relative tangent displacement More...
 
real(kind=kreal), dimension(2), save bakgnt
 1:current average penetration; 2:current relative tangent displacement! More...
 
integer, parameter contactunknown = -1
 
integer, parameter contactfree = -1
 contact state definition More...
 
integer, parameter contactnear = 0
 near contact: projection info available, no LM constraint More...
 
integer, parameter contactstick = 1
 
integer, parameter contactslip = 2
 
integer, parameter contacttied = 1
 contact type or algorithm definition More...
 
integer, parameter contactglued = 2
 
integer, parameter contactsslid = 3
 
integer, parameter contactfslid = 4
 
integer, parameter kcsnone = 0
 contact smoothing type More...
 
integer, parameter kcsnagata = 1
 
integer, parameter c_if_slave = 1
 contact interference type More...
 
integer, parameter c_if_master = 2
 
integer, parameter kctforresidual = 1
 purpose flag for contact force calculation More...
 
integer, parameter kctforoutput = 2
 compute contact force for output (CONT_NFORCE/CONT_FRIC) More...
 

Detailed Description

This module manages the data structure for contact calculation.

Contact calculation takes into act after calling the following three subrotuines provided in this module

  1. Reading contact definition with subroutine: fstr_ctrl_get_CONTACT
  2. Check its consistency with mesh definition: fstr_contact_check
  3. Initializing the contact calculation : fstr_contact_init

Function/Subroutine Documentation

◆ check_apply_contact_if()

integer(kind=kint) function mcontactdef::check_apply_contact_if ( type(tcontactinterference), intent(inout)  contact_if,
type(tcontact), dimension(:)  contacts 
)
Parameters
[in,out]contact_ifcontact definition
contactstype fstr_solid

Definition at line 497 of file fstr_contact_def.F90.

◆ clear_contact_state()

subroutine mcontactdef::clear_contact_state ( type(tcontact), intent(inout)  contact)

Reset contact state all to free.

Parameters
[in,out]contactcontact definition

Definition at line 534 of file fstr_contact_def.F90.

Here is the caller graph for this function:

◆ contact_state_copy()

subroutine mcontactdef::contact_state_copy ( type(tcontactstate), intent(in)  cstate1,
type(tcontactstate), intent(inout)  cstate2 
)

Copy.

Parameters
[in]cstate1contact state
[in,out]cstate2contact state

Definition at line 164 of file fstr_contact_def.F90.

Here is the caller graph for this function:

◆ contact_state_init()

subroutine mcontactdef::contact_state_init ( type(tcontactstate), intent(inout)  cstate)

Initializer.

Parameters
[in,out]cstatecontact state

Definition at line 141 of file fstr_contact_def.F90.

Here is the caller graph for this function:

◆ fstr_contact_check()

logical function mcontactdef::fstr_contact_check ( type(tcontact), intent(inout)  contact,
type(hecmwst_local_mesh), pointer  hecMESH 
)

Check the consistency with given mesh of contact definition.

Parameters
[in,out]contactcontact definition
hecmeshmesh definition

Definition at line 245 of file fstr_contact_def.F90.

◆ fstr_contact_finalize()

subroutine mcontactdef::fstr_contact_finalize ( type(tcontact), intent(inout)  contact)

Finalizer.

Parameters
[in,out]contactcontact definition

Definition at line 229 of file fstr_contact_def.F90.

Here is the call graph for this function:

◆ fstr_contact_init()

logical function mcontactdef::fstr_contact_init ( type(tcontact), intent(inout)  contact,
type(hecmwst_local_mesh), pointer  hecMESH,
type(tcontactparam), target  cparam,
integer(kint), intent(in), optional  myrank 
)

Initializer of tContactState.

Parameters
[in,out]contactcontact definition
hecmeshmesh definition
cparamcontact parameter

Definition at line 274 of file fstr_contact_def.F90.

Here is the call graph for this function:

◆ fstr_embed_init()

logical function mcontactdef::fstr_embed_init ( type(tcontact), intent(inout)  embed,
type(hecmwst_local_mesh), pointer  hecMESH,
type(tcontactparam), target  cparam,
integer(kint), intent(in), optional  myrank 
)

Initializer of tContactState for embed case.

Parameters
[in,out]embedcontact definition
hecmeshmesh definition
cparamcontact parameter

Definition at line 384 of file fstr_contact_def.F90.

Here is the call graph for this function:

◆ fstr_write_contact()

subroutine mcontactdef::fstr_write_contact ( integer(kind=kint), intent(in)  file,
type(tcontact), intent(in)  contact 
)

Write out contact definition.

Parameters
[in]filefile number
[in]contactcontact definition

Definition at line 207 of file fstr_contact_def.F90.

Here is the call graph for this function:

◆ has_projection()

pure logical function mcontactdef::has_projection ( integer, intent(in)  state)

Whether the contact state has valid projection info (NEAR, STICK, or SLIP)

Definition at line 177 of file fstr_contact_def.F90.

◆ is_contact_active()

pure logical function mcontactdef::is_contact_active ( integer, intent(in)  state)

Whether the contact state has active LM constraint (STICK or SLIP)

Definition at line 171 of file fstr_contact_def.F90.

Here is the caller graph for this function:

◆ is_contact_free()

pure logical function mcontactdef::is_contact_free ( integer, intent(in)  state)

Whether the contact state is completely free (no projection info)

Definition at line 183 of file fstr_contact_def.F90.

Here is the caller graph for this function:

◆ print_contact_state()

subroutine mcontactdef::print_contact_state ( integer, intent(in)  fnum,
type(tcontactstate), intent(in)  cstate 
)

Print out contact state.

Parameters
[in]fnumfile number
[in]cstatecontact state

Definition at line 189 of file fstr_contact_def.F90.

◆ print_contatct_pair()

subroutine mcontactdef::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 555 of file fstr_contact_def.F90.

Variable Documentation

◆ bakgnt

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

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

Definition at line 29 of file fstr_contact_def.F90.

◆ c_if_master

integer, parameter mcontactdef::c_if_master = 2

Definition at line 51 of file fstr_contact_def.F90.

◆ c_if_slave

integer, parameter mcontactdef::c_if_slave = 1

contact interference type

Definition at line 50 of file fstr_contact_def.F90.

◆ cgn

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

convergent condition of penetration

Definition at line 24 of file fstr_contact_def.F90.

◆ cgt

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

convergent condition of relative tangent disp

Definition at line 25 of file fstr_contact_def.F90.

◆ contactfree

integer, parameter mcontactdef::contactfree = -1

contact state definition

Definition at line 34 of file fstr_contact_def.F90.

◆ contactfslid

integer, parameter mcontactdef::contactfslid = 4

Definition at line 43 of file fstr_contact_def.F90.

◆ contactglued

integer, parameter mcontactdef::contactglued = 2

Definition at line 41 of file fstr_contact_def.F90.

◆ contactnear

integer, parameter mcontactdef::contactnear = 0

near contact: projection info available, no LM constraint

Definition at line 35 of file fstr_contact_def.F90.

◆ contactslip

integer, parameter mcontactdef::contactslip = 2

Definition at line 37 of file fstr_contact_def.F90.

◆ contactsslid

integer, parameter mcontactdef::contactsslid = 3

Definition at line 42 of file fstr_contact_def.F90.

◆ contactstick

integer, parameter mcontactdef::contactstick = 1

Definition at line 36 of file fstr_contact_def.F90.

◆ contacttied

integer, parameter mcontactdef::contacttied = 1

contact type or algorithm definition

Definition at line 40 of file fstr_contact_def.F90.

◆ contactunknown

integer, parameter mcontactdef::contactunknown = -1

Definition at line 32 of file fstr_contact_def.F90.

◆ gnt

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

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

Definition at line 27 of file fstr_contact_def.F90.

◆ kcsnagata

integer, parameter mcontactdef::kcsnagata = 1

Definition at line 47 of file fstr_contact_def.F90.

◆ kcsnone

integer, parameter mcontactdef::kcsnone = 0

contact smoothing type

Definition at line 46 of file fstr_contact_def.F90.

◆ kctforoutput

integer, parameter mcontactdef::kctforoutput = 2

compute contact force for output (CONT_NFORCE/CONT_FRIC)

Definition at line 55 of file fstr_contact_def.F90.

◆ kctforresidual

integer, parameter mcontactdef::kctforresidual = 1

purpose flag for contact force calculation

compute contact force for residual (conMATB)

Definition at line 54 of file fstr_contact_def.F90.