Commit Graph

161 Commits

Author SHA1 Message Date
c852cb52e0 examples: rename em_reflection -> wavefront 2022-05-04 00:05:16 -07:00
91394dcdac document the individual examples 2022-05-03 23:48:41 -07:00
55cf8a3405 examples/archive: document what this directory is. 2022-05-03 23:38:00 -07:00
baeb53102f examples: move more outdated examples to the archive directory 2022-05-03 23:35:22 -07:00
5f72b09c20 simplify examples by allowing more flexible IsomorphicConductor => GenericMaterial casting 2022-05-03 23:33:59 -07:00
3d4eff26ce examples: em_reflection: show how one would run this on the GPU 2022-05-03 23:19:24 -07:00
0d51aa1d55 get stim-related tests to pass after the previous refactor
note the following tests fail:
```
    sim::test::anisotropic_conductor_inactive_x
    sim::test::anisotropic_conductor_inactive_y
    sim::test::pml_boundary_3d_multidirectional_off_center_multisource
    sim::test::sane_boundary_conditions
```

these have been failing for a while. certainly before this stimulus
refactor.
2022-05-03 21:57:53 -07:00
193306d068 stimulus: add the ability to apply H stimulus in addition to E
this surely breaks some tests and examples
2022-05-03 19:50:59 -07:00
85a58d3f42 examples: "archive" some of the less friendly examples 2022-05-03 18:12:15 -07:00
ea7c6b78fd examples: em_reflection: get this to compile 2022-05-03 18:11:31 -07:00
5f0ecbc075 example: buffer_proto4: fix compiler errors (runtime assertions remain) 2022-05-03 17:28:11 -07:00
1a930d4031 example: buffer_proto3: get it to compile (fails at assert_filled_with runtime assertion) 2022-05-03 17:25:27 -07:00
7688922692 examples: buffer_proto2: get compiling (fails in region_filled assertion) 2022-05-03 17:23:41 -07:00
62dda5f543 examples: fix sr_latch to compile
accidentally removed `boundary_z` earlier
2022-05-01 18:14:47 -07:00
662d52c2fb example: get buffer_proto1 to compile
it doesn't run right though: fails at an
`assert!(driver.test_region_filled)`
2022-05-01 18:11:41 -07:00
5871292bfd clean up the SR latch example so that it runs 2022-04-30 00:56:18 -07:00
f5e4dfe745 buffer proto 5: swap the parameter iteration order
i understand decently how the radius affects things, so do that in the
outer loop so we can get more interesting results from the other
parameters sooner.
2022-04-28 23:06:22 -07:00
0e98f8582a add some more caching around the state file & geometry calculations
able to process a simulation in ~2 seconds in the optimistic path
2022-02-01 18:31:47 -08:00
e574bf71ca spirv: get the optimized IsoConductorOr<Ferroxcube3R1> plumbed all the way through
buffer_proto5 example shows it in action (results weren't verified)
2022-01-29 16:30:29 -08:00
bef39789a7 spirv: fix some ffi-related panics (too-small buffer + non-exact MHCurve conversions)
the non-exact MHCurve conversions shouldn't be super impactful. they're
sanity checks, and there's no path that would allow for the inexactness
to grow (or rather, for the inexactness to grow in a way that an
assertion in this code path could *ever* catch it).
2022-01-29 01:47:29 -08:00
aeec4258c7 introduce Isomorphic/Anisomorphic conductors into the CPU side
this is needed for the future Spirv optimizations to be possible.
2022-01-28 19:24:36 -08:00
82334cfc5b buffer_proto5: explore more scenarios 2022-01-26 14:30:50 -08:00
ad655c7df6 buffer_proto5: include m2_stable over m1_peak measurement 2022-01-24 21:09:50 -08:00
ad204fb592 implement a disk cache for use by buffer_proto5
definitely could be improved (values shouldn't have to be clonable) but
it's a useful start.
2022-01-20 15:45:05 -08:00
a86f37f737 Add an exponential-decay type clock & cache some computations in buffer_proto5 2022-01-19 13:58:24 -08:00
9aa33bf479 buffer_proto5: extend search domain to also vary the clock shape (square/sine) 2022-01-17 23:01:38 -08:00
3788af6ceb buffer_proto5: explore based on wraps coverage % instead of just the absolute wraps count 2022-01-17 20:23:55 -08:00
c6dde6519c buffer_proto5: explore a larger search area, intelligently 2022-01-12 00:51:30 -08:00
ce39c1f50b buffer-proto5: auto-measure the extrema for M/H
also, introduce a `Time` abstraction and allow for more precisely
simulating just a specific time range.

the Sim-related traits still need updating to better integrate this.
2022-01-11 18:23:07 -08:00
8bda52d973 memoize the region lookups for better perf
102s => 57s
2022-01-11 16:21:05 -08:00
a9b1f42e0c optimize the Dilate operation
30s => 15s
2022-01-11 15:15:23 -08:00
fe5eab5e43 improve verification for buffer_proto5
verify that different pieces of the sim are properly connected.
2022-01-11 14:03:46 -08:00
be16f7d21c build out the 5th buffer prototype
transmission is best for the 20:16 wrap ratio, so far.
it's less than 100% transmission. there seems to be competing effects
between stronger coupling v.s. amplification as i increase the core2
wraps. so far, that's optimized at 16 wraps. i'll bump the wire wraps on
core1, but this will likely require growing the core's radius, first.
2022-01-07 18:23:04 -08:00
4315d003b2 build out the fourth buffer prototype 2022-01-03 12:48:51 -08:00
c0c9b07dc4 conclude the buffer3 example
the takeaway is that increased loops (if symmetric) only increase the
strength (consistency) of coupling, but not the coupling ratio.
2021-12-24 13:00:06 -08:00
6a42069659 new example which stacks cores vertically, for denser coupling. 2021-12-23 06:30:26 -08:00
5324516577 work the multi-coupling buffer a bit more 2021-12-23 02:50:31 -08:00
5b14abe275 extend the buffer example to support multiple coupling loops 2021-12-21 02:41:48 -08:00
84f9178948 buffer example: validate that the regions are filled AS EXPECTED 2021-12-21 00:51:12 -08:00
bb4594ee4a add old pml.rs, which should have been checked in SEVERAL months ago 2021-12-20 23:45:47 -08:00
fb3380943b add a way to measure the volume of a Region 2021-12-20 23:45:11 -08:00
7feb3a7321 implement a proof-of-concept buffer
if core A can write core B during a sharp clock transition,
and core A DOESN'T write core B during a gradual 'reset' transition,
then we have the building block for a buffer.

the POC looooks promising for this, but to build this into a full buffer
i'll likely need to add some amplification device.
2021-12-14 08:26:08 -08:00
10cb7b8abb Spirv: plumb through support for M(H) curves 2021-09-06 00:56:31 -07:00
dd46da1931 Define a M(H) material, which gives us a nice, properly square, ferrite shape
This is really a proxy for B(H) curves, but easier to define a square
shape due to the flat slopes.
2021-09-05 14:36:42 -07:00
2f4470c2fe Test sr-latch over a longer time-scale (sr-latch-8) 2021-09-04 13:44:43 -07:00
f3fc6a53ac Set/Reset latch. Seems to show some promise. Rerunning with 50e7 peak current (sr-latch-7) instead of 7.5e7 (sr-latch-6) 2021-08-27 23:31:02 -07:00
59279d9fc4 Add a way to create a torus on a yz plane (i.e. x axis) 2021-08-24 23:37:46 -07:00
a10226fcc9 Do the E half-step before the H half-step
This simplifies stimulus application. It happens as part of the E step,
or equivalently, immediately before it -- and thus before the entire
step() call -- which simplifies some tests/callers.
2021-08-23 23:12:03 -07:00
26c4a5403f Split SampleableSim out from GenericSim.
`SampleableSim` will be Box-able; GenericSim can be allowed to not be
Box-able.
2021-08-22 19:20:40 -07:00
44aa1257a7 Make the prototype linear/stepfn stimulus easier to switch between 2021-08-22 18:28:38 -07:00