doc: reorganize example input files
This commit is contained in:
parent
6a91eaa3a8
commit
38a8edd439
28
Makefile
28
Makefile
@ -49,6 +49,7 @@ GRAY = $(BINDIR)/gray
|
|||||||
LIBGRAY = $(LIBDIR)/libgray.so
|
LIBGRAY = $(LIBDIR)/libgray.so
|
||||||
BINARIES = $(GRAY)
|
BINARIES = $(GRAY)
|
||||||
LIBRARIES = $(LIBGRAY)
|
LIBRARIES = $(LIBGRAY)
|
||||||
|
MANPAGES = $(addprefix $(SHAREDIR)/,gray.1 gray.ini.5 profiles.txt.5 beamdata.txt.5 magneticdata.txt.5)
|
||||||
|
|
||||||
##
|
##
|
||||||
## Git information (used in the version string)
|
## Git information (used in the version string)
|
||||||
@ -60,6 +61,13 @@ GIT_REV ?= $(shell git rev-parse --short HEAD)
|
|||||||
# Whether the worktree and the latest commit differs
|
# Whether the worktree and the latest commit differs
|
||||||
GIT_DIRTY ?= $(shell test -n "$$(git status --porcelain)" && echo "-dirty")
|
GIT_DIRTY ?= $(shell test -n "$$(git status --porcelain)" && echo "-dirty")
|
||||||
|
|
||||||
|
# Source date
|
||||||
|
ifndef SOURCE_DATE_EPOCH
|
||||||
|
# Use current date
|
||||||
|
SOURCE_DATE_EPOCH=$(shell awk 'BEGIN {print srand(srand())}')
|
||||||
|
endif
|
||||||
|
DATE=$(shell LC_TIME=C date -d @$(SOURCE_DATE_EPOCH) '+%B %Y')
|
||||||
|
|
||||||
##
|
##
|
||||||
## Fortran compiler and flags
|
## Fortran compiler and flags
|
||||||
##
|
##
|
||||||
@ -119,13 +127,14 @@ check: $(GRAY)
|
|||||||
python -Bm tests --binary $^
|
python -Bm tests --binary $^
|
||||||
|
|
||||||
# Install libraries, binaries and documentation
|
# Install libraries, binaries and documentation
|
||||||
install: $(BINARIES) $(LIBRARIES) $(SHAREDIR)/doc $(SHAREDIR)/gray.1
|
install: $(BINARIES) $(LIBRARIES) $(SHAREDIR)/doc $(MANPAGES)
|
||||||
mkdir -p $(PREFIX)/{bin,lib,share/{doc/res,man/man1}}
|
mkdir -p $(PREFIX)/{bin,lib,share/{doc/res,man/man{1,5}}}
|
||||||
install -m555 -t $(PREFIX)/bin $(BINDIR)/*
|
install -m555 -t $(PREFIX)/bin $(BINDIR)/*
|
||||||
install -m555 -t $(PREFIX)/lib $(LIBDIR)/*
|
install -m555 -t $(PREFIX)/lib $(LIBDIR)/*
|
||||||
install -m644 -t $(PREFIX)/share/doc $(SHAREDIR)/doc/manual.*
|
install -m644 -t $(PREFIX)/share/doc $(SHAREDIR)/doc/manual.*
|
||||||
install -m644 -t $(PREFIX)/share/doc/res $(SHAREDIR)/doc/res/*
|
install -m644 -t $(PREFIX)/share/doc/res $(SHAREDIR)/doc/res/*
|
||||||
install -m644 -t $(PREFIX)/share/man/man1 $(SHAREDIR)/gray.1
|
install -m644 -t $(PREFIX)/share/man/man1 $(SHAREDIR)/*.1
|
||||||
|
install -m644 -t $(PREFIX)/share/man/man5 $(SHAREDIR)/*.5
|
||||||
|
|
||||||
# dependencies
|
# dependencies
|
||||||
$(OBJDIR)/%.o: $(OBJDIR)/%.d
|
$(OBJDIR)/%.o: $(OBJDIR)/%.d
|
||||||
@ -149,15 +158,22 @@ $(JLIBDIR)/libgray.a: $(LIBDIR)/libgray.a
|
|||||||
install -m755 '$<' '$@'
|
install -m755 '$<' '$@'
|
||||||
|
|
||||||
# All documentation
|
# All documentation
|
||||||
docs: $(SHAREDIR)/gray.1 $(SHAREDIR)/doc
|
docs: $(SHAREDIR)/doc $(MANPAGES)
|
||||||
|
|
||||||
$(SHAREDIR)/doc: | $(SHAREDIR)
|
$(SHAREDIR)/doc: | $(SHAREDIR)
|
||||||
+make -C doc
|
+make -C doc
|
||||||
cp -r doc/build/* $(SHAREDIR)
|
cp -r doc/build/* $(SHAREDIR)
|
||||||
|
|
||||||
# Generated man pages
|
# Generated man pages
|
||||||
$(SHAREDIR)/gray.1: $(GRAY) doc/gray.1 | $(SHAREDIR)
|
$(SHAREDIR)/gray.1: $(GRAY) doc/man/gray.1 | $(SHAREDIR)
|
||||||
help2man '$<' -i doc/gray.1 -N -n 'beam-tracing code for EC waves' > '$@'
|
help2man '$<' -i doc/man/gray.1 -N -n 'beam-tracing code for EC waves' > '$@'
|
||||||
|
|
||||||
|
$(SHAREDIR)/%: doc/man/%.md $(GRAY) | $(SHAREDIR)
|
||||||
|
pandoc -s '$<' -t man \
|
||||||
|
-V date='$(DATE)' \
|
||||||
|
-V footer='$(shell $(GRAY) --version | sed -n 1p)' \
|
||||||
|
-V author='$(shell $(GRAY) --version | sed -n "3 s/.$$//p")' \
|
||||||
|
-o '$@'
|
||||||
|
|
||||||
# Visualise the dependency graph
|
# Visualise the dependency graph
|
||||||
# Note: requires makefile2graph and graphviz
|
# Note: requires makefile2graph and graphviz
|
||||||
|
122
doc/man/beamdata.txt.5.md
Normal file
122
doc/man/beamdata.txt.5.md
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
---
|
||||||
|
title: BEAMDATA.txt
|
||||||
|
section: 5
|
||||||
|
---
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
beamdata.txt --- beam launcher data for **gray**(1)
|
||||||
|
|
||||||
|
# FORMAT
|
||||||
|
The beam launcher data can be provided in three ways, each with a corresponding
|
||||||
|
file format.
|
||||||
|
|
||||||
|
## 0D format
|
||||||
|
The beam parameters are given as fixed numbers, independent of the values of
|
||||||
|
the launch angles α, β. In this case the format is as follows:
|
||||||
|
|
||||||
|
f ! comment
|
||||||
|
x₀ y₀ z₀
|
||||||
|
w₀₁ w₀₂ d₀₁ d₀₂ φ
|
||||||
|
where:
|
||||||
|
|
||||||
|
- *f* is the frequency (GHz)
|
||||||
|
- *x₀, y₀, z₀* are the launcher position (cm)
|
||||||
|
- *w₀₁, w₀₂* are the beam waists in the two principal directions (cm)
|
||||||
|
- *d₀₁, d₀₂* are the distances of the beam waists from the launch point (cm)
|
||||||
|
- *φ* is the rotation angle from the horizontal direction to the first
|
||||||
|
principal direction (deg)
|
||||||
|
|
||||||
|
Note: this case implies simple astigmatism, i.e. the amplitude and phase
|
||||||
|
ellipses in the beam transverse plane are aligned.
|
||||||
|
|
||||||
|
## 1D format
|
||||||
|
The beam parameters, including the launch position and angles, are given as a
|
||||||
|
function of the launcher steering angle *θ* in tabular format. The data will be
|
||||||
|
interpolated by GRAY to obtain the actual beam parameters at a given pair of
|
||||||
|
launch angles.
|
||||||
|
|
||||||
|
The format is as follows:
|
||||||
|
|
||||||
|
f ! comment
|
||||||
|
nrows
|
||||||
|
θ α β x₀ y₀ z₀ w₁ w₂ k₁ k₂ φ_w φ_R
|
||||||
|
θ α β x₀ y₀ z₀ w₁ w₂ k₁ k₂ φ_w φ_R
|
||||||
|
...
|
||||||
|
The first two lines contain the frequency (GHz) and the number of table rows.
|
||||||
|
The rest of the file contains the whitespace-separated records, one row per
|
||||||
|
line, where:
|
||||||
|
|
||||||
|
- *θ* is the mechanical steering angle (unused)
|
||||||
|
- *α, β* are the poloidal and toroidal launch angles (deg)
|
||||||
|
- *x₀, y₀, z₀* are the launcher position (mm)
|
||||||
|
- *w₁, w₂* are the beam widths in the two principal directions (mm)
|
||||||
|
- *k₁, k₂* are the wavefront curvatures in the two principal directions (mm⁻¹)
|
||||||
|
- *φ_w, φ_R* are the rotation angles of the amplitude and phase
|
||||||
|
ellipses in the transverse plane at the launch point (deg)
|
||||||
|
|
||||||
|
## 2D format
|
||||||
|
The beam parameters, including the launch position, are given as a
|
||||||
|
function of the two launch angles α, β. The format is as follows:
|
||||||
|
|
||||||
|
nbeams
|
||||||
|
id mode f na nb
|
||||||
|
α β x₀ y₀ z₀ w₁ w₂ k₁ k₂ φ_w φ_R
|
||||||
|
α β x₀ y₀ z₀ w₁ w₂ k₁ k₂ φ_w φ_R
|
||||||
|
...
|
||||||
|
id mode f na nb
|
||||||
|
α β x₀ y₀ z₀ w₁ w₂ k₁ k₂ φ_w φ_R
|
||||||
|
α β x₀ y₀ z₀ w₁ w₂ k₁ k₂ φ_w φ_R
|
||||||
|
...
|
||||||
|
|
||||||
|
The first line specifies the number of beams described by the file.
|
||||||
|
The rest of the files consists of *nbeams* 2D tables preceded by a header where:
|
||||||
|
|
||||||
|
- *id* is a string identifier of the beam
|
||||||
|
- *mode* indicates where the beam has O-mode (*1*) or X-mode (*2*)
|
||||||
|
polarisation
|
||||||
|
- *f* is the frequency (GHz)
|
||||||
|
- *nα, nβ* are the numbers of rows and columns of the table
|
||||||
|
|
||||||
|
The 2D table is stored in row-major order over *nα×nβ* lines, that is, the
|
||||||
|
*i,j*-th record is stored on the l-th line, with *l = i + nα×j*.
|
||||||
|
The poloidal angle *α(i,j)* must be monotonic along *i* and the toroidal angle
|
||||||
|
*β(i, j)* must be monotonic along *j*.
|
||||||
|
Each line stores one record with the same fields as in the 1D format.
|
||||||
|
|
||||||
|
Note: even if this format allows to define multiple independent beams in the
|
||||||
|
same file, this feature is not used by **gray**(1), which always load the first
|
||||||
|
table.
|
||||||
|
|
||||||
|
# EXAMPLES
|
||||||
|
|
||||||
|
1. A valid 0D beamdata.txt file
|
||||||
|
|
||||||
|
170 ! f
|
||||||
|
950.0 0.0 62.0 ! x₀ y₉ z₀
|
||||||
|
2.1 2.1 162.0 162.0 0.0 ! w₀₁ w₀₂ d₀₁ d₀₂ φ
|
||||||
|
|
||||||
|
2. A valid 1D beamdata.txt file
|
||||||
|
|
||||||
|
170 ! f
|
||||||
|
27 ! nrows
|
||||||
|
-7.5 25.93 19.75 7067.6 -41.45 4233.6 42.70 43.99 -5.899E-4 -5.363E-4 -3.15 -3.15
|
||||||
|
-5.0 31.23 19.99 7067.8 -41.48 4233.6 42.70 43.99 -5.899E-4 -5.364E-4 -2.32 -2.32
|
||||||
|
-2.0 37.61 20.09 7068.1 -41.51 4233.5 42.69 43.98 -5.900E-4 -5.364E-4 -1.09 -1.09
|
||||||
|
3.5 49.29 19.77 7068.7 -41.58 4233.2 42.67 43.97 -5.902E-4 -5.366E-4 -2.11 -2.11
|
||||||
|
|
||||||
|
3. A valid 2D beamdata.txt file
|
||||||
|
|
||||||
|
1 ! nbeams
|
||||||
|
example 1 137.6 6 2 ! id mode f nα nβ
|
||||||
|
-7.96 -12.99 4352 -161.2 907 16.46 28.67 -2.48E-05 -2.36E-03 -21.79 5.61
|
||||||
|
4.82 -13.18 4392 -149.4 976 15.80 26.29 -4.71E-05 -2.56E-03 -17.88 8.85
|
||||||
|
14.52 -13.40 4416 -138.6 1031 15.30 24.50 -1.72E-04 -2.80E-03 -14.87 11.95
|
||||||
|
24.86 -13.70 4438 -125.4 1091 14.92 22.66 -4.36E-04 -3.19E-03 -11.63 15.84
|
||||||
|
36.12 -14.12 4455 -109.2 1159 14.90 20.80 -8.64E-04 -3.81E-03 -8.29 20.21
|
||||||
|
48.76 -14.72 4466 -89.0 1235 15.74 18.91 -1.38E-03 -4.80E-03 -7.66 23.62
|
||||||
|
-9.80 -6.93 4353 -132.0 904 16.71 29.36 -1.71E-04 -2.28E-03 -10.02 8.52
|
||||||
|
2.84 -7.14 4392 -123.8 972 16.03 26.82 -1.85E-04 -2.46E-03 -7.62 10.46
|
||||||
|
12.39 -7.38 4416 -116.4 1025 15.53 24.95 -3.05E-04 -2.67E-03 -5.78 12.41
|
||||||
|
22.50 -7.72 4437 -107.4 1084 15.13 23.06 -5.55E-04 -2.99E-03 -3.79 14.90
|
||||||
|
33.42 -8.18 4454 -96.5 1149 14.57 21.17 -9.75E-04 -3.51E-03 -10.43 14.82
|
||||||
|
45.51 -8.80 4465 -83.0 1222 15.65 19.32 -1.48E-03 -4.35E-03 0.41 20.57
|
@ -4,9 +4,13 @@ must be manually specified, except the parameters file.
|
|||||||
The latter defaults to \fCgray_params.data\fR and is configured using the
|
The latter defaults to \fCgray_params.data\fR and is configured using the
|
||||||
\fB-p\fR option. All other filepaths are relative to its parent directory.
|
\fB-p\fR option. All other filepaths are relative to its parent directory.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
.I gray.ini
|
||||||
|
GRAY main configuration file
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.I gray_params.data
|
.I gray_params.data
|
||||||
Parameters file
|
Legacy configuration file
|
||||||
|
|
||||||
This file allows configuring all the parameters of a GRAY simulation, including
|
This file allows configuring all the parameters of a GRAY simulation, including
|
||||||
all other input files.
|
all other input files.
|
||||||
@ -37,4 +41,4 @@ location can be changed with the \fB-o\fR option.
|
|||||||
For a list of the unit numbers and their descriptions see the GRAY user manual.
|
For a list of the unit numbers and their descriptions see the GRAY user manual.
|
||||||
|
|
||||||
[SEE ALSO]
|
[SEE ALSO]
|
||||||
\fBgray_params.data\fR(5), \fBbeamdata.txt\fR(5), \fBprofiles.txt\fR(5)
|
\fBgray.ini\fR(5), \fBgray_params.data\fR(5), \fBbeamdata.txt\fR(5), \fBprofiles.txt\fR(5)
|
312
doc/man/gray.ini.5.md
Normal file
312
doc/man/gray.ini.5.md
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
---
|
||||||
|
title: GRAY.INI
|
||||||
|
section: 5
|
||||||
|
---
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
gray.ini --- Configuration file for **gray**(1)
|
||||||
|
|
||||||
|
# CONFIGURATION
|
||||||
|
The configuration file is written in the INI format. The basic syntax
|
||||||
|
is:
|
||||||
|
|
||||||
|
[group]
|
||||||
|
; comment
|
||||||
|
parameter = value
|
||||||
|
|
||||||
|
Group is one of: *raytracing*, *ecrh_cd*, *antenna*, *equilibrium*,
|
||||||
|
*profiles*, *misc*.
|
||||||
|
|
||||||
|
Values are valid Fortran values, including numbers (integers or floating
|
||||||
|
points), strings (enclosed in quotes), booleans (*.true.*, *.false.*)
|
||||||
|
and named constants (e.g. *MODE_X*).
|
||||||
|
|
||||||
|
# PARAMETERS
|
||||||
|
Valid configuration parameters listed by group
|
||||||
|
|
||||||
|
Note: parameters with a default value are optional and can be omitted.
|
||||||
|
|
||||||
|
## raytracing
|
||||||
|
Raytracing parameters
|
||||||
|
|
||||||
|
**nrayr**
|
||||||
|
: Number of rays in the radial direction
|
||||||
|
|
||||||
|
**nrayth**
|
||||||
|
: Number of rays in the angular direction
|
||||||
|
|
||||||
|
**rwmax** (default: **1.0**)
|
||||||
|
: Normalized maximum radius of the beam power
|
||||||
|
|
||||||
|
**igrad** (default: **0**)
|
||||||
|
: Switch between simple raytracing (*0*) and beamtracing (*1*)
|
||||||
|
|
||||||
|
**ipass** (default: **1**)
|
||||||
|
: Max number of crossing (out, in, out) of the plasma. When positive
|
||||||
|
reflections occur on the plasma limiter provided by the G-EQDSK
|
||||||
|
file; when negative on a simple limiter at R=*rwall*, see below.
|
||||||
|
|
||||||
|
**ipol** (default: **.false.**)
|
||||||
|
: Whether to compute the wave polarisation from chi, psi (see below)
|
||||||
|
|
||||||
|
**dst**
|
||||||
|
: Step size (cm) for the numerical integration
|
||||||
|
|
||||||
|
**nstep** (default: **12000**)
|
||||||
|
: Max number of integration steps
|
||||||
|
|
||||||
|
**idst** (default: **STEP_TIME**)
|
||||||
|
: Choice of the integration variable. One of:
|
||||||
|
|
||||||
|
- *STEP_ARCLEN*, arc length (s)
|
||||||
|
- *STEP_TIME*, time (actually c⋅t)
|
||||||
|
- *STEP_PHASE*, phase (actually the real part of the eikonal S_r=k₀⋅φ)
|
||||||
|
|
||||||
|
## ecrh_cd
|
||||||
|
ECRH and current drive parameters
|
||||||
|
|
||||||
|
**iwarm** (default: **ABSORP_FULL**)
|
||||||
|
: Choice of the power absorption model. One of:
|
||||||
|
|
||||||
|
- *ABSORP_OFF*, no absorption at all
|
||||||
|
- *ABSORP_WEAK*, weakly relativistic
|
||||||
|
- *ABSORP_FULL*, fully relativistic (faster variant)
|
||||||
|
- *ABSORP_FULL_ALT*, fully relativistic (slower variant)
|
||||||
|
|
||||||
|
Note: *iwarm /= ABSORP_OFF* is required for current drive.
|
||||||
|
|
||||||
|
**ilarm** (default: **5**)
|
||||||
|
: Order of the electron Larmor radius expansion (used by some
|
||||||
|
absorption models)
|
||||||
|
|
||||||
|
**imx** (default: **-20**)
|
||||||
|
: Max number of iterations for the solution of the dispersion relation
|
||||||
|
(used by some absorption models)
|
||||||
|
|
||||||
|
Note: if negative the result of the first iteration will be used in case
|
||||||
|
the result doesn\'t converge within \|imx\| iterations.
|
||||||
|
|
||||||
|
**ieccd** (default: **CD_NEOCLASSIC**)
|
||||||
|
: Current drive model. One of:
|
||||||
|
|
||||||
|
- *CD_OFF*, no current drive at all
|
||||||
|
- *CD_COHEN*, Cohen
|
||||||
|
- *CD_NO_TRAP*, no trapping
|
||||||
|
- *CD_NEOCLASSIC*, Neoclassical
|
||||||
|
|
||||||
|
## antenna
|
||||||
|
Antenna/beam launcher parameters
|
||||||
|
|
||||||
|
**alpha**
|
||||||
|
: Poloidal launch angle (deg). Positive is up
|
||||||
|
|
||||||
|
**beta**
|
||||||
|
: Toroidal launch angle (deg). Positive is right
|
||||||
|
|
||||||
|
**power** (default: **1.0**)
|
||||||
|
: Injected power (MW)
|
||||||
|
|
||||||
|
**iox**
|
||||||
|
: Polarisation mode. One of:
|
||||||
|
|
||||||
|
- *MODE_O*, ordinary (O)
|
||||||
|
- *MODE_X*, extraordinary (X)
|
||||||
|
|
||||||
|
**chi** (default: **0.0**)
|
||||||
|
: χ (deg), angle between the principal axes of the polarisation
|
||||||
|
ellipse and the (x,y) axes
|
||||||
|
|
||||||
|
Note: only used in alternative to *iox* if *ipol=.true.*.
|
||||||
|
|
||||||
|
**psi** (default: **0.0**)
|
||||||
|
: ψ=atan(ε) (deg), where ε is the ellipticity of the polarisation
|
||||||
|
ellipse
|
||||||
|
|
||||||
|
Note: only used in alternative to *iox* if *ipol=.true.*.
|
||||||
|
|
||||||
|
**ibeam** (default: **BEAM_0D**)
|
||||||
|
: Beam parameters file format. One of:
|
||||||
|
|
||||||
|
- *BEAM_0D*, fixed beam parameters
|
||||||
|
- *BEAM_1D*, 1D steering angle table
|
||||||
|
- *BEAM_2D*, 2D steering angles table
|
||||||
|
|
||||||
|
**filenm**
|
||||||
|
: Filepath of the beam data (relative to the gray.ini file)
|
||||||
|
|
||||||
|
## equilibrium
|
||||||
|
MHD equilibrium parameters
|
||||||
|
|
||||||
|
**iequil** (default: **EQ_EQDSK_FULL**)
|
||||||
|
: MHD equilibrium kind. One of:
|
||||||
|
|
||||||
|
- *EQ_VACUUM*, vacuum (i.e. no plasma at all)
|
||||||
|
- *EQ_ANALYTICAL*, analytical model
|
||||||
|
- *EQ_EQDSK_FULL*, G-EQDSK format - data valid on the whole domain
|
||||||
|
- *EQ_EQDSK_PARTIAL*, G-EQDSK format - data valid only inside the LCFS
|
||||||
|
|
||||||
|
**filenm**
|
||||||
|
: Filepath of the equilibrium data (relative to the gray.ini file)
|
||||||
|
|
||||||
|
**icocos** (default: **3**)
|
||||||
|
: COCOS index of the equilibrium data (G-EQDSK only)
|
||||||
|
|
||||||
|
**ipsinorm** (default: **.false.**)
|
||||||
|
: Whether the poloidal function is normalised (G-EQDSK only)
|
||||||
|
|
||||||
|
Note: Normalised means ψ(axis)=0, ψ(boundary)=1
|
||||||
|
|
||||||
|
**idesc** (default: **.true.**)
|
||||||
|
: Whether the header starts with a description, a.k.a
|
||||||
|
identification string (G-EQDSK only)
|
||||||
|
|
||||||
|
**ifreefmt** (default: **.false.**)
|
||||||
|
: Whether the records have variable length (G-EQDSK only)
|
||||||
|
|
||||||
|
Note: some non-compliant programs output numbers formatted with variable
|
||||||
|
length instead of using the single (5e16.9) specifier.
|
||||||
|
|
||||||
|
**ixp** (default: **X_IS_MISSING**)
|
||||||
|
: Position of the X point. One of:
|
||||||
|
|
||||||
|
- *X_IS_MISSING*, No X point
|
||||||
|
- *X_AT_TOP*, At the top of the plasma
|
||||||
|
- *X_AT_BOTTOM*, At the bottom of the plasma
|
||||||
|
|
||||||
|
**ssplps** (default: **0.005**)
|
||||||
|
: Tension for the ψ_n(R,Z) spline, normalised poloidal flux
|
||||||
|
|
||||||
|
Note: 0 means perfect interpolation
|
||||||
|
|
||||||
|
**ssplf** (default: **0.01**)
|
||||||
|
: Tension for the F(ψ)=R⋅B_T spline, poloidal current function
|
||||||
|
|
||||||
|
Note: 0 means perfect interpolation
|
||||||
|
|
||||||
|
**sgnb** (default: **0**)
|
||||||
|
: Force the sign of the toroidal field. One of:
|
||||||
|
|
||||||
|
- *+1*, counter-clockwise (viewed from above)
|
||||||
|
- *-1*, clockwise
|
||||||
|
- *0*, use sign from COCOS
|
||||||
|
|
||||||
|
**sgni** (default: **0**)
|
||||||
|
: Force the sign of the plasma current. One of: *+1*,
|
||||||
|
|
||||||
|
- *+1*, counter-clockwise (viewed from above)
|
||||||
|
- *-1*, clockwise
|
||||||
|
- *0*, use sign from COCOS
|
||||||
|
|
||||||
|
**factb** (default: **1.0**)
|
||||||
|
: Rescaling factor for the magnetic field
|
||||||
|
|
||||||
|
## profiles
|
||||||
|
(input) plasma profiles parameters
|
||||||
|
|
||||||
|
**iprof**
|
||||||
|
: Plasma profiles kind. One of:
|
||||||
|
|
||||||
|
- *PROF_ANALYTIC*, analytical model
|
||||||
|
- *PROF_NUMERIC*, numerical data (ρ, n_e, T_e, table)
|
||||||
|
|
||||||
|
**irho**
|
||||||
|
: Plasma profiles radial coordinate. One of:
|
||||||
|
|
||||||
|
- *RHO_TOR*, ρ_t = √Φ (where Φ is the normalised toroidal flux)
|
||||||
|
- *RHO_POL*, ρ_p = √ψ (where ψ is the normalised poloidal flux)
|
||||||
|
- *RHO_PSI*, normalised poloidal flux ψ
|
||||||
|
|
||||||
|
**filenm**
|
||||||
|
: Filepath of the plasma profiles data (relative to the gray.ini file)
|
||||||
|
|
||||||
|
**sspld** (default: **0.1**)
|
||||||
|
: Tension of the electron density spline
|
||||||
|
|
||||||
|
Note: 0 means perfect interpolation
|
||||||
|
|
||||||
|
**factte** (default: **1.0**)
|
||||||
|
: Rescaling factor for the electron temperature factte = 1
|
||||||
|
|
||||||
|
**factne** (default: **1.0**)
|
||||||
|
: Rescaling factor for the density temperature
|
||||||
|
|
||||||
|
**iscal** (default: **SCALE_OFF**)
|
||||||
|
: Choice of model for rescaling the temperature, density with the
|
||||||
|
magnetic field (if factb ≠ 0 only). One of:
|
||||||
|
|
||||||
|
- *SCALE_OFF*, don't rescale at all
|
||||||
|
- *SCALE_COLLISION*, scale while preserving collisionality
|
||||||
|
- *SCALE_GREENWALD*, scale while preserving the Greenwald fraction
|
||||||
|
|
||||||
|
## output
|
||||||
|
|
||||||
|
Output data parameters
|
||||||
|
|
||||||
|
**pec** (default: **SCALE_OFF**)
|
||||||
|
: ECRH&CD profiles grid: Radial coordinate of the uniform grid.
|
||||||
|
One of:
|
||||||
|
|
||||||
|
- *RHO_TOR*, ρ_t = √Φ (where Φ is the normalised toroidal flux)
|
||||||
|
- *RHO_POL*, ρ_p = √ψ (where ψ is the normalised poloidal flux)
|
||||||
|
|
||||||
|
**nrho** (default: **501**)
|
||||||
|
: Number of in the radial grid
|
||||||
|
|
||||||
|
**istpr** (default: **5**)
|
||||||
|
: Subsampling factors for the beam cross section (units 8, 12)
|
||||||
|
|
||||||
|
**istpl** (default: **5**)
|
||||||
|
: Subsampling factors for the outer rays data (unit 33)
|
||||||
|
|
||||||
|
## misc
|
||||||
|
|
||||||
|
Other parameters
|
||||||
|
|
||||||
|
**rwall**
|
||||||
|
|
||||||
|
: Radius of the inner wall (m). Used to build a simple limiter for
|
||||||
|
reflections (only when *ipass\<0*)
|
||||||
|
|
||||||
|
# EXAMPLE
|
||||||
|
|
||||||
|
Below is an example of a gray.ini file
|
||||||
|
|
||||||
|
[raytracing]
|
||||||
|
; beamtracing with 16×24 rays
|
||||||
|
nrayr = 16
|
||||||
|
nrayth = 24
|
||||||
|
igrad = 1
|
||||||
|
; integrate in the phase
|
||||||
|
dst = 0.05
|
||||||
|
nstep = 2400
|
||||||
|
idst = STEP_PHASE
|
||||||
|
|
||||||
|
[antenna]
|
||||||
|
; vertical launch
|
||||||
|
alpha = 89.45
|
||||||
|
beta = 0.0
|
||||||
|
iox = MODE_X
|
||||||
|
ibeam = BEAM_1D
|
||||||
|
filenm = "beamdata.txt"
|
||||||
|
|
||||||
|
[equilibrium]
|
||||||
|
filenm = "equilibrium.eqdsk"
|
||||||
|
icocos = 2
|
||||||
|
|
||||||
|
[profiles]
|
||||||
|
; analytical profiles
|
||||||
|
iprof = PROF_ANALYTIC
|
||||||
|
irho = RHO_TOR
|
||||||
|
filenm = "profiles.txt"
|
||||||
|
sspld = 0.01
|
||||||
|
|
||||||
|
[output]
|
||||||
|
ipec = RHO_POL
|
||||||
|
nrho = 1001
|
||||||
|
|
||||||
|
[misc]
|
||||||
|
rwall = 0.6
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
|
||||||
|
**gray**(1), **beamdata.txt**(5), **profiles.txt**(5), **magneticdata.txt**(5)
|
86
doc/man/magneticdata.txt.5.md
Normal file
86
doc/man/magneticdata.txt.5.md
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
---
|
||||||
|
title: MAGNETICDATA.TXT
|
||||||
|
section: 5
|
||||||
|
---
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
magneticdata.txt --- MHD equilibrium data for **gray**(1)
|
||||||
|
|
||||||
|
# FORMAT
|
||||||
|
The MHD equilibrium data can be specified in two ways: as the free parameters
|
||||||
|
of a simple analytical model, or as numerical data in the G-EQDSK format.
|
||||||
|
|
||||||
|
## analytical equilibrium
|
||||||
|
The format for the analytical magneticdata.txt file is as follows:
|
||||||
|
|
||||||
|
R₀ z₀ a
|
||||||
|
B₀
|
||||||
|
q₀ q₁ α
|
||||||
|
npoints
|
||||||
|
R₁ z₁
|
||||||
|
R₂ z₂
|
||||||
|
...
|
||||||
|
|
||||||
|
where:
|
||||||
|
|
||||||
|
- *R₀, z₀* are the coordinates of the magnetic axis (m)
|
||||||
|
- *a* is the plasma boundary minor radius (m)
|
||||||
|
- *B₀* is the value of toroidal field on the magnetic axis (T)
|
||||||
|
- *q₀, q₁, α* are the parameters of the safety factors (see below)
|
||||||
|
- *npoints* is the number of points in the plasma limiter contour
|
||||||
|
that followsAa
|
||||||
|
- *R_i, z_i* are the coordinates of the points in contour (m)
|
||||||
|
|
||||||
|
Note: When viewing the torus from above, a positive B₀ results in a
|
||||||
|
counterclockwise toroidal field and the plasma current is
|
||||||
|
clockwise if q and B₀ have opposite signs.
|
||||||
|
|
||||||
|
### analytical model notes
|
||||||
|
The model used in GRAY describes a plsma with circular cross section centered
|
||||||
|
on the magnetic axis at a major radius *R₀* and extending up to the minor
|
||||||
|
radius *a*, where the density is exactly zero.
|
||||||
|
There is no X point nor separatrix.
|
||||||
|
|
||||||
|
The flux surfaces are circular and the normalised toroidal radius is exactly:
|
||||||
|
|
||||||
|
ρ_t(R, z) = √[(R - R₀)² + (z - z₀)²]/a
|
||||||
|
|
||||||
|
The toroidal field is given explicitly by *B_t(R) = B₀ R/R₀*; the poloidal
|
||||||
|
field is determined implicitly by the safety factor profile.
|
||||||
|
The latter is parametrised as:
|
||||||
|
|
||||||
|
q(ρ_p) = q₀ + (q₁ - q₀)ρ_p^α,
|
||||||
|
|
||||||
|
where *ρ_p* is the normalised poloidal flux.
|
||||||
|
|
||||||
|
## numerical equilibrium
|
||||||
|
The format of the numerical equilibrium is the G-EQDSK informal standard
|
||||||
|
(See the GRAY manual for the specification).
|
||||||
|
|
||||||
|
The data strictly necessary to perform a GRAY simulation are limited to:
|
||||||
|
poloidal flux, safety factor, poloidal current function, magnetic axis and
|
||||||
|
plasma boundary.
|
||||||
|
If a limiter contour is provided it will be used to compute reflections.
|
||||||
|
|
||||||
|
# EXAMPLES
|
||||||
|
1. An analytical magneticdata.txt
|
||||||
|
|
||||||
|
2.96 0.0 1.25 ! R₀ z₀ a
|
||||||
|
6 ! B₀
|
||||||
|
3.5 10 2 ! q₀ q₁ α
|
||||||
|
4 ! npoints
|
||||||
|
1.61 -1.35 ! a simple square limiter
|
||||||
|
1.61 +1.35
|
||||||
|
4.31 +1.35
|
||||||
|
4.31 -1.35
|
||||||
|
|
||||||
|
|
||||||
|
2. An analytical magneticdata.txt without limiter
|
||||||
|
|
||||||
|
2.96 0.0 1.25 ! R₀ z₀ a
|
||||||
|
6 ! B₀
|
||||||
|
3.5 10 2 ! q₀ q₁ α
|
||||||
|
0 ! no limiter contour
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
**gray**(1)
|
63
doc/man/profiles.txt.5.md
Normal file
63
doc/man/profiles.txt.5.md
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
---
|
||||||
|
title: PROFILES.TXT
|
||||||
|
section: 5
|
||||||
|
---
|
||||||
|
|
||||||
|
# NAME
|
||||||
|
profiles.txt --- Kinetic plasma profiles data for **gray**(1)
|
||||||
|
|
||||||
|
# FORMAT
|
||||||
|
The plasma profiles can be specified in two ways: either as the free parameters
|
||||||
|
of a simple analytical model, or as numerical data in a tabular format.
|
||||||
|
|
||||||
|
## analytical profiles
|
||||||
|
The format for the analytical profiles is as follows:
|
||||||
|
|
||||||
|
n₀ a b ! comment
|
||||||
|
T₀ T₁ c d
|
||||||
|
Z_eff
|
||||||
|
|
||||||
|
The first line contains the parameters for the electron density as a function
|
||||||
|
of the normalised poloidal flux *n(ψ)*, which in units of 10¹⁹ m⁻³ is given as:
|
||||||
|
|
||||||
|
n(ψ) = n₀(1 - ψ^a)^b
|
||||||
|
|
||||||
|
Similarly, the second line contains the parameters for the electron temperature
|
||||||
|
*T(ψ)*, which is defined in units of keV as:
|
||||||
|
|
||||||
|
T(ψ) = (T₀ - T₁)(1 - ψ^c)^d + T₁
|
||||||
|
|
||||||
|
The last lines contains the (constant) value of the effective charge.
|
||||||
|
|
||||||
|
## numerical profiles
|
||||||
|
The format for the numerical consists of a table with the following columns:
|
||||||
|
*radial coordinate*, *temperature*, *density*, *effective charge*.
|
||||||
|
The first line is a header specifying the number of table rows and subsequent
|
||||||
|
lines contains the whitespace-separated records, one row per line:
|
||||||
|
|
||||||
|
nrows ! comment
|
||||||
|
ρ₁ T₁ n₁ Z₁
|
||||||
|
ρ₂ T₂ n₂ Z₂
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
# EXAMPLES
|
||||||
|
1. A valid analytical profiles.txt file
|
||||||
|
|
||||||
|
10 0.3 3 ! n₀, a, b
|
||||||
|
14 0 2 8 ! T₀, T₁, c, d
|
||||||
|
1.0 ! Z_eff
|
||||||
|
|
||||||
|
2. A valid numerical profiles.txt file
|
||||||
|
|
||||||
|
100 ! ρ_t T_e n_e Z_eff
|
||||||
|
0.005025 17.9399 24.1717 1.64001
|
||||||
|
0.095477 17.4336 23.7527 1.56178
|
||||||
|
0.175879 16.9632 23.2699 1.65915
|
||||||
|
0.246231 13.7457 22.9230 1.72905
|
||||||
|
0.306533 10.4874 22.6312 1.76446
|
||||||
|
0.457286 6.59895 21.7133 1.74971
|
||||||
|
0.577889 4.74975 19.5653 1.60959
|
||||||
|
|
||||||
|
# SEE ALSO
|
||||||
|
**gray**(1)
|
@ -1,3 +0,0 @@
|
|||||||
170 : f (GHz)
|
|
||||||
950 0 62 :x00 y00 z00 (cm) : mirror position
|
|
||||||
2.1 2.1 162. 162. 0 :w0xt w0yt d0xt d0yt phiwr (cm) [d0>0 towards plasma]
|
|
@ -1,8 +0,0 @@
|
|||||||
2.96 0.0 1.25 ! R₀,z₀,a, where ρ_p(R, z) = √[(R - R₀)² + (z - z₀)²]/a (m)
|
|
||||||
6 ! B₀, where B_φ(R) = B₀ R₀/R (T)
|
|
||||||
3.5 10 2 ! q₀,q₁,α, where q(ρ_p) = q₀ + (q₁-q₀)ρ_p^α
|
|
||||||
0 ! number of points in the limiter contourn, (R,z) pairs
|
|
||||||
|
|
||||||
! Notes:
|
|
||||||
! 1. use B₀>0 for clockwise B_φ
|
|
||||||
! 2. use q₀,q₁<0 for clockwise I_p,B_φ
|
|
187
input/gray.ini
187
input/gray.ini
@ -1,187 +0,0 @@
|
|||||||
[raytracing]
|
|
||||||
; Number of rays in the radial/angular direction
|
|
||||||
nrayr = 1
|
|
||||||
nrayth = 16
|
|
||||||
; Normalized maximum radius of the beam power
|
|
||||||
rwmax = 1.0
|
|
||||||
|
|
||||||
; Switch between simple raytracing (0) and beamtracing (1)
|
|
||||||
igrad = 0
|
|
||||||
|
|
||||||
; Max number of passes inside the plasma [multipass module]
|
|
||||||
; When positive reflections occur on the plasma limiter provided by the
|
|
||||||
; G-EQDSK file; when negative on a simple limiter at R=`rwall`, see below.
|
|
||||||
ipass = 1
|
|
||||||
|
|
||||||
; Whether to compute the wave polarisation (from chi, psi)
|
|
||||||
ipol = .false.
|
|
||||||
; Step size (cm) for the numerical integration
|
|
||||||
dst = 0.1
|
|
||||||
; Max number of integration steps
|
|
||||||
nstep = 12000
|
|
||||||
|
|
||||||
; Choice of the integration variable
|
|
||||||
; STEP_ARCLEN: arc length (s)
|
|
||||||
; STEP_TIME: time (actually c⋅t)
|
|
||||||
; STEP_PHASE: phase (actually real part of eikonal S_r=k₀⋅φ)
|
|
||||||
idst = STEP_ARCLEN
|
|
||||||
|
|
||||||
|
|
||||||
[ecrh_cd]
|
|
||||||
; Choice of the power absorption model
|
|
||||||
; ABSORP_OFF: no absorption at all
|
|
||||||
; ABSORP_WEAK: weakly relativistic
|
|
||||||
; ABSORP_FULL: fully relativistic (faster variant)
|
|
||||||
; ABSORP_FULL_ALT: fully relativistic (slower variant)
|
|
||||||
; Note: iwarm /= ABSORP_OFF is required for current drive
|
|
||||||
iwarm = ABSORP_FULL
|
|
||||||
|
|
||||||
; Order of the electron Larmor radius expansion
|
|
||||||
; (used by some absorption models)
|
|
||||||
ilarm = 5
|
|
||||||
|
|
||||||
; Max number of iterations for the solution of the dispersion relation.
|
|
||||||
; (used by some absorption models)
|
|
||||||
; Note: if negative the result of the first iteration will be used in
|
|
||||||
; case the result doesn't converge within |imx| iterations.
|
|
||||||
imx = -20
|
|
||||||
|
|
||||||
; Current drive model
|
|
||||||
; CD_OFF: no current drive at all
|
|
||||||
; CD_COHEN: Cohen
|
|
||||||
; CD_NO_TRAP: no trapping
|
|
||||||
; CD_NEOCLASSIC: Neoclassical
|
|
||||||
ieccd = CD_NEOCLASSIC
|
|
||||||
|
|
||||||
|
|
||||||
[antenna]
|
|
||||||
; Wave launch angles (deg)
|
|
||||||
alpha = 45 ; Poloidal angle (positive → up)
|
|
||||||
beta = 0 ; Toroidal angle (positive → right)
|
|
||||||
|
|
||||||
; Injected power (MW)
|
|
||||||
power = 1.0
|
|
||||||
|
|
||||||
; Polarisation mode
|
|
||||||
; MODE_O: ordinary (O)
|
|
||||||
; MODE_X: extraordinary (X)
|
|
||||||
iox = MODE_X
|
|
||||||
; Alternatively, parameters of the polarisation ellipse
|
|
||||||
; χ: angle between the principal axes and the (x,y) axes
|
|
||||||
; ψ: atan(ε), where ε is the ellipticity
|
|
||||||
chi = 0
|
|
||||||
psi = 0
|
|
||||||
|
|
||||||
; Beam parameters format
|
|
||||||
; BEAM_0D: fixed beam parameters
|
|
||||||
; BEAM_1D: 1D steering angle table
|
|
||||||
; BEAM_2D: 2D steering angles table
|
|
||||||
ibeam = 0
|
|
||||||
|
|
||||||
; Filepath of the beam data (relative to this file)
|
|
||||||
filenm = "beamdata.txt"
|
|
||||||
|
|
||||||
|
|
||||||
[equilibrium]
|
|
||||||
; MHD equilibrium kind
|
|
||||||
; EQ_VACUUM: vacuum (i.e. no plasma at all)
|
|
||||||
; EQ_ANALYTICAL: analytical model
|
|
||||||
; EQ_EQDSK_FULL: G-EQDSK format - data valid on the whole domain
|
|
||||||
; EQ_EQDSK_PARTIAL: G-EQDSK format - data valid only inside the LCFS
|
|
||||||
iequil = EQ_EQDSK_FULL
|
|
||||||
|
|
||||||
; Filepath of the equilibrium data (relative to this file)
|
|
||||||
filenm = "magneticdata.eqdsk"
|
|
||||||
; COCOS index of the EQDSK equilibrium
|
|
||||||
icocos = 7
|
|
||||||
|
|
||||||
; Whether the poloidal function is normalised (G-EQDSK)
|
|
||||||
; false: is not normalised, ψ → |ψ - ψ(edge)|/|ψ(axis) - ψ(edge)|
|
|
||||||
; true: is already normalised
|
|
||||||
ipsinorm = false
|
|
||||||
|
|
||||||
; G-EQDSK format parameters
|
|
||||||
; Whether header starts with a description, a.k.a identification string
|
|
||||||
idesc = true
|
|
||||||
; Whether the records have variable length
|
|
||||||
; Note: some non-compliant programs output numbers formatted with variable length
|
|
||||||
; instead of using the single (5e16.9) specifier.
|
|
||||||
ifreefmt = false
|
|
||||||
|
|
||||||
; Position of the X point
|
|
||||||
; X_IS_MISSING: No X point
|
|
||||||
; X_AT_TOP: At the top of the plasma
|
|
||||||
; X_AT_BOTTOM: At the bottom of the plasma
|
|
||||||
ixp = X_IS_MISSING
|
|
||||||
|
|
||||||
; Tension of splines
|
|
||||||
; Note: 0 means perfect interpolation
|
|
||||||
ssplps = 0.005 ; for ψ(R,Z), normalised poloidal flux
|
|
||||||
ssplf = 0.01 ; for F(ψ)=R⋅B_T, poloidal current function
|
|
||||||
|
|
||||||
; Force the sign of toroidal field/plasma current
|
|
||||||
; When viewing from above:
|
|
||||||
; +1 → counter-clockwise
|
|
||||||
; -1 → clockwise
|
|
||||||
; 0 → use sign from COCOS
|
|
||||||
sgnb = -1
|
|
||||||
sgni = +1
|
|
||||||
; Rescaling factor for the magnetic field
|
|
||||||
factb = 1
|
|
||||||
|
|
||||||
|
|
||||||
[profiles]
|
|
||||||
; (input) plasma profiles parameters
|
|
||||||
|
|
||||||
; Plasma profiles kind
|
|
||||||
; PROF_ANALYTIC: analytical model
|
|
||||||
; PROF_NUMERIC: numerical data (ρ, n_e, T_e, table)
|
|
||||||
iprof = PROF_NUMERIC
|
|
||||||
|
|
||||||
; Plasma profiles radial coordinate
|
|
||||||
; RHO_TOR: ρ_t = √Φ (where Φ is the normalised toroidal flux)
|
|
||||||
; RHO_POL: ρ_p = √ψ (where ψ is the normalised poloidal flux)
|
|
||||||
; RHO_PSI: normalised poloidal flux ψ
|
|
||||||
irho = RHO_TOR
|
|
||||||
|
|
||||||
; Filepath of the equilibrium (relative to this file)
|
|
||||||
filenm = "profiles.txt"
|
|
||||||
|
|
||||||
; Tension of the density spline
|
|
||||||
; Note: 0 means perfect interpolation
|
|
||||||
sspld = 0.1
|
|
||||||
|
|
||||||
; Rescaling factor for electron temperature/density
|
|
||||||
factte = 1
|
|
||||||
factne = 1
|
|
||||||
|
|
||||||
; Choice of model for rescaling the temperature/density
|
|
||||||
; with the magnetic field (if factb ≠ 0)
|
|
||||||
; SCALE_OFF: don't rescale at all
|
|
||||||
; SCALE_COLLISION: scale while preserving collisionality
|
|
||||||
; SCALE_GREENWALD: scale while preserving the Greenwald fraction
|
|
||||||
iscal = SCALE_OFF
|
|
||||||
|
|
||||||
|
|
||||||
[output]
|
|
||||||
; Output data parameters
|
|
||||||
|
|
||||||
; ECRH&CD profiles grid:
|
|
||||||
; Radial coordinate
|
|
||||||
; RHO_TOR: ρ_t = √Φ (where Φ is the normalised toroidal flux)
|
|
||||||
; RHO_POL: ρ_p = √ψ (where ψ is the normalised poloidal flux)
|
|
||||||
ipec = 1
|
|
||||||
; Number of points
|
|
||||||
nrho = 501
|
|
||||||
|
|
||||||
; Subsampling factors:
|
|
||||||
istpr = 5 ; beam cross section (units 8, 12)
|
|
||||||
istpl = 5 ; outer rays data (unit 33)
|
|
||||||
|
|
||||||
|
|
||||||
[misc]
|
|
||||||
; Other parameters
|
|
||||||
|
|
||||||
; Radius of the inner wall (m) [multipass module]
|
|
||||||
; (when ipass<0, used to build a simple limiter for reflections)
|
|
||||||
rwall = 1.36
|
|
@ -1,3 +0,0 @@
|
|||||||
10 0.3 3 ! n₀,a,b, where n(ψ) = n₀(1 - ψ^a)^b (10¹⁹ m⁻³)
|
|
||||||
14 0 2 8 ! T₀,T₁,a,b, where T(ψ) = (T₀ - T₁)(1 - ψ^a)^b + T₁ (keV)
|
|
||||||
1.0 ! Z_eff
|
|
@ -216,41 +216,20 @@ contains
|
|||||||
! where w(z, α, β) and 1/R(z, α, β) depend on the launcher angles α, β.
|
! where w(z, α, β) and 1/R(z, α, β) depend on the launcher angles α, β.
|
||||||
!
|
!
|
||||||
! Format notes:
|
! Format notes:
|
||||||
! 1. The first line contains the number N of beams defined in the file
|
! 1. The first line specifies the number N of beams described by the file.
|
||||||
! 2. The following N lines contain the following data for each of the
|
! 2. The rest of the files consists of N 2D tables preceded by a header
|
||||||
! N beams:
|
! id, mode, f, na, nb
|
||||||
! ID,iox,f,na,nb
|
! where
|
||||||
! 3. The meaning of the data is
|
! - id is a string identifier of the beam
|
||||||
! - ID is a label to identify the beam
|
! - mode indicates where the beam has O-mode (1) or X-mode (2)
|
||||||
! - iox=1,2 is a flag to select O-mode (1) or X-mode (2) polarization
|
! polarisation
|
||||||
! - f is the wave frequency (GHz)
|
! - f is the frequency (GHz)
|
||||||
! - n*m is the number of rows of the corresponding table below with
|
! - nα, nβ are the numbers of rows and columns of the table.
|
||||||
! the beam parameters.
|
! 3. The 2D table is stored in row-major order over *nα×nβ* lines, that is, the
|
||||||
! * If the beam steering is fixed: na=nb=1
|
! i,j-th record is stored on the l-th line, with l = i + nα*j.
|
||||||
! * For a steering around a single axis:
|
! 4. The poloidal angle *α(i,j)* must be monotonic along *i* and the toroidal angle
|
||||||
! na>1 and nb=1, or na=1 and nb>1.
|
! *β(i, j)* must be monotonic along *j*.
|
||||||
! * For a steering with two independent axes:
|
! 5. Each line stores one record with the same fields as in the 1D format.
|
||||||
! n>1 and m>1.
|
|
||||||
! The row number l of the following table is mapped to two indexes
|
|
||||||
! i,j (1≤i≤na, 1≤j≤nb) via l=i+na*(j-1), i.e., the index i "runs
|
|
||||||
! faster".
|
|
||||||
! Index i is assumed to be associated to a steering mainly in the
|
|
||||||
! poloidal direction and the poloidal launch angle α(i,j) must be
|
|
||||||
! monotonous along its first dimension.
|
|
||||||
! Index j is assumed to be associated to a steering mainly in the
|
|
||||||
! toroidal direction and the toroidal launch angle β(i,j) must be
|
|
||||||
! monotonous along its second dimension.
|
|
||||||
! 4. The rest of file is a sequence of N tables with the following
|
|
||||||
! columns:
|
|
||||||
! α, β, x₀, y₀, z₀, w₁, w₂, k₁, k₂, φ_w, φ_R
|
|
||||||
! 5. The meaning of the columns is
|
|
||||||
! - α, β are the poloidal and toroidal launch angles (deg)
|
|
||||||
! - x₀, y₀, z₀ are the launcher position (mm)
|
|
||||||
! - w₁,w₂ are the beam widths in the two principal directions (mm)
|
|
||||||
! - k₁,k₂ are the wavefront curvatures in the two principal
|
|
||||||
! directions (mm⁻¹)
|
|
||||||
! - φ_w, φ_R are the rotation angles of the amplitude and phase
|
|
||||||
! ellipses in the transverse plane at the launch point (deg)
|
|
||||||
|
|
||||||
use gray_params, only : antenna_parameters
|
use gray_params, only : antenna_parameters
|
||||||
use utils, only : get_free_unit, intlin, locate, inside
|
use utils, only : get_free_unit, intlin, locate, inside
|
||||||
|
Loading…
Reference in New Issue
Block a user