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.rst54
1 files changed, 54 insertions, 0 deletions
diff --git a/Docs/source/running_cpp/parameters.rst b/Docs/source/running_cpp/parameters.rst
index 505d9b31d..32ac12104 100644
--- a/Docs/source/running_cpp/parameters.rst
+++ b/Docs/source/running_cpp/parameters.rst
@@ -171,6 +171,10 @@ Particle initialization
Whether particle's weight is varied with their radius. This only applies to cylindrical geometry.
The only valid value is true.
+ * ``predefined``: use one of WarpX predefined plasma profiles. It requires additional
+ arguments ``<species_name>.predefined_profile_name`` and
+ ``<species_name>.predefined_profile_params`` (see below).
+
* ``<species_name>.momentum_distribution_type`` (`string`)
Distribution of the normalized momentum (`u=p/mc`) for this species. The options are:
@@ -206,6 +210,37 @@ Particle initialization
* If ``true``, each particle is advanced with the average speed of the species
``vzbar`` until it reaches ``zinject_plane``.
+* ``species_name.predefined_profile_name`` (`string`)
+ Only read of ``<species_name>.electrons.profile`` is `predefined`.
+
+ * If ``parabolic_channel``, the plasma profile is a parabolic profile with linear ramps
+ at the beginning and the end of the profile. The density is given by
+
+ .. math::
+
+ n = n_0 n(x,y) n(z)
+
+ with
+
+ .. math::
+
+ n(x,y) = 1 + 4\frac{x^2+y^2}{k_p^2 R_c^4}
+
+ where :math:`k_p` is the plasma wavenumber associated with density :math:`n_0`.
+ Here, :math:`n(z)` is a linear up-ramp from :math:`0` to :math:`L_{ramp,up}`,
+ constant to :math:`1` from :math:`L_{ramp,up}` to :math:`L_{ramp,up} + L_{plateau}`
+ and a linear down-ramp from :math:`L_{ramp,up} + L_{plateau}` to
+ :math:`L_{ramp,up} + L_{plateau}+L_{ramp,down}`. All parameters are given
+ in ``predefined_profile_params``.
+
+* ``<species_name>.predefined_profile_params`` (list of `float`)
+ Parameters for the predefined profiles.
+
+ * If ``species_name.predefined_profile_name`` is ``parabolic_channel``,
+ ``predefined_profile_params`` contains a space-separated list of the
+ following parameters, in this order: :math:`L_{ramp,up}` :math:`L_{plateau}`
+ :math:`L_{ramp,down}` :math:`R_c` :math:`n_0`
+
* ``<species_name>.do_backward_injection`` (`bool`)
Inject a backward-propagating beam to reduce the effect of charge-separation
fields when running in the boosted frame. See examples.
@@ -373,6 +408,25 @@ Laser initialization
Temporal chirp at focus.
See definition in Akturk et al., Opt Express, vol 12, no 19 (2014).
+* ``warpx.num_mirrors`` (`int`) optional (default `0`)
+ Users can input perfect mirror condition inside the simulation domain.
+ The number of mirrors is given by ``warpx.num_mirrors``. The mirrors are
+ orthogonal to the `z` direction. The following parameters are required
+ when ``warpx.num_mirrors`` is >0.
+
+* ``warpx.mirror_z`` (list of `float`) required if ``warpx.num_mirrors>0``
+ ``z`` location of the front of the mirrors.
+
+* ``warpx.mirror_z_width`` (list of `float`) required if ``warpx.num_mirrors>0``
+ ``z`` width of the mirrors.
+
+* ``warpx.mirror_z_npoints`` (list of `int`) required if ``warpx.num_mirrors>0``
+ In the boosted frame, depending on `gamma_boost`, ``warpx.mirror_z_width``
+ can be smaller than the cell size, so that the mirror would not work. This
+ parameter is the minimum number of points for the mirror. If
+ ``mirror_z_width < dz/cell_size``, the upper bound of the mirror is increased
+ so that it contains at least ``mirror_z_npoints``.
+
Numerics and algorithms
-----------------------