![]() |
FrontISTR 5.2.0
Large-scale structural analysis program with finit element method
|
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! | |
This module provides functions to calcualte 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 531 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_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 170 of file fstr_contact.f90.
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.
[in] | iter | NR iterations |
[in,out] | hecmesh | type mesh |
[in,out] | hecmat | type matrix |
[in,out] | fstrsolid | type fstr_solid |
Definition at line 371 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 192 of file fstr_contact.f90.
logical function mcontact::fstr_is_contact_active |
Definition at line 51 of file fstr_contact.f90.
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 87 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 217 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 285 of file fstr_contact.f90.
subroutine mcontact::fstr_set_contact_active | ( | logical, intent(in) | a | ) |
Definition at line 55 of file fstr_contact.f90.
subroutine mcontact::fstr_set_contact_penalty | ( | real(kind=kreal), intent(in) | maxv | ) |
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 328 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 342 of file fstr_contact.f90.
subroutine mcontact::fstr_update_contact_tangentforce | ( | type(fstr_solid), intent(inout) | fstrsolid | ) |
Update tangent force.
Definition at line 359 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 199 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 431 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::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 472 of file fstr_contact.f90.
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.
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 avarage 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.