I'm using Elmer compiled from svn (r5596) and I'm having trouble partitioning meshes in more than 2 subdomains. I had to comment a checking part in ElmerGrid source (femelmer.c) to workaround this.
Here's the traceback of the crash.
Code: Select all
desoza@claut621:~/AFFAIRE_TI/CODES/ELMER/CUBE$ gdb ElmerGrid
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /opt/elmer_mpi_dbg/bin/ElmerGrid...done.
(gdb) run 2 2 cube -metis 4 2
Starting program: /opt/elmer_mpi_dbg/bin/ElmerGrid 2 2 cube -metis 4 2
[Thread debugging using libthread_db enabled]
Starting program Elmergrid
Elmergrid reading in-line arguments
The mesh will be partitioned with Metis to 4 partitions.
Output will be saved to file cube.
Elmergrid loading data:
-----------------------
Loading mesh in ElmerSolver format from directory cube.
Loading header from mesh.header
Maximum elementtype index is: 808
Allocating for 1331 knots and 1000 elements.
Loading 1331 Elmer nodes from mesh.nodes
Loading 1000 bulk elements from mesh.elements
Loading 200 boundary elements from mesh.boundary
All done
Elmergrid creating and manipulating meshes:
-------------------------------------------
Elmergrid partitioning meshes:
------------------------------
Making a Metis partitioning for 1331 nodes in 3-dimensions.
Creating a dual graph of the finite element mesh
There are at maximum 26 connections in dual graph.
There are at all in all 28460 connections in dual graph.
Starting graph partitioning METIS_PartGraphRecursive.
Finished Metis graph partitioning call.
Set the element partitions by the dominating nodal partition
There are from 247 to 257 elements in the 4 partitions.
Succesfully made a Metis partition using the dual graph.
Optimizing the partitioning at boundaries.
Ownership of 0 parents was changed at BCs
Creating a table showing all parenting partitions of nodes.
Nodes belong to 4 partitions in maximum
There are 313 shared nodes which is 23.52 % of all nodes.
The initial owner was not any of the elements for 0 nodes
Checking partitioning before optimization
Checking for partitioning
Information on partition bandwidth
Distribution of elements, nodes and shared nodes
partition elements nodes shared
1 247 332 79
2 248 333 78
3 248 333 83
4 257 333 101
Maximum deviation in ownership 1
Average deviation in ownership 0.43
Checking for problematic sharings
Program received signal SIGSEGV, Segmentation fault.
0x000000000041b0c8 in OptimizePartitioning (data=0x7ffffff86b80, bound=0x6e1ae0, noopt=1, partbw=0, info=1) at femelmer.c:3507
3507 elemparts[j] = 0;
(gdb) where
#0 0x000000000041b0c8 in OptimizePartitioning (data=0x7ffffff86b80, bound=0x6e1ae0, noopt=1, partbw=0, info=1) at femelmer.c:3507
#1 0x0000000000481a12 in main (argc=7, argv=0x7fffffffdb78) at fempre.c:905
Code: Select all
3484 optimizesharing:
3485
3486 if(info) printf("Checking for problematic sharings\n");
3487 m = 0;
3488
3489 if(partitions > 2) {
3490 do {
3491
Thomas