pub mod flux_computation;
pub mod solver;
pub mod state;
pub use flux_computation::CompressibleFluxes;
pub use solver::CompressibleFlowSolver;
pub use state::CompressibleState;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_compressible_module_exports() {
let solver = CompressibleFlowSolver::new(10, 10, 10, 0.1, 0.1, 0.1);
let state = solver.initialize_state();
assert_eq!(state.density.dim(), (10, 10, 10));
assert_eq!(state.momentum.len(), 3);
assert_eq!(state.energy.dim(), (10, 10, 10));
}
#[test]
fn test_adaptive_timestep() {
let solver = CompressibleFlowSolver::new(5, 5, 5, 0.1, 0.1, 0.1);
let state = solver.initialize_state();
let dt = solver.calculate_adaptive_timestep(&state);
assert!(dt > 0.0);
assert!(dt.is_finite());
}
}