aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Docs/source/usage/examples.rst6
-rw-r--r--Examples/Physics_applications/laser_ion/inputs27
-rw-r--r--Regression/Checksum/benchmarks_json/LaserIonAcc2d.json40
3 files changed, 43 insertions, 30 deletions
diff --git a/Docs/source/usage/examples.rst b/Docs/source/usage/examples.rst
index a27b9f3df..cbaaa6bcb 100644
--- a/Docs/source/usage/examples.rst
+++ b/Docs/source/usage/examples.rst
@@ -60,6 +60,12 @@ Laser-ion acceleration
The resolution of this 2D case is extremely low by default.
You will need a computing cluster for adequate resolution of the target density, see comments in the input file.
+.. warning::
+
+ It is strongly advised to set the parameters ``<species>.zmin / zmax / xmin / ...`` when working with highly dense targets that are limited in one or multiple dimensions.
+ The particle creation routine will first create particles everywhere between these limits (`defaulting to box size if unset`), setting particles to invalid only afterwards based on the density profile.
+ Not setting these parameters can quickly lead to memory overflows.
+
Uniform plasma
--------------
diff --git a/Examples/Physics_applications/laser_ion/inputs b/Examples/Physics_applications/laser_ion/inputs
index f3659368c..91f8f0704 100644
--- a/Examples/Physics_applications/laser_ion/inputs
+++ b/Examples/Physics_applications/laser_ion/inputs
@@ -76,6 +76,14 @@ algo.load_balance_costs_update = Heuristic
#################################
# Target Profile
#
+
+# definitions for target extent and pre-plasma
+my_constants.L = 0.05e-6 # [m] scale length (>0)
+my_constants.Lcut = 2.0e-6 # [m] hard cutoff from surface
+my_constants.r0 = 2.5e-6 # [m] radius or half-thickness
+my_constants.eps_z = 0.05e-6 # [m] small offset in z to make zmin, zmax interval larger than 2*(r0 + Lcut)
+my_constants.zmax = r0 + Lcut + eps_z # [m] upper limit in z for particle creation
+
particles.species_names = electrons hydrogen
# particle species
@@ -83,8 +91,10 @@ hydrogen.species_type = hydrogen
hydrogen.injection_style = NUniformPerCell
hydrogen.num_particles_per_cell_each_dim = 2 2 4
hydrogen.momentum_distribution_type = at_rest
-#hydrogen.zmin = -10.0e-6
-#hydrogen.zmax = 10.0e-6
+# minimum and maximum z position between which particles are initialized
+# --> should be set for dense targets limit memory consumption during initialization
+hydrogen.zmin = -zmax
+hydrogen.zmax = zmax
hydrogen.profile = parse_density_function
hydrogen.addRealAttributes = orig_x orig_z
hydrogen.attribute.orig_x(x,y,z,ux,uy,uz,t) = "x"
@@ -96,8 +106,10 @@ electrons.num_particles_per_cell_each_dim = 2 2 4
electrons.momentum_distribution_type = "gaussian"
electrons.ux_th = .01
electrons.uz_th = .01
-#electrons.zmin = -10.0e-6
-#electrons.zmax = 10.0e-6
+# minimum and maximum z position between which particles are initialized
+# --> should be set for dense targets limit memory consumption during initialization
+electrons.zmin = -zmax
+electrons.zmax = zmax
# ionization physics (field ionization/ADK)
# [i1] none (fully pre-ionized):
@@ -130,12 +142,7 @@ my_constants.n0 = 30.0 # [n_c]
# [material 4] Copper (ion density: 8.49e28/m^3; times ionization level)
#my_constants.n0 = 1400
-# profiles
-# pre-plasma
-my_constants.L = 0.05e-6 # [1/m] scale length (>0)
-my_constants.Lcut = 2.0e-6 # [1/m] hard cutoff from surface
-# core: flat foil, cylinder or sphere
-my_constants.r0 = 2.5e-6 # [m] radius or half-thickness
+# density profiles (target extent, pre-plasma and cutoffs defined above particle species list)
# [target 1] flat foil (thickness = 2*r0)
electrons.density_function(x,y,z) = "nc*n0*(
diff --git a/Regression/Checksum/benchmarks_json/LaserIonAcc2d.json b/Regression/Checksum/benchmarks_json/LaserIonAcc2d.json
index 36dcc4813..6b9d29fbb 100644
--- a/Regression/Checksum/benchmarks_json/LaserIonAcc2d.json
+++ b/Regression/Checksum/benchmarks_json/LaserIonAcc2d.json
@@ -1,33 +1,33 @@
{
"electrons": {
- "particle_momentum_x": 3.819011093562328e-19,
+ "particle_momentum_x": 3.7558265697785297e-19,
"particle_momentum_y": 0.0,
- "particle_momentum_z": 1.6442909854275157e-18,
- "particle_position_x": 0.008132686101590795,
- "particle_position_y": 0.030529760810180325,
- "particle_weight": 2.641331189632942e+17
+ "particle_momentum_z": 1.6241045337016777e-18,
+ "particle_position_x": 0.008080139452222582,
+ "particle_position_y": 0.030470786164249836,
+ "particle_weight": 2.6527193922723818e+17
},
"hydrogen": {
- "particle_momentum_x": 2.2442952799834144e-18,
- "particle_momentum_z": 1.0841140295639398e-18,
- "particle_orig_x": 0.008258544921875001,
- "particle_orig_z": 0.0366896337890625,
- "particle_position_x": 0.008258183633694481,
- "particle_position_y": 0.036687836783915156,
- "particle_weight": 2.701906737218416e+17
+ "particle_momentum_x": 2.230242228305449e-18,
+ "particle_momentum_z": 1.087276856218956e-18,
+ "particle_orig_x": 0.008248212890625,
+ "particle_orig_z": 0.0368645947265625,
+ "particle_position_x": 0.008247833494376897,
+ "particle_position_y": 0.03686279813152423,
+ "particle_weight": 2.6934893377423152e+17
},
"lev=0": {
"Bx": 0.0,
- "By": 11393530.864665572,
+ "By": 11411806.976599155,
"Bz": 0.0,
- "Ex": 2033401599040428.8,
+ "Ex": 2035695789467976.2,
"Ey": 0.0,
- "Ez": 316047997346965.6,
- "jx": 1.634666300264935e+19,
+ "Ez": 323118235034526.9,
+ "jx": 1.656704421803856e+19,
"jy": 0.0,
- "jz": 8.884561198935773e+18,
- "rho": 61730016945.00626,
- "rho_electrons": 17451988195798.281,
- "rho_hydrogen": 17441819816491.93
+ "jz": 8.846078579875918e+18,
+ "rho": 61752907894.83176,
+ "rho_electrons": 17451375232572.703,
+ "rho_hydrogen": 17441818436520.373
}
} \ No newline at end of file