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.