Repository: UXARRAY/uxarray

Issue:
Represent MPAS dual mesh as a mixed topology grid 
When we are converting a MPAS Dual Mesh into the UGRID conventions, we represent the face nodes as a Triangular Mesh Topology instead of Flexible Mesh Topology, similar to how is done for the Primal Mesh. For consistency across the package, we'd like all grids to be a Flexible Mesh Topology. 

## Current Dual Mesh Implementation 
https://github.com/UXARRAY/uxarray/blob/03194ce953e9ed96bb3636a22506ea5a109395ab/uxarray/_mpas.py#L197-L203

## Primal Mesh Implementation 
https://github.com/UXARRAY/uxarray/blob/03194ce953e9ed96bb3636a22506ea5a109395ab/uxarray/_mpas.py#L90-L97

Discussion:

Patch:
diff --git a/uxarray/_mpas.py b/uxarray/_mpas.py
index 4652dd2b..ebc33c6c 100644
--- a/uxarray/_mpas.py
+++ b/uxarray/_mpas.py
@@ -196,9 +196,10 @@ def _dual_to_ugrid(in_ds, out_ds):
 
     out_ds["Mesh2_face_nodes"] = xr.DataArray(
         data=cellsOnVertex,
-        dims=["nMesh2_face", "Three"],
+        dims=["nMesh2_face", "nMaxMesh2_face_nodes"],
         attrs={
             "cf_role": "face_node_connectivity",
+            "_FillValue": INT_FILL_VALUE,
             "start_index": INT_DTYPE(0)
         })
 


Test patch:
diff --git a/test/test_mpas.py b/test/test_mpas.py
index 10823906..58dda89d 100644
--- a/test/test_mpas.py
+++ b/test/test_mpas.py
@@ -62,7 +62,9 @@ class TestMPAS(TestCase):
         ds = _read_mpas(self.mpas_xr_ds, use_dual=True)
 
         # check for correct dimensions
-        expected_ugrid_dims = ['nMesh2_node', "nMesh2_face", "Three"]
+        expected_ugrid_dims = [
+            'nMesh2_node', "nMesh2_face", "nMaxMesh2_face_nodes"
+        ]
         for dim in expected_ugrid_dims:
             assert dim in ds.sizes