![]() |
FrontISTR
5.9.0
Large-scale structural analysis program with finit element method
|
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... | |
This module manages the data structure for contact calculation.
Contact calculation takes into act after calling the following three subrotuines provided in this module
| integer(kind=kint) function mcontactdef::check_apply_contact_if | ( | type(tcontactinterference), intent(inout) | contact_if, |
| type(tcontact), dimension(:) | contacts | ||
| ) |
| [in,out] | contact_if | contact definition |
| contacts | type fstr_solid |
Definition at line 497 of file fstr_contact_def.F90.
| subroutine mcontactdef::clear_contact_state | ( | type(tcontact), intent(inout) | contact | ) |
Reset contact state all to free.
| [in,out] | contact | contact definition |
Definition at line 534 of file fstr_contact_def.F90.
| subroutine mcontactdef::contact_state_copy | ( | type(tcontactstate), intent(in) | cstate1, |
| type(tcontactstate), intent(inout) | cstate2 | ||
| ) |
Copy.
| [in] | cstate1 | contact state |
| [in,out] | cstate2 | contact state |
Definition at line 164 of file fstr_contact_def.F90.
| subroutine mcontactdef::contact_state_init | ( | type(tcontactstate), intent(inout) | cstate | ) |
Initializer.
| [in,out] | cstate | contact state |
Definition at line 141 of file fstr_contact_def.F90.
| 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.
| [in,out] | contact | contact definition |
| hecmesh | mesh definition |
Definition at line 245 of file fstr_contact_def.F90.
| subroutine mcontactdef::fstr_contact_finalize | ( | type(tcontact), intent(inout) | contact | ) |
Finalizer.
| [in,out] | contact | contact definition |
Definition at line 229 of file fstr_contact_def.F90.
| 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.
| [in,out] | contact | contact definition |
| hecmesh | mesh definition | |
| cparam | contact parameter |
Definition at line 274 of file fstr_contact_def.F90.
| 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.
| [in,out] | embed | contact definition |
| hecmesh | mesh definition | |
| cparam | contact parameter |
Definition at line 384 of file fstr_contact_def.F90.
| subroutine mcontactdef::fstr_write_contact | ( | integer(kind=kint), intent(in) | file, |
| type(tcontact), intent(in) | contact | ||
| ) |
Write out contact definition.
| [in] | file | file number |
| [in] | contact | contact definition |
Definition at line 207 of file fstr_contact_def.F90.
| 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.
| 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.
| 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.
| subroutine mcontactdef::print_contact_state | ( | integer, intent(in) | fnum, |
| type(tcontactstate), intent(in) | cstate | ||
| ) |
Print out contact state.
| [in] | fnum | file number |
| [in] | cstate | contact state |
Definition at line 189 of file fstr_contact_def.F90.
| 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.
| 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.
| integer, parameter mcontactdef::c_if_master = 2 |
Definition at line 51 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::c_if_slave = 1 |
contact interference type
Definition at line 50 of file fstr_contact_def.F90.
| real(kind=kreal), save mcontactdef::cgn =1.d-5 |
convergent condition of penetration
Definition at line 24 of file fstr_contact_def.F90.
| 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.
| integer, parameter mcontactdef::contactfree = -1 |
contact state definition
Definition at line 34 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactfslid = 4 |
Definition at line 43 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactglued = 2 |
Definition at line 41 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactnear = 0 |
near contact: projection info available, no LM constraint
Definition at line 35 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactslip = 2 |
Definition at line 37 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactsslid = 3 |
Definition at line 42 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactstick = 1 |
Definition at line 36 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contacttied = 1 |
contact type or algorithm definition
Definition at line 40 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactunknown = -1 |
Definition at line 32 of file fstr_contact_def.F90.
| 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.
| integer, parameter mcontactdef::kcsnagata = 1 |
Definition at line 47 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::kcsnone = 0 |
contact smoothing type
Definition at line 46 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::kctforoutput = 2 |
compute contact force for output (CONT_NFORCE/CONT_FRIC)
Definition at line 55 of file fstr_contact_def.F90.
| 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.