FrontISTR  5.9.0
Large-scale structural analysis program with finit element method
m_fstr_contact_smoothing Module Reference

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)
 

Detailed Description

Contact surface smoothing using Nagata patch interpolation.

Function/Subroutine Documentation

◆ compute_cab()

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.

Here is the caller graph for this function:

◆ compute_cab_old()

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.

Here is the call graph for this function:

◆ compute_interpolation_matrix_p()

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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_intermediate_points()

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 
)
Parameters
[in,out]surfsurface elements
[in]currposcurrent coordinate of all nodes
[in]contact_namename of contact surface

Definition at line 315 of file fstr_contact_smoothing.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reorder_tri3n_to_tri6n()

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.

Here is the caller graph for this function:

◆ update_surface_normal()

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 
)
Parameters
[in,out]surfsurface elements
[in]currposcurrent coordinate of all nodes
[in]hecmeshmesh for MPI communication

Definition at line 58 of file fstr_contact_smoothing.f90.

Here is the call graph for this function:
Here is the caller graph for this function: