Commit Graph

98 Commits

Author SHA1 Message Date
f21c43d655 Misc measurement improvements 2020-09-20 21:56:30 -07:00
f6e4ed8cb9 Add a UPML boundary condition (needs improving in the corners, though) 2020-09-19 20:02:11 -07:00
ae93101676 Allow conductivity to be specified as a vector
This is necessary to implement UPML boundary conditions
2020-09-19 19:33:11 -07:00
1d303df409 Fix rendering to render (Bx,By,Ez). Also fix an infinite loop due to rounding errors in MHCurve 2020-09-18 22:22:54 -07:00
8a70276c78 Make measurements also be 3d 2020-09-18 17:11:05 -07:00
a1f5b96ae1 Model the H/B field in 3d, mostly 2020-09-17 22:53:12 -07:00
c0174b6483 Rename flt::Priv/Pub to Real and Flt
It's a little more readable
2020-09-13 22:45:02 -07:00
f50dbf7d4e Make the float depth compile-time configurable 2020-09-13 22:38:00 -07:00
6664fea7c2 Use unchecked floats for release builds 2020-09-13 18:22:58 -07:00
53da11c874 Assorted minor aesthetic touchups 2020-09-13 17:19:44 -07:00
b4b0fde8af Use ndarray's parallelism features
It's easier to read, and it also gets 10-30% perf improvement for
Driver::step
2020-09-12 20:37:31 -07:00
0fc973b409 Toy around with some other setups.
It's weird (maybe), that the behavior of the ferromagnet is to _prevent_ H
from getting very large
2020-09-09 22:41:41 -07:00
995b5b7c54 Render current as a vector field
hmm...
2020-09-07 21:34:33 -07:00
0c6a01c671 Make vector field rendering logic generic 2020-09-07 21:14:26 -07:00
0b9861d619 Cleanup RenderSteps 2020-09-07 21:07:26 -07:00
d611e822dd Add a 'Measurement' concept, e.g. to display current at a point. 2020-09-07 20:14:41 -07:00
fbca8622df Remove usize casts 2020-09-07 17:54:50 -07:00
14fa68bfb2 Snapshot and decimate before rendering; add an explicit boundary layer 2020-09-07 17:42:05 -07:00
d26b4197af Introduce a Driver abstraction to encapsulate the SimState and the Renderers 2020-09-06 11:24:48 -07:00
3b1397e90c Implement a NullRenderer 2020-09-05 23:41:28 -07:00
fc14961d32 Render simulations to the terminal and to disk simultaneously 2020-09-05 17:43:51 -07:00
861d7430e2 Tune some rendering constants 2020-09-05 14:44:26 -07:00
08461267be Properly cast from RGB -> YCbCr 2020-09-05 14:31:29 -07:00
fd4e10b0d0 add transparency to vector fields 2020-09-05 14:21:32 -07:00
d6d42330c6 Apply a log-like scaling to all values being rendered 2020-09-05 14:06:53 -07:00
98f9cf4df5 Use field lines to display the electric field 2020-09-05 10:16:19 -07:00
8e71e02ac1 Fix clippy errors 2020-09-04 16:49:24 -07:00
a48481db0d Share the frame render logic across all display backends (color term, Y4M video) 2020-09-04 16:42:29 -07:00
6d7bb5becb Generalize rendering into a trait 2020-09-04 16:12:33 -07:00
99cb824a36 Implement a mp4 renderer 2020-09-03 22:34:56 -07:00
aff8764114 Implement a BH-curve material (example material is 3R1)
NB: I think there are some errors needing to be worked out, but at least
it doesn't crash!
2020-08-27 23:41:57 -07:00
b25ccc2471 Factor mat.rs and sim.rs out of lib.rs 2020-08-27 19:17:07 -07:00
57258eb6cc Advance the E field by using Ampere's circuital law MACROSCOPIC equation 2020-08-27 15:23:52 -07:00
6ac0dafa47 Have the GenericMaterial be an enum to make it easier to replace the ferromagnet model 2020-08-27 12:51:12 -07:00
c68964403d Fix COMSOL ferromagnet model, and make a new example for it
I'm a little skeptical of it as a model, though.
2020-08-22 22:35:45 -07:00
f4d8ffdf34 Untested ferromagnetic model
It's pretty basic.
2020-08-22 21:55:27 -07:00
dff8166906 Format these math comments so that they render properly for a tex-aware editor
Also document an error in the current logic
2020-08-16 20:14:46 -07:00
72c2ee599e Track the simulation time, and configure the feature size 2020-07-31 19:01:00 -07:00
5e4699b3e6 Fix the conductivity error (was calculating the wrong timestep)
Also, use f64 and force them to be real.
2020-07-31 18:46:19 -07:00
5388658b00 Add [broken] conductivity support
It doesn't seem to be solved by using f64
2020-07-31 18:03:40 -07:00
1d9aa738ac Render just the B field: it gives a better visualization here 2020-07-24 23:39:07 -07:00
2e92980113 Buffer the rendering for better framerates; create a more useful example 2020-07-24 23:25:16 -07:00
5360d2c6d3 Add a 2d color-based renderer 2020-07-16 00:31:20 -07:00
a82c2f60e7 broken: expand to two dimensions.
Broken because there seems to be a scaling issue, and also the previous
1d simulation has no effect when ported to this new 2d world.
2020-07-14 23:26:27 -07:00
80cb3a9d52 Add a color terminal renderer 2020-07-12 23:00:54 -07:00
52c2b5be5a Render the B/E fields in a way that's a little more insightful 2020-07-12 21:52:20 -07:00
2174113e7d Fix the inverted sign so that the energy looks reasonable now 2020-07-12 21:35:40 -07:00
0ea06af0b0 Add a way to render the state
Note that this has exposed some scaling error that needs to be fixed.
2020-07-12 21:17:15 -07:00