cross: step: backfill step_h material-free test

This commit is contained in:
2022-08-26 01:43:10 -07:00
parent 267c9fd36e
commit a7a9a9ea84

View File

@@ -213,6 +213,7 @@ impl<'a, R: Real, M: Material<R>> StepHContext<'a, R, M> {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;
use crate::compound::Optional;
use crate::mat::Vacuum; use crate::mat::Vacuum;
use float_eq::assert_float_eq; use float_eq::assert_float_eq;
@@ -256,6 +257,41 @@ mod test {
assert_vec_eq(new_h, Vec3::new(-2.0, 0.0, 2.0)); assert_vec_eq(new_h, Vec3::new(-2.0, 0.0, 2.0));
assert_vec_eq(new_m, Vec3::zero()); assert_vec_eq(new_m, Vec3::zero());
} }
#[test]
fn step_h_understands_nabla_e() {
let mid = Vec3::new(4.0, 8.0, 12.0);
let ctx = StepHContext {
inv_feature_size: 1.0,
time_step: 1.0,
stim_h: Vec3::zero(),
mat: &Vacuum,
in_e: VolumeSamplePos {
mid,
xp1: Optional::some(mid + Vec3::new(1.0, 2.0, 3.0)),
yp1: Optional::some(mid + Vec3::new(4.0, 5.0, 6.0)),
zp1: Optional::some(mid + Vec3::new(7.0, 8.0, 9.0)),
},
in_h: Vec3::zero(),
in_m: Vec3::zero(),
};
//```tex
// $\nabla x E$:
// $[ \Delta\!E_z/\Delta\!y - \Delta\!E_y/\Delta\!z$
// $ \Delta\!E_x/\Delta\!z - \Delta\!E_z/\Delta\!x$
// $ \Delta\!E_y/\Delta\!x - \Delta\!E_x/\Delta\!y ]$
// we take these values from `in_e`:
// $[ 6.0 - 8.0 $
// $ 7.0 - 3.0$
// $ 2.0 - 4.0 ]$
// this gets negated, and then scaled by $\mu_0^{-1}$
//```
let (new_h, new_m) = ctx.step_h();
let b = -Vec3::new(-2.0, 4.0, -2.0);
assert_vec_eq(new_h, b * f32::mu0_inv());
assert_vec_eq(new_m, Vec3::zero());
}
// TODO: backfill step_h tests // TODO: backfill step_h tests
// TODO: backfill step_e tests // TODO: backfill step_e tests
} }