Test sr-latch over a longer time-scale (sr-latch-8)
This commit is contained in:
@@ -14,8 +14,8 @@ fn main() {
|
|||||||
let wire_minor = 40e-6;
|
let wire_minor = 40e-6;
|
||||||
let wire_major = 160e-6;
|
let wire_major = 160e-6;
|
||||||
let wire_coupling_major = 280e-6; // (ferro_minor*4 + ferro_buffer)/2 + wire_minor = 190
|
let wire_coupling_major = 280e-6; // (ferro_minor*4 + ferro_buffer)/2 + wire_minor = 190
|
||||||
let peak_current = 50e7;
|
let peak_current = 7.5e7;
|
||||||
let current_duration = 1.0e-9; // half-wavelength of the sine wave
|
let current_duration = 2.0e-9; // half-wavelength of the sine wave
|
||||||
// let current_break = 0.2e-9; // time between 'set' pulse and 'clear' pulse
|
// let current_break = 0.2e-9; // time between 'set' pulse and 'clear' pulse
|
||||||
let drive_conductivity = 5e6f32;
|
let drive_conductivity = 5e6f32;
|
||||||
let sense_conductivity = 5e3f32;
|
let sense_conductivity = 5e3f32;
|
||||||
@@ -23,7 +23,7 @@ fn main() {
|
|||||||
let m_to_um = |m: f32| (m * 1e6).round() as u32;
|
let m_to_um = |m: f32| (m * 1e6).round() as u32;
|
||||||
let half_depth = depth * 0.5;
|
let half_depth = depth * 0.5;
|
||||||
|
|
||||||
let base = "sr-latch-7-sr-500MA";
|
let base = "sr-latch-8-sr-longer-time-scale";
|
||||||
|
|
||||||
let boundary_xy = 500e-6;
|
let boundary_xy = 500e-6;
|
||||||
let boundary_z = 300e-6;
|
let boundary_z = 300e-6;
|
||||||
@@ -76,7 +76,7 @@ fn main() {
|
|||||||
// dJ/dt = \sigma dE/dT
|
// dJ/dt = \sigma dE/dT
|
||||||
// dE/dt = dJ/dt / \sigma
|
// dE/dt = dJ/dt / \sigma
|
||||||
// dE/dt = dI/dt / (A*\sigma)
|
// dE/dt = dI/dt / (A*\sigma)
|
||||||
// if I = k*sin(w t) then dE/dt = k*w sin(w t) / (A*\sigma)
|
// if I = k*sin(w t) then dE/dt = k*w cos(w t) / (A*\sigma)
|
||||||
// i.e. dE/dt is proportional to I/(A*\sigma), multiplied by w (or, divided by wavelength)
|
// i.e. dE/dt is proportional to I/(A*\sigma), multiplied by w (or, divided by wavelength)
|
||||||
let peak_stim1 = peak_current/current_duration / (set_region.cross_section() * drive_conductivity);
|
let peak_stim1 = peak_current/current_duration / (set_region.cross_section() * drive_conductivity);
|
||||||
|
|
||||||
@@ -98,7 +98,11 @@ fn main() {
|
|||||||
add_drive_pulse(&reset_region, 50.0*current_duration, current_duration, peak_stim1);
|
add_drive_pulse(&reset_region, 50.0*current_duration, current_duration, peak_stim1);
|
||||||
add_drive_pulse(&set_region, 50.0*current_duration, current_duration, peak_stim1);
|
add_drive_pulse(&set_region, 50.0*current_duration, current_duration, peak_stim1);
|
||||||
|
|
||||||
let duration = 65.0*current_duration;
|
// TOGETHER
|
||||||
|
add_drive_pulse(&reset_region, 55.0*current_duration, current_duration, peak_stim1);
|
||||||
|
add_drive_pulse(&set_region, 55.0*current_duration, current_duration, peak_stim1);
|
||||||
|
|
||||||
|
let duration = 240.0*current_duration;
|
||||||
|
|
||||||
driver.add_measurement(meas::CurrentLoop::new("coupling", coupling_region.clone()));
|
driver.add_measurement(meas::CurrentLoop::new("coupling", coupling_region.clone()));
|
||||||
driver.add_measurement(meas::Current::new("coupling", coupling_region.clone()));
|
driver.add_measurement(meas::Current::new("coupling", coupling_region.clone()));
|
||||||
|
Reference in New Issue
Block a user