Dear all,
I'm trying to set periodic BCs on a very simple 1x1x1 cube. When the cube is
meshed with HEX8 everything goes smoothly but as soon as I switch to TET4
elements I get a series of errors like:
0] ../../src/fe/fe_map.C, line 1188, compiled Jun 12 2013 at 13:28:03
WARNING: inverse_map of physical point (x,y,z)=( -0.5, 0.5,
-0.5)is not on element.
Elem Information
id()=invalid, processor_id()=0
type()=TRI3
dim()=2
n_nodes()=3
0 Node id()=15, processor_id()=0, Point=(x,y,z)=( -0.5, 0,
0)
DoFs=(0/0/45) (0/1/46) (0/2/47)
1 Node id()=21, processor_id()=0, Point=(x,y,z)=( -0.5, 0.5,
0)
DoFs=(0/0/63) (0/1/64) (0/2/65)
2 Node id()=22, processor_id()=0, Point=(x,y,z)=( -0.5, 0,
-0.5)
DoFs=(0/0/66) (0/1/67) (0/2/68)
n_sides()=0
hmin()=0.5, hmax()=0.707107
volume()=0.125
active()=1, ancestor()=0, subactive()=0, has_children()=0
parent()=60
level()=0, p_level()=0
refinement_flag()=DO_NOTHING
p_refinement_flag()=DO_NOTHING
infinite()=0
DoFs=
[0] ../../src/fe/fe_map.C, line 1188, compiled Jun 12 2013 at 13:28:03
WARNING: inverse_map of physical point (x,y,z)=( -0.5, 0.5,
-0.5)is not on element.
Elem Information
id()=invalid, processor_id()=0
type()=TRI3
dim()=2
n_nodes()=3
0 Node id()=15, processor_id()=0, Point=(x,y,z)=( -0.5, 0,
0)
DoFs=(0/0/45) (0/1/46) (0/2/47)
1 Node id()=21, processor_id()=0, Point=(x,y,z)=( -0.5, 0.5,
0)
DoFs=(0/0/63) (0/1/64) (0/2/65)
2 Node id()=22, processor_id()=0, Point=(x,y,z)=( -0.5, 0,
-0.5)
DoFs=(0/0/66) (0/1/67) (0/2/68)
n_sides()=0
hmin()=0.5, hmax()=0.707107
volume()=0.125
active()=1, ancestor()=0, subactive()=0, has_children()=0
parent()=60
level()=0, p_level()=0
refinement_flag()=DO_NOTHING
p_refinement_flag()=DO_NOTHING
infinite()=0
DoFs=
.
.
.
.
[0] ../../src/fe/fe_map.C, line 1188, compiled Jun 12 2013 at 13:28:03
WARNING: inverse_map of physical point (x,y,z)=( -0.5, -0.333195,
-0.0775255)is not on element.
Elem Information
id()=62, processor_id()=0
type()=TET4
dim()=3
n_nodes()=4
0 Node id()=11, processor_id()=0, Point=(x,y,z)=(-0.177083, -0.152645,
-0.177083)
DoFs=(0/0/33) (0/1/34) (0/2/35)
1 Node id()=22, processor_id()=0, Point=(x,y,z)=( -0.5, 0,
-0.5)
DoFs=(0/0/66) (0/1/67) (0/2/68)
2 Node id()=32, processor_id()=0, Point=(x,y,z)=( -0.5, -0.5,
-0.5)
DoFs=(0/0/96) (0/1/97) (0/2/98)
3 Node id()=15, processor_id()=0, Point=(x,y,z)=( -0.5, 0,
0)
DoFs=(0/0/45) (0/1/46) (0/2/47)
n_sides()=4
neighbor(0)=65
neighbor(1)=48
neighbor(2)=NULL
neighbor(3)=69
hmin()=0.398665, hmax()=0.707107
volume()=0.0134549
active()=1, ancestor()=0, subactive()=0, has_children()=0
parent()=NULL
level()=0, p_level()=0
refinement_flag()=DO_NOTHING
p_refinement_flag()=DO_NOTHING
infinite()=0
DoFs=
[0] ../../src/fe/fe_map.C, line 1188, compiled Jun 12 2013 at 13:28:03
WARNING: inverse_map of physical point (x,y,z)=( -0.5, -0.0892794,
-0.0775255)is not on element.
Elem Information
id()=62, processor_id()=0
type()=TET4
dim()=3
n_nodes()=4
0 Node id()=11, processor_id()=0, Point=(x,y,z)=(-0.177083, -0.152645,
-0.177083)
DoFs=(0/0/33) (0/1/34) (0/2/35)
1 Node id()=22, processor_id()=0, Point=(x,y,z)=( -0.5, 0,
-0.5)
DoFs=(0/0/66) (0/1/67) (0/2/68)
2 Node id()=32, processor_id()=0, Point=(x,y,z)=( -0.5, -0.5,
-0.5)
DoFs=(0/0/96) (0/1/97) (0/2/98)
3 Node id()=15, processor_id()=0, Point=(x,y,z)=( -0.5, 0,
0)
DoFs=(0/0/45) (0/1/46) (0/2/47)
n_sides()=4
neighbor(0)=65
neighbor(1)=48
neighbor(2)=NULL
neighbor(3)=69
hmin()=0.398665, hmax()=0.707107
volume()=0.0134549
active()=1, ancestor()=0, subactive()=0, has_children()=0
parent()=NULL
level()=0, p_level()=0
refinement_flag()=DO_NOTHING
p_refinement_flag()=DO_NOTHING
infinite()=0
DoFs=
Assertion `this->contains_point(p)' failed.
Stack frames: 18
0: 0 libmesh_dbg.0.dylib 0x00000001014ec1ec
libMesh::print_trace(std::ostream&) + 44
1: 1 libmesh_dbg.0.dylib 0x0000000101c69044
libMesh::Elem::find_point_neighbors(libMesh::Point const&,
std::set<libMesh::Elem const*, std::less<libMesh::Elem const*>,
std::allocator<libMesh::Elem const*> >&) const + 198
2: 2 libmesh_dbg.0.dylib 0x00000001016def4d (anonymous
namespace)::primary_boundary_point_neighbor(libMesh::Elem const*,
libMesh::Point const&, libMesh::BoundaryInfo const&, std::set<short,
std::less<short>, std::allocator<short> > const&) + 93
3: 3 libmesh_dbg.0.dylib 0x00000001016ff9f4
libMesh::FEGenericBase<double>::compute_periodic_constraints(libMesh::DofConstraints&,
libMesh::DofMap&, libMesh::PeriodicBoundaries const&, libMesh::MeshBase
const&, libMesh::PointLocatorBase const*, unsigned int, libMesh::Elem const*) +
13204
4: 4 libmesh_dbg.0.dylib 0x00000001017fd0fa
libMesh::FEInterface::compute_periodic_constraints(libMesh::DofConstraints&,
libMesh::DofMap&, libMesh::PeriodicBoundaries const&, libMesh::MeshBase const&,
libMesh::PointLocatorBase const*, unsigned int, libMesh::Elem const*) + 120
5: 5 libmesh_dbg.0.dylib 0x00000001014870b1 (anonymous
namespace)::ComputeConstraints::operator()(libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*> const&) const + 591
6: 6 libmesh_dbg.0.dylib 0x000000010148722c void
libMesh::Threads::parallel_for<libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*>, (anonymous
namespace)::ComputeConstraints>(libMesh::StoredRange<libMesh::MeshBase::const_element_iterator,
libMesh::Elem const*> const&, (anonymous namespace)::ComputeConstraints
const&) + 60
7: 7 libmesh_dbg.0.dylib 0x0000000101498857
libMesh::DofMap::create_dof_constraints(libMesh::MeshBase const&, double) + 6261
8: 8 libmesh_dbg.0.dylib 0x0000000102431f08
libMesh::System::init_data() + 268
9: 9 libmesh_dbg.0.dylib 0x00000001023c903c
libMesh::ExplicitSystem::init_data() + 36
10: 10 libmesh_dbg.0.dylib 0x000000010240d45c
libMesh::ImplicitSystem::init_data() + 24
11: 11 libmesh_dbg.0.dylib 0x0000000102413020
libMesh::LinearImplicitSystem::init_data() + 24
12: 12 libmesh_dbg.0.dylib 0x00000001024cb15f
libMesh::TransientSystem<libMesh::LinearImplicitSystem>::init_data() + 25
13: 13 libmesh_dbg.0.dylib 0x0000000102440c15
libMesh::System::init() + 63
14: 14 libmesh_dbg.0.dylib 0x00000001023aad56
libMesh::EquationSystems::init() + 1578
15: 15 vfmfe-3d-dbg 0x000000010003f4eb
InitSystems(libMesh::EquationSystems&, InputCtx&) + 8235
16: 16 vfmfe-3d-dbg 0x0000000100054422 main + 3314
17: 17 vfmfe-3d-dbg 0x0000000100001aa4 start + 52
[0] ../../src/geom/elem.C, line 545, compiled Jun 12 2013 at 13:29:13
terminate called after throwing an instance of 'libMesh::LogicError'
what(): Error in libMesh internal logic
Also, I couldn't reproduce the same problem with a 2D mesh.
You can find the mesh and full output here:
https://dl.dropboxusercontent.com/u/19391830/periodic_bug.zip
As always thanks for the help,
Ata
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users