forked from SmileiPIC/Smilei
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcollisions.html
949 lines (899 loc) · 53.5 KB
/
collisions.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Binary collisions — Smilei v4.1-163-g011c2ce8 documentation</title>
<link rel="stylesheet" href="_static/smilei_theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script async="async" type="text/javascript" src="https://www.gitcdn.xyz/repo/mathjax/MathJax/master/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<link rel="shortcut icon" href="_static/smileiIcon.ico"/>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Ionization" href="ionization.html" />
<link rel="prev" title="Vectorization" href="vectorization.html" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
"HTML-CSS": {
scale: 95,
availableFonts: ["TeX"]
}
});
</script>
</head><body>
<div id="smallScreenMenu" class="off">
<div class="toctree-smilei">
<ul>
<li class="outer">
<a href="licence.html">Licence</a>
</li>
<li class="outer">
<a href="synopsis.html">Synopsis</a>
</li>
<li class="outer">
<a href="highlights.html">Highlights</a>
</li>
<li class="outer">
<a href="releases.html">Releases</a>
</li>
</ul>
<hr />
<ul>
<li class="outer">
<a href="units.html">Units</a>
</li>
<li class="outer">
<a href="algorithms.html">PIC algorithms</a>
</li>
<li class="outer">
<a href="parallelization.html">Parallelization basics</a>
</li>
<li class="outer">
<a href="vectorization.html">Vectorization</a>
</li>
</ul>
<ul>
<li><a class="reference internal" href="#">Binary collisions</a><ul>
<li><a class="reference internal" href="#the-binary-collision-scheme">The binary collision scheme</a></li>
<li><a class="reference internal" href="#test-cases-for-collisions">Test cases for collisions</a></li>
<li><a class="reference internal" href="#collisional-ionization">Collisional ionization</a></li>
<li><a class="reference internal" href="#test-cases-for-ionization">Test cases for ionization</a></li>
<li><a class="reference internal" href="#collisions-debugging">Collisions debugging</a></li>
<li><a class="reference internal" href="#references">References</a></li>
</ul>
</li>
</ul>
<ul>
<li class="outer">
<a href="ionization.html">Ionization</a>
</li>
<li class="outer">
<a href="radiation_loss.html">Synchrotron-like radiation reaction</a>
</li>
<li class="outer">
<a href="multiphoton_Breit_Wheeler.html">Multiphoton Breit-Wheeler pair creation</a>
</li>
<li class="outer">
<a href="laser_envelope.html">Laser envelope model</a>
</li>
<li class="outer">
<a href="relativistic_fields_initialization.html">Field initialization for relativistic species</a>
</li>
</ul>
<hr />
<ul>
<li class="outer">
<a href="installation.html">Install</a>
</li>
<li class="outer">
<a href="namelist.html">Write a namelist</a>
</li>
<li class="outer">
<a href="run.html">Run</a>
</li>
<li class="outer">
<a href="post-processing.html">Post-process</a>
</li>
<li class="outer">
<a href="contribute.html">Contribute</a>
</li>
</ul>
<hr />
<ul>
<li class="outer">
<a href="material.html">Publications</a>
</li>
<li class="outer">
<a href="partners.html">Partners</a>
</li>
<li class="outer">
<a href="https://smileipic.github.io/tutorials">Smilei tutorials</a>
</li>
</ul>
</div>
</div>
<div id="hcontainer">
<div id="nav_positioner">
<div id="nav">
<div id="nav_button" onclick="toggleNav()">
Sections
</div>
<div id="nav_list" class="toctree-smilei">
<div id="nav_title"><a href="#">Binary collisions</a></div>
<ul>
<li><a class="reference internal" href="#">Binary collisions</a><ul>
<li><a class="reference internal" href="#the-binary-collision-scheme">The binary collision scheme</a></li>
<li><a class="reference internal" href="#test-cases-for-collisions">Test cases for collisions</a></li>
<li><a class="reference internal" href="#collisional-ionization">Collisional ionization</a></li>
<li><a class="reference internal" href="#test-cases-for-ionization">Test cases for ionization</a></li>
<li><a class="reference internal" href="#collisions-debugging">Collisions debugging</a></li>
<li><a class="reference internal" href="#references">References</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="headercolor">
</div>
<div class="hpositioner">
<div class="header">
<div class="logo">
<a href="index.html">
<img class="logo" src="_static/smileiLogo.svg" alt="Logo" />
</a>
</div>
<div class="menu" id="menu_Licence">
<div id="menuButton_Licence" class="menuButton"
onmouseenter="prepareMenu('menu_Licence')"
onmousedown="event.preventDefault()"
>
<span>Overview</span>
</div>
<div class="off" onmouseleave="leaveMenu('menu_Licence',this)">
<div class="toctree-smilei">
<ul>
<li class="outer">
<a href="licence.html">Licence</a>
</li>
<li class="outer">
<a href="synopsis.html">Synopsis</a>
</li>
<li class="outer">
<a href="highlights.html">Highlights</a>
</li>
<li class="outer">
<a href="releases.html">Releases</a>
</li>
</ul>
</div>
</div>
</div>
<div class="menu" id="menu_Units" style="font-weight:bold">
<div id="menuButton_Units" class="menuButton"
onmouseenter="prepareMenu('menu_Units')"
onmousedown="event.preventDefault()"
>
<span>Understand</span>
</div>
<div class="off" onmouseleave="leaveMenu('menu_Units',this)">
<div class="toctree-smilei">
<ul>
<li class="outer">
<a href="units.html">Units</a>
</li>
<li class="outer">
<a href="algorithms.html">PIC algorithms</a>
</li>
<li class="outer">
<a href="parallelization.html">Parallelization basics</a>
</li>
<li class="outer">
<a href="vectorization.html">Vectorization</a>
</li>
<li >
<a href="#">Binary collisions</a>
</li>
<li class="outer">
<a href="ionization.html">Ionization</a>
</li>
<li class="outer">
<a href="radiation_loss.html">Synchrotron-like radiation reaction</a>
</li>
<li class="outer">
<a href="multiphoton_Breit_Wheeler.html">Multiphoton Breit-Wheeler pair creation</a>
</li>
<li class="outer">
<a href="laser_envelope.html">Laser envelope model</a>
</li>
<li class="outer">
<a href="relativistic_fields_initialization.html">Field initialization for relativistic species</a>
</li>
</ul>
</div>
</div>
</div>
<div class="menu" id="menu_Install">
<div id="menuButton_Install" class="menuButton"
onmouseenter="prepareMenu('menu_Install')"
onmousedown="event.preventDefault()"
>
<span>Use</span>
</div>
<div class="off" onmouseleave="leaveMenu('menu_Install',this)">
<div class="toctree-smilei">
<ul>
<li class="outer">
<a href="installation.html">Install</a>
</li>
<li class="outer">
<a href="namelist.html">Write a namelist</a>
</li>
<li class="outer">
<a href="run.html">Run</a>
</li>
<li class="outer">
<a href="post-processing.html">Post-process</a>
</li>
<li class="outer">
<a href="contribute.html">Contribute</a>
</li>
</ul>
</div>
</div>
</div>
<div class="menu" id="menu_Publications">
<div id="menuButton_Publications" class="menuButton"
onmouseenter="prepareMenu('menu_Publications')"
onmousedown="event.preventDefault()"
>
<span>More</span>
</div>
<div class="off" onmouseleave="leaveMenu('menu_Publications',this)">
<div class="toctree-smilei">
<ul>
<li class="outer">
<a href="material.html">Publications</a>
</li>
<li class="outer">
<a href="partners.html">Partners</a>
</li>
<li class="outer">
<a href="https://smileipic.github.io/tutorials">Smilei tutorials</a>
</li>
</ul>
</div>
</div>
</div>
<script type="text/javascript">
var es=document.getElementsByClassName("menuButton"), i=0;
var evt = "ontouchend" in document ? "touchend" : "click";
for( var i=0; i<es.length; i+=1 ) {
es[i].addEventListener(evt, function(a){ return function(){toggleMenu(a)};}(es[i].parentNode.id));
}
</script>
<div id="searchbox" role="search" style="display:none">
<form class="search" action="search.html" method="get">
<input type="text" name="q" placeholder="Search" id="searchinput" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<div id="searchicon" onclick="openSearch()" style="display:block">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 80 120">
<g transform="translate(0,-932.36216)" >
<circle
r="25" cy="977.51044" cx="38.078663"
style="opacity:1;fill:none;stroke:#ffffff;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
transform="matrix(0.36717877,0.93015039,-0.93427297,0.35655858,0,0)"
rx="4.9996676" ry="7.4995141"
y="316.16959" x="947.6142"
height="14.117695" width="46.476151"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;" />
<path
d="m 41.383282,962.25996 a 15,15 0 0 1 11.660107,11.6355"
style="opacity:1;fill:none;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>
</div>
<div id="closesearchicon" onclick="closeSearch()" style="display:none">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 80 120">
<g
transform="translate(0,-932.36216)">
<path
d="m 10,962.36216 60,60.00004"
style="fill:none;stroke:#ffffff;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
<path
d="M 70,962.36216 10,1022.3622"
style="fill:none;stroke:#ffffff;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
</g>
</svg>
</div>
<div id="smallScreenMenuButton" onclick="toggleSmallScreenMenu(event)">
<svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
viewBox="-20 -20 140 140">
<g style="fill:#ffffff;stroke:none;">
<circle cx="15" cy="20" r="5" />
<circle cx="35" cy="20" r="5" />
<circle cx="85" cy="20" r="5" />
<rect width="50" height="10" x="35" y="15" rx="0" ry="0" />
<circle cx="15" cy="40" r="5" />
<circle cx="35" cy="40" r="5" />
<circle cx="85" cy="40" r="5" />
<rect width="50" height="10" x="35" y="35" rx="0" ry="0" />
<circle cx="15" cy="60" r="5" />
<circle cx="35" cy="60" r="5" />
<circle cx="85" cy="60" r="5" />
<rect width="50" height="10" x="35" y="55" rx="0" ry="0" />
<circle cx="15" cy="80" r="5" />
<circle cx="35" cy="80" r="5" />
<circle cx="85" cy="80" r="5" />
<rect width="50" height="10" x="35" y="75" rx="0" ry="0" />
</g>
</svg>
</div>
</div>
</div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="ionization.html" title="Ionization"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="vectorization.html" title="Vectorization"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Smilei v4.1-163-g011c2ce8 documentation</a> »</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="binary-collisions">
<h1>Binary collisions<a class="headerlink" href="#binary-collisions" title="Permalink to this headline">¶</a></h1>
<p>Relativistic binary collisions between particles have been implemented in
<strong class="program">Smilei</strong> with the same scheme as the one developed for the
code <strong class="program">Calder</strong>. The following references describe the physics
and numerics of this implementation.</p>
<div class="line-block">
<div class="line"><a class="reference internal" href="#perez2012" id="id1">[Perez2012]</a> gives an overview of the technique.</div>
<div class="line"><a class="reference internal" href="#nanbu1997" id="id2">[Nanbu1997]</a> and <a class="reference internal" href="#nanbu1998" id="id3">[Nanbu1998]</a> give the original technique from which <a class="reference internal" href="#perez2012" id="id4">[Perez2012]</a> was developed.</div>
<div class="line"><a class="reference internal" href="#sentoku2008" id="id5">[Sentoku2008]</a>, <a class="reference internal" href="#lee1984" id="id6">[Lee1984]</a> and <a class="reference internal" href="#frankel1979" id="id7">[Frankel1979]</a> provide additional information.</div>
</div>
<p>Please refer to <a class="reference internal" href="namelist.html#collisions"><span class="std std-ref">that doc</span></a> for an explanation of how to add collisions in the namelist file.</p>
<hr class="docutils" />
<div class="section" id="the-binary-collision-scheme">
<h2>The binary collision scheme<a class="headerlink" href="#the-binary-collision-scheme" title="Permalink to this headline">¶</a></h2>
<p>Collisions are calculated at each timestep and for each collision block
given in the input file.</p>
<p>If <em>intra-collisions</em>:</p>
<blockquote>
<div><div class="line-block">
<div class="line">Create one array of indices pointing to all particles of the species group.</div>
<div class="line">Shuffle the array.</div>
<div class="line">Split the array in two halves.</div>
</div>
</div></blockquote>
<p>If <em>inter-collisions</em>:</p>
<blockquote>
<div><div class="line-block">
<div class="line">Create two arrays of indices pointing to all particles of each species group.</div>
<div class="line">Shuffle the largest array. The other array is not shuffled.</div>
<div class="line">=> The two resulting arrays represent pairs of particles (see algorithm in <a class="reference internal" href="#nanbu1998" id="id8">[Nanbu1998]</a>).</div>
</div>
</div></blockquote>
<p>Calculate a few intermediate quantities:</p>
<blockquote>
<div><div class="line-block">
<div class="line">Particle density <span class="math notranslate nohighlight">\(n_1\)</span> of group 1.</div>
<div class="line">Particle density <span class="math notranslate nohighlight">\(n_2\)</span> of group 2.</div>
<div class="line"><em>Crossed</em> particle density <span class="math notranslate nohighlight">\(n_{12}\)</span> (see <a class="reference internal" href="#perez2012" id="id9">[Perez2012]</a>).</div>
<div class="line">Other constants.</div>
</div>
</div></blockquote>
<p>For each pair of particles:</p>
<blockquote>
<div><div class="line-block">
<div class="line">Calculate the momenta in the center-of-mass (COM) frame.</div>
<div class="line">Calculate the coulomb log if requested (see <a class="reference internal" href="#perez2012" id="id10">[Perez2012]</a>).</div>
<div class="line">Calculate the parameter <span class="math notranslate nohighlight">\(s\)</span> and its correction at low temperature (see <a class="reference internal" href="#perez2012" id="id11">[Perez2012]</a>).</div>
<div class="line">Pick the deflection angle (see <a class="reference internal" href="#nanbu1997" id="id12">[Nanbu1997]</a>).</div>
<div class="line">Deflect particles in the COM frame and go back to the laboratory frame.</div>
</div>
</div></blockquote>
<p class="rubric">Modification in Smilei</p>
<p>A typo has been introduced in <a class="reference internal" href="#perez2012" id="id13">[Perez2012]</a>, Eq. (22), corresponding to the calculation of
the Coulomb Logarithm: the last parenthesis is written as a squared expression,
but should not. This was corrected in <strong class="program">Smilei</strong>.</p>
</div>
<hr class="docutils" />
<div class="section" id="test-cases-for-collisions">
<h2>Test cases for collisions<a class="headerlink" href="#test-cases-for-collisions" title="Permalink to this headline">¶</a></h2>
<p class="rubric">1. Beam relaxation</p>
<p>An electron beam with narrow energy spread enters an ion background with <span class="math notranslate nohighlight">\(T_i=10\)</span> eV.
The ions are of very small mass <span class="math notranslate nohighlight">\(m_i=10 m_e\)</span> to speed-up the calculation.
Only e-i collisions are calculated.
The beam gets strong isotropization => the average velocity relaxes to zero.</p>
<p>Three figures show the time-evolution of the longitudinal <span class="math notranslate nohighlight">\(\left<v_\|\right>\)</span>
and transverse velocity <span class="math notranslate nohighlight">\(\sqrt{\left<v_\perp^2\right>}\)</span></p>
<ul class="simple">
<li><a class="reference internal" href="#beam1"><span class="std std-numref">Fig. 9</span></a> : initial velocity = 0.05, ion charge = 1</li>
<li><a class="reference internal" href="#beam2"><span class="std std-numref">Fig. 10</span></a> : initial velocity = 0.01, ion charge = 1</li>
<li><a class="reference internal" href="#beam3"><span class="std std-numref">Fig. 11</span></a> : initial velocity = 0.01, ion charge = 3</li>
</ul>
<p>Each of these figures show 3 different blue and red curves which correspond to different
ratios of particle weights: 0.1, 1, and 10.</p>
<div class="figure" id="id23">
<span id="beam1"></span><a class="reference internal image-reference" href="_images/beam_relaxation123.png"><img alt="_images/beam_relaxation123.png" src="_images/beam_relaxation123.png" style="width: 10cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 9 </span><span class="caption-text">Relaxation of an electron beam. Initial velocity = 0.05, ion charge = 1.</span></p>
</div>
<div class="figure" id="id24">
<span id="beam2"></span><a class="reference internal image-reference" href="_images/beam_relaxation456.png"><img alt="_images/beam_relaxation456.png" src="_images/beam_relaxation456.png" style="width: 10cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 10 </span><span class="caption-text">Relaxation of an electron beam. Initial velocity = 0.01, ion charge = 1.</span></p>
</div>
<div class="figure" id="id25">
<span id="beam3"></span><a class="reference internal image-reference" href="_images/beam_relaxation789.png"><img alt="_images/beam_relaxation789.png" src="_images/beam_relaxation789.png" style="width: 10cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 11 </span><span class="caption-text">Relaxation of an electron beam. Initial velocity = 0.01, ion charge = 3.</span></p>
</div>
<p>The black lines correspond to the theoretical rates taken from the NRL formulary:</p>
<div class="math notranslate nohighlight">
\[\nu_\| = -\left(1+\frac{m_e}{m_i}\right)\nu_0
\quad\textrm{and}\quad
\nu_\perp = 2\;\nu_0
\quad\textrm{where}\quad
\nu_0=\frac{e^4\,Z^{\star 2}\,n_i\,\ln\Lambda } { 4 \pi \epsilon_0^2 \,m_e^2\,v_e^3 }\]</div>
<p>The distribution is quickly non-Maxwellian so that theory is valid only at the beginning.</p>
<p class="rubric">2. Thermalization</p>
<p>A population of electrons has a different temperature from that of the ion population.
Through e-i collisions, the two temperatures become equal.
The ions are of very small mass <span class="math notranslate nohighlight">\(m_i=10 m_e\)</span> to speed-up the calculation.
Three cases are simulated, corresponding to different ratios of weights: 0.2, 1 and 5.
They are plotted in <a class="reference internal" href="#thermalization"><span class="std std-numref">Fig. 12</span></a>.</p>
<div class="figure" id="id26">
<span id="thermalization"></span><a class="reference internal image-reference" href="_images/thermalisation_ei123.png"><img alt="_images/thermalisation_ei123.png" src="_images/thermalisation_ei123.png" style="width: 9cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 12 </span><span class="caption-text">Thermalization between two species.</span></p>
</div>
<p>The black lines correspond to the theoretical rates taken from the NRL formulary:</p>
<div class="math notranslate nohighlight">
\[\nu_\epsilon=\frac{e^4\,Z^{\star 2} \sqrt{m_em_i}\,n_i\,\ln\Lambda }
{ 8 \epsilon_0^2 \,\left(m_eT_e+m_iT_i\right)^{3/2} }\]</div>
<p class="rubric">3. Temperature isotropization</p>
<p>Electrons have a longitudinal temperature different from their transverse temperature.
They collide only with themselves (intra-collisions) and the anisotropy disappears
as shown in <a class="reference internal" href="#temperature-isotropization"><span class="std std-numref">Fig. 13</span></a>.</p>
<div class="figure" id="id27">
<span id="temperature-isotropization"></span><a class="reference internal image-reference" href="_images/temperature_isotropization1.png"><img alt="_images/temperature_isotropization1.png" src="_images/temperature_isotropization1.png" style="width: 10cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 13 </span><span class="caption-text">Temperature isotropization of an electron population.</span></p>
</div>
<p>The black lines correspond to the theoretical rates taken from the NRL formulary:</p>
<div class="math notranslate nohighlight">
\[\nu_T=\frac{e^4 \,n_e\,\ln\Lambda } { 8\pi^{3/2} \epsilon_0^2 \,m_e^{1/2}T_\|^{3/2} }
A^{-2} \left[-3+(3-A)\frac{\rm{arctanh}(\sqrt{A})}{\sqrt{A}}\right]
\quad \rm{where}\quad A=1-\frac{T_\perp}{T_\|}\]</div>
<p class="rubric">4. Maxwellianization</p>
<p>Electrons start with zero temperature along <span class="math notranslate nohighlight">\(y\)</span> and <span class="math notranslate nohighlight">\(z\)</span>.
Their velocity distribution along <span class="math notranslate nohighlight">\(x\)</span> is rectangular.
They collide only with themselves and the rectangle becomes a maxwellian
as shown in <a class="reference internal" href="#maxwellianization"><span class="std std-numref">Fig. 14</span></a>.</p>
<div class="figure" id="id28">
<span id="maxwellianization"></span><a class="reference internal image-reference" href="_images/Maxwellianization1.png"><img alt="_images/Maxwellianization1.png" src="_images/Maxwellianization1.png" style="width: 10cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 14 </span><span class="caption-text">Maxwellianization of an electron population.
Each blue curve is the distribution at a given time.
The red curve is an example of a gaussian function.</span></p>
</div>
<p class="rubric">5. Stopping power</p>
<p>Test electrons (very low density) collide with background electrons of density
<span class="math notranslate nohighlight">\(10\,n_c\)</span> and <span class="math notranslate nohighlight">\(T_e=5\)</span> keV.
Depending on their initial velocity, they are slowed down at different rates,
as shown in <a class="reference internal" href="#stoppingpower"><span class="std std-numref">Fig. 15</span></a>.</p>
<div class="figure" id="id29">
<span id="stoppingpower"></span><a class="reference internal image-reference" href="_images/Stopping_power123.png"><img alt="_images/Stopping_power123.png" src="_images/Stopping_power123.png" style="width: 10cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 15 </span><span class="caption-text">Stopping power of test electrons into a background electron population.
Each point is one simulation. The black line is Frankel’s theory <a class="reference internal" href="#frankel1979" id="id14">[Frankel1979]</a>.</span></p>
</div>
<p class="rubric">6. Conductivity</p>
<p>Solid-density Cu is simulated at different temperatures (e-i equilibrium) with only
e-i collisions. An electric field of <span class="math notranslate nohighlight">\(E=3.2\)</span> GV/m (0.001 in code units) is
applied using two charged layers on each side of the solid Cu.
The electron velocity increases until a limit value <span class="math notranslate nohighlight">\(v_f\)</span>.
The resulting conductivity <span class="math notranslate nohighlight">\(\sigma=en_ev_f/E\)</span> is compared in
<a class="reference internal" href="#conductivity"><span class="std std-numref">Fig. 16</span></a> to the models in <a class="reference internal" href="#lee1984" id="id15">[Lee1984]</a> and <a class="reference internal" href="#perez2012" id="id16">[Perez2012]</a>.</p>
<div class="figure" id="id30">
<span id="conductivity"></span><a class="reference internal image-reference" href="_images/conductivity.png"><img alt="_images/conductivity.png" src="_images/conductivity.png" style="width: 10cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 16 </span><span class="caption-text">Conductivity of solid-density copper. Each point is one simulation.</span></p>
</div>
<hr class="docutils" />
</div>
<div class="section" id="collisional-ionization">
<span id="collionization"></span><h2>Collisional ionization<a class="headerlink" href="#collisional-ionization" title="Permalink to this headline">¶</a></h2>
<p>The binary collisions can also be ionizing if they are <strong>electron-ion</strong> collisions.
The approach is almost the same as that provided in <a class="reference internal" href="#perez2012" id="id17">[Perez2012]</a>.</p>
<p>When ionization is requested by setting <code class="docutils literal notranslate"><span class="pre">ionizing=True</span></code>, a few additional operations
are executed:</p>
<ul class="simple">
<li>At the beginning of the run, cross-sections are calculated from tabulated binding
energies (available for ions up to atomic number 100). These cross-sections are then
tabulated for each requested ion species.</li>
<li>Each timestep, the particle density <span class="math notranslate nohighlight">\(n = n_e n_i/n_{ei}\)</span>
(similar to the densities above for collisions) is calculated.</li>
<li>During each collision, a probability for ionization is computed. If successful,
the ion charge is increased, the incident electron is slowed down, and a new electron
is created.</li>
</ul>
<p class="rubric">Warnings</p>
<ul class="simple">
<li>This scheme does not account for recombination, which would balance ionization
over long time scales.</li>
</ul>
<p class="rubric">Relativistic change of frame</p>
<p>A modification has been added to the theory of <a class="reference internal" href="#perez2012" id="id18">[Perez2012]</a> in order to account for the
laboratory frame being different from the ion frame. Considering <span class="math notranslate nohighlight">\(\overrightarrow{p_e}\)</span>
and <span class="math notranslate nohighlight">\(\overrightarrow{p_i}\)</span> the electron and ion momenta in the laboratory frame,
and their associated Lorentz factors <span class="math notranslate nohighlight">\(\gamma_e\)</span> and <span class="math notranslate nohighlight">\(\gamma_i\)</span>, we define
<span class="math notranslate nohighlight">\(\overrightarrow{q_e}=\overrightarrow{p_e}/(m_e c)\)</span> and
<span class="math notranslate nohighlight">\(\overrightarrow{q_i}=\overrightarrow{p_i}/(m_i c)\)</span>.
The Lorentz factor of the electron in the ion frame is
<span class="math notranslate nohighlight">\(\gamma_e^\star=\gamma_e\gamma_i-\overrightarrow{q_e}\cdot\overrightarrow{q_i}\)</span>.
The probability for ionization reads:</p>
<div class="math notranslate nohighlight">
\[P = 1-\exp\left( - v_e \sigma n \Delta t \right) = 1-\exp\left( -V^\star \sigma^\star n \Delta t \right)\]</div>
<p>where <span class="math notranslate nohighlight">\(v_e\)</span> is the electron velocity in the laboratory frame,
<span class="math notranslate nohighlight">\(\sigma\)</span> is the cross-section in the laboratory frame, <span class="math notranslate nohighlight">\(\sigma^\star\)</span>
is the cross-section in the ion frame, and
<span class="math notranslate nohighlight">\(V^\star=c\sqrt{\gamma_e^{\star\,2}-1}/(\gamma_e\gamma_i)\)</span>.</p>
<p>The loss of energy <span class="math notranslate nohighlight">\(m_ec^2 \delta\gamma\)</span> of the incident electron translates into a change in momentum
<span class="math notranslate nohighlight">\({q_e^\star}' = \alpha_e q_e^\star\)</span> in the ion frame, with
<span class="math notranslate nohighlight">\(\alpha_e=\sqrt{(\gamma_e^\star-\delta\gamma)^2-1}/\sqrt{\gamma_e^{\star2}-1}\)</span>.
In the laboratory frame, it becomes
<span class="math notranslate nohighlight">\(\overrightarrow{q_e'}=\alpha_e\overrightarrow{q_e}+((1-\alpha_e)\gamma_e^\star-\delta\gamma)\overrightarrow{q_i}\)</span>.</p>
<p>A similar operation is done for defining the momentum of the new electron in the lab frame.
It is created with energy <span class="math notranslate nohighlight">\(m_ec^2 (\gamma_w-1)\)</span> and its momentum is
<span class="math notranslate nohighlight">\(q_w^\star = \alpha_w q_e^\star\)</span> in the ion frame, with
<span class="math notranslate nohighlight">\(\alpha_w=\sqrt{\gamma_w^2-1}/\sqrt{\gamma_e^{\star 2}-1}\)</span>.
In the laboratory frame, it becomes
<span class="math notranslate nohighlight">\(\overrightarrow{q_w}=\alpha_w\overrightarrow{q_e}+(\gamma_w-\alpha_w\gamma_e^\star)\overrightarrow{q_i}\)</span>.</p>
<p class="rubric">Multiple ionization</p>
<p>A modification has been added to the theory of <a class="reference internal" href="#perez2012" id="id19">[Perez2012]</a> in order to account for
multiple ionization in a single timestep. The approach for field ionization
by <a class="reference external" href="http://dx.doi.org/10.1063/1.3559494">Nuter et al</a>
has been adapted to calculate the successive impact ionization probabilities
when an ion is ionized several times in a row.</p>
<p>Writing the probability to not ionize an ion already ionized <span class="math notranslate nohighlight">\(i\)</span> times as
<span class="math notranslate nohighlight">\(\bar{P}^i = \exp\left( -W_i\Delta t\right)\)</span>, and defining
<span class="math notranslate nohighlight">\(R^m_n = (1-W_m/W_n)^{-1}\)</span>, we can calculate the probability to ionize <span class="math notranslate nohighlight">\(k\)</span> times
the ion:</p>
<div class="math notranslate nohighlight">
\[\begin{split}P^i_k = \left\{
\begin{array}{ll}
\bar{P}^i
&
\quad\mathrm{if}\quad k=0
\\
\sum\limits_{p=0}^{k-1} R^{i+k}_{i+p} \left(\bar{P}^{i+k} - \bar{P}^{i+p}\right)
\prod\limits_{j=0,j\ne p}^{k-1} R^{i+p}_{i+j}
&
\quad\mathrm{if}\quad 0<k<k_\mathrm{max}
\\
\sum\limits_{p=0}^{k-1} \left[ 1+R^{i+k}_{i+p}\left(\frac{W_{i+k}}{W_{i+p}}\bar{P}^{i+p} - \bar{P}^{i+k}\right) \right]
\prod\limits_{j=0,j\ne p}^{k-1} R^{i+p}_{i+j}
&
\quad\mathrm{if}\quad k=k_\mathrm{max}
\end{array}
\right.\end{split}\]</div>
<p>where <span class="math notranslate nohighlight">\(k_\mathrm{max} = Z-Z^\star\)</span>.</p>
<p>The cumulative probability <span class="math notranslate nohighlight">\(F^i_k = \sum_{j=0}^{k} P^i_j\)</span> provides an efficient
way to pick when the ionization stops: we pick a random number <span class="math notranslate nohighlight">\(U\in [0,1]\)</span> and
loop from <span class="math notranslate nohighlight">\(k=0\)</span> to <span class="math notranslate nohighlight">\(k_\mathrm{max}\)</span>. We stop ionizing when <span class="math notranslate nohighlight">\(F^i_k>U\)</span>.</p>
</div>
<hr class="docutils" />
<div class="section" id="test-cases-for-ionization">
<h2>Test cases for ionization<a class="headerlink" href="#test-cases-for-ionization" title="Permalink to this headline">¶</a></h2>
<p class="rubric">1. Ionization rate</p>
<p>A cold plasma of <span class="math notranslate nohighlight">\(\mathrm{Al}^{3+}\)</span> is set with density <span class="math notranslate nohighlight">\(n_e=10^{21} \mathrm{cm}^{-3}\)</span>
and with all electrons drifting at a velocity <span class="math notranslate nohighlight">\(v_e=0.03\,c\)</span>. The charge state of ions
versus time is shown in <a class="reference internal" href="#ionizationrate"><span class="std std-numref">Fig. 17</span></a> where the three dotted curves correspond
to three different weight ratios between electrons and ions.</p>
<div class="figure" id="id31">
<span id="ionizationrate"></span><a class="reference internal image-reference" href="_images/ionization_rate.png"><img alt="_images/ionization_rate.png" src="_images/ionization_rate.png" style="width: 10cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 17 </span><span class="caption-text">Ionization of an aluminium plasma by drifting electrons.</span></p>
</div>
<p>The theoretical curve (in black) corresponds to <span class="math notranslate nohighlight">\(1-\exp\left(v_en_e\sigma t\right)\)</span>
where <span class="math notranslate nohighlight">\(\sigma\)</span> is the ionization cross section of <span class="math notranslate nohighlight">\(\mathrm{Al}^{3+}\)</span> at the
right electron energy. The discrepancy at late time is due to the changing velocity
distributions and to the next level starting to ionize.</p>
<p class="rubric">2. Inelastic stopping power</p>
<p>A cold, non-ionized Al plasma is set with density <span class="math notranslate nohighlight">\(n_e=10^{21} \mathrm{cm}^{-3}\)</span>.
Electrons of various initial velocities are slowed down by ionizing collisions and their
energy loss is recorded as a function of time.</p>
<p>A few examples are given in the left graph of <a class="reference internal" href="#ionizationstoppinpower"><span class="std std-numref">Fig. 18</span></a>.
The theoretical curve is obtained from <a class="reference internal" href="#rohrlich1954" id="id20">[Rohrlich1954]</a>. Note that this theory does not
work below a certain average ionization energy, in our case <span class="math notranslate nohighlight">\(\sim 200\)</span> eV.</p>
<div class="figure" id="id32">
<span id="ionizationstoppinpower"></span><a class="reference internal image-reference" href="_images/ionization_stopping_power.png"><img alt="_images/ionization_stopping_power.png" src="_images/ionization_stopping_power.png" style="width: 14cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 18 </span><span class="caption-text">Left: ionization slowing down versus time, for electrons injected at various
initial energies into cold Al. Right: corresponding stopping power versus initial
electron energy.</span></p>
</div>
<p>In the same figure, the graph on the right-hand-side provides the stopping power value
in the same context, at different electron energies. It is compared to the same theory.</p>
<p class="rubric">3. Multiple ionization</p>
<p>If the timestep is large, multiple ionization can occur, especially with cold high-Z
material and high-energy electrons. The multiple ionization algorithm is not perfect,
as it does not shuffle the particles for each ionization. Thus, good statistical
sampling is reached after several timesteps. To test the potential error,
we ran simulations of electrons at 1 MeV incident on cold atoms. The evolution of the
secondary electron density is monitored versus time in <a class="reference internal" href="#ionizationmultiple"><span class="std std-numref">Fig. 19</span></a>.</p>
<div class="figure" id="id33">
<span id="ionizationmultiple"></span><a class="reference internal image-reference" href="_images/ionization_multiple.png"><img alt="_images/ionization_multiple.png" src="_images/ionization_multiple.png" style="width: 10cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 19 </span><span class="caption-text">Secondary electron density <em>vs</em> time, for cold plasmas traversed by a 1 MeV electron beam.</span></p>
</div>
<p>The solid lines correspond to a very-well resolved ionization, whereas the dashed lines
correspond to a large timestep. A difference is visible initially, but decreases
quickly as the statistical sampling increases and as the subsequent ionization
cross-sections decrease.</p>
<p class="rubric">3. Effect of neglecting recombination</p>
<p>As recombination is not accounted for, we can expect excess ionization to occur indefinitely
without being balanced to equilibrium. However, in many cases, the recombination rate
is small and can be neglected over the duration of the simulation. We provide an example
that is relevant to picosecond-scale laser-plasma interaction. Plasmas initially at
a density of 10 times the critical density are given various initial temperatures.
Ionization initially increases while the temperature decreases, until, after a while,
their charge state stagnates (it still increases, but very slowly).
In <a class="reference internal" href="#ionizationrecombination"><span class="std std-numref">Fig. 20</span></a>, these results are compared to a Thomas-Fermi model
from <a class="reference internal" href="#desjarlais2001" id="id21">[Desjarlais2001]</a>.</p>
<div class="figure" id="id34">
<span id="ionizationrecombination"></span><a class="reference internal image-reference" href="_images/ionization_recombination.png"><img alt="_images/ionization_recombination.png" src="_images/ionization_recombination.png" style="width: 12cm;" /></a>
<p class="caption"><span class="caption-number">Fig. 20 </span><span class="caption-text">Final charge state of various plasmas at various temperatures.</span></p>
</div>
<p>The model does not account for detailed ionization potentials. It provides a rough
approximation, and is particularly questionable for low temperatures or high Z.
We observe that Smilei’s approach for impact ionization provides decent estimates
of the ionization state. Detailed comparison to atomic codes has not been done yet.</p>
</div>
<hr class="docutils" />
<div class="section" id="collisions-debugging">
<h2>Collisions debugging<a class="headerlink" href="#collisions-debugging" title="Permalink to this headline">¶</a></h2>
<p>Using the parameter <code class="docutils literal notranslate"><span class="pre">debug_every</span></code> in a <code class="docutils literal notranslate"><span class="pre">Collisions()</span></code> group (see <a class="reference internal" href="namelist.html#collisions"><span class="std std-ref">Collisions</span></a>)
will create a file with info about these collisions.
These information are stored in the files “Collisions0.h5”, “Collisions1.h5”, etc.</p>
<dl class="docutils">
<dt>The <em>hdf5</em> files are structured as follows:</dt>
<dd>One HDF5 file contains several groups called <code class="docutils literal notranslate"><span class="pre">"t********"</span></code> where <code class="docutils literal notranslate"><span class="pre">"********"</span></code>
is the timestep. Each of these groups contains several arrays, which represent
quantities <em>vs.</em> space.</dd>
</dl>
<p>The available arrays are:</p>
<blockquote>
<div><ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">s</span></code>: defined in <a class="reference internal" href="#perez2012" id="id22">[Perez2012]</a>: <span class="math notranslate nohighlight">\(s=N\left<\theta^2\right>\)</span>, where <span class="math notranslate nohighlight">\(N\)</span> is
the typical number of real collisions during a timestep, and
<span class="math notranslate nohighlight">\(\left<\theta^2\right>\)</span> is the average square deviation of individual
real collisions. This quantity somewhat represents the typical amount of angular
deflection accumulated during one timestep.
<strong>It is recommended that</strong> <span class="math notranslate nohighlight">\(s<1\)</span> <strong>in order to have realistic collisions.</strong></li>
<li><code class="docutils literal notranslate"><span class="pre">coulomb_log</span></code>: average Coulomb logarithm.</li>
<li><code class="docutils literal notranslate"><span class="pre">debyelength</span></code>: Debye length (not provided if all Coulomb logs are manually defined).</li>
</ul>
</div></blockquote>
<p>The arrays have the same dimension as the plasma, but each element of these arrays
is an average over all the collisions occurring in a single <em>patch</em>.</p>
</div>
<hr class="docutils" />
<div class="section" id="references">
<h2>References<a class="headerlink" href="#references" title="Permalink to this headline">¶</a></h2>
<table class="docutils citation" frame="void" id="desjarlais2001" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id21">[Desjarlais2001]</a></td><td><a class="reference external" href="http://dx.doi.org/10.1002/1521-3986%28200103%2941%3A2%2F3%3C267%3A%3AAID-CTPP267%3E3.0.CO%3B2-P">M. Desjarlais, Contrib. Plasma Phys. 41, 267 (2001)</a></td></tr>
</tbody>
</table>
<table class="docutils citation" frame="void" id="frankel1979" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label">[Frankel1979]</td><td><em>(<a class="fn-backref" href="#id7">1</a>, <a class="fn-backref" href="#id14">2</a>)</em> <a class="reference external" href="http://dx.doi.org/10.1143/JPSJ.67.4084">N. E. Frankel, K. C. Hines, and R. L. Dewar, Phys. Rev. A 20, 2120 (1979)</a></td></tr>
</tbody>
</table>
<table class="docutils citation" frame="void" id="lee1984" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label">[Lee1984]</td><td><em>(<a class="fn-backref" href="#id6">1</a>, <a class="fn-backref" href="#id15">2</a>)</em> <a class="reference external" href="http://dx.doi.org/10.1063/1.864744">Y. T. Lee and R. M. More, Phys. Fluids 27, 1273 (1984)</a></td></tr>
</tbody>
</table>
<table class="docutils citation" frame="void" id="nanbu1997" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label">[Nanbu1997]</td><td><em>(<a class="fn-backref" href="#id2">1</a>, <a class="fn-backref" href="#id12">2</a>)</em> <a class="reference external" href="http://dx.doi.org/10.1103/PhysRevE.55.4642">K. Nanbu, Phys. Rev. E 55, 4642 (1997)</a></td></tr>
</tbody>
</table>
<table class="docutils citation" frame="void" id="nanbu1998" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label">[Nanbu1998]</td><td><em>(<a class="fn-backref" href="#id3">1</a>, <a class="fn-backref" href="#id8">2</a>)</em> <a class="reference external" href="http://dx.doi.org/10.1006/jcph.1998.6049">K. Nanbu and S. Yonemura, J. Comput. Phys. 145, 639 (1998)</a></td></tr>
</tbody>
</table>
<table class="docutils citation" frame="void" id="perez2012" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label">[Perez2012]</td><td><em>(<a class="fn-backref" href="#id1">1</a>, <a class="fn-backref" href="#id4">2</a>, <a class="fn-backref" href="#id9">3</a>, <a class="fn-backref" href="#id10">4</a>, <a class="fn-backref" href="#id11">5</a>, <a class="fn-backref" href="#id13">6</a>, <a class="fn-backref" href="#id16">7</a>, <a class="fn-backref" href="#id17">8</a>, <a class="fn-backref" href="#id18">9</a>, <a class="fn-backref" href="#id19">10</a>, <a class="fn-backref" href="#id22">11</a>)</em> <a class="reference external" href="http://dx.doi.org/10.1063/1.4742167">F. Pérez et al., Phys. Plasmas 19, 083104 (2012)</a></td></tr>
</tbody>
</table>
<table class="docutils citation" frame="void" id="rohrlich1954" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id20">[Rohrlich1954]</a></td><td><a class="reference external" href="http://journals.aps.org/pr/abstract/10.1103/PhysRev.93.38">F. Rohrlich and B. C. Carlson, Phys. Rev. 93, 38 (1954)</a></td></tr>
</tbody>
</table>
<table class="docutils citation" frame="void" id="sentoku2008" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
<tr><td class="label"><a class="fn-backref" href="#id5">[Sentoku2008]</a></td><td><a class="reference external" href="http://dx.doi.org/10.1016/j.jcp.2008.03.043">Y. Sentoku and A. J. Kemp, J. Comput. Phys. 227, 6846 (2008)</a></td></tr>
</tbody>
</table>
</div>
</div>
</div></div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="ionization.html" title="Ionization"
>next</a> |</li>
<li class="right" >
<a href="vectorization.html" title="Vectorization"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Smilei v4.1-163-g011c2ce8 documentation</a> »</li>
</ul>
</div>
<div class="footer">
<div>
<a href="site.html">Site index</a>
</div>
<div>
Last updated on Jan 31, 2019
</div>
<div>
Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.3</a>
</div>
</div>
<script type="text/javascript">
var nav = document.getElementById("nav");
var nav_list = document.getElementById("nav_list");
var nav_button = document.getElementById("nav_button");
var smallScreenMenu = document.getElementById("smallScreenMenu");
var smallScreenMenuButton = document.getElementById("smallScreenMenuButton");
var searchicon = document.getElementById("searchicon");
var searchbox = document.getElementById("searchbox");
var searchinput= document.getElementById("searchinput");
var menus = document.getElementsByClassName("menu");
for( var i=0; i<menus.length; i++ )
menus[i].active = false;
var ul = nav_list.getElementsByTagName("ul")[0], li;
var keep_nav = false;
if( ul ) {
li = ul.firstElementChild;
if( li ) {
if( li.getElementsByTagName("ul").length > 0 ) keep_nav = true;
}
}
if( keep_nav ) {
li.removeChild( li.firstElementChild );
} else {
document.getElementById("nav_positioner").removeChild( document.getElementById("nav") );
}
function navOff() {
nav_list.style.display = "none";
nav_button.className = "";
nav.style.overflowY = "visible";
}
function toggleNav() {
for( var i=0; i<menus.length; i++ )
menuOff( menus[i] );
if( nav_list.style.display != "inline-block" ) {
nav_list.style.display = "inline-block";
nav_button.className = "pushed";
nav.style.overflowY = "auto";
} else {
navOff();
}
}
function toggleSmallScreenMenu(e) {
e.preventDefault();
if( smallScreenMenu.className != "on" ) {
smallScreenMenu.className = "on";
smallScreenMenuButton.className = "pushed";
} else {
smallScreenMenu.className = "off";
smallScreenMenuButton.className = "";
}
}
function prepareMenu(menu_id) {
var menu = document.getElementById(menu_id);
menu.timer1 = setTimeout(function(a){ return function(){thisMenuOnly(a)};}(menu_id), 100);
menu.addEventListener("mouseleave", function(a){ return function(){clearTimeout(a.timer1)};}(menu) );
}
function leaveMenu(menu_id, source) {
var menu = document.getElementById(menu_id);
menu.timer2 = setTimeout(function(a){ return function(){menuOff(a)};}(menu), 1000);
source.addEventListener("mouseenter", function(a){ return function(){clearTimeout(a.timer2)};}(menu) );
}
function menuOn( menu ) {
var divs = menu.getElementsByTagName("div");
if(nav_list) navOff();
divs[1].className = "on";
divs[0].className = "menuButton pushed";
menu.active = true;
}
function menuOff( menu ) {
var divs = menu.getElementsByTagName("div");
divs[1].className = "off";
divs[0].className = "menuButton";
menu.active = false;
}
function thisMenuOnly(menu_id) {
var menu = document.getElementById(menu_id);
for( var i=0; i<menus.length; i++ )
if( i!=menu_id )
menuOff( menus[i] );
menuOn( menu );
}
function toggleMenu(menu_id) {
var menu = document.getElementById(menu_id);
if( menu.active ) {
menuOff( menu );
} else {
for( var i=0; i<menus.length; i++ )
if( i!=menu_id )
menuOff( menus[i] );
menuOn( menu );
}
}
function openSearch() {
for( var i=0; i<menus.length; i++ ) {
menuOff( menus[i] );
menus[i].style.zIndex = "-1";
}
searchicon.style.display = "none";
closesearchicon.style.display = "block";
searchbox.style.display = "block";
searchinput.focus();
}
function closeSearch() {
searchicon.style.display = "block";
closesearchicon.style.display = "none";
searchbox .style.display = "none";
for( var i=0; i<menus.length; i++ )
menus[i].style.zIndex = "0";
}
var documentDiv = document.getElementsByClassName("document")[0];
documentDiv.addEventListener('click', function (event) {
if(nav_list) navOff();
for( var i=0; i<menus.length; i++ )
menuOff( menus[i] );
});
</script>
</body>
</html>