diff options
Diffstat (limited to 'Docs/source/running_cpp/parameters.rst')
-rw-r--r-- | Docs/source/running_cpp/parameters.rst | 139 |
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. |