Some parallel adaptive longtests fail after hybrid-assemble was merged into trunk.

Bug #1035351 reported by Christian Jacobs
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fluidity
Fix Released
High
Lawrence Mitchell

Bug Description

After the hybrid-assemble branch was merged into the trunk in May (at r3984) three of my parallel adaptive (multiphase flow) longtests started to silently fail (unfortunately there are currently no checks for solver convergence, and the tests still show as "passing" on buildbot even after the Velocity solve fails after just a few timesteps):

mphase_tephra_settling_2d_adaptive
mphase_tephra_settling_3d
mphase_tephra_settling_salinity_adaptive

I do not have OpenMP support enabled, and as far as I know the trunk does not configure with OpenMP either. These tests all run fine using the previous trunk revision (r3983), but each one fails after just a few timesteps with the hybrid-assemble contributions in r3984. The test I am currently looking at (mphase_tephra_settling_2d_adaptive) fails a few timesteps after the first mesh adapt. If mesh_adaptivity is disabled in the same simulation setup, everything runs fine and gives sensible results. All tests use the P1DG-P2 element pair and run over 8 processors.

After changing the following line in assemble/Momentum_DG.F90:
    assemble_element = .not.dg.or.element_neighbour_owned(U, ele)
to:
    assemble_element = .not.dg.or.element_owned(U, ele)
the mphase_tephra_settling_2d_adaptive test appears to run fine, but this isn't the correct thing to do. Any ideas?

Related branches

Revision history for this message
Lawrence Mitchell (wence) wrote : Re: [Bug 1035351] [NEW] Some parallel adaptive longtests fail after hybrid-assemble was merged into trunk.

On 10/08/12 16:15, Christian Jacobs wrote:
> Public bug reported:

...

> After changing the following line in assemble/Momentum_DG.F90:
> assemble_element = .not.dg.or.element_neighbour_owned(U, ele)
> to:
> assemble_element = .not.dg.or.element_owned(U, ele)

I was convinced at the time that element_neighbour_owned(U, ele) would
return .true. if ele was owned. i.e. it's a superset of
element_owned(U, ele). However, it's possible that for some corner
cases this may not be true.

Does it work if you change the test to:

.not.dg .or. (element_owned(U, ele) .or. element_neighbour_owned(U, ele))

?

Lawrence

Revision history for this message
Christian Jacobs (ctjacobs) wrote :

Yes, the mphase_tephra_settling_2d_adaptive longtest runs fine with that change to the code.

Revision history for this message
Christian Jacobs (ctjacobs) wrote :

...and mphase_tephra_settling_salinity_adaptive has also just finished running to completion with that change to the code. Thanks for your help with this Lawrence.

I'll be adding in some "solver converged" pass_tests to the tests/mphase_*.xml and longtests/mphase_*.xml files after the fix has been merged into the trunk.

Changed in fluidity:
importance: Undecided → High
assignee: nobody → Lawrence Mitchell (wence)
status: New → In Progress
Revision history for this message
Lawrence Mitchell (wence) wrote :

what about the 3d test?

Revision history for this message
Christian Jacobs (ctjacobs) wrote :

I misread the results from mphase_tephra_settling_3d on buildbot - this test is not broken and still runs to completion.

Changed in fluidity:
status: In Progress → Fix Committed
Changed in fluidity:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.