CHANGELOG

The main version number follows standard Semantic versioning practice. The “Physics version” is updated when a change is made to a physical model implementation such that running the same simulation with two different physics version number installations will result in a different physics outcome for that simulation (change in measurable quantity such as current density, plasma density, etc.).

The “List of changes” when updating a version number can generally include Physics changes, Features, API Changes, Other changes and Bugfixes.

Version

Physics version

Date

List of changes

8.4.4

2

10/18/2022

Features:

Other Changes:

  • stdout is now flushed regularly in mewarpx.diags_store.diag_base.TextDiag, circumventing a problem where running through slurm would sometimes withhold large quantities of output.

  • Merge upstream/development (git hash 1ceef7a) into memaster.

8.4.3

2

8/8/2022

Other Changes:

  • Changed how old checkpoints are handled. Specifically, if a checkpoint does not contain a fluxdata.ckpt file it is considered corrupt and will not be used to attempt a restart.

  • Merge upstream/development (git hash 7802d50) into memaster.

8.4.2

2

7/25/2022

Other Changes:

  • Merge upstream/development (git hash 8124561) into memaster which now includes a callback that executes whenever WarpX receives a checkpointing signal.

8.4.1

2

6/23/2022

Other Changes:

  • Merge upstream/development (git hash b6af289) into memaster.

8.4.0

2

6/6/2022

Features:

Bugfixes:

Other Changes:

  • Changed test for mewarpx.emission.ArbitraryDistributionVolumeEmitter to seed with a skewed parabolic cylinder distribution. This test is better at catching errors near the simulation edges than the previous sin distribution test.

  • Merge WarpX release 22.06 (git hash c654097) into memaster.

8.3.0

2

6/1/2022

Features:

  • Added mewarpx.utils_store.plasma_density_oracle.PlasmaDensityOracle to predict particle densities at a given time point based on 3 input data points.

  • Added mewarpx.utils_store.oracle_control.OracleControl

    as a wrapper to automate calling

    mewarpx.utils_store.plasma_density_oracle.PlasmaDensityOracle by automatically determining the best parameters for it.

8.2.1

2

5/31/2022

Other changes:

  • Merge upstream/development (git hash 30b8500) into memaster.

8.2.0

2

5/11/2022

Features:

  • Added mewarpx.utils_store.json_util.MEWarpXEncoder to encode a

    runinfo object into a JSON string.

  • Changed runinfo to be saved as JSON file instead of dpkl file.

8.1.1

2

5/9/2022

API Changes:

Other changes:

  • Merge upstream/development (git hash e538399) into memaster.

Bugfixes:

  • Removed decrementing mwxrun.simulation.max_steps so that simulation runs through the last step rather than stopping before the last step.

8.1.0

2

4/12/2022

Features:

8.0.1

2

4/11/2022

Bugfixes:

  • Particle scraping had an early return instead of continue if there were no particles of a given species in the scraped particle buffer.

8.0.0

2

4/7/2022

API Changes:

  • mewarpx.sim_control.SimControl now takes argument diag_steps and optional arguments checkpoint and dump_period at initialization. By letting SimControl install checkpointing, flux diagnostics will also be properly checkpointed during OS exit/terminate signals.

Other changes:

  • Merge upstream/development (git hash d3a63bf) into memaster.

7.1.1

2

3/8/2022

Other changes:

  • Merge upstream/development (git hash 0a64c2b) into memaster.

7.1.0

2

2/18/2022

Features:

  • Added mewarpx.diags_store.particle_histogram_diagnostic.ParticleHistDiag to track positions of where particles are scraped.

  • Added mewarpx.coulomb_scattering.PairwiseCoulombScattering as a wrapper to initialize pairwise Coulomb collisions in simulations.

Other changes:

  • Merge upstream/development (git hash 8e1517a) into memaster. This includes an update of the AMReX version which fixed a bug in restarts when the cumulative particle count over the simulation exceeds 2^31.

  • Refactored the mewarpx.assemblies.Assembly and mewarpx.diags_store.flux_diagnostic.SurfaceFluxDiag with regards to how scraped particles are processed. A scraped_particle_array is now created to hold information about scraped particles for each assembly. This array is then processed by flux diagnostics to obtain the absorbed particle and energy fluxes.

7.0.1

2

2/8/2022

Other changes:

  • Merge upstream/development (git hash d259e9c) into memaster.

Bugfixes:

7.0.0

2

2/3/2022

API Changes:

  • mewarpx.utils_store.util.init_libwarpx was removed since the simulation geometry is now set when initializing the grid (from picmi). To use a cylindrical coordinate system ``use_rz=True` should be passed to mewarpx.mwxrun.init_grid().

  • mewarpx.setups_store.diode_setup.DiodeRun_V1 now requires GEOM_STR as argument which sets the coordinate system for the simulation.

Features:

  • Improved logic was added to properly set the number of grids in the simulation.

  • A new volumetric emitter, mewarpx.emission.XGaussZSinDistributionVolumeEmitter, was added to seed a simulation with a neutral plasma with a density profile consisting of a half-period sin wave in z and a truncated normal in x.

Other changes:

  • Merge upstream/development (git hash 9263e6a) into memaster.

Bugfixes:

6.1.0

2

1/26/2022

Features:

  • Allow tracking of charge injected through impact ionization in the MCC routine.

Other changes:

  • Merge upstream/development (git hash d839c70) into memaster.

6.0.3

2

1/21/2022

Other changes:

  • Merge upstream/development (git hash 23ff60b) into memaster.

6.0.2

2

1/7/2022

Other changes:

  • For AWS runs, jobs will fail if they don’t cd into EFS successfully.

Bugfixes:

  • Instead of relying on copying fluxdata.dpkl into a checkpoint file, it is written directly by the python objects to the appropriate checkpoint file. This avoids an error if fluxdata.dpkl happened to be removed before the copy.

6.0.1

2

1/7/2022

Other changes:

  • Added a CI test of a vacuum thermionic diode.

  • Changed the formatting of logging messages.

  • Added quotation marks around implicit functions.

  • Merge upstream/development (git hash 518f18c) into memaster.

Bugfixes:

6.0.0

2

1/5/2022

API Changes:

Features:

  • Added Langevin model for electron-ion Coulomb scattering in mewarpx.coulomb_scattering.LangevinElectronIonScattering

  • Added mewarpx.utils_store.util.interpolate_from_grid() to interpolate grid quantities to specified coordinates.

  • Added mewarpx.poisson_solvers.DummyPoissonSolver, to be used in cases where the field solve should be effectively dissabled.

5.0.0

2

12/29/2021

API Changes:

  • The infinite cylinder directed along the y-axis assembly has been renamed to InfCylinderY to distinguish it from the infinite cylinder directed along the z-axis.

Features:

Other changes:

  • Merge upstream/development (git hash 5f8f8c8) into memaster.

  • The electrostatic solver was updated to allow a Dirichlet BC at rmin for RZ simulations if rmin != 0.

Bugfixes:

  • The default boundary condition at rmax for RZ simulations was set to be Neumann, but the actual BC was hard coded to be Dirichlet with 0 V potential. This has now been fixed.

4.0.0

2

12/23/2021

API Changes:

Other changes:

3.0.0

2

12/23/2021

Features:

API Changes:

  • mewarpx.mwxrun.MEWarpXRun.init_grid() now takes arrays of simulation bounds and cell numbers.

  • mewarpx.setups_store.diode_setup.DiodeRun_V1 no longer requires parameters dim and rz, instead these are collected from the mwxrun object.

Other changes:

  • circleCI and docker builds now compile for 1D, 2D and RZ simulations.

  • Added a 1D example file for the Turner benchmarks.

  • Merge upstream/development (git hash f73b3cd) into memaster.

2.1.12

2

12/22/2021

Features:

  • Added ability to write to a results.txt file that is created when a simulation successfully terminates.

2.0.12

2

12/21/2021

Features:

  • At initialization of runs that are not restarted from checkpoint files, old diags will be deleted.

  • Child classes of mewarpx.diags_store.diag_base.WarpXDiagnostic are now expected to have an attribute write_dir specifying the directory in which it will store diagnostic output.

2.0.11

2

12/20/2021

Other changes:

  • Merge upstream/development (git hash 708b5c5) into memaster.

2.0.10

2

12/20/2021

Features:

Bugfixes:

2.0.9

2

12/14/2021

Other changes:

  • Merge upstream/development (git hash 9685a3d) into memaster.

2.0.8

2

12/13/2021

Other changes:

  • Changed pytest parameter boxed to forked due to deprecation in new versions.

  • Added positron as an ‘inert gas’ option in mewarpx.setups_store.diode_setup.DiodeRun_V1 in order to have ‘ions’ with dynamics that match the electrons.

  • Changed resolution for test_two_embedded_cylinders_scraping CI test since it was found that the previous test had overflows in the fieldsolve which probably caused the differences in results on different machines.

2.0.7

2

12/10/2021

Other changes:

  • Merge upstream/development (git hash c76787d) into memaster. Specifically useful change is that Azure tests now cache previous builds which substantially reduces the time to complete CI tests.

  • Changed reference for test_two_embedded_cylinders_scraping CI test again since the new test values also causes a failure when run on circleCI.

2.0.6

2

12/7/2021

Other changes:

  • Merge upstream/development (git hash 5a2d3e7) into memaster.

  • Changed reference for test_two_embedded_cylinders_scraping CI test that showed frequent failure due to 2 particles instead of 3 being scraped on one of the cylinders (the reason for the test variability is unknown). The random seed was changed to make the test more robust.

2.0.5

2

12/3/2021

Other changes:

  • Merge upstream/development (git hash 9e02b95) into memaster.

2.0.4

2

11/23/2021

Other changes:

  • Merge upstream/development (git hash 430c972) into memaster.

Bugfixes:

  • Fix bug in post-processing of field diagnostic yt data where the average values along axis 0 was plotted instead of the full data array.

2.0.3

2

11/18/2021

Other changes:

  • Flux diagnostic data will be copied to checkpoint folders in order to ensure that the flux data loaded during a restart comes from the appropriate simulation step.

  • The particles scraped on the first step after standard pre-seed plasma injection will no longer be counted by the flux diagnostic. Due to this change reference values for the test_two_embedded_cylinders_scraping test had to be updated.

  • Merge upstream/development (git hash b0c2c42) into memaster.

Bugfixes:

  • Fix bug in reloading the full flux history from a restart where the value of history_dt was not properly set.

2.0.2

2

11/11/2021

Physics changes:

Other changes:

  • Merge upstream/development (git hash f0c0791) into memaster.

  • Relaxed tolerance for emission tests due to recent failures (the reason for the failures are unknown).

Bugfixes:

  • Fixed bug in mewarpx.runinfo.RunInfo._check_voltages_wfs() to correctly parse an expression for the voltage on a conductor.

2.0.1

1

11/08/2021

Other changes:

  • Merge upstream/development (release 21.11) into memaster.

2.0.0

1

11/04/2021

API Changes:

Other changes:

Bugfixes:

  • In mewarpx.mwxrun.MEWarpXRun.step() the value of self.simulation.max_steps is no longer used, but instead the function relies on sim_control entirely.

  • When attempting to restart the simulation it will not restart from a checkpoint file dumped at step 0.

1.0.0

1

11/03/2021

Physics changes:

  • The flux history will now be loaded when restarting a run from a checkpoint file, so that the fullhist_dict accurately reflects the flux recorded over the full simulation span.

API Changes:

Other changes:

  • mewarpx.diags_store.flux_diagnostic.FluxDiagBase now also saves the list of species names included in the simulation and a dictionary of components and their labels, in the flux diagnostic pickle file. This allows flux diagnostics to be reloaded without loading a runinfo file.

0.2.1

0

11/02/2021

Other changes:

  • Merge upstream/development (release 21.11) into memaster.

0.2.0

0

10/28/2021

Features:

  • Allow multiple embedded boundaries to be installed in the simulation.

Other changes:

  • The time-dependent voltage pulse function generated with mewarpx.utils_store.pulsing.linear_pulse_function() was changed to no longer use variables in the expression. This is in order to be able to nest the voltage functions in if statements when multiple EBs are present.

0.1.1

0

10/26/2021

Other changes:

0.1.0

0

10/25/2021

Versions included. Use a subset of this template for following releases:

Physics changes:

  • Initial release

Features:

  • Initial release

API Changes:

  • Initial release

Other changes:

  • Initial release

Bugfixes:

  • Initial release