![]() |
FrontISTR
5.7.0
Large-scale structural analysis program with finit element method
|
This module manages surface elements in 3D It provides basic definition of surface elements (trianglar and quadrilateral) and functions for fetching its neighborhood information. More...
Data Types | |
type | tsurfelement |
Structure to define surface group. More... | |
Functions/Subroutines | |
subroutine | initialize_surf (eid, etype, nsurf, surf) |
Initializer. More... | |
subroutine | finalize_surf (surf) |
Memory management subroutine. More... | |
subroutine | write_surf (file, surf) |
Write out elemental surface. More... | |
subroutine | find_surface_neighbor (surf, bktDB) |
Find neighboring surface elements. More... | |
integer(kind=kint) function | next_position (surf, cpos) |
Tracing next contact position. More... | |
subroutine | update_surface_reflen (surf, coord) |
Compute reference length of surface elements. More... | |
subroutine | update_surface_box_info (surf, currpos) |
Update info of cubic box including surface elements. More... | |
logical function | is_in_surface_box (surf, x0, exp_rate) |
Check if given point is within cubic box including surface element. More... | |
subroutine | update_surface_bucket_info (surf, bktDB) |
Update bucket info for searching surface elements. More... | |
Variables | |
integer(kind=kint), parameter | l_max_surface_node =20 |
integer(kind=kint), parameter | l_max_elem_node = 100 |
integer(kind=kint), parameter | l_max_elem_surf = 6 |
integer(kind=kint), parameter | n_neighbor_max_init = 8 |
This module manages surface elements in 3D It provides basic definition of surface elements (trianglar and quadrilateral) and functions for fetching its neighborhood information.
subroutine msurfelement::finalize_surf | ( | type(tsurfelement), intent(inout) | surf | ) |
Memory management subroutine.
[in,out] | surf | surface element |
Definition at line 69 of file surf_ele.f90.
subroutine msurfelement::find_surface_neighbor | ( | type(tsurfelement), dimension(:), intent(inout) | surf, |
type(bucketdb), intent(in) | bktDB | ||
) |
Find neighboring surface elements.
[in,out] | surf | surface elements |
[in] | bktdb | bucket info |
Definition at line 88 of file surf_ele.f90.
subroutine msurfelement::initialize_surf | ( | integer(kind=kint), intent(in) | eid, |
integer(kind=kint), intent(in) | etype, | ||
integer(kind=kint), intent(in) | nsurf, | ||
type(tsurfelement), intent(inout) | surf | ||
) |
Initializer.
[in] | eid | element ID |
[in] | etype | element type |
[in] | nsurf | surface ID |
[in,out] | surf | surface element |
Definition at line 38 of file surf_ele.f90.
logical function msurfelement::is_in_surface_box | ( | type(tsurfelement), intent(inout) | surf, |
real(kind=kreal), dimension(3), intent(in) | x0, | ||
real(kind=kreal), intent(in) | exp_rate | ||
) |
Check if given point is within cubic box including surface element.
[in,out] | surf | current surface element |
[in] | x0 | coordinate of slave node |
[in] | exp_rate | expansion rate (>1.0) |
Definition at line 265 of file surf_ele.f90.
integer(kind=kint) function msurfelement::next_position | ( | type(tsurfelement), intent(in) | surf, |
real(kind=kreal), dimension(2), intent(in) | cpos | ||
) |
Tracing next contact position.
[in] | surf | current surface element |
[in] | cpos | current position(local coordinate) |
Definition at line 157 of file surf_ele.f90.
subroutine msurfelement::update_surface_box_info | ( | type(tsurfelement), dimension(:), intent(inout) | surf, |
real(kind=kreal), dimension(:), intent(in) | currpos | ||
) |
Update info of cubic box including surface elements.
[in,out] | surf | surface elements |
[in] | currpos | current coordinate of all nodes |
Definition at line 240 of file surf_ele.f90.
subroutine msurfelement::update_surface_bucket_info | ( | type(tsurfelement), dimension(:), intent(inout) | surf, |
type(bucketdb), intent(inout) | bktDB | ||
) |
Update bucket info for searching surface elements.
[in,out] | surf | surface elements |
[in,out] | bktdb | bucket info |
Definition at line 280 of file surf_ele.f90.
subroutine msurfelement::update_surface_reflen | ( | type(tsurfelement), dimension(:), intent(inout) | surf, |
real(kind=kreal), dimension(:), intent(in) | coord | ||
) |
Compute reference length of surface elements.
[in,out] | surf | surface elements |
[in] | coord | current coordinate of all nodes |
Definition at line 220 of file surf_ele.f90.
subroutine msurfelement::write_surf | ( | integer(kind=kint), intent(in) | file, |
type(tsurfelement), intent(in) | surf | ||
) |
Write out elemental surface.
[in] | file | file number |
[in] | surf | elemental surface |
Definition at line 76 of file surf_ele.f90.
integer(kind=kint), parameter msurfelement::l_max_elem_node = 100 |
Definition at line 13 of file surf_ele.f90.
integer(kind=kint), parameter msurfelement::l_max_elem_surf = 6 |
Definition at line 14 of file surf_ele.f90.
integer(kind=kint), parameter msurfelement::l_max_surface_node =20 |
Definition at line 12 of file surf_ele.f90.
integer(kind=kint), parameter msurfelement::n_neighbor_max_init = 8 |
Definition at line 16 of file surf_ele.f90.