Free-Surfaces and partitioning

Discussion about coding and new developments
Post Reply
Posts: 5
Joined: 19 Jan 2012, 17:40
Antispam: Yes

Free-Surfaces and partitioning

Post by jkrug » 11 Mar 2013, 13:03

Hi everybody !

I have a question concerning the combination of free-surfaces and parallel computing. I'm working on a 2D-setup similar to the hand-made image given as attached file. This mesh has 2 free-surfaces on 2 diferrent boundaries. When partitionning the system with the "-metis" command, ElmerGrid creates 2 partitions, and one of them does not have any contact with one of the two free-surfaces. When executing, I get the folowing error.

Code: Select all

WARNING:: FreeSurfaceSolver (xf): Partition      0has no free surface
WARNING:: FreeSurfaceSolver (xf): This is not good for load balance!
FreeSurfaceSolver (xf): No limitation of solution
FreeSurfaceSolver (xf): Using horizontal ALE Formulation
Fatal error in PMPI_Barrier: Invalid communicator, error stack:
PMPI_Barrier(947): MPI_Barrier(comm=0xffffffff) failed
PMPI_Barrier(805): Invalid communicator
Of course, I could stay with a single partition for now, but I will have to enter the parallel world soon, so this problem will appear again. I believe that this problem was already encountered by some users... Is there any solution to force each partition to have a contact with each boundary ? :?:


setup of the experiment
setup.png (161.57 KiB) Viewed 3241 times

Site Admin
Posts: 82
Joined: 24 Aug 2009, 12:20

Re: Free-Surfaces and partitioning

Post by tzwinger » 11 Mar 2013, 15:43

Hi Jean,
I do not really think that there is an issue, if one of the partition is not containing any nodes of the FreeSurfaceSolver. I made a short test of the test-example trunk/fem/tests/freesurf_ltd, which - admittedly - only has one free surface at the uppermost y-coordinate layer. I split in the middle of the y-coordinate,

Code: Select all

ElmerGrid 2 2 Mesh -partition 1 2 1

hence leaving the free surface completely to a single partition and ran the case with

Code: Select all

mpirun -np 2  ElmerSolver_mpi
encountering no problem whatsoever.

So, my feeling is that you issues might come from the coincidence of a single free surface node being subject to two solvers (this is just a feeling, though). Haven't the grounding line cases in 2D no also been run in parallel at your institute? - if they were parallel, I would say that the same issue should have occurred then.

Best wishes,


Posts: 5
Joined: 19 Jan 2012, 17:40
Antispam: Yes

Re: Free-Surfaces and partitioning

Post by jkrug » 21 Mar 2013, 13:48

Ok, I am a bit late now, but thank you Thomas for the answer. My problem came from the line :
"Before Linsolve = "EliminateDirichlet" "EliminateDirichlet""
which was in my FreeSurfaceSolver. After commenting it, it works perfectly. (Still have the "warnings" shown above, but it works)

Thank you !

Posts: 1088
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: Free-Surfaces and partitioning

Post by annier » 24 Oct 2013, 11:01

Dear Thomas,
at first i would like to thank you for creating a very illustrative test case "freesurf_ltd".
In your test case freesurf_ltd, could you please answer for how the variable function was assigned to explain the dependence of accumulation flux on coordinate x ?
Real MATC "1.0*(4.0 - sqrt((tx-5.0)*(tx-5.0)))/(31556926.0)"
i am quite a beginner and your answer would guide me in knowing the utility of the keyword accumulation flux.
thanking you in advance.

Post Reply