Dear Libmesh developers,
I found a problem with the mesh locator.
I created a 2nd order 2D mesh with gmesh software.
When I run my code using this mesh, I'm getting an error with the PointLocator.
Does PointLocator support QUAD9 elements?
Bellow you can find output from my debugger.
If you need the mesh to reproduce the problem, I can provide it.
Thank you,
Michael.
Program received signal SIGFPE, Arithmetic exception.
0x00002aaab87a575c in libMesh::FE<2u, (libMesh::FEFamily)0>::inverse_map
(elem=0x1f42750, physical_point=...,
tolerance=9.9999999999999995e-08, secure=false) at src/fe/fe_map.C:1726
1726 dp(0) = (Ginv11*dxidelta + Ginv12*detadelta);
Missing separate debuginfos, use: debuginfo-install glibc-2.17-260.el7.x86_64
hwloc-libs-1.11.8-4.el7.x86_64 hwloc-plugins-1.11.8-4.el7.x86_64
libfabric-1.7.0-1.el7.x86_64
libibumad-43.1.1.MLNX20180612.87b4d9b-0.1.45101.x86_64
libibverbs-41mlnx1-OFED.4.5.0.1.0.45101.x86_64
libmlx4-41mlnx1-OFED.4.5.0.0.3.45101.x86_64
libmlx5-41mlnx1-OFED.4.5.0.3.8.45101.x86_64 libnl3-3.2.28-4.el7.x86_64
libpciaccess-0.14-1.el7.x86_64 librdmacm-41mlnx1-OFED.4.2.0.1.3.45101.x86_64
libtool-ltdl-2.4.2-22.el7_3.x86_64 libxml2-2.9.1-6.el7_2.3.x86_64
numactl-libs-2.0.9-7.el7.x86_64
opensm-libs-5.3.0.MLNX20181108.33944a2-0.1.45101.x86_64
xz-libs-5.2.2-1.el7.x86_64 zlib-1.2.7-18.el7.x86_64
(gdb) p dxidelta
$1 = -2.0365205457321792e+22
(gdb) p Ginv11
$2 = inf
(gdb) p Ginv12
$3 = inf
(gdb) p detadelta
$4 = 1.0182602728660896e+22
(gdb) up
#1 0x00002aaab8721e1b in libMesh::FEInterface::inverse_map (dim=2, fe_t=...,
elem=0x1f42750, p=...,
tolerance=9.9999999999999995e-08, secure=false) at src/fe/fe_interface.C:570
570 fe_with_vec_switch(inverse_map(elem, p, tolerance, secure));
(gdb) p p
$5 = (const libMesh::Point &) @0x5131998: {<libMesh::TypeVector<double>> =
{_coords = {1140, 1216,
0}}, <No data fields>}
(gdb) p elem->type()
$6 = libMesh::QUAD9
(gdb) p elem->point(0)
$7 = (const libMesh::Point &) @0xbe79d0: {<libMesh::TypeVector<double>> =
{_coords = {1073.919607848597,
1053.6736755206391, 0}}, <No data fields>}
(gdb) p elem->point(1)
$8 = (const libMesh::Point &) @0xd7c550: {<libMesh::TypeVector<double>> =
{_coords = {1118.8895049213079,
1069.0910114055571, 0}}, <No data fields>}
(gdb) p elem->point(2)
$9 = (const libMesh::Point &) @0xc440d0: {<libMesh::TypeVector<double>> =
{_coords = {1136.2480098839389,
1025.636099727888, 0}}, <No data fields>}
(gdb) p elem->point(3)
$10 = (const libMesh::Point &) @0xc57a50: {<libMesh::TypeVector<double>> =
{_coords = {1091.286513287763,
998.03909901903012, 0}}, <No data fields>}
(gdb) p elem->point(4)
$11 = (const libMesh::Point &) @0xe34510: {<libMesh::TypeVector<double>> =
{_coords = {1096.404556384952,
1061.3823434630981, 0}}, <No data fields>}
(gdb) p elem->point(5)
$12 = (const libMesh::Point &) @0xe345d0: {<libMesh::TypeVector<double>> =
{_coords = {1127.5687574026231,
1047.3635555667231, 0}}, <No data fields>}
(gdb) p elem->point(6)
$13 = (const libMesh::Point &) @0xe34690: {<libMesh::TypeVector<double>> =
{_coords = {1113.767261585851,
1011.8375993734591, 0}}, <No data fields>}
(gdb) p elem->point(7)
$14 = (const libMesh::Point &) @0xe34750: {<libMesh::TypeVector<double>> =
{_coords = {1082.6030605681799,
1025.8563872698351, 0}}, <No data fields>}
(gdb) p elem->point(8)
$15 = (const libMesh::Point &) @0xe34810: {<libMesh::TypeVector<double>> =
{_coords = {1105.0859089854021,
1036.609971418279, 0}}, <No data fields>}
(gdb)
(gdb) up
#2 0x00002aaab889f5cf in libMesh::Elem::point_test (this=0x1f42750, p=...,
box_tol=9.9999999999999995e-07,
map_tol=9.9999999999999995e-07) at src/geom/elem.C:2406
2406 /*secure=*/
false);
(gdb)
#3 0x00002aaab889eec6 in libMesh::Elem::contains_point (this=0x1f42750, p=...,
tol=9.9999999999999995e-07)
at src/geom/elem.C:2321
2321 return this->point_test(p, TOLERANCE, tol);
(gdb)
#4 0x00002aaab8de5cc6 in libMesh::TreeNode<4u>::find_element (this=0x318a930,
p=..., allowed_subdomains=0x0,
relative_tol=9.9999999999999995e-07) at src/utils/tree_node.C:484
484 if ((*pos)->active() && (*pos)->contains_point(p,
relative_tol))
(gdb)
#5 0x00002aaab8de5eee in libMesh::TreeNode<4u>::find_element_in_children
(this=0x31890c0, p=...,
allowed_subdomains=0x0, relative_tol=9.9999999999999995e-07) at
src/utils/tree_node.C:517
517 relative_tol);
(gdb)
#6 0x00002aaab8de5d27 in libMesh::TreeNode<4u>::find_element (this=0x31890c0,
p=..., allowed_subdomains=0x0,
relative_tol=9.9999999999999995e-07) at src/utils/tree_node.C:492
492 relative_tol);
(gdb)
#7 0x00002aaab8de5eee in libMesh::TreeNode<4u>::find_element_in_children
(this=0x314d730, p=...,
allowed_subdomains=0x0, relative_tol=9.9999999999999995e-07) at
src/utils/tree_node.C:517
517 relative_tol);
(gdb)
#8 0x00002aaab8de5d27 in libMesh::TreeNode<4u>::find_element (this=0x314d730,
p=..., allowed_subdomains=0x0,
relative_tol=9.9999999999999995e-07) at src/utils/tree_node.C:492
492 relative_tol);
(gdb)
#9 0x00002aaab8de5eee in libMesh::TreeNode<4u>::find_element_in_children
(this=0x313d2c0, p=...,
allowed_subdomains=0x0, relative_tol=9.9999999999999995e-07) at
src/utils/tree_node.C:517
517 relative_tol);
(gdb)
#10 0x00002aaab8de5d27 in libMesh::TreeNode<4u>::find_element (this=0x313d2c0,
p=..., allowed_subdomains=0x0,
relative_tol=9.9999999999999995e-07) at src/utils/tree_node.C:492
492 relative_tol);
(gdb)
#11 0x00002aaab8de5eee in libMesh::TreeNode<4u>::find_element_in_children
(this=0x3132c20, p=...,
allowed_subdomains=0x0, relative_tol=9.9999999999999995e-07) at
src/utils/tree_node.C:517
517 relative_tol);
(gdb)
#12 0x00002aaab8de5d27 in libMesh::TreeNode<4u>::find_element (this=0x3132c20,
p=..., allowed_subdomains=0x0,
relative_tol=9.9999999999999995e-07) at src/utils/tree_node.C:492
492 relative_tol);
(gdb)
#13 0x00002aaab8de5eee in libMesh::TreeNode<4u>::find_element_in_children
(this=0x3132df0, p=...,
allowed_subdomains=0x0, relative_tol=9.9999999999999995e-07) at
src/utils/tree_node.C:517
517 relative_tol);
(gdb)
#14 0x00002aaab8de5d27 in libMesh::TreeNode<4u>::find_element (this=0x3132df0,
p=..., allowed_subdomains=0x0,
relative_tol=9.9999999999999995e-07) at src/utils/tree_node.C:492
492 relative_tol);
(gdb)
#15 0x00002aaab8ddd67e in libMesh::Tree<4u>::find_element (this=0x3132de0,
p=..., allowed_subdomains=0x0,
relative_tol=9.9999999999999995e-07) at src/utils/tree.C:152
152 return root.find_element(p, allowed_subdomains, relative_tol);
(gdb)
#16 0x00002aaab8d81ac7 in libMesh::PointLocatorTree::operator()
(this=0x3132af0, p=..., allowed_subdomains=0x0)
at src/utils/point_locator_tree.C:207
207 this->_element = this->_tree->find_element (p,allowed_subdomains);
(gdb)
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users