SCOREC / core

parallel finite element unstructured meshes
Other
179 stars 63 forks source link

getInterfaceBlocks #65

Closed KennethEJansen closed 7 years ago

KennethEJansen commented 7 years ago

getInterfaceBlocks does not survive mulitphase inputs. The actual failure is chef: /projects/tools/SCOREC-core/core/phasta/phBlock.cc:203: void ph::getInterfaceBlocks(apf::Mesh*, ph::BlocksInterface&): Assertion `matches[0].peer == PCU_Comm_Self()' failed. It first appeared with hash :

commit 8d2f24688ed59a332488e812af80fb9bb43f64ec Merge: a5972ee c492b28 Author: Fan Yang yangf4@rpi.edu Date: Wed Oct 12 13:45:30 2016 -0400

The prior commit: commit c492b288e80903d84bfcc6b8f3df49da7ec71bac Author: Ehsan Shams shamse@rpi.edu Date: Wed Oct 12 10:03:10 2016 -0400

runs without modification.

When the call from getAllBlocks (in phBlock.cc) is commented out, the case goes through fine (assuming you also comment the verify issue in the previous post). An example illustrating the problem can be found at http://fluid.colorado.edu/~kjansen/Weblink/ChefTestMultiphase.tgz

With the verifyFields commented and gitInterfaceBlocks commented, Chef runs through and phasta runs fine so, at this point, I am assuming that these routines are detecting issues that are not in actual issues for multiphase flow. In the case of getInterfaceBlocks, it would seem easier to create a conditional to avoid going into this routine when there are no DG interfaces, rather than have the routine handle all the possible cases internally?

ibaned commented 7 years ago

"previous post" refers to #64. @KennethEJansen, I assume you are not actually using interface elements (a.k.a. partial DG). In that case, @yangf4 you need to fix your code so it doesn't break other people's use cases. That matches[0].peer check should only be done if we are in partial DG mode.

yangf4 commented 7 years ago

should be fixed

cwsmith commented 7 years ago

Thank you. For the record the fix is in c53de9a663d4aa979a970f8fdbee9c5fd81ba926.

yangf4 commented 7 years ago

reopen it if the issue still exists.