Add power measurements to the minimal_torus
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
use coremem::{Driver, Flt, mat, meas};
|
||||
use coremem::geom::{Index, Meters, Torus};
|
||||
use coremem::geom::{Cube, Index, InvertedRegion, Meters, Torus};
|
||||
use coremem::stim::{CurlStimulus, Sinusoid1, TimeVarying1 as _};
|
||||
|
||||
fn main() {
|
||||
coremem::init_logging();
|
||||
let feat_size = 10e-6; // feature size
|
||||
let duration = 3e-11;
|
||||
let duration = 6e-9;
|
||||
let width = 2200e-6;
|
||||
let depth = 1800e-6;
|
||||
let buffer = 200e-6;
|
||||
@@ -27,9 +27,9 @@ fn main() {
|
||||
let depth_px = from_m(depth);
|
||||
let size_px = Index((width_px, width_px, depth_px).into());
|
||||
let mut driver: Driver<mat::GenericMaterial> = Driver::new(size_px, feat_size);
|
||||
driver.set_steps_per_frame(10);
|
||||
driver.set_steps_per_frame(400);
|
||||
driver.set_steps_per_stim(1);
|
||||
let base = "minimal_torus-2";
|
||||
let base = "minimal_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);
|
||||
@@ -40,7 +40,10 @@ fn main() {
|
||||
|
||||
let boundary_xy = half_width - ferro_major - ferro_minor - buffer;
|
||||
let boundary_z = half_depth - wire_major - wire_minor - buffer;
|
||||
let boundary_lower = Meters((boundary_xy, boundary_xy, boundary_z).into());
|
||||
let boundary_upper = Meters((width - boundary_xy, width - boundary_xy, depth - boundary_z).into());
|
||||
println!("boundary: {}um; {}um", m_to_um(boundary_xy), m_to_um(boundary_z));
|
||||
let boundary_region = InvertedRegion::new(Cube::new(boundary_lower, boundary_upper));
|
||||
driver.add_upml_boundary(Meters((boundary_xy, boundary_xy, boundary_z).into()));
|
||||
|
||||
// J=\sigma E
|
||||
@@ -72,11 +75,17 @@ fn main() {
|
||||
|
||||
driver.add_measurement(meas::CurrentLoop::new("sense", sense_region.clone()));
|
||||
driver.add_measurement(meas::Current::new("sense", sense_region.clone()));
|
||||
driver.add_measurement(meas::Power::new("sense", sense_region.clone()));
|
||||
|
||||
driver.add_measurement(meas::CurrentLoop::new("drive", drive_region.clone()));
|
||||
driver.add_measurement(meas::Current::new("drive", drive_region.clone()));
|
||||
driver.add_measurement(meas::Power::new("drive", drive_region.clone()));
|
||||
|
||||
driver.add_measurement(meas::MagneticLoop::new("mem", ferro_region.clone()));
|
||||
driver.add_measurement(meas::Magnetization::new("mem", ferro_region.clone()));
|
||||
driver.add_measurement(meas::MagneticFlux::new("mem", ferro_region.clone()));
|
||||
driver.add_measurement(meas::CurrentLoop::new("drive", drive_region.clone()));
|
||||
driver.add_measurement(meas::Current::new("drive", drive_region.clone()));
|
||||
driver.add_measurement(meas::Power::new("mem", ferro_region.clone()));
|
||||
driver.add_measurement(meas::Power::new("boundary", boundary_region.clone()));
|
||||
|
||||
let prefix = format!("out/{}/{}-flt{}-{}-feat{}um-{}mA-{}ps--radii{}um-{}um-{}um-{}um",
|
||||
base,
|
||||
|
Reference in New Issue
Block a user