Force Tri faces to use GLL points in both directions if using a CG expansion
Issue/feature addressed
Using non-GLL points for Tri faces leads to discrepancies at the top vertex which in the new redesign has lead to a race issue when enforcing BCs.
Proposed solution
For CG Expansions only use GLL points on triangle expansions.
Implementation
Add a default boolean option (called UseGLL) on StdExpansion::GetTraceBasisKey() which is setup the boundary expansion basis and can then in the boundary expansion constructor in ExpList we can check if the expansion is CG and if so set this bool to true. Although this option is then passed to all shapes it is only being activated on StdTriExp since other boundary expansions (Seg, Quads) typically are using GLL anyway currently.
This has also required the normals to be interpolated from the element quadrature distribution to the GLL points when setup is required for conditions such as HOBCs. To help this I have introduced a new method in StdExpansionXD called PhysInterp which takes an expansion pointer and to and from data points.
Tests
Have updated a number of tests in the CI since this has changed the value of CG solutions with underresolved Dirichlet BCs. Generally this has reduced the errors since the BCs are more consistent now.
Checklist
-
Functions and classes, or changes to them, are documented. -
[ ] User guide/documentation is updated. -
Changelog is updated. -
Suitable tests added for new functionality. -
Contributed code is correctly formatted. (See the contributing guidelines). -
[ ] License added to any new files. -
No extraneous files have been added (e.g. compiler output or test data files).