document the wave polarisation convention

This commit is contained in:
Michele Guerini Rocco 2024-11-09 12:02:14 +01:00
parent 16ec1a1d06
commit 0ab0fcbf60
Signed by: rnhmjoj
GPG Key ID: BFBAF4C975F76450
7 changed files with 499 additions and 84 deletions

View File

@ -42,7 +42,7 @@ in
makefile2graph graphviz makefile2graph graphviz
# documentation # documentation
help2man pandoc help2man pandoc librsvg
haskellPackages.pandoc-crossref haskellPackages.pandoc-crossref
(texlive.combine { (texlive.combine {
inherit (texlive) scheme-small xetex fontspec; inherit (texlive) scheme-small xetex fontspec;

View File

@ -5,7 +5,7 @@ author:
- L. Figini[^1] - L. Figini[^1]
- A. Mariani[^1] - A. Mariani[^1]
- M. Guerini Rocco[^2] - M. Guerini Rocco[^2]
date: 'November 30, 2012. Updated: November 30, 2021' date: 'November 30, 2012. Updated: November 9, 2024'
lang: en-GB lang: en-GB
language: english language: english
@ -124,8 +124,8 @@ header-includes: |
```{=latex} ```{=latex}
% Set font only if available % Set font only if available
\IfFontExistsTF{Libertinus Serif}{\setmainfont{Libertinus Serif}}{} \IfFontExistsTF{Libertinus Serif}{\setmainfont{Libertinus Serif}}{}
\IfFontExistsTF{Libertinus Math}{\setmonofont{Libertinus Math}}{} \IfFontExistsTF{Libertinus Math}{\setmathfont{Libertinus Math}}{}
\IfFontExistsTF{blabla}{\setsansfont{blablabla}}{} \IfFontExistsTF{Julia Mono}{\setmathfont{Julia Mono}}{}
``` ```
... ...

View File

@ -3,22 +3,22 @@
## Coordinate Reference systems ## Coordinate Reference systems
A few sets of coordinate systems are used in the code. The reference system is A few sets of coordinate systems are used in the code. The reference system is
the right handed cartesian orthogonal system $(x, y, z)$ with $z$ axis being the right handed Cartesian orthogonal system $(x, y, z)$ with $z$ axis being
the tokamak symmetry axis. For the purpose of the physics analysis this the tokamak symmetry axis. For the purpose of the physics analysis this
coordinate system may be rotated around the $z-$axis so that the $x z$ plane coordinate system may be rotated around the $z-$axis so that the $x z$ plane
contains the launching point, i.e., $z$ vertical, $x$ radially outward through contains the launching point, i.e., $z$ vertical, $x$ radially outward through
the port center, and $y$ pointing in the counter clockwise direction when the port center, and $y$ pointing in the counter clockwise direction when
viewed from above. viewed from above.
In addition to the right handed cartesian orthogonal system specified above, we In addition to the right handed Cartesian orthogonal system specified above, we
introduce also a right-handed cylindrical system $(R,φ,Z)$ with transformation introduce also a right-handed cylindrical system $(R,φ,Z)$ with transformation
from the cylindrical to the cartesian system given by $x= R\cosφ$, $y=R\sinφ$, from the cylindrical to the Cartesian system given by $x= R\cosφ$, $y=R\sinφ$,
$z=Z$. $z=Z$.
## Quasi-optical approximation ## Quasi-optical approximation
In the complex eikonal framework, the a solution of the wave equation for the In the complex eikonal framework, a solution of the wave equation for the
electric field is looked for in the form electric field is looked for in the form
$$ $$
@ -28,9 +28,9 @@ $$
$$ {#eq:eikonal-ansatz} $$ {#eq:eikonal-ansatz}
such that it allows for Gaussian beam descriptions. such that it allows for Gaussian beam descriptions.
In [@eq:eikonal-ansatz], $ω$ is the real frequency, $k_0 = ω/c$ the In [@eq:eikonal-ansatz], $ω$ is the real frequency, $k_0 = ω/c$ the wavevector
wavevector amplitude in vacuum, ${\bf e}({\bf x})$ the polarisation versor and amplitude in vacuum, ${\bf e}({\bf x})$ the normalised polarisation (Jones)
$E_0({\bf x})$ the slowly varying wave amplitude. vector and $E_0({\bf x})$ the slowly varying wave amplitude.
The function $S({\bf x})$ is the complex eikonal, $S = S_R({\bf x}) + i S_I The function $S({\bf x})$ is the complex eikonal, $S = S_R({\bf x}) + i S_I
({\bf x})$, in which the real part $S_R({\bf x})$ is related to the beam ({\bf x})$, in which the real part $S_R({\bf x})$ is related to the beam
@ -456,16 +456,53 @@ $$
$$ {#eq:pjgauss} $$ {#eq:pjgauss}
## Reflection at inner wall and polarisation ## Mode coupling and reflection at inner wall
The polarisation of the beam is used to compute the coupling to the Ordinary
(O) and Extraordinary (X) plasma modes when the beam crosses the
vacuum-plasma interface. The fraction of power converted into a mode is given
by the coupling coefficient
$$
c_\text{mode} = (\hat{\mathbf e}_\text{mode}⋅\hat{\mathbf e})²,
$$
where $\hat{\mathbf e}_\text{mode},\hat{\mathbf e}$ are the plasma mode and
beam Jones vectors, respectively. The mode vector is defined as the
eigenvector of the cold plasma dielectric tensor in the low density limit.
The beam vector at launch is computed from the polarisation ellipse parameters
using the formula:
$$
\begin{aligned}
\hat{e}₁ &= \cosχ\cosψ + i\sinχ\sinψ \\
\hat{e}₂ &= \cosχ\sinψ - i\sinχ\cosψ
\end{aligned}
$$ {#eq:ellipse2field}
The following convention is assumed (illustrated in [@fig:ellipse]):
- $ψ$ is the angle between the $x$ axis and the major axis.
- $χ = \tan(b/a)$ where $a,b$ are ellipse major and minor semi-axes, respectively.
- A positive $ψ$ corresponds to an ellipse rotated counterclockwise in the
$x∧y$ plane.
- A positive $χ$ corresponds to an ellipse traced clockwise in the $x∧y$ plane
with the $z$ axis in the direction of the wave propagation. In other words:
negative helicity (projection of spin angular momentum unto wavevector) or
left handed wave (IEEE convention).
If the initial polarisation is not specified, 100% coupling to a given mode
is assumed.
![Polarisation ellipse](res/ellipse.svg){#fig:ellipse}
A model for wave reflection on a smooth surface is included in GRAY. This is A model for wave reflection on a smooth surface is included in GRAY. This is
used to describe beam reflection on the inner wall of the tokamak in the cases used to describe the beam reflection on the inner wall of the tokamak in the
where only partial absorption occurs at the first pass in the plasma. An ideal cases where only partial absorption occurs at the first pass in the plasma.
conductor is assumed for the reflecting surface, so that the full power of the An ideal conductor is assumed for the reflecting surface, so that the full
incident beam is transferred to the reflected one. The vector refractive index power of the incident beam is transferred to the reflected one. The vector
${\bf N}_{\rm{refl}}$ and the unit electric field $\hat {\bf e}_{\rm{refl}}$ of refractive index ${\bf N}_{\rm{refl}}$ and the Jones vector $\hat {\bf
the reflected wave are e}_{\rm{refl}}$ of the reflected beam are
$$ $$
{\bf N}_{\rm{refl}} = {\bf N}_{\rm{refl}} =
{\bf N}_{\rm{in}} - 2 ({\bf N}_{\rm{in}} {\bf N}_{\rm{in}} - 2 ({\bf N}_{\rm{in}}
@ -474,50 +511,23 @@ $$
-\hat {\bf e}_{\rm{in}} -\hat {\bf e}_{\rm{in}}
+ 2 (\hat {\bf e}_{\rm{in}} \cdot \hat {\bf n}) \hat {\bf n}, + 2 (\hat {\bf e}_{\rm{in}} \cdot \hat {\bf n}) \hat {\bf n},
$$ $$
being ${\bf N}_{\rm{in}}$ and $\hat {\bf e}_{\rm{in}}$ the vector refractive being ${\bf N}_{\rm{in}}$ and $\hat {\bf e}_{\rm{in}}$ the vector refractive
index and the unit electric field of the incoming wave, and $\hat {\bf n}$ the index and the Jones vector of the incoming wave, and $\hat {\bf n}$ the
normal unit vector to the wall at the beam incidence point. normal unit vector to the wall at the beam incidence point.
The Stokes parameter for the unit electric vector $\hat {\bf e}$ in vacuum are The reflected beam Jones vector is again used to compute the coupling
defined in the beam reference system $({\bar x},{\bar y},{\bar z})$ as to the plasma modes at the second and successive pass, with potentially
$2^{n-1}$ independent modes being traced after n reflections.
Note that the Jones vectors of the ordinary and extraordinary modes are
orthogonal w.r.t. the standard Hermitian product: $\hat{\mathbf e}_{\rm
O}⋅\hat{\mathbf e}_{\rm X}^* = 0$.
From [@eq:ellipse2field] it then follows that these relations hold:
$$ $$
\begin{aligned} \begin{aligned}
I &= \vert \hat e_{\bar x} \vert^2 + \vert \hat e_{\bar y} \vert^2 = 1 \\ ψ_{\rm O} &= ψ_{\rm X} + \frac{π}{2} \\
Q &= \vert \hat e_{\bar x} \vert^2 - \vert \hat e_{\bar y} \vert^2 \\ χ_{\rm O} &= -χ_{\rm X} \\
U &= 2 \cdot {\rm Re} (\hat e_{\bar x} \hat e_{\bar y}^*) \\ 1 &= c_{\rm O} + c_{\rm X}
V &= 2 \cdot {\rm Im} (\hat e_{\bar x} \hat e_{\bar y}^*).
\end{aligned}
$$ {#eq:stokes}
Alternatively, the two angles $\psi_p$ and $\chi_p$ can be used:
$$
\begin{aligned}
Q &= \cos {2 \psi_p} \cos {2 \chi_p} \\
U &= \sin {2 \psi_p} \cos {2 \chi_p} \\
V &= \sin {2 \chi_p}
\end{aligned} \end{aligned}
$$ $$
with the latter meaning all the incoming power is coupled to the plasma.
which define respectively the major axis orientation and the ellipticity of the
polarisation ellipse. The polarisation parameters of the reflected wave are
used to compute the coupling with the Ordinary (OM) and Extraordinary (XM)
modes at the vacuum-plasma interface before the calculation of the second pass
in the plasma. At the second pass both modes are traced, taking into account
that the power fraction coupled to each mode is
$$
P_{\rm O,X} =
\frac{P_{\rm in}}{2}
(1 + Q_{\rm in} Q_{\rm O,X}
+ U_{\rm in} U_{\rm O,X}
+ V_{\rm in} V_{\rm O,X}).
$$
Note that the polarisation vectors of OM and XM form an orthogonal base:
$\psi_{p{\rm O}}=\psi_{p{\rm X}}+\pi/2$, $\chi_{p{\rm O}}=-\chi_{p{\rm X}}$ and
as a consequence $Q_{\rm O}=-Q_{\rm X}$, $U_{\rm O}=-U_{\rm X}$, and $V_{\rm
O}=-V_{\rm X}$, so that $P_{\rm O} + P_{\rm X} = P_{\rm in}$, i.e. all the
incoming power is coupled to the plasma.

View File

@ -113,14 +113,21 @@ Antenna/beam launcher parameters
- *MODE_X*, extraordinary (X) - *MODE_X*, extraordinary (X)
**psi** (default: **0.0**) **psi** (default: **0.0**)
: ψ (deg), angle between the principal axes of the polarisation : ψ (deg), angle between the x and the major axis of the
ellipse and the (x,y) axes polarisation ellipse. ψ∈[-90, 90] and is positive for
rotating counterclockwise.
Note: only used in alternative to *iox* if *ipol=.true.*. Note: only used in alternative to *iox* if *ipol=.true.*.
**chi** (default: **0.0**) **chi** (default: **0.0**)
: χ=atan(ε) (deg), where ε is the ellipticity of the polarisation : χ (deg), angle between the principal axes of the polarisation
ellipse ellipse. χ∈[-45, 45] and is defined by tan(χ) = b/a, where
a,b are the major,minor semi-axis, respective.
χ>0 means the ellipse is traced clockwise in the x∧y plane
with the z axis in the direction of the wave propagation.
In other words: negative helicity (projection of spin angular
momentum unto wavevector) or left handed wave (IEEE convention).
Note: only used in alternative to *iox* if *ipol=.true.*. Note: only used in alternative to *iox* if *ipol=.true.*.

367
doc/res/ellipse.svg Normal file
View File

@ -0,0 +1,367 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="269.48"
height="238.78"
version="1.1"
viewBox="0 0 269.48 238.78"
id="svg21"
sodipodi:docname="ellipse-new.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview21"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.881902"
inkscape:cx="118.49713"
inkscape:cy="103.08719"
inkscape:window-width="1155"
inkscape:window-height="1042"
inkscape:window-x="16"
inkscape:window-y="16"
inkscape:window-maximized="1"
inkscape:current-layer="svg21" />
<defs
id="defs6">
<marker
id="marker2"
overflow="visible"
markerHeight="1"
markerWidth="1"
orient="auto-start-reverse"
preserveAspectRatio="xMidYMid"
viewBox="0 0 1 1">
<path
transform="scale(-.5)"
d="m0 0 5-5-17.5 5 17.5 5z"
fill="context-stroke"
fill-rule="evenodd"
id="path1" />
</marker>
<marker
id="marker43"
overflow="visible"
markerHeight="1"
markerWidth="1"
orient="auto-start-reverse"
preserveAspectRatio="xMidYMid"
viewBox="0 0 1 1">
<path
transform="scale(-.5)"
d="m0 0 5-5-17.5 5 17.5 5z"
fill="context-stroke"
fill-rule="evenodd"
id="path2" />
</marker>
<marker
id="marker42"
overflow="visible"
markerHeight="1"
markerWidth="1"
orient="auto-start-reverse"
preserveAspectRatio="xMidYMid"
viewBox="0 0 1 1">
<path
transform="scale(-.5)"
d="m0 0 5-5-17.5 5 17.5 5z"
fill="context-stroke"
fill-rule="evenodd"
id="path3" />
</marker>
<marker
id="marker35"
overflow="visible"
markerHeight="1"
markerWidth="1"
orient="auto-start-reverse"
preserveAspectRatio="xMidYMid"
viewBox="0 0 1 1">
<path
transform="scale(-.5)"
d="m0 0 5-5-17.5 5 17.5 5z"
fill="context-stroke"
fill-rule="evenodd"
id="path4" />
</marker>
<marker
id="DartArrow"
overflow="visible"
markerHeight="1"
markerWidth="1"
orient="auto-start-reverse"
preserveAspectRatio="xMidYMid"
viewBox="0 0 1 1">
<path
transform="scale(-.5)"
d="m0 0 5-5-17.5 5 17.5 5z"
fill="context-stroke"
fill-rule="evenodd"
id="path5" />
</marker>
<marker
id="marker2-7"
overflow="visible"
markerHeight="1"
markerWidth="1"
orient="auto-start-reverse"
preserveAspectRatio="xMidYMid"
viewBox="0 0 1 1">
<path
transform="scale(-.5)"
d="m0 0 5-5-17.5 5 17.5 5z"
fill="context-stroke"
fill-rule="evenodd"
id="path6" />
</marker>
</defs>
<g
font-family="'Libertinus Serif'"
font-size="16px"
font-style="italic"
stroke-width=".64013"
id="g9">
<text
transform="scale(.99979 1.0002)"
x="175.37907"
y="118.1233"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
xml:space="preserve"
id="text6"><tspan
x="175.37907"
y="118.1233"
fill="#02709c"
font-family="'Libertinus Serif'"
font-size="16px"
font-style="italic"
stroke-width=".64013"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
id="tspan6">ψ</tspan></text>
<text
transform="scale(.99979 1.0002)"
x="81.71257"
y="158.67409"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
xml:space="preserve"
id="text7"><tspan
x="81.71257"
y="158.67409"
fill="#f97306"
font-family="'Libertinus Serif'"
font-size="16px"
font-style="italic"
stroke-width=".64013"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
id="tspan7">χ</tspan></text>
<text
transform="scale(.99979 1.0002)"
x="150.09697"
y="167.58904"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
xml:space="preserve"
id="text8"><tspan
x="150.09697"
y="167.58904"
fill="#f97306"
font-family="'Libertinus Serif'"
font-size="16px"
font-style="italic"
stroke-width=".64013"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
id="tspan8">b</tspan></text>
<text
transform="scale(.99979 1.0002)"
x="55.318287"
y="146.13136"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
xml:space="preserve"
id="text9"><tspan
x="55.318287"
y="146.13136"
fill="#f97306"
font-family="'Libertinus Serif'"
font-size="16px"
font-style="italic"
stroke-width=".64013"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
id="tspan9">a</tspan></text>
</g>
<g
fill="none"
stroke-linejoin="bevel"
id="g11">
<path
d="m130.12 6v232.3"
marker-start="url(#DartArrow)"
stroke="#000"
stroke-linecap="round"
stroke-opacity=".88235"
stroke-width=".96"
id="path9" />
<path
d="m263.48 124.36h-263"
marker-start="url(#marker35)"
stroke="#000"
stroke-linecap="round"
stroke-opacity=".88235"
stroke-width=".96"
id="path10" />
<path
d="m104.03 60.298 25.663 63.519"
stroke="#bdbdbd"
stroke-linecap="square"
stroke-width="1.44"
style="paint-order:stroke fill markers"
id="path11" />
</g>
<g
stroke-linecap="square"
id="g14">
<path
d="m166.34 124.38a36.331 36.331 0 0 0-2.688-14.289l-33.639 13.725z"
fill="#02709c"
fill-opacity=".51765"
fill-rule="evenodd"
stroke-width=".90828"
id="path12" />
<path
d="m73.602 169.44a36.331 36.331 0 0 0-1.785-21.794l-33.639 13.725z"
fill="#f97306"
fill-opacity=".52"
fill-rule="evenodd"
stroke-width=".90828"
id="path13" />
<path
d="m73.335 169.2a36.331 36.331 0 0 0-0.0427-16.322"
fill="none"
marker-end="url(#marker42)"
stroke="#f97306"
stroke-width=".90816"
id="path14" />
</g>
<path
d="m38.178 161.37 117.28 26.504"
fill="#f97306"
fill-opacity=".52"
fill-rule="evenodd"
stroke="#bdbdbd"
stroke-linecap="round"
stroke-linejoin="bevel"
stroke-width="1.44"
style="paint-order:stroke fill markers"
id="path15" />
<g
fill="none"
id="g19">
<g
stroke-linejoin="bevel"
stroke-width="1.44"
id="g18">
<path
d="m221.41 87.341-91.616 37.015"
stroke="#bdbdbd"
stroke-linecap="square"
style="paint-order:stroke fill markers"
id="path16" />
<path
d="m129.79 124.36-91.616 37.015"
stroke="#f97306"
stroke-linecap="round"
style="paint-order:stroke fill markers"
id="path17" />
<path
d="m129.79 124.36 25.663 63.519"
stroke="#f97306"
stroke-linecap="square"
style="paint-order:stroke fill markers"
id="path18" />
</g>
<ellipse
transform="rotate(158)"
cx="-74.162"
cy="-163.5"
rx="98.811"
ry="68.508"
stroke="#01709c"
stroke-width="1.44"
id="ellipse18" />
<path
d="m166.34 123.82a36.331 36.331 0 0 0-0.92734-8.7385"
marker-end="url(#marker43)"
stroke="#01709c"
stroke-linecap="square"
stroke-width=".90816"
id="path19" />
</g>
<text
transform="scale(.99979 1.0002)"
x="251.976"
y="138.61607"
font-family="'Libertinus Serif'"
font-size="16px"
font-style="italic"
stroke-width=".64013"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
xml:space="preserve"
id="text19"><tspan
x="251.976"
y="138.61607"
fill="#000000"
font-family="'Libertinus Serif'"
font-size="16px"
font-style="italic"
stroke-width=".64013"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
id="tspan19">x</tspan></text>
<text
transform="scale(.99979 1.0002)"
x="113.74474"
y="19.958412"
font-family="'Libertinus Serif'"
font-size="16px"
font-style="italic"
stroke-width=".64013"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
xml:space="preserve"
id="text20"><tspan
x="113.74474"
y="19.958412"
fill="#000000"
font-family="'Libertinus Serif'"
font-size="16px"
font-style="italic"
stroke-width=".64013"
style="font-variant-caps:normal;font-variant-east-asian:normal;font-variant-ligatures:normal;font-variant-numeric:normal"
id="tspan20">y</tspan></text>
<path
d="m 182.12056,54.142472 2.3128,0.79999"
fill-opacity="0.51765"
fill-rule="evenodd"
marker-end="url(#marker2)"
stroke="#01709c"
stroke-linecap="round"
stroke-linejoin="bevel"
stroke-width="1.44"
style="paint-order:stroke fill markers"
id="path20" />
<path
d="m 75.368217,192.67564 -0.74963,-0.29058"
fill-opacity="0.51765"
fill-rule="evenodd"
marker-end="url(#marker2-7)"
stroke="#01709c"
stroke-linecap="round"
stroke-linejoin="bevel"
stroke-width="1.44"
style="paint-order:stroke fill markers"
id="path21" />
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -3,6 +3,12 @@
box-sizing: border-box; box-sizing: border-box;
} }
/* Justify all text */
body {
text-align: justify;
hypens: auto;
}
/* Make headings smaller */ /* Make headings smaller */
h1 { font-size: 1.8em } h1 { font-size: 1.8em }
@ -39,10 +45,15 @@ h3:hover > .header-section-number { opacity: 0; }
/* Fix spacing of numbered equations */ /* Fix spacing of numbered equations */
td .katex-display { margin: 0 } td .katex-display { margin: 0 }
/* Fix equations width */
div[id^="eq"] table { width: 100%; }
/* Center the title */ /* Center the title */
header { text-align: center } header { text-align: center }
/* Center figures */
figure { text-align: center }
/* Inline the authors */ /* Inline the authors */
header .author { header .author {
display: inline-block; display: inline-block;
@ -95,7 +106,7 @@ nav {
color: #d0d6e2; color: #d0d6e2;
padding: 1.2em; padding: 1.2em;
padding-left: 0; padding-left: 0;
overflow-y: scroll; overflow-y: auto;
} }
nav a:link { text-decoration: none } nav a:link { text-decoration: none }
nav a:link, a:visited { color: #d0d6e2 } nav a:link, a:visited { color: #d0d6e2 }

View File

@ -17,33 +17,41 @@ contains
! polarisation ellipse angles ψ, χ ! polarisation ellipse angles ψ, χ
! !
! Notes: ! Notes:
! - ψ[-π/2, π/2] is the angle between the x and the major axis ! - ψ[-π/2, π/2] is the angle between the x and the major axis.
!
! - χ[-π/4, π/4] is defined by tan(χ) = b/a, where a,b are the ! - χ[-π/4, π/4] is defined by tan(χ) = b/a, where a,b are the
! major,minor semi-axis, respectively; χ>0 for positive helicity ! major,minor semi-axis, respectively.
! (left-handed wave), χ<0 for negative helicity (right-handed wave). !
! - χ>0 means the ellipse is traced clockwise in the xy plane
! with the z axis in the direction of the wave propagation.
! In other words: negative helicity (projection of spin angular
! momentum unto wavevector) or left handed wave (IEEE convention).
!
! - ψ>0 rotates the ellipse counterclockwise
! subroutine arguments ! subroutine arguments
real(wp_), intent(in) :: psi, chi real(wp_), intent(in) :: psi, chi
complex(wp_), intent(out) :: e_x(:), e_y(:) complex(wp_), intent(out) :: e_x(:), e_y(:)
! The Eikonal ansatz is: ! Consider a plane wave with the electric field given as
! !
! (, t) = Re () exp(-ikS() + iωt) ! (, t) = Re () exp(ik̅ - iωt)
! !
! where () = [|e|exp(), |e|exp(), 0], since the wave ! where = kz and () = [|e|exp(), |e|exp(), 0],
! is transversal in vacuum. At a fixed position =0, ignoring ! since the wave is transversal in a vacuum. At a fixed position
! the third component, we have: ! =0, ignoring the third component, we have:
! !
! (0, t) = [|e|cos(φ + ωt), |e|cos(φ + ωt)] ! (0, t) = [|e|cos(φ - ωt), |e|cos(φ - ωt)]
! = [|e|cos(φ)cos(ωt) - |e|sin(φ)sin(ωt), ! = [|e|cos(φ)cos(ωt) + |e|sin(φ)sin(ωt),
! |e|cos(φ)cos(ωt) - |e|sin(φ)sin(ωt)] ! |e|cos(φ)cos(ωt) + |e|sin(φ)sin(ωt)]
! !
! Then, we compare this to the parametric equation of ! Then, we compare this to the parametric equation of an ellipse
! an ellipse rotated by ψ through the origin, ! rotated by ψ through the origin (traced in the same direction
! as for the electric field),
! !
! (t) = R(ψ) [acos(ωt), bsin(ωt)] ! (t) = R(ψ) [acos(ωt), -bsin(ωt)]
! = [cos(ψ)acos(ωt), -sin(ψ)bsin(ωt), ! = [cos(ψ)acos(ωt) +sin(ψ)bsin(ωt),
! sin(ψ)acos(ωt), cos(ψ)bsin(ωt)] ! sin(ψ)acos(ωt) -cos(ψ)bsin(ωt)]
! !
! at ωt=0 and ωt=π/2, so: ! at ωt=0 and ωt=π/2, so:
! !
@ -76,6 +84,7 @@ contains
! !
e_x = cosd(chi)*cosd(psi) + im * sind(chi)*sind(psi) e_x = cosd(chi)*cosd(psi) + im * sind(chi)*sind(psi)
e_y = cosd(chi)*sind(psi) - im * sind(chi)*cosd(psi) e_y = cosd(chi)*sind(psi) - im * sind(chi)*cosd(psi)
end subroutine ellipse_to_field end subroutine ellipse_to_field
@ -118,17 +127,27 @@ contains
! !
chi = asind(imag(2 * e_x * conjg(e_y))) / 2 chi = asind(imag(2 * e_x * conjg(e_y))) / 2
psi = atan2d(real(2 * e_x * conjg(e_y)), abs(e_x)**2 - abs(e_y)**2) / 2 psi = atan2d(real(2 * e_x * conjg(e_y)), abs(e_x)**2 - abs(e_y)**2) / 2
end subroutine field_to_ellipse end subroutine field_to_ellipse
pure subroutine pol_limit(N, B, Bres, sox, e_x, e_y) pure subroutine pol_limit(N, B, Bres, sox, e_x, e_y)
! Computes the Jones vectors of the cold plasma dispersion ! Computes the Jones vectors of the cold plasma dispersion
! relation in the limit of vanishing electron density ! relation in the limit of vanishing electron density
! !
! Note: the Jones vectors are given in the local beam frame, ! Notes:
! that is, the z axis is aligned with the wave vector and x axis ! - The Jones vectors are given in the local beam frame,
! lies in the tokamak equatorial plane. ! that is, the z axis is aligned with the wave vector
! This allows to directly compare the beam polarisation with ! and the x axis lies in the tokamak equatorial plane.
! the plasma modes Jones vectors to obtain the power couplings. ! This allows to directly compare the beam polarisation with
! the plasma modes Jones vectors to obtain the power couplings.
!
! - The dielectric tensor is obtained using the convention
!
! (, t) = d³k /(2π) (, ω) exp(ik̅ - iωt)
!
! for the Fourier transform. This is commonplace, but it's
! the opposite of the eikonal ansatz, so the Jones vector
! subroutine arguments ! subroutine arguments
real(wp_), intent(in) :: N(3) ! refractive index real(wp_), intent(in) :: N(3) ! refractive index
@ -287,6 +306,7 @@ contains
e = matmul(R, e) e = matmul(R, e)
e_x = e(1) e_x = e(1)
e_y = e(2) e_y = e(2)
end subroutine pol_limit end subroutine pol_limit
end module polarization end module polarization