From 7029c8bcfa015e93f677ecb739e253bb7566cf1e Mon Sep 17 00:00:00 2001 From: Colin Date: Thu, 17 Sep 2020 23:02:28 -0700 Subject: [PATCH] SimState *should* be capable of simulating either ex/ey/bz or bx/by/ez type planes Have not actually tested it with a bx/by/ez plane yet. --- src/sim.rs | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/sim.rs b/src/sim.rs index 5147ba8..1b4b47c 100644 --- a/src/sim.rs +++ b/src/sim.rs @@ -170,16 +170,25 @@ pub struct Cell { impl Cell { pub fn ex(&self) -> Flt { - self.state.ex() + self.state.e().x() } pub fn ey(&self) -> Flt { - self.state.ey() + self.state.e().y() + } + pub fn ez(&self) -> Flt { + self.state.e().z() } pub fn e(&self) -> Point { Point::new(self.ex(), self.ey()) } + pub fn hx(&self) -> Flt { + self.state.h().x() + } + pub fn hy(&self) -> Flt { + self.state.h().y() + } pub fn hz(&self) -> Flt { - self.state.hz() + self.state.h().z() } pub fn h(&self) -> Vec3 { self.state.h() @@ -224,10 +233,10 @@ impl Cell { // ``` let inv_feature_size = Real::from_inner(1.0) / feature_size; - let delta_ez_y = inv_feature_size * 0.0; + let delta_ez_y = inv_feature_size * (down.ez() - self.ez()); let delta_ey_z = inv_feature_size * 0.0; let delta_ex_z = inv_feature_size * 0.0; - let delta_ez_x = inv_feature_size * 0.0; + let delta_ez_x = inv_feature_size * (right.ez() - self.ez()); let delta_ey_x = inv_feature_size * (right.ey() - self.ey()); let delta_ex_y = inv_feature_size * (down.ex() - self.ex()); let nabla_e = Vec3::from((delta_ez_y - delta_ey_z, delta_ex_z - delta_ez_x, delta_ey_x - delta_ex_y)); @@ -278,8 +287,8 @@ impl Cell { let delta_hy_z = inv_feature_size * 0.0; let delta_hx_z = inv_feature_size * 0.0; let delta_hz_x = inv_feature_size * (self.hz() - left.hz()); - let delta_hy_x = inv_feature_size * 0.0; - let delta_hx_y = inv_feature_size * 0.0; + let delta_hy_x = inv_feature_size * (self.hy() - left.hy()); + let delta_hx_y = inv_feature_size * (self.hx() - up.hx()); let nabla_h = Vec3::from((delta_hz_y - delta_hy_z, delta_hx_z - delta_hz_x, delta_hy_x - delta_hx_y)); let delta_t_eps = delta_t/EPS0(); @@ -304,15 +313,6 @@ pub struct CellState { } impl CellState { - pub fn ex(&self) -> Flt { - self.e.x() - } - pub fn ey(&self) -> Flt { - self.e.y() - } - pub fn hz(&self) -> Flt { - self.h.z().into() - } pub fn h(&self) -> Vec3 { self.h }