Mesh data is constant over time.
- Attributes
name: name of the meshdim: geometrical dimension of the meshcell_type: cell type of the coordinate elementdegree:lagrange_variant: integration points
- Variables
-
Scalars
num_vertices: number of vertices in the meshnum_cells: number of cellsnum_dofs_per_cell:
-
Arrays
x: coordinate array, size (num_vertices, 3)topology: cell to vertex connectivitytopology_array: flattened arraytopolgy_offset: offsets demarcating the cells
input_global_indices: original input mesh's global indicesorginal_cell_indices: original input mesh's cell indices
-
Note:
-
One can have meshtags for different entity types: points, edges, facets, cells.
-
One can have multiplicities of meshtags for the same entity type.
-
Suffixes, prefixes can be used.
-
Attributes
name
-
Variables
-
Scalars
num_tag_entities_global_{entity}num_dofs_per_entity_{entity}num_saved_tag_entities_{entity}
-
Arrays
topology_{entity}values_{entity}
-
Note:
-
Multiplicities of FunctionSpaces
-
Multiplicities of Functions from the same FunctionSpace
-
Attributes
functionspace_names:function_names: Array of strings of function names
-
Variables
-
Scalars
num_cells_globalnum_dofs_per_cell: different than the one for meshdofmap_bs:num_dofs_global_dmap:
-
Arrays
cell_permutations:topology:topology_array: dofmap of the function spacetopology_offsets: xdofmap
values:
-
One needs to define ADIOS2 variables for each of the above. Should we create the ADIOS2 variable with some prefix/suffix to the above variable names?
Example:
adios2::Variable<T> values_var = io.DefineVariable<T>(funcname + "_values",
{num_dofs_global},
{dof_offset},
{num_dofs_local},
adios2::ConstantDims);
writer.Put(values_var, values.data());
Could you elaborate on what:
num_tag_entities_global_{entity} num_dofs_per_entity_{entity} num_saved_tag_entities_{entity}signifies?
num_tag_entities_globalshould be possible to infer from the shape ofvalues_{entity}?Similarly, one can then infer
num_dofs_per_entity_{entity}from the shape oftopology_{entity}as ADIOS2 allows you to store two-dimensional arrays. Of course, if we want to target multiple cell type meshes, one would have to store this topology with an array and offsets, as done in the mesh.