![]() |
FrontISTR
5.9.0
Large-scale structural analysis program with finit element method
|
Contact surface smoothing using Nagata patch interpolation. More...
Functions/Subroutines | |
| subroutine, public | reorder_tri3n_to_tri6n (vertices_in, midpoints_in, nodes_out) |
| Reorder triangle vertices and midpoints from fe_tri3n to fe_tri6n order fe_tri3n: v1(xi), v2(et), v3(st), m1(xi-et), m2(et-st), m3(st-xi) fe_tri6n: v1(st), v2(xi), v3(et), m4(xi-st), m5(xi-et), m6(et-st) More... | |
| subroutine, public | update_surface_normal (surf, currpos, hecMESH) |
| subroutine | compute_cab_old (na_vec, nb_vec, Cab_a, Cab_b) |
| Compute Cab correction matrices for edge (a,b) Kab = (Aab^T*Aab + eps*I)^-1 * Aab^T * D * Aab Cab_a = 0.5*I - Kab, Cab_b = 0.5*I + Kab. More... | |
| subroutine, public | compute_cab (na_vec, nb_vec, Cab_a, Cab_b) |
| subroutine, public | compute_interpolation_matrix_p (etype, nnode, lpos, vertex_normals, P_matrix) |
| Compute interpolation matrix P for Nagata patch P_matrix(3, nnode*3) represents x = P * [X1; X2; X3; ...]. More... | |
| subroutine, public | create_intermediate_points (surf, currpos, contact_name) |
Contact surface smoothing using Nagata patch interpolation.
| subroutine, public m_fstr_contact_smoothing::compute_cab | ( | real(kind=kreal), dimension(3), intent(in) | na_vec, |
| real(kind=kreal), dimension(3), intent(in) | nb_vec, | ||
| real(kind=kreal), dimension(3,3), intent(out) | Cab_a, | ||
| real(kind=kreal), dimension(3,3), intent(out) | Cab_b | ||
| ) |
Definition at line 171 of file fstr_contact_smoothing.f90.
| subroutine m_fstr_contact_smoothing::compute_cab_old | ( | real(kind=kreal), dimension(3), intent(in) | na_vec, |
| real(kind=kreal), dimension(3), intent(in) | nb_vec, | ||
| real(kind=kreal), dimension(3,3), intent(out) | Cab_a, | ||
| real(kind=kreal), dimension(3,3), intent(out) | Cab_b | ||
| ) |
Compute Cab correction matrices for edge (a,b) Kab = (Aab^T*Aab + eps*I)^-1 * Aab^T * D * Aab Cab_a = 0.5*I - Kab, Cab_b = 0.5*I + Kab.
Definition at line 124 of file fstr_contact_smoothing.f90.
| subroutine, public m_fstr_contact_smoothing::compute_interpolation_matrix_p | ( | integer(kind=kint), intent(in) | etype, |
| integer(kind=kint), intent(in) | nnode, | ||
| real(kind=kreal), dimension(2), intent(in) | lpos, | ||
| real(kind=kreal), dimension(3,nnode), intent(in) | vertex_normals, | ||
| real(kind=kreal), dimension(3,nnode*3), intent(out) | P_matrix | ||
| ) |
Compute interpolation matrix P for Nagata patch P_matrix(3, nnode*3) represents x = P * [X1; X2; X3; ...].
Definition at line 240 of file fstr_contact_smoothing.f90.
| subroutine, public m_fstr_contact_smoothing::create_intermediate_points | ( | type(tsurfelement), dimension(:), intent(inout) | surf, |
| real(kind=kreal), dimension(:), intent(in) | currpos, | ||
| character(len=hecmw_name_len), intent(in) | contact_name | ||
| ) |
| [in,out] | surf | surface elements |
| [in] | currpos | current coordinate of all nodes |
| [in] | contact_name | name of contact surface |
Definition at line 315 of file fstr_contact_smoothing.f90.
| subroutine, public m_fstr_contact_smoothing::reorder_tri3n_to_tri6n | ( | real(kind=kreal), dimension(3,3), intent(in) | vertices_in, |
| real(kind=kreal), dimension(3,3), intent(in) | midpoints_in, | ||
| real(kind=kreal), dimension(3,6), intent(out) | nodes_out | ||
| ) |
Reorder triangle vertices and midpoints from fe_tri3n to fe_tri6n order fe_tri3n: v1(xi), v2(et), v3(st), m1(xi-et), m2(et-st), m3(st-xi) fe_tri6n: v1(st), v2(xi), v3(et), m4(xi-st), m5(xi-et), m6(et-st)
Definition at line 31 of file fstr_contact_smoothing.f90.
| subroutine, public m_fstr_contact_smoothing::update_surface_normal | ( | type(tsurfelement), dimension(:), intent(inout) | surf, |
| real(kind=kreal), dimension(:), intent(in) | currpos, | ||
| type(hecmwst_local_mesh), intent(in), optional | hecMESH | ||
| ) |
| [in,out] | surf | surface elements |
| [in] | currpos | current coordinate of all nodes |
| [in] | hecmesh | mesh for MPI communication |
Definition at line 58 of file fstr_contact_smoothing.f90.