thliebig / openEMS

openEMS is a free and open-source electromagnetic field solver using the EC-FDTD method.
http://openEMS.de
GNU General Public License v3.0
413 stars 146 forks source link

Dump Time Resolution #143

Open ALEEF02 opened 1 month ago

ALEEF02 commented 1 month ago

Good afternoon,

I've scoured the docs, and I don't see a way to increase the quantity of frames included in a time-domain dump (e.g. E-field). SetTimeStepFactor does not increase the quantity of data dumped, only the timestep. OverSampling also doesn't do the trick.

Please let me know what you think.

JTSvejda commented 1 month ago

Hello,

With FDTD, the time step is the applied time increment for the simulation. In order to store the E-field, for example, in a shorter interval than the time step sample, the time step must be adjusted accordingly, i.e. reduced.

Regarding the function SetTimeStepFactor: Following the comment from the file openEMS/python/openEMS/openEMS.pyx, it should be possible to reduce the time step with this function.

With the function SetOverSampling, I think it is not possible to go below the time step.

If you want to save fields for an animation, but the simulation runs cleanly with a sampling rate (or time step) greater than that used for the animation, you might as an alternative interpolate the fields in time.

ALEEF02 commented 1 month ago

SetTimeStepFactor does indeed reduce the timestep, but the number of dump frames generated stays the same. i.e., setting timestep to 1 will generate ~50 frames of E-field dump in my sim. Setting timestep to 0.5 doubles the run time, but still generates ~50 frames of E-field data.