Storing cell-wise polynomial data and generalising the description of curved grid element
Why are the SolutionInterpolation_t and ElementInterpolation_t node located under Family_t nodes ? If we have different solutions with different interpolation order in the same zone because of variables needing a different order how is it handled ? How does a Solution_t point on the SolutionInterpolation_t node ?
The question is mainly relevant for the solutions.
There are two cases:
the order varies with the element. In the current proposal, the element solutions will have to be sorted per order and a corresponding flow solution node (unstructured) has to be used. If this is to complicated, one can upgrade the solution to the highest order - this should be without impact on the computation.
The reason for this choice is to find the compromise between simplicity and generality, and change as little as possible the current layout. If different orders are used in the same zone, we would have to specify this order for each element separately somewhere. Moreover, many operations (also during IO) are specific per order (eg. projection), so most codes will already group data per order, so there is also a technical motivation to group equal order elements this in this way.
In case a mixed order interpolation is used, for instance in Pn Pn-1 velocity -pressure formulations, one will have to upgrade the pressure solution to the higher order to store it in the same solution node. For the last, one could generalize by defining an order offset per variable for instance.
Does this answer your question ?
I forgot to state that the proposal explicitly unlinks the element geometric order from that of the solution; ie. the computation is not a priori supposed to be isoparametric. Hence both orders need to be specified independently.