//! Magnetic core memory simulator. //! Built using a Finite-Difference Time-Domain electromagnetics simulator. //! The exhaustive guide for implementing a FDTD simulator by John B. Schneider [1] gives some //! overview of the theory. //! //! [1] https://www.eecs.wsu.edu/~schneidj/ufdtd/ufdtd.pdf use log::info; pub mod driver; pub mod geom; pub mod meas; pub mod render; pub mod sim; pub mod stim; pub use driver::*; pub use sim::*; pub use coremem_cross as cross; pub use coremem_cross::real; pub use coremem_cross::mat; // Some things to keep in mind: // B = mu_r*H + M // For a vacuum, B = H /// optional: calling this enables preferred logging defaults pub fn init_logging() { let conf = env_logger::Env::new().default_filter_or("INFO,wgpu_core=WARN"); env_logger::Builder::from_env(conf).init(); info!("logging initialized"); } /// optional: calling this tunes the library to provide better instrumentation for debugging /// (at an extreme cost to perf) pub fn init_debug() { rayon::ThreadPoolBuilder::new() .num_threads(1) .build_global() .unwrap(); info!("running with debug rayon"); }