[Dune] Two issues with ALUGrid-1.50

Christoph Grüninger christoph.grueninger at iws.uni-stuttgart.de
Fri May 4 10:51:10 CEST 2012


Hi Dune,
I am not sure whether this is the right place for ALUGrid related 
discussions.

I am testing the 2.2-branch with GCC 4.7 with ALUGrid and the compiler 
didn't like ALUGrid because of [1]. Find a patch which calms GCC 4.7 [2] 
for the serial case. I did not try the parallel one.

When running make check dune-grid fails in vertexordertest. The valgrind 
output is in [3].

Thanks for having a look,
Christoph


[1] 
http://awhan.wordpress.com/2012/04/17/error-unable-to-find-string-literal-operator-operator-__file__-gcc-4-7/

[2]
File: ALUGrid-1.50/src/serial/gitter_tetra_top.h

1294c1294
<     cerr << "**FEHLER (FATAL): Falsche Verfeinerungsregel [" << 
this->myhface3(i)->getrule() << "] in " __FILE__ << " " << __LINE__ << 
endl ;
---
>     cerr << "**FEHLER (FATAL): Falsche Verfeinerungsregel [" << this->myhface3(i)->getrule() << "] in "__FILE__ << " " << __LINE__ << endl ;
2062c2062
<     cerr << "**FEHLER (FATAL): Falsche Verfeinerungsregel [" << 
this->myhface3(i)->getrule() << "] in " __FILE__ << " " << __LINE__ << 
endl ;
---
>     cerr << "**FEHLER (FATAL): Falsche Verfeinerungsregel [" << this->myhface3(i)->getrule() << "] in "__FILE__ << " " << __LINE__ << endl ;


[3]
[..]
> = Testding 3D
> == Testing ALUCubeGrid<3,3> with cubes
> ==14121== Invalid read of size 4
> ==14121==    at 0x8221F1E: ALUGridSpace::AlignIterator<ALUGridSpace::ListIterator<ALUGridSpace::Gitter::Geometric::Hexa>, ALUGridSpace::ListIterator<ALUGridSpace::Gitter::Geometric::Tetra>, ALUGridSpace::Gitter::helement>::item() const (walk.h:646)
> ==14121==    by 0x805B150: Dune::ALU3dGrid<(Dune::ALU3dGridElementType)7, Dune::No_Comm>::ALU3dGrid(std::string const&, Dune::No_Comm, Dune::DuneBoundaryProjection<3> const*, std::vector<Dune::DuneBoundaryProjection<3> const*, std::allocator<Dune::DuneBoundaryProjection<3> const*> > const*, Dune::ALUGridRefinementType) (grid_inline.hh:72)
> ==14121==    by 0x8057A29: Dune::ALUCubeGrid<3, 3>::ALUCubeGrid(Dune::No_Comm, Dune::DuneBoundaryProjection<3> const*, std::vector<Dune::DuneBoundaryProjection<3> const*, std::allocator<Dune::DuneBoundaryProjection<3> const*> > const*, std::string, bool) (alugrid.hh:102)
> ==14121==    by 0x808E07F: Dune::ALU3dGridFactory<Dune::ALUCubeGrid<3, 3> >::createGridObj(std::vector<Dune::DuneBoundaryProjection<3> const*, std::allocator<Dune::DuneBoundaryProjection<3> const*> >*, std::string const&) const (alu3dgridfactory.hh:113)
> ==14121==    by 0x807DBA5: Dune::ALU3dGridFactory<Dune::ALUCubeGrid<3, 3> >::createGrid(bool, bool, std::string) (alu3dgridfactory.cc:309)
> ==14121==    by 0x806FD5B: Dune::ALU3dGridFactory<Dune::ALUCubeGrid<3, 3> >::createGrid() (alu3dgridfactory.cc:163)
> ==14121==    by 0x8066276: Dune::StructuredGridFactory<Dune::ALUCubeGrid<3, 3> >::createCubeGrid(Dune::FieldVector<double, 3> const&, Dune::FieldVector<double, 3> const&, std::array<unsigned int, 3u> const&) (structuredgridfactory.hh:189)
> ==14121==    by 0x805D460: void testVertexOrderByIdCubes<Dune::ALUCubeGrid<3, 3> >(int&) (vertexordertest.cc:280)
> ==14121==    by 0x804CEFE: main (vertexordertest.cc:357)
> ==14121==  Address 0x8 is not stack'd, malloc'd or (recently) free'd
> ==14121==
> ==14121==
> ==14121== Process terminating with default action of signal 11 (SIGSEGV)
> ==14121==  Access not within mapped region at address 0x8
> ==14121==    at 0x8221F1E: ALUGridSpace::AlignIterator<ALUGridSpace::ListIterator<ALUGridSpace::Gitter::Geometric::Hexa>, ALUGridSpace::ListIterator<ALUGridSpace::Gitter::Geometric::Tetra>, ALUGridSpace::Gitter::helement>::item() const (walk.h:646)
> ==14121==    by 0x805B150: Dune::ALU3dGrid<(Dune::ALU3dGridElementType)7, Dune::No_Comm>::ALU3dGrid(std::string const&, Dune::No_Comm, Dune::DuneBoundaryProjection<3> const*, std::vector<Dune::DuneBoundaryProjection<3> const*, std::allocator<Dune::DuneBoundaryProjection<3> const*> > const*, Dune::ALUGridRefinementType) (grid_inline.hh:72)
> ==14121==    by 0x8057A29: Dune::ALUCubeGrid<3, 3>::ALUCubeGrid(Dune::No_Comm, Dune::DuneBoundaryProjection<3> const*, std::vector<Dune::DuneBoundaryProjection<3> const*, std::allocator<Dune::DuneBoundaryProjection<3> const*> > const*, std::string, bool) (alugrid.hh:102)
> ==14121==    by 0x808E07F: Dune::ALU3dGridFactory<Dune::ALUCubeGrid<3, 3> >::createGridObj(std::vector<Dune::DuneBoundaryProjection<3> const*, std::allocator<Dune::DuneBoundaryProjection<3> const*> >*, std::string const&) const (alu3dgridfactory.hh:113)
> ==14121==    by 0x807DBA5: Dune::ALU3dGridFactory<Dune::ALUCubeGrid<3, 3> >::createGrid(bool, bool, std::string) (alu3dgridfactory.cc:309)
> ==14121==    by 0x806FD5B: Dune::ALU3dGridFactory<Dune::ALUCubeGrid<3, 3> >::createGrid() (alu3dgridfactory.cc:163)
> ==14121==    by 0x8066276: Dune::StructuredGridFactory<Dune::ALUCubeGrid<3, 3> >::createCubeGrid(Dune::FieldVector<double, 3> const&, Dune::FieldVector<double, 3> const&, std::array<unsigned int, 3u> const&) (structuredgridfactory.hh:189)
> ==14121==    by 0x805D460: void testVertexOrderByIdCubes<Dune::ALUCubeGrid<3, 3> >(int&) (vertexordertest.cc:280)
> ==14121==    by 0x804CEFE: main (vertexordertest.cc:357)
> ==14121==  If you believe this happened as a result of a stack
> ==14121==  overflow in your program's main thread (unlikely but
> ==14121==  possible), you can try to increase the size of the
> ==14121==  main thread stack using the --main-stacksize= flag.
> ==14121==  The main thread stack size used in this run was 8388608.



More information about the Dune mailing list