Non-uniform current stimuli can be specified easier
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use coremem::{Driver, Flt, mat, meas};
|
||||
use coremem::geom::{Coord, Index, Meters, Sphere, Torus, Vec2, Vec3};
|
||||
use coremem::stim::{Stimulus, Sinusoid};
|
||||
use coremem::stim::{CurlStimulus, Sinusoid};
|
||||
use log::trace;
|
||||
|
||||
fn main() {
|
||||
@@ -29,7 +29,7 @@ fn main() {
|
||||
let size_px = Index((width_px, width_px, depth_px).into());
|
||||
let mut driver = Driver::new(size_px, feat_size);
|
||||
driver.set_steps_per_frame(120);
|
||||
let base = "wrapped_torus-3";
|
||||
let base = "wrapped_torus-4";
|
||||
let ferro_region = Torus::new_xy(Meters((half_width, half_width, half_depth).into()), ferro_major, ferro_minor);
|
||||
let drive_region = Torus::new_xz(Meters((half_width - ferro_major, half_width, half_depth).into()), wire_major, wire_minor);
|
||||
let sense_region = Torus::new_xz(Meters((half_width + ferro_major, half_width, half_depth).into()), wire_major, wire_minor);
|
||||
@@ -43,19 +43,15 @@ fn main() {
|
||||
println!("boundary: {}um; {}um", m_to_um(boundary_xy), m_to_um(boundary_z));
|
||||
driver.add_upml_boundary(Meters((boundary_xy, boundary_xy, boundary_z).into()));
|
||||
|
||||
driver.add_stimulus(Stimulus::new(
|
||||
Sphere::new(
|
||||
Meters((half_width - ferro_major + wire_major, half_width, half_depth).into()),
|
||||
wire_minor),
|
||||
Sinusoid::from_wavelength(Vec3::new(0.0, 0.0, peak_current), current_duration * 2.0)
|
||||
driver.add_stimulus(CurlStimulus::new(
|
||||
drive_region.clone(),
|
||||
Sinusoid::from_wavelength(Vec3::new(0.0, 0.0, peak_current), current_duration * 2.0),
|
||||
drive_region.center(),
|
||||
drive_region.axis(),
|
||||
));
|
||||
|
||||
driver.add_measurement(meas::Current::new("sense", sense_region.clone()));
|
||||
driver.add_measurement(meas::Current::new("drive", drive_region.clone()));
|
||||
// TODO: simulate current in the drive element
|
||||
//driver.add_stimulus(Stimulus::new(
|
||||
// conductor_region.clone(),
|
||||
// Sinusoid::from_wavelength(Vec3::new(0.0, 0.0, peak_current), current_duration * 2.0
|
||||
//)));
|
||||
|
||||
let prefix = format!("{}/{}-flt{}-{}-feat{}um-{}mA-{}ps--radii{}um-{}um-{}um-{}um",
|
||||
base,
|
||||
|
Reference in New Issue
Block a user