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