Coordinates
Nodal coordinates are read and written as a num_dimensions x num_nodes matrix, with one row per spatial dimension (x, y, and optionally z).
Reading
coords = read_coordinates(exo) # num_dim x num_nodes matrix
names = Exodus.read_coordinate_names(exo) # e.g. ["x", "y"]To read only a contiguous range of nodes, or a single coordinate component:
# nodes [start_node_num, start_node_num + n_nodes - 1]
partial = Exodus.read_partial_coordinates(exo, start_node_num, n_nodes)
# a single component (1 = x, 2 = y, 3 = z) over a node range
x_chunk = Exodus.read_partial_coordinates_component(exo, start_node_num, n_nodes, 1)
y_chunk = Exodus.read_partial_coordinates_component(exo, start_node_num, n_nodes, "y")Writing
write_coordinates(exo, coords) # coords is num_dim x num_nodes (or a Vector for 1D)
Exodus.write_coordinate_names(exo, ["x", "y"])Partial/component writes mirror the partial reads above:
Exodus.write_partial_coordinates(exo, start_node_num, coords)
Exodus.write_partial_coordinates_component(exo, start_node_num, 1, x_coords)
Exodus.write_partial_coordinates_component(exo, start_node_num, "x", x_coords)