Commit Graph

173 Commits

Author SHA1 Message Date
d8ae766099 Add a bunch of .round()s before conversions
Previously this was leading to inconsistencies when using f32 v.s. f64
2020-12-17 15:09:53 -08:00
75fde43aa7 Get another 25% perf bump by optimizing material layouts 2020-12-16 14:30:52 -08:00
41572f5285 Optimize GenericMaterial layout
Shaving off 2 floats, i.e. 16 bytes. Brings a 3-4% overall perf
increase. Should be possible to shave another 16 bytes.
2020-12-16 14:04:30 -08:00
737ae1b872 Add diagnostics binary for showing things like material parameters 2020-12-16 13:53:39 -08:00
c9b4ab5b6e More reactive z navigation 2020-12-16 00:10:16 -08:00
a9fc0894e0 MagneticLoop tracks H as well 2020-12-15 23:54:33 -08:00
03682d877d Improve documentation 2020-12-15 23:39:02 -08:00
abe814335a Fine tune viewer: reduce CPU by better polling; more intuitive navigation steps 2020-12-15 23:30:54 -08:00
e1224f78ca Track the specific outstanding work items to dedup work 2020-12-15 23:28:40 -08:00
d940e66708 Track outstanding work to optimize prefetching 2020-12-15 23:00:33 -08:00
56630b02b3 Prefetch frames 2020-12-15 18:34:54 -08:00
8b5ad1fd70 Have the Loader return more details on successful find.
This will allow easier prefetching
2020-12-15 18:16:39 -08:00
8d120eb8e5 Offload Frame loading to a worker pool
This will make it easier to prefetch frames.
2020-12-15 18:07:45 -08:00
639ab4b117 Add a cache to the viewer 2020-12-15 17:39:59 -08:00
d911b8cf34 Parallelize measurements 2020-12-15 15:14:39 -08:00
6362b5a60e parallelize render_scalar_field 2020-12-15 14:19:29 -08:00
b3aba7658b Add a magnetic loop measurement 2020-12-14 21:54:33 -08:00
cba2e3c3d2 Change up some measurement/rendering details 2020-12-14 21:44:07 -08:00
54e414808c Add a new decimate tool to reduce time resolution of simulated output
This is useful to free up limited disk space :/
2020-12-08 22:52:34 -08:00
457337c3b1 More tools for shifting/gating stimuli 2020-12-08 22:28:54 -08:00
e105819461 CurlStimulus can now handle negative magnitudes 2020-12-08 22:19:06 -08:00
2b713bae14 Always render the last frame; also apply stimuli before rendering 2020-12-08 18:44:56 -08:00
f5f90a7a15 Fix a bunch of warnings 2020-12-07 22:55:24 -08:00
e0056d8c85 Make the Driver able to handle any Material 2020-12-07 22:51:00 -08:00
f1c9334322 Don't recalculate inv_feature_size in every work unit
This shaves nearly 1% off the total simulation time
2020-12-07 22:05:20 -08:00
5abb185fe7 Rework the stimulus so that it can be applied in parallel 2020-12-07 20:36:52 -08:00
bf3dba7f99 CurrentLoop reports the current *per cross-section* (i.e. the actual current) 2020-12-07 09:29:49 -08:00
d353026bf9 Use the _mean_ directed current for measurement. This should actually be multiplied by the cross-section area of the Region 2020-12-07 09:22:11 -08:00
82b1eea353 Add a way to measure the current directed around a closed loop 2020-12-07 09:16:07 -08:00
90e26d2445 Add a Vec3::norm method 2020-12-06 21:13:16 -08:00
d9176cdf06 Non-uniform current stimuli can be specified easier 2020-12-06 20:56:34 -08:00
d619383fb9 Make Current measurement serializable
Note that this REALLY slows it down, since it forces the Region to be
Boxed.

It might make sense at some point to consider introducing a RegionBitmap
type. Maybe keep the original Region type -- for serializing -- but
cache a Bitmap version where perf matters more.
2020-12-06 19:54:02 -08:00
fa23989cd9 Backfill tests for Sinusoid stimulus 2020-12-06 19:10:50 -08:00
8891020254 Have the Torus respect its center 2020-12-06 14:32:58 -08:00
2a2ad4c3a5 Change the torus tests so that they exercise units 2020-12-06 14:15:06 -08:00
4dd99fce70 Backfill tests for the Torus type 2020-12-06 13:49:31 -08:00
8d4a3a91fe Fix broken tests + misc cleanup
Move all the examples which don't compile to the `old/` directory.
2020-12-06 13:31:13 -08:00
7e2046f5bd Viewer: swap PgUp/PgDown
This is more consistent with reading things top-to-bottom: page down
advances the user through some information.
2020-12-01 17:29:37 -08:00
9fe08bf1f5 PageUp/Down are used for course time navigation 2020-11-29 22:08:05 -08:00
f13c5e0e85 Improve responsiveness by folding adjacent navigations 2020-11-29 22:05:44 -08:00
9d4b0607d7 Simplify implementation of viewer's navigation
This should make it slightly easier to collapse multiple commands
2020-11-29 21:53:00 -08:00
28c734a4c5 Add a Current stimulus to the wrapped torus 2020-11-29 21:52:52 -08:00
1f44605714 Add an example for a "wrapped torus": that is, a ferromagnet torus with wire loops around it
Still missing:
- stimulus to inject a current onto one of the wire loops
- measurement to measure current on the other wire loop
2020-11-29 18:25:34 -08:00
9dddf6406a Define a Torus region.
I mean, actual core memories are usually toroids, so...
2020-11-29 17:43:32 -08:00
abac9be49c Viewer navigates based on natsorted paths 2020-11-29 15:08:31 -08:00
f1124dea3b viewer binary can navigate to the previous frame now 2020-11-29 14:24:12 -08:00
ed86aff504 measurements are now rendered alongside the terminal view 2020-11-29 12:27:52 -08:00
70e6cdf0cb Render to exactly the size of the terminal 2020-11-29 10:52:11 -08:00
8f8c42a853 renderer can navigate forward in time (and also in the + or - z direction)
Can't navigate backward yet
2020-11-28 13:49:30 -08:00
58fa41ce87 Viewer actually renders frames (no navigation yet) 2020-11-28 12:22:22 -08:00