#![allow(clippy::assign_op_pattern)]
#![allow(clippy::needless_range_loop)]
#![allow(clippy::manual_range_contains)]
#![allow(clippy::identity_op)]
pub use numra_core::Scalar;
pub mod boundary;
pub mod boundary2d;
mod discretize;
mod equations;
mod equations2d;
mod equations3d;
mod grid;
mod mol;
mod mol2d;
mod mol2d_parametric;
mod mol3d;
mod mol3d_parametric;
pub mod moving;
mod sparse_assembly;
pub use boundary::{BoundaryCondition, DirichletBC, NeumannBC, PeriodicBC, RobinBC};
pub use boundary2d::{BoundaryConditions2D, BoundaryConditions3D};
pub use discretize::{DifferenceScheme, Stencil, FDM};
pub use equations::{DiffusionReaction1D, HeatEquation1D};
pub use equations2d::{AdvectionDiffusion2D, HeatEquation2D, ReactionDiffusion2D};
pub use equations3d::{AdvectionDiffusion3D, HeatEquation3D, ReactionDiffusion3D};
pub use grid::{Grid1D, Grid2D, Grid3D};
pub use mol::{MOLSystem, PdeSystem};
pub use mol2d::MOLSystem2D;
pub use mol2d_parametric::ParametricMOLSystem2D;
pub use mol3d::MOLSystem3D;
pub use mol3d_parametric::ParametricMOLSystem3D;
pub use moving::{Bound, CoordinateTransform, Domain1D, MovingBound, StefanCondition};
pub use sparse_assembly::{
assemble_laplacian_2d, assemble_laplacian_3d, assemble_operator_2d, assemble_operator_3d,
Operator2DCoefficients, Operator3DCoefficients, SparseScalar,
};