Atomic Physics

.. sectionauthor:: Brian Marre, Tapish Narwal

This example demonstrates the use of the atomic physics[AtomicPhysics vs Ionization]_ and is intended as a starting point for simulations using atomicPhysics(FLYonPIC).

This setup models a homogeneous charge neutral copper plasma with an ion density of 2e28 1/m^3 and an initial copper charge state of 2.

Copper ions are initialized cold, with no initial momentum, in the ground state, while electrons are given an initial Maxwellian-Temperature of 1 keV.

.. warning::

 This setup does not include elastic collisions

The copper atomic state distribution’s initial state will relax over time towards equilibrium.

.. warning::

 The exact equilibrium is dependent on the atomic physics model.

 Therefore direct comparisons of different atomic models should not rely on the equilibrium model only.
 This is especially true if comparing to SCFLY/FlyCHK since they include recombination paths which are not yet implemented in atomicPhysics(FLYonPIC)

Atomic Input Data

Any simulation using atomicPhysics(FLYonPIC) requires a user provided set of atomic input data files, these files are not provided with PIConGPU due to licensing issues.

This simulation is intended to use the atomic input data files from https://github.com/ComputationalRadiationPhysics/FLYonPICAtomicTestData. If you have access to this repository, execute ./etc/getAtomicInputData.sh to copy a set of atomic input files to the atomicInputData-directory before running the simulation.

.. note::

 compilation alone does not require atomic input data files

Running CI runtime test for atomicPhysics

This setup is also a run-time integration tests of FLYonPIC.

To build the run-time test use the following steps: 1.) copy the atomic physics example using pic-create to a new setup folder 2.) go inside the new setup folder 2.) provide the atomic input data using ./etc/getAtomicInputData.sh, requires access to the atomicData repository. 3.) build the setup using either ./etc/build.sh or by hand using pic-build -c "-DPARAM_FORCE_CONSTANT_ELECTRON_TEMPERATURE=true".

To run the test supplied with this use one of the three ways described below.

  • run locally

  • run using tbg

  • run using the JUBE CI workflow

Run Locally


From the root directory Run ./validate/validateLocally.sh to run and validate the simulation results

Run Using TBG


The setup comes with .cfg-files designed to run on NVIDIA A100 (40 GB) GPU nodes from JURECA using the JUBE CI. To run and validate the result, use the custom submitAction.sh together with one of the provided with the .cfg-files, or copy the validation folder to the location of the results manually.

Finally the user must execute validate.sh. The user should be careful to set the correct cfg and submitAction paths.

Run using JUBE CI


JUBE calls tbg for the scaling test we want to perform (weak/strong, different node sizes).

Each scaling test has a set of .cfg-files associated. JUBE runs the cfgs one by one.

Using a slightly modified submitAction.sh, the tbg call copies over the validation folder to where the results are generated. In the TPL file, after the srun to start the simulation, we call the validation script.

Notes

.. [AtomicPhysics vs Ionization]

 excitation states in addition to charge states and de-/excitation and ionization from and to excited states and ground states.