From d572a3b553068eb9d8cefee308aebcb504915a85 Mon Sep 17 00:00:00 2001 From: maxnezddyur Date: Mon, 3 Feb 2025 16:48:33 -0700 Subject: [PATCH] fix tang check (#29777) --- framework/src/geomsearch/PenetrationThread.C | 8 +- .../3d_penetration_locator/close_tet.i | 123 ++++++++++++++++++ .../gold/3d_rings_out_values_0001.csv | 4 +- .../gold/close_tet_out.e | Bin 0 -> 199916 bytes .../geomsearch/3d_penetration_locator/tests | 7 + 5 files changed, 138 insertions(+), 4 deletions(-) create mode 100644 test/tests/geomsearch/3d_penetration_locator/close_tet.i create mode 100644 test/tests/geomsearch/3d_penetration_locator/gold/close_tet_out.e diff --git a/framework/src/geomsearch/PenetrationThread.C b/framework/src/geomsearch/PenetrationThread.C index c3844fb0a310..f98a25b2b58f 100644 --- a/framework/src/geomsearch/PenetrationThread.C +++ b/framework/src/geomsearch/PenetrationThread.C @@ -427,8 +427,12 @@ PenetrationThread::operator()(const NodeIdRange & range) } while (i < p_info.size() && best < p_info.size()); if (best < p_info.size()) { - switchInfo(info, p_info[best]); - info_set = true; + // Ensure final info is within the tangential tolerance + if (p_info[best]->_tangential_distance <= _tangential_tolerance) + { + switchInfo(info, p_info[best]); + info_set = true; + } } } } diff --git a/test/tests/geomsearch/3d_penetration_locator/close_tet.i b/test/tests/geomsearch/3d_penetration_locator/close_tet.i new file mode 100644 index 000000000000..77c2ca5812ba --- /dev/null +++ b/test/tests/geomsearch/3d_penetration_locator/close_tet.i @@ -0,0 +1,123 @@ +[Problem] + solve = false +[] +[Mesh] + [block_one] + type = GeneratedMeshGenerator + dim = 3 + nx = 3 + ny = 3 + nz = 1 + xmin = 4.5 + xmax = 5.5 + ymin = 4.5 + ymax = 5.5 + zmin = 0.001 + zmax = 1.001 + boundary_name_prefix = 'ball' + elem_type = TET4 + [] + [block_two] + type = GeneratedMeshGenerator + dim = 3 + nx = 10 + ny = 10 + nz = 1 + xmin = 3 + xmax = 7 + ymin = 3 + ymax = 7 + zmin = -2 + zmax = 0 + boundary_name_prefix = 'base' + boundary_id_offset = 10 + elem_type = TET4 + [] + [block_one_id] + type = SubdomainIDGenerator + input = block_one + subdomain_id = 1 + [] + [block_two_id] + type = SubdomainIDGenerator + input = block_two + subdomain_id = 2 + [] + [combine] + type = MeshCollectionGenerator + inputs = ' block_one_id block_two_id' + [] +[] + +[AuxVariables] + [penetration] + order = FIRST + family = LAGRANGE + [] + [closest_point_x] + order = FIRST + family = LAGRANGE + [] + [closest_point_y] + order = FIRST + family = LAGRANGE + [] + [closest_point_z] + order = FIRST + family = LAGRANGE + [] + [tang_dist] + order = FIRST + family = LAGRANGE + [] +[] + +[AuxKernels] + [penetrate] + type = PenetrationAux + variable = penetration + boundary = base_front + paired_boundary = ball_back + quantity = distance + [] + + [close_x] + type = PenetrationAux + variable = closest_point_x + boundary = base_front + paired_boundary = ball_back + quantity = closest_point_x + [] + + [close_y] + type = PenetrationAux + variable = closest_point_y + boundary = base_front + paired_boundary = ball_back + quantity = closest_point_y + [] + + [close_z] + type = PenetrationAux + variable = closest_point_z + boundary = base_front + paired_boundary = ball_back + quantity = closest_point_z + [] + [tang_dist] + type = PenetrationAux + variable = tang_dist + boundary = base_front + paired_boundary = ball_back + quantity = tangential_distance + [] +[] + +[Executioner] + type = Steady +[] + +[Outputs] + exodus = true + execute_on = TIMESTEP_END +[] diff --git a/test/tests/geomsearch/3d_penetration_locator/gold/3d_rings_out_values_0001.csv b/test/tests/geomsearch/3d_penetration_locator/gold/3d_rings_out_values_0001.csv index 7c142aa4c5f3..60bc4f2f13a0 100644 --- a/test/tests/geomsearch/3d_penetration_locator/gold/3d_rings_out_values_0001.csv +++ b/test/tests/geomsearch/3d_penetration_locator/gold/3d_rings_out_values_0001.csv @@ -105,7 +105,7 @@ id,penet,x,y,z 103,0,0.023321254371987,0.085147669460424,0.52757575757576 104,0,0.01343582997789,0.080003415385772,0.52757575757576 105,0,0.001228247892379,0.074916002753794,0.52757575757576 -106,-0.02,-0.012040599039569,0.069254560506297,0.52757575757576 +106,0,-0.012040599039569,0.069254560506297,0.52757575757576 107,0,-0.025369449981148,0.062763432388308,0.52757575757576 108,0,-0.038217981421365,0.056264603033665,0.52757575757576 109,0,-0.050385926211285,0.049932986944693,0.52757575757576 @@ -145,7 +145,7 @@ id,penet,x,y,z 143,0,0.019784304947665,0.093759659737193,0.52757575757576 144,0,0.0088307662446221,0.091722688900273,0.52757575757576 145,0,-0.0046421167912178,0.08945169640657,0.52757575757576 -146,-0.02,-0.019286003603324,0.084658690550919,0.52757575757576 +146,0,-0.019286003603324,0.084658690550919,0.52757575757576 147,0,-0.033194217610861,0.077133564062727,0.52757575757576 148,0,-0.046129505898724,0.069631033321947,0.52757575757576 149,0,-0.058420538219503,0.061937694966137,0.52757575757576 diff --git a/test/tests/geomsearch/3d_penetration_locator/gold/close_tet_out.e b/test/tests/geomsearch/3d_penetration_locator/gold/close_tet_out.e new file mode 100644 index 0000000000000000000000000000000000000000..3ec21988430578cfd9cabe70e5fede69b780589d GIT binary patch literal 199916 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

Umy0*VCh)`#ys_pPu{a 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 V_!jUj;9J1AfNufc0)Jf#{2zGn4lw`# literal 0 HcmV?d00001 diff --git a/test/tests/geomsearch/3d_penetration_locator/tests b/test/tests/geomsearch/3d_penetration_locator/tests index 166f96de81b4..f0cd8c99d7d1 100644 --- a/test/tests/geomsearch/3d_penetration_locator/tests +++ b/test/tests/geomsearch/3d_penetration_locator/tests @@ -33,4 +33,11 @@ "point search leads to element Jacobian computations too far from the element for " "the Jacobian to be non-negative." [] + [close_tet_mesh] + type = Exodiff + input = 'close_tet.i' + exodiff = 'close_tet_out.e' + recover = false # steady solve + requirement = "The system shall be able to ensure contact points are within tangential tolerances." + [] []