You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- highorder.rst: expand IsoParametric section for SolutionInterpolation_t:
clarify no LagrangeControlPoints child, mandatory ElementInterpolation_t
prerequisite, and add read/write code examples
- highorder.rst: add 'Variable-Order Configurations' section documenting
Pattern A (variable order per cell via disjoint PointRange) and Pattern B
(variable order per field variable with same PointRange, different arrays)
with code examples for both; includes note on combining patterns
- c_api.rst: fix example code to use cg_sol_ptset_write (not the removed
cg_sol_write + cg_ptset_write pair); add Pattern B example showing
Density at order 2 and VelocityX at order 3 over the same cell range
/* it == IsoParametric, no LagrangeControlPoints child exists */
1147
1174
1148
1175
Usage in CGNS Files
1149
1176
^^^^^^^^^^^^^^^^^^^
@@ -1807,6 +1834,68 @@ This maps :math:`\theta \in [-1, 1]`, matching the parametric time convention an
1807
1834
.. important::
1808
1835
**Storage**: When using normalized coordinates :math:`(\xi, \eta, \zeta, \theta)`, the normalization parameters (characteristic length :math:`h^e` and time slab bounds :math:`T_n, T_{n+1}`) must be stored to enable reconstruction of physical values. This ensures data portability and prevents ambiguity in interpreting modal coefficients.
1809
1836
1837
+
.. _variable_order_configurations:
1838
+
1839
+
Variable-Order Configurations
1840
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1841
+
1842
+
CGNS supports two distinct variable-order patterns using :sidsref:`FlowSolution_t` with
1843
+
``GridLocation = CellCenter`` and a ``PointRange`` or ``PointList``.
1844
+
1845
+
**Pattern A: Variable order per cell (p-adaptation)**
1846
+
1847
+
Different cells within the same zone use different polynomial orders. Create one
1848
+
:sidsref:`FlowSolution_t` per distinct order, each with a disjoint
1849
+
``PointRange``/``PointList`` identifying its cell subset. Each node carries an
1850
+
``InterpolationOrders`` child (written via ``cg_sol_interpolation_order_write``)
1851
+
specifying ``[SpatialOrder, TemporalOrder]`` for that subset.
1852
+
1853
+
Example — 8 TETRA_4 elements split at order 2 and order 3:
1854
+
1855
+
.. code-block:: c
1856
+
1857
+
cgsize_t lo_range[2] = {1, 4}; /* cells 1-4 at order 2 */
1858
+
cgsize_t hi_range[2] = {5, 8}; /* cells 5-8 at order 3 */
0 commit comments