mesh-sieve 4.0.1

Modular, high-performance Rust library for mesh and data management, designed for scientific computing and PDE codes.
Documentation
//! Data module: section and atlas
#![warn(missing_docs)]

pub mod atlas;
pub mod bc;
pub mod bundle;
pub mod closure;
pub mod constrained_section;
pub mod coordinate_dm;
pub mod coordinates;
pub mod discretization;
pub mod global_map;
pub mod hanging_node_constraints;
pub mod mixed_section;
pub mod multi_section;
pub mod section;
pub mod section_layout;
pub mod slice_storage;
pub mod storage;
#[cfg(feature = "wgpu")]
pub mod wgpu;

mod _debug_invariants;
pub mod refine;

#[allow(deprecated)]
pub use crate::debug_invariants::DebugInvariants;

pub use bc::{
    CoastalBoundaryAssembly, CoastalBoundaryAssemblyError, CoastalBoundaryFaceSets,
    FieldDofIndices, LabelQuery, apply_dirichlet_to_constrained_section,
    apply_dirichlet_to_constrained_section_fields, apply_dirichlet_to_section,
    apply_dirichlet_to_section_fields, coastal_boundary_face_sets, map_coastal_boundary_conditions,
    resolve_coastal_boundary_assembly,
};
pub use closure::{
    ClosureIndex, ClosureIndexCache, ClosureIndexKey, ClosureOrder, ClosurePointIndex,
    FnSectionSym, IdentitySectionSym, SectionSym, TableSectionSym, TopologyVersion, add_closure,
    build_closure_index, build_closure_index_unoriented, get_closure, get_closure_oriented,
    set_closure,
};
pub use constrained_section::{
    ConstrainedSection, ConstraintSet, DofConstraint, LabelConstraintSpec,
    apply_constraints_to_section,
};
pub use coordinate_dm::{CoordinateDM, CoordinateNumbering};
pub use discretization::{Discretization, DiscretizationMetadata, FieldDiscretization, RegionKey};
pub use global_map::{LocalToGlobalMap, global_vector_for_map};
pub use hanging_node_constraints::{
    HangingDofConstraint, HangingNodeConstraints, LinearConstraintTerm,
    apply_hanging_constraints_to_section, constraints_from_topological_anchors,
};
pub use mixed_section::{
    MixedScalar, MixedSectionStore, ScalarType, TaggedSection, TaggedSectionBuffer,
};
pub use multi_section::{FieldSection, MultiSection, constrained_section_from_label_specs};
pub use section::Section;
pub use section_layout::{
    DofLayout, build_layout_with, constrained_dof_len, layout_for_multi_section_with_periodic,
    layout_for_section_with_constraints_and_periodic, local_vector_for_layout,
    local_vector_for_section, multi_section_dof_len_with_constraints,
};
pub use slice_storage::SliceStorage;
pub use storage::{Storage, VecStorage};
#[cfg(feature = "wgpu")]
pub use wgpu::WgpuStorage;

/// Alias for the common Vec-backed section.
pub type CpuSection<V> = section::Section<V, VecStorage<V>>;

/// Coordinate storage wrapper with an attached dimension.
pub use coordinates::Coordinates;
/// Higher-order coordinate storage wrapper.
pub use coordinates::HighOrderCoordinates;
/// Velocity storage wrapper aligned with coordinate dimensions.
pub use coordinates::MeshVelocity;

/// Alias for the common Vec-backed coordinates bundle.
pub type CpuCoordinates<V> = coordinates::Coordinates<V, VecStorage<V>>;
/// Alias for the common Vec-backed velocity bundle.
pub type CpuMeshVelocity<V> = coordinates::MeshVelocity<V, VecStorage<V>>;

/// Alias for the common Vec-backed coordinate data manager.
pub type CpuCoordinateDM<V> = coordinate_dm::CoordinateDM<V, VecStorage<V>>;

/// Section alias for storing `CellType` data over points.
pub type CellTypeSection<S> = section::Section<crate::topology::cell_type::CellType, S>;