optimize the Dilate operation
30s => 15s
This commit is contained in:
@@ -71,7 +71,7 @@ fn run_sim(id: u32, p: Params) {
|
|||||||
let set1_region = Torus::new_xz(set1_center, p.wire_set_major, p.wire_minor);
|
let set1_region = Torus::new_xz(set1_center, p.wire_set_major, p.wire_minor);
|
||||||
let set2_region = Torus::new_xz(set2_center, p.wire_set_major, p.wire_minor);
|
let set2_region = Torus::new_xz(set2_center, p.wire_set_major, p.wire_minor);
|
||||||
|
|
||||||
let coupling_region1 = Dilate::new_iterated(
|
let coupling_region1 = Dilate::new(
|
||||||
Wrap::new_about(
|
Wrap::new_about(
|
||||||
Translate::new(
|
Translate::new(
|
||||||
SwapYZ::new(region::and(
|
SwapYZ::new(region::and(
|
||||||
@@ -83,11 +83,11 @@ fn run_sim(id: u32, p: Params) {
|
|||||||
1.0, // one half-rev => y=1.0
|
1.0, // one half-rev => y=1.0
|
||||||
ferro1_center,
|
ferro1_center,
|
||||||
),
|
),
|
||||||
|
p.wire_wrap_dilation,
|
||||||
p.wire_wrap_dilation / (p.wire_wrap_iters as f32),
|
p.wire_wrap_dilation / (p.wire_wrap_iters as f32),
|
||||||
p.wire_wrap_iters,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let coupling_region2 = Dilate::new_iterated(
|
let coupling_region2 = Dilate::new(
|
||||||
Wrap::new_about(
|
Wrap::new_about(
|
||||||
Translate::new(
|
Translate::new(
|
||||||
SwapYZ::new(region::and_not(
|
SwapYZ::new(region::and_not(
|
||||||
@@ -99,8 +99,8 @@ fn run_sim(id: u32, p: Params) {
|
|||||||
1.0, // one half-rev => y=1.0
|
1.0, // one half-rev => y=1.0
|
||||||
ferro2_center,
|
ferro2_center,
|
||||||
),
|
),
|
||||||
|
p.wire_wrap_dilation,
|
||||||
p.wire_wrap_dilation / (p.wire_wrap_iters as f32),
|
p.wire_wrap_dilation / (p.wire_wrap_iters as f32),
|
||||||
p.wire_wrap_iters,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let coupling_wire_top = Cube::new_centered(
|
let coupling_wire_top = Cube::new_centered(
|
||||||
|
@@ -250,9 +250,6 @@ impl Dilate {
|
|||||||
pub fn new<T: Region + 'static>(inner: T, rad: f32, res: f32) -> Self {
|
pub fn new<T: Region + 'static>(inner: T, rad: f32, res: f32) -> Self {
|
||||||
Self { inner: Box::new(inner), rad, res }
|
Self { inner: Box::new(inner), rad, res }
|
||||||
}
|
}
|
||||||
pub fn new_iterated<T: Region + 'static>(inner: T, resolution: f32, iters: usize) -> Self {
|
|
||||||
Self::new(inner, resolution * iters as f32, resolution)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[typetag::serde]
|
#[typetag::serde]
|
||||||
|
Reference in New Issue
Block a user