diff options
Diffstat (limited to 'Docs/source/running_cpp')
-rw-r--r-- | Docs/source/running_cpp/parameters.rst | 136 | ||||
-rw-r--r-- | Docs/source/running_cpp/platforms.rst | 2 |
2 files changed, 136 insertions, 2 deletions
diff --git a/Docs/source/running_cpp/parameters.rst b/Docs/source/running_cpp/parameters.rst index f170acedd..597d36996 100644 --- a/Docs/source/running_cpp/parameters.rst +++ b/Docs/source/running_cpp/parameters.rst @@ -224,6 +224,18 @@ Particle initialization initialization. This can be required whith a moving window and/or when running in a boosted frame. +* ``<species_name>.initialize_self_fields`` (`0` or `1`) + Whether to calculate the space-charge fields associated with this species + at the beginning of the simulation. + +* ``<species_name>.self_fields_required_precision`` (`float`, default: 1.e-11) + The relative precision with which the initial space-charge fields should + be calculated. More specifically, the initial space-charge fields are + computed with an iterative Multi-Level Multi-Grid (MLMG) solver. + For highly-relativistic beams, this solver can fail to reach the default + precision within a reasonable time ; in that case, users can set a + relaxed precision requirement through ``self_fields_required_precision``. + * ``<species_name>.profile`` (`string`) Density profile for this species. The options are: @@ -366,6 +378,10 @@ Particle initialization axes (4 particles in 2D, 6 particles in 3D). When `1`, particles are split along the diagonals (4 particles in 2D, 8 particles in 3D). +* ``<species_name>.do_not_deposit`` (`0` or `1` optional; default `0`) + If `1` is given, both charge deposition and current deposition will + not be done, thus that species does not contribute to the fields. + * ``<species>.plot_species`` (`0` or `1` optional; default `1`) Whether to plot particle quantities for this species. @@ -415,15 +431,19 @@ Particle initialization * ``<species>.do_qed`` (`int`) optional (default `0`) If `<species>.do_qed = 0` all the QED effects are disabled for this species. - If `<species>.do_qed = 1` QED effects can be enabled for this species (see below) + If `<species>.do_qed = 1` QED effects can be enabled for this species (see below). **Implementation of this feature is in progress. It requires to compile with QED=TRUE** * ``<species>.do_qed_quantum_sync`` (`int`) optional (default `0`) It only works if `<species>.do_qed = 1`. Enables Quantum synchrotron emission for this species. + Quantum synchrotron lookup table should be either generated or loaded from disk to enable + this process (see "Lookup tables for QED modules" section below). **Implementation of this feature is in progress. It requires to compile with QED=TRUE** * ``<species>.do_qed_breit_wheeler`` (`int`) optional (default `0`) It only works if `<species>.do_qed = 1`. Enables non-linear Breit-Wheeler process for this species. + Breit-Wheeler lookup table should be either generated or loaded from disk to enable + this process (see "Lookup tables for QED modules" section below). **Implementation of this feature is in progress. It requires to compile with QED=TRUE** * ``warpx.E_external_particle`` & ``warpx.B_external_particle`` (list of `float`) optional (default `0. 0. 0.`) @@ -623,6 +643,34 @@ Laser initialization the field solver. In particular, do not use any other boundary condition than periodic. +Collision initialization +------------------------ + +WarpX provides a relativistic elastic Monte Carlo binary collision model, +following the algorithm given by `Perez et al. (Phys. Plasmas 19, 083104, 2012) <https://doi.org/10.1063/1.4742167>`_. + +* ``collisions.ncollisions`` (`int`) optional (default `0`) + Number of collision types. + +* ``collisions.collision_names`` (`strings`, separated by spaces) + The name of each collision type. It must be provided if ``collisions.ncollisions`` is not zero. + This is then used in the rest of the input deck; + in this documentation we use ``<collision_name>`` as a placeholder. + The number of strings provided should match the number of collision types, + i.e. ``collisions.ncollisions``. + +* ``<collision_name>.species`` (`strings`, two species names separated by spaces) + The names of two species, between which the collision will be considered. + It must be provided if ``collisions.ncollisions`` is not zero, and + the number of provided ``<collision_name>.species`` should match + the number of collision types, i.e. ``collisions.ncollisions``. + +* ``<collision_name>.CoulombLog`` (`float`) optional + A provided fixed Coulomb logarithm of the collision type + ``<collision_name>``. + If this is not provided, or if a non-positive value is provided, + a Coulomb logarithm will be computed automatically according to the algorithm. + Numerics and algorithms ----------------------- @@ -904,6 +952,92 @@ Diagnostics and output The time interval between the back-transformed reduced diagnostics (where this time interval is expressed in the laboratory frame). +* ``slice.particle_slice_width_lab`` (`float`, in meters) + Only used when ``warpx.do_boosted_frame_diagnostic`` is ``1`` and + ``slice.num_slice_snapshots_lab`` is non-zero. Particles are + copied from the full back-transformed diagnostic to the reduced + slice diagnostic if there are within the user-defined width from + the slice region defined by ``slice.dom_lo`` and ``slice.dom_hi``. + +Lookup tables for QED modules (implementation in progress) +---------------------------------------------------------- +Lookup tables store pre-computed values for functions used by the QED modules. +**Implementation of this feature is in progress. It requires to compile with QED=TRUE** + +* ``qed_bw.lookup_table_mode`` (`string`) + There are three options to prepare the lookup table required by the Breit-Wheeler module: + + * ``dummy_builtin``: a built-in table is used (Warning: the quality of the table is very low, + so this option has to be used only for test purposes). + + * ``generate``: a new table is generated. This option requires Boost math library + (version >= 1.67) and to compile with QED_TABLE_GEN=TRUE. All + the following parameters must be specified: + + * ``qed_bw.chi_min`` (`float`): minimum chi parameter to be considered by the engine + + * ``qed_bw.tab_dndt_chi_min`` (`float`): minimum chi parameter for lookup table 1 ( + used for the evolution of the optical depth of the photons) + + * ``qed_bw.tab_dndt_chi_max`` (`float`): maximum chi parameter for lookup table 1 + + * ``qed_bw.tab_dndt_how_many`` (`int`): number of points to be used for lookup table 1 + + * ``qed_bw.tab_pair_chi_min`` (`float`): minimum chi parameter for lookup table 2 ( + used for pair generation) + + * ``qed_bw.tab_pair_chi_max`` (`float`): maximum chi parameter for lookup table 2 + + * ``qed_bw.tab_pair_chi_how_many`` (`int`): number of points to be used for chi axis in lookup table 2 + + * ``qed_bw.tab_pair_frac_how_many`` (`int`): number of points to be used for the second axis in lookup table 2 + (the second axis is the ratio between the energy of the less energetic particle of the pair and the + energy of the photon). + + * ``qed_bw.save_table_in`` (`string`): where to save the lookup table + + * ``load``: a lookup table is loaded from a pre-generated binary file. The following parameter + must be specified: + + * ``qed_bw.load_table_from`` (`string`): name of the lookup table file to read from. + +* ``qed_qs.lookup_table_mode`` (`string`) + There are three options to prepare the lookup table required by the Quantum Synchrotron module: + + * ``dummy_builtin``: a built-in table is used (Warning: the quality of the table is very low, + so this option has to be used only for test purposes). + + * ``generate``: a new table is generated. This option requires Boost math library + (version >= 1.67) and to compile with QED_TABLE_GEN=TRUE. All + the following parameters must be specified: + + * ``qed_qs.chi_min`` (`float`): minimum chi parameter to be considered by the engine + + * ``qed_qs.tab_dndt_chi_min`` (`float`): minimum chi parameter for lookup table 1 ( + used for the evolution of the optical depth of electrons and positrons) + + * ``qed_qs.tab_dndt_chi_max`` (`float`): maximum chi parameter for lookup table 1 + + * ``qed_qs.tab_dndt_how_many`` (`int`): number of points to be used for lookup table 1 + + * ``qed_qs.tab_em_chi_min`` (`float`): minimum chi parameter for lookup table 2 ( + used for photon emission) + + * ``qed_qs.tab_em_chi_max`` (`float`): maximum chi parameter for lookup table 2 + + * ``qed_qs.tab_em_chi_how_many`` (`int`): number of points to be used for chi axis in lookup table 2 + + * ``qed_qs.tab_em_prob_how_many`` (`int`): number of points to be used for the second axis in lookup table 2 + (the second axis is a cumulative probability). + + * ``qed_bw.save_table_in`` (`string`): where to save the lookup table + + * ``load``: a lookup table is loaded from a pre-generated binary file. The following parameter + must be specified: + + * ``qed_qs.load_table_from`` (`string`): name of the lookup table file to read from. + + Checkpoints and restart ----------------------- WarpX supports checkpoints/restart via AMReX. diff --git a/Docs/source/running_cpp/platforms.rst b/Docs/source/running_cpp/platforms.rst index 9600c1c30..399b6fa4d 100644 --- a/Docs/source/running_cpp/platforms.rst +++ b/Docs/source/running_cpp/platforms.rst @@ -66,4 +66,4 @@ regime), the following set of parameters provided good performance: * **Two `128x128x128` grids per GPU**, or **one `128x128x256` grid per GPU**. A batch script with more options regarding profiling on Summit can be found at -:download:`Summit batch script<../../../Examples/Tests/gpu_test/script_profiling.sh>`
\ No newline at end of file +:download:`Summit batch script<../../../Tools/batchScripts/script_profiling_summit.sh>` |