![]() |
FrontISTR
5.7.1
Large-scale structural analysis program with finit element method
|
This module provides functions to calculate contact stiff matrix. More...
Functions/Subroutines | |
| subroutine | print_contatct_pair (file, pair) |
| Write out the contact definition read from mesh file. More... | |
| 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. More... | |
| subroutine | fstr_del_contactmpc (mpcs) |
| Delete mpcs derived from contact conditions. More... | |
| subroutine | fstr_write_mpc (file, mpcs) |
| Print out mpc conditions. More... | |
| subroutine | fstr_scan_contact_state (cstep, sub_step, cont_step, dt, ctAlgo, hecMESH, fstrSOLID, infoCTChange, B) |
| Scanning contact state. More... | |
| subroutine | remove_duplication_tiedcontact (cstep, hecMESH, fstrSOLID, infoCTChange) |
| Scanning contact state. More... | |
| subroutine | fstr_scan_contact_state_exp (cstep, hecMESH, fstrSOLID, infoCTChange) |
| Scanning contact state. More... | |
| subroutine | fstr_update_contact0 (hecMESH, fstrSOLID, B) |
| Update lagrangian multiplier. More... | |
| subroutine | fstr_update_contact_multiplier (hecMESH, fstrSOLID, ctchanged) |
| Update lagrangian multiplier. More... | |
| subroutine | fstr_ass_load_contactalag (hecMESH, fstrSOLID, B) |
| Update lagrangian multiplier. More... | |
| subroutine | fstr_update_contact_tangentforce (fstrSOLID) |
| Update tangent force. More... | |
| subroutine | fstr_contactbc (cstep, iter, hecMESH, hecMAT, fstrSOLID) |
| Introduce contact stiff into global stiff matrix or mpc conditions into hecMESH. More... | |
| subroutine | initialize_contact_output_vectors (fstrSOLID, hecMAT) |
| subroutine | initialize_embed_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) |
| subroutine | fstr_setup_parancon_contactvalue (hecMESH, ndof, vec, vtype) |
Variables | |
| integer(kind=kint), save | n_contact_mpc |
| real(kind=kreal), save | mu =1.d10 |
| penalty, default value More... | |
| real(kind=kreal), save | mut =1.d6 |
| penalty along tangent direction More... | |
| real(kind=kreal), save | cdotp =1.d3 |
| mu=cdotp*maxval More... | |
| 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... | |
This module provides functions to calculate contact stiff matrix.
| subroutine mcontact::calc_contact_area | ( | type( hecmwst_local_mesh ), intent(in) | hecMESH, |
| type(fstr_solid), intent(inout) | fstrSOLID, | ||
| integer(kind=kint), intent(in) | flag | ||
| ) |
| [in] | hecmesh | type mesh |
| [in,out] | fstrsolid | type fstr_solid |
| [in] | flag | set 1 if called in NR iteration |
Definition at line 674 of file fstr_contact.f90.
| 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 | ||
| ) |
| subroutine mcontact::fstr_ass_load_contactalag | ( | type( hecmwst_local_mesh ), intent(in) | hecMESH, |
| type(fstr_solid), intent(inout) | fstrSOLID, | ||
| real(kind=kreal), dimension(:), intent(inout) | B | ||
| ) |
Update lagrangian multiplier.
| [in,out] | b | nodal force residual |
Definition at line 446 of file fstr_contact.f90.
| subroutine mcontact::fstr_contact2mpc | ( | type( tcontact ), dimension(:), intent(in) | contacts, |
| type( hecmwst_mpc ), intent(inout) | mpcs | ||
| ) |
Contact states to equation conditions.
| [in] | contacts | current contact state |
| [in,out] | mpcs | to who mpc be appended |
Definition at line 164 of file fstr_contact.f90.
| subroutine mcontact::fstr_contactbc | ( | integer(kind=kint) | cstep, |
| 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.
| cstep | current loading step | |
| [in] | iter | NR iterations |
| [in,out] | hecmesh | type mesh |
| [in,out] | hecmat | type matrix |
| [in,out] | fstrsolid | type fstr_solid |
Definition at line 479 of file fstr_contact.f90.
| subroutine mcontact::fstr_del_contactmpc | ( | type( hecmwst_mpc ), intent(inout) | mpcs | ) |
Delete mpcs derived from contact conditions.
| [in,out] | mpcs | mpcs to be modified |
Definition at line 186 of file fstr_contact.f90.
| logical function mcontact::fstr_is_contact_active |
| 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 | ||
| ) |
| [in] | ctalgo | contact analysis algorithm |
| [in] | infoctchange | fstr_contactChange |
Definition at line 60 of file fstr_contact.f90.
| logical function mcontact::fstr_is_matrixstructure_changed | ( | type (fstr_info_contactchange) | infoCTChange | ) |
| infoctchange | fstr_contactChange |
Definition at line 81 of file fstr_contact.f90.
| 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.
| [in] | cstep | current step number |
| [in] | sub_step | current sub-step number |
| [in] | cont_step | current contact step number |
| [in] | ctalgo | contact analysis algorithm |
| [in] | hecmesh | type mesh |
| [in,out] | fstrsolid | type fstr_solid |
| b | nodal force residual |
Definition at line 211 of file fstr_contact.f90.
| 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.
| [in] | cstep | current step number |
| [in] | hecmesh | type mesh |
| [in,out] | fstrsolid | type fstr_solid |
Definition at line 349 of file fstr_contact.f90.
| subroutine mcontact::fstr_set_contact_active | ( | logical, intent(in) | a | ) |
| subroutine mcontact::fstr_set_contact_penalty | ( | real(kind=kreal), intent(in) | maxv | ) |
| subroutine mcontact::fstr_setup_parancon_contactvalue | ( | type(hecmwst_local_mesh), intent(in) | hecMESH, |
| integer(kind=kint), intent(in) | ndof, | ||
| real(kind=kreal), dimension(:), intent(inout), pointer | vec, | ||
| integer(kind=kint), intent(in) | vtype | ||
| ) |
| 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.
| [in] | hecmesh | type mesh |
| [in,out] | fstrsolid | type fstr_solid |
| [in,out] | b | nodal force residual |
Definition at line 392 of file fstr_contact.f90.
| 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 417 of file fstr_contact.f90.
| subroutine mcontact::fstr_update_contact_tangentforce | ( | type(fstr_solid), intent(inout) | fstrSOLID | ) |
Update tangent force.
Definition at line 468 of file fstr_contact.f90.
| subroutine mcontact::fstr_write_mpc | ( | integer(kind=kint), intent(in) | file, |
| type( hecmwst_mpc ), intent(in) | mpcs | ||
| ) |
Print out mpc conditions.
| [in] | file | file number |
| [in] | mpcs | mpcs to be printed |
Definition at line 193 of file fstr_contact.f90.
| subroutine mcontact::initialize_contact_output_vectors | ( | type(fstr_solid) | fstrSOLID, |
| type(hecmwst_matrix) | hecMAT | ||
| ) |
| fstrsolid | type fstr_solid |
| hecmat | type hecmwST_matrix |
Definition at line 564 of file fstr_contact.f90.
| subroutine mcontact::initialize_embed_vectors | ( | type(fstr_solid) | fstrSOLID, |
| type(hecmwst_matrix) | hecMAT | ||
| ) |
| fstrsolid | type fstr_solid |
| hecmat | type hecmwST_matrix |
Definition at line 605 of file fstr_contact.f90.
| 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.
| subroutine mcontact::remove_duplication_tiedcontact | ( | 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.
| [in] | cstep | current step number |
| [in] | hecmesh | type mesh |
| [in,out] | fstrsolid | type fstr_solid |
Definition at line 294 of file fstr_contact.f90.
| 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 | ||
| ) |
| [in] | cstep | current step number |
| [in] | hecmesh | type mesh |
| [in,out] | fstrsolid | type fstr_solid |
Definition at line 615 of file fstr_contact.f90.
| real(kind=kreal), dimension(2), save mcontact::bakgnt |
1:current average penetration; 2:current relative tangent displacement!
Definition at line 26 of file fstr_contact.f90.
| real(kind=kreal), save mcontact::cdotp =1.d3 |
mu=cdotp*maxval
Definition at line 19 of file fstr_contact.f90.
| real(kind=kreal), save mcontact::cgn =1.d-5 |
convergent condition of penetration
Definition at line 21 of file fstr_contact.f90.
| real(kind=kreal), save mcontact::cgt =1.d-3 |
convergent condition of relative tangent disp
Definition at line 22 of file fstr_contact.f90.
| real(kind=kreal), dimension(2), save mcontact::gnt |
1:current average penetration; 2:current relative tangent displacement
Definition at line 24 of file fstr_contact.f90.
| real(kind=kreal), save mcontact::mu =1.d10 |
penalty, default value
Definition at line 17 of file fstr_contact.f90.
| real(kind=kreal), save mcontact::mut =1.d6 |
penalty along tangent direction
Definition at line 18 of file fstr_contact.f90.
| integer(kind=kint), save mcontact::n_contact_mpc |
Definition at line 14 of file fstr_contact.f90.