[dune-pdelab] Segmentation fault
Bernd Flemisch
bernd at iws.uni-stuttgart.de
Mon Jun 15 13:44:34 CEST 2015
Hi Tatiana,
I am guessing for your first error, but would say that it is simply not
allowed to call "factory.createGrid()" twice. Concerning the second
error: as the message says, it is not possible to have two UGGrids at
once. You should be able to circummvent that by putting the two stages
in separate blocks
{
typedef UGGrid<dim> GridType;
GridType grid;
GridFactory<GridType> factory(&grid);
GmshReader<GridType>::read(factory,"fine.msh");
factory.createGrid();
std::cout << " Fine mesh has been read " << std::endl;
}
{
typedef UGGrid<dim> GridType1;
GridType1 grid1;
GridFactory<GridType1> factory1(&grid1);
GmshReader<GridType1>::read(factory1,"cube2.msh");
factory1.createGrid();
typedef GridType1::LeafGridView GridView;
std::cout << " Coarse mesh has been read " << std::endl;
}
The question is if that is useful for you. If you need both grids to be
present at the same time in order to compare your results, you should
either use another grid manager or have both the fine and the coarse
grid within one UGGrid multigrid structure.
Kind regards
Bernd
On 06/15/2015 12:45 PM, Tatiana Kim wrote:
>
> Hello,
>
>
> I would like to read in several meshes from Gmesh into UGGrid. Below
> is a simple example where I have two meshes: fine and coarse. I first
> read in the fine mesh and then I read in the coarse mesh. The idea is
> that I solve the problem on fine mesh first and on the coarse mesh
> second and then compare the results.
>
>
> //*******************************************************************
>
> typedef UGGrid<dim> GridType;
>
> GridType grid;
>
> GridFactory<GridType> factory(&grid);
>
> GmshReader<GridType>::read(factory,"fine.msh");
>
> factory.createGrid();
>
> std::cout << " Fine mesh has been read " << std::endl;
>
> //************************************************************************
>
>
>
> GmshReader<GridType>::read(factory,"coarse.msh");
>
> factory.createGrid();
>
>
> std::cout << " Coarse mesh has been read " << std::endl;
>
> //************************************************************************
>
>
>
>
> It compiles fine, but when I run it, I get the following error (when
> creating cube2.msh grid):
>
>
> Reading 3d Gmsh grid...
>
> version 2.2 Gmsh file detected
>
> file contains 6580 nodes
>
> file contains 37673 elements
>
> number of real vertices = 6580
>
> number of boundary elements = 6266
>
> number of elements = 31407
>
> Fine mesh has been read
>
> Reading 3d Gmsh grid...
>
> version 2.2 Gmsh file detected
>
> file contains 1115 nodes
>
> file contains 5961 elements
>
> number of real vertices = 1115
>
> number of boundary elements = 1476
>
> number of elements = 4485
>
> [138-38-185-242:14754] *** Process received signal ***
>
> [138-38-185-242:14754] Signal: Segmentation fault: 11 (11)
>
> [138-38-185-242:14754] Signal code: Address not mapped (1)
>
> [138-38-185-242:14754] Failing at address: 0xe8
>
> [138-38-185-242:14754] [ 0] 0 libsystem_platform.dylib
> 0x00007fff8647b5aa _sigtramp + 26
>
> [138-38-185-242:14754] [ 1] 0 libsystem_c.dylib
> 0x00007fff723d12a0 usual + 0
>
> [138-38-185-242:14754] [ 2] 0 testproject 0x00000001063ab5fa
> _ZN4Dune10GmshReaderINS_6UGGridILi3EEEE4readERNS_11GridFactoryIS2_EERKSsbb
> + 2426
>
> [138-38-185-242:14754] [ 3] 0 testproject 0x000000010642ce72
> main + 226
>
> [138-38-185-242:14754] [ 4] 0 libmpi.1.dylib 0x0000000106d7df20
> ompi_mpi_comm_world + 0
>
> [138-38-185-242:14754] *** End of error message ***
>
> Segmentation fault: 11
>
>
>
> If, for the second part of the code, I write:
>
> //************************************************************************
>
>
> typedef UGGrid<dim> GridType1;
>
> GridType1 grid1;
>
> GridFactory<GridType1> factory1(&grid1);
>
> GmshReader<GridType1>::read(factory1,"cube2.msh");
>
> factory1.createGrid();
>
> typedef GridType1::LeafGridView GridView;
>
>
> std::cout << " Coarse mesh has been read " << std::endl;
>
> //************************************************************************
>
>
> then I get this error instead of the segmentation fault:
>
> "ERROR in InitCurrMG: opening more than one MG is not allowed in parallel"
>
>
>
> Could you please help me figure out what I am doing wrong?
>
>
> Thanks!
>
> Tatiana.
>
>
>
>
> _______________________________________________
> dune-pdelab mailing list
> dune-pdelab at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-pdelab
--
_______________________________________________________________
Bernd Flemisch phone: +49 711 685 69162
IWS, Universität Stuttgart fax: +49 711 685 60430
Pfaffenwaldring 61 email: bernd at iws.uni-stuttgart.de
D-70569 Stuttgart url: www.hydrosys.uni-stuttgart.de
_______________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune-pdelab/attachments/20150615/0deaa3ea/attachment.htm>
More information about the dune-pdelab
mailing list