Skip to content

Periodic BCs in parallel

Hi. This might be nothing, but I do have some concern over the periodic boundaries in parallel for the CG setting (I haven't looked into any DG, this popped up while working with a CG model). You can easily see the possible issue by looking at, say, the Advection3D_2_2.xml test from the ADRSolver (compiled in Debug mode so ASSERTL1/L2 is used). If you try to decompose this all hexa mesh - with only quads as faces - to two or more processors, it runs through the case. However, if you change nummodes from the uniform "4,4,4" to say "4,4,2" it crashes with the error message:

Fatal : Level 1 assertion violation Where : /home/claese/nektar/library/LibUtilities/BasicUtils/ShapeType.hpp[116] Message : order in 'a' direction is higher than order in 'b' direction

This error is thrown from LibUtils::StdTriData ... and clearly there are no triangles in the mesh. Basically, the concern I have is in line 1544 in AssemblyMapCG.cpp. Here there is a if(quad)->else(assume triangle) statement. During the setup of the parallel periodic bc the facetype for the periodic BCs have been set to type zero. I assume it should be: if(quad)->elseif(tri)->else(do nothing)? Or the type should not be set to zero? I guess the "4,4,4" run also end up in StdTriData but then as the modes fullfill the modeB >= modeA requirement of the triangle it won't throw an error. However, it will give back the tri dof and boundary dof.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information