![]() |
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 | tcontactsurf |
| Structure to define a slave surface segment of a SURF-SURF (mortar) contact pair. 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 | is_contact_free (state) |
| Whether the contact state is completely free (no projection info) More... | |
| pure integer function | contact_state_category (state) |
| Which of the three categories the contact state belongs to. 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... | |
| integer(kind=kint) function | fstr_count_internal_slaves (contact, hecMESH) |
| Number of slave nodes of this contact owned by the current rank. More... | |
| logical function | fstr_contact_init (contact, hecMESH, cparam) |
| Initializer of tContactState. More... | |
| logical function | fstr_embed_init (embed, hecMESH, cparam) |
| 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 | initialize_csurf (eid, etype, nsurf, surf) |
| Initializer of a slave surface segment (SURF-SURF mortar) 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 | candidate_intp = 3 |
| SURF-SURF: integration point to be re-projected in this scan. More... | |
| integer, parameter | kcatfree = 1 |
| contact state category: states sharing a category contribute to the matrix in the same way More... | |
| integer, parameter | kcatnear = 2 |
| projection only, no Lagrange multiplier More... | |
| integer, parameter | kcatcont = 3 |
| Lagrange multiplier held (STICK or SLIP) More... | |
| 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 | contactn2s = 1 |
| contact method More... | |
| integer, parameter | contacts2s = 2 |
| integer, parameter | sparsity_none = 0 |
| sparsity expansion mode (per contact pair, set by !CONTACT EXPANSION=) More... | |
| integer, parameter | sparsity_neighbor = 1 |
| register current master + neighbors (fewer matrix rebuilds) More... | |
| integer, parameter | max_n_intp = 128 |
| upper bound of integration points per SURF-SURF slave segment More... | |
| 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 582 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 624 of file fstr_contact_def.F90.
| pure integer function mcontactdef::contact_state_category | ( | integer, intent(in) | state | ) |
Which of the three categories the contact state belongs to.
Definition at line 241 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 222 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 199 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 269 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 253 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 | ||
| ) |
Initializer of tContactState.
| [in,out] | contact | contact definition |
| hecmesh | mesh definition | |
| cparam | contact parameter |
Definition at line 318 of file fstr_contact_def.F90.
| integer(kind=kint) function mcontactdef::fstr_count_internal_slaves | ( | type(tcontact), intent(in) | contact, |
| type(hecmwst_local_mesh), pointer | hecMESH | ||
| ) |
Number of slave nodes of this contact owned by the current rank.
| [in] | contact | contact definition |
| hecmesh | mesh definition |
Definition at line 298 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 | ||
| ) |
Initializer of tContactState for embed case.
| [in,out] | embed | contact definition |
| hecmesh | mesh definition | |
| cparam | contact parameter |
Definition at line 487 of file fstr_contact_def.F90.
| subroutine mcontactdef::initialize_csurf | ( | integer(kind=kint), intent(in) | eid, |
| integer(kind=kint), intent(in) | etype, | ||
| integer(kind=kint), intent(in) | nsurf, | ||
| type(tcontactsurf), intent(inout) | surf | ||
| ) |
Initializer of a slave surface segment (SURF-SURF mortar)
| [in] | eid | element ID |
| [in] | etype | element type |
| [in] | nsurf | surface ID |
| [in,out] | surf | surface element |
Definition at line 645 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 229 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 235 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 28 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::c_if_master = 2 |
Definition at line 67 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::c_if_slave = 1 |
contact interference type
Definition at line 66 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::candidate_intp = 3 |
SURF-SURF: integration point to be re-projected in this scan.
Definition at line 37 of file fstr_contact_def.F90.
| real(kind=kreal), save mcontactdef::cgn =1.d-5 |
convergent condition of penetration
Definition at line 23 of file fstr_contact_def.F90.
| real(kind=kreal), save mcontactdef::cgt =1.d-3 |
convergent condition of relative tangent disp
Definition at line 24 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactfree = -1 |
contact state definition
Definition at line 33 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactfslid = 4 |
Definition at line 48 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactglued = 2 |
Definition at line 46 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactn2s = 1 |
contact method
Definition at line 55 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactnear = 0 |
near contact: projection info available, no LM constraint
Definition at line 34 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contacts2s = 2 |
Definition at line 56 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactslip = 2 |
Definition at line 36 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactsslid = 3 |
Definition at line 47 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactstick = 1 |
Definition at line 35 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contacttied = 1 |
contact type or algorithm definition
Definition at line 45 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::contactunknown = -1 |
Definition at line 31 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 26 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::kcatcont = 3 |
Lagrange multiplier held (STICK or SLIP)
Definition at line 42 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::kcatfree = 1 |
contact state category: states sharing a category contribute to the matrix in the same way
no projection
Definition at line 40 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::kcatnear = 2 |
projection only, no Lagrange multiplier
Definition at line 41 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::kcsnagata = 1 |
Definition at line 52 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::kcsnone = 0 |
contact smoothing type
Definition at line 51 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::kctforoutput = 2 |
compute contact force for output (CONT_NFORCE/CONT_FRIC)
Definition at line 71 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 70 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::max_n_intp = 128 |
upper bound of integration points per SURF-SURF slave segment
Definition at line 63 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::sparsity_neighbor = 1 |
register current master + neighbors (fewer matrix rebuilds)
Definition at line 60 of file fstr_contact_def.F90.
| integer, parameter mcontactdef::sparsity_none = 0 |
sparsity expansion mode (per contact pair, set by !CONTACT EXPANSION=)
register current master only
Definition at line 59 of file fstr_contact_def.F90.