aboutsummaryrefslogtreecommitdiff
path: root/Docs/source/running_cpp/parameters.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Docs/source/running_cpp/parameters.rst')
-rw-r--r--Docs/source/running_cpp/parameters.rst139
1 files changed, 138 insertions, 1 deletions
diff --git a/Docs/source/running_cpp/parameters.rst b/Docs/source/running_cpp/parameters.rst
index e5727e376..2c1d31990 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:
@@ -266,6 +278,37 @@ Particle initialization
well as standard deviations along each direction ``<species_name>.ux_th``,
``<species_name>.uy_th`` and ``<species_name>.uz_th``.
+ * ``maxwell_boltzmann``: Maxwell-Boltzmann distribution that takes a dimensionless
+ temperature parameter ``<species_name>.theta`` as an input, where theta is kb*T/(m*c^2),
+ kb is the Boltzmann constant, c is the speed of light, and m is the mass of the species.
+ It also includes the optional parameter ``<species_name>.beta`` where beta is equal to v/c.
+ The plasma will be initialized to move at drift velocity beta*c in the positive
+ ``<species_name>.direction = 'x', 'y', 'z'`` direction. The MB distribution is initialized
+ in the drifting frame by sampling three Gaussian distributions in each dimension using,
+ the Box Mueller method, and then the distribution is transformed to the simulation frame
+ using the flipping method. The flipping method can be found in Zenitani 2015
+ section III. B. (Phys. Plasmas 22, 042116).
+
+ Note that though the particles may move at relativistic speeds in the simulation frame,
+ they are not relativistic in the drift frame. This is as opposed to the Maxwell Juttner
+ setting, which initializes particles with relativistc momentums in their drifting frame.
+
+ * ``maxwell_juttner``: Maxwell-Juttner distribution for high temperature plasma. This mode
+ requires a dimensionless temperature parameter ``<species_name>.theta``, where theta is equal
+ to kb*T/(m*c^2), where kb is the Boltzmann constant, and m is the mass of the species. It also
+ includes the optional parameter ``<species_name>.beta`` where beta is equal to v/c. The plasma
+ will be initialized to move at velocity beta*c in the positive
+ ``<species_name>.direction = 'x', 'y', 'z'`` direction. The MJ distribution will be initialized
+ in the moving frame using the Sobol method, and then the distribution will be transformed to the
+ simulation frame using the flipping method. Both the Sobol and the flipping method can be found
+ in Zenitani 2015 (Phys. Plasmas 22, 042116).
+
+ Please take notice that particles initialized with this setting can be relativistic in two ways.
+ In the simulation frame, they can drift with a relativistic speed beta. Then, in the drifting
+ frame they are still moving with relativistic speeds due to high temperature. This is as opposed
+ to the Maxwell Boltzmann setting, which initializes non-relativistic plasma in their relativistic
+ drifting frame.
+
* ``radial_expansion``: momentum depends on the radial coordinate linearly. This
requires additional parameter ``u_over_r`` which is the slope.
@@ -333,6 +376,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.
@@ -382,15 +429,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.`)
@@ -871,6 +922,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.