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());
I guess the
num_dofs_per_cell-variable is not required if you storetopolgy_offsetas it would give the same information, but more generalized for multiple cell type topologies (if one store these in one array).