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 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(
|
||||
Translate::new(
|
||||
SwapYZ::new(region::and(
|
||||
@@ -83,11 +83,11 @@ fn run_sim(id: u32, p: Params) {
|
||||
1.0, // one half-rev => y=1.0
|
||||
ferro1_center,
|
||||
),
|
||||
p.wire_wrap_dilation,
|
||||
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(
|
||||
Translate::new(
|
||||
SwapYZ::new(region::and_not(
|
||||
@@ -99,8 +99,8 @@ fn run_sim(id: u32, p: Params) {
|
||||
1.0, // one half-rev => y=1.0
|
||||
ferro2_center,
|
||||
),
|
||||
p.wire_wrap_dilation,
|
||||
p.wire_wrap_dilation / (p.wire_wrap_iters as f32),
|
||||
p.wire_wrap_iters,
|
||||
);
|
||||
|
||||
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 {
|
||||
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]
|
||||
|
Reference in New Issue
Block a user