슬라이드 1 - Pohang University of Science and Technology

Download Report

Transcript 슬라이드 1 - Pohang University of Science and Technology

XOOPIC (./xoopic –i inputfile –d dumpfile)
Contents:
physics/*
advisor/*
xg/*
doc/*
input/*.inp
xgrafix/*
xgrafix_dist
bench/*
OOPIC physical model files
OOPIC expert advisor files
XOOPIC GUI and top-level control files
documentation
input files for OOPIC
Graphical library for XOOPIC
Documentation and test files for XGrafix 2.0
Some benchmark input files and
README_INSTALL compilation instructions
README.PARALLEL Notes and instructions for the parallel version.
g++-fixes/* things you might need to do to g++ to get it to work
BUGS
known bugs
COPYRIGHT University of California COPYRIGHT
CHANGES
A description of the changes to the code.
Authors: John Verboncoeur [email protected]
(head of the physical model development)
Tom Gladd
[email protected]
(head of the expert advisor development)
Peter Mardahl
[email protected]
(X version of OOPIC, XY-geometry for OOPIC, ES OOPIC)
Keith Cartwright
[email protected]
(EM boundary conditions, boltzmann electrons)
Bill Peter
[email protected]
(EM boundary conditions, field emitter)
Contributers of code:
Ronald Cohen of Lawrence Livermore National Labs
(some code for a more general static magnetic field
at t=0)
FTP site:
XOOPIC is up for public FTP at ptsg.eecs.berkeley.edu in the
directory pub/codes.
You may also download the code by means of http://ptsg.eecs,
look under either XOOPIC or pub/codes.
email: [email protected]
Plasma Application
Modeling, POSTECH
Input.txt (Grid)
Variables------------------------------------------
This is a special group for user-defined variables.
You are free here to make definitions used lower down in
the input file.
Examples:
JMAX = 200
KMAX = 120
k_half = KMAX/2
XOOPIC will then interpret any occurrence of these strings below
the Variables as having the values given, if the occurrence is
on the right-hand-side of an = sign.
Grid----------------------------------------J (int) Number of cells in the x1 direction. No default value.
K (int) Number of cells in the x2 direction. No default value.
x1s (scalar) [m] Lower coordinate in the x1 direction. No default value.
x1f (scalar) [m] Upper coordinate in the x1 direction. No default value.
n1=1 (scalar) Non-uniform grid scaling parameter. Mapping is performed according
to xj = x1s + (x1f-x1s)(j/J)^n1, 0<=j<=J.
x2s (scalar) [m] Lower coordinate in the x2 direction. No default value.
x2f (scalar) [m] Upper coordinate in the x2 direction. No default value.
n2=1 (scalar) Non-uniform grid scaling parameter. Mapping is performed according
to xk = x2s + (x2f-x2s)(k/K)^n2, 0<=k<=K.
Geometry=0 (flag) Toggles between rz (0) and xy (1) geometries.
PeriodicFlagX1 = 0 (flag) Toggles between non-periodic (0) and periodic (1) in the
first direction. (Handy for doing 1d problems)
Currently works with multigrid and EM solve.
PeriodicFlagX2 = 0 (flag) Toggles between non-periodic (0) and periodic (1) in the
second direction.
Currently works with multigrid and EM solve.
dx1=1 (string) Function which will modulate the mesh spacing in x1 direction.
It is a function of j, so dx1="f(j)" forms are acceptable.
examples: dx1 = j, dx1 = j/J + 0.5.
j varies from 1/2 to J-1/2
dx2=1 (string) As above, except for k.
Plasma Application
Modeling, POSTECH
Input.txt (Control, Species, MCC)
Control--------------------------------------
dt=1E-12 (scalar) [sec] Time step in seconds
frandseed = (int) 31207321 seed for random number generator.
B01=0 (scalar) [Tesla] Uniform static magnetic field in x1 direction.
B02=0 (scalar) [Tesla] Uniform static magnetic field in x2 direction.
B03=0 (scalar) [Tesla] Uniform static magnetic field in x3 direction.
ElectrostaticFlag=0 (flag) Determines field solver: 0=electromagnetic,
1-3=electrostatic. 1=DADI,...,4=multigrid.
For the MPI version of XOOPIC only:
MPIpartition=Nx1 (string) Partitioning information for the parallel version.
(see MPI.txt, ../README.PARALLEL)
Species-------------------------------------speciesName=NULL (string) Unique name for this species.
q=-1.602E-19 (scalar) [C] Charge per physical particle of this species.
m=9.11E-31 (scalar) [kg] Mass per physical particle of this species.
subcycle=1 (int) Number of field advances/particle advance (>=1)
This is known not to work with emitters presently. (v1.1)
supercycle=1 (int) Number of particle advances/field advance (>=1)
This is known not to work with emitters presently. (v1.1)
collisionModel=none
(string) Model to use for collisions of this species: none (0),
electron (1), ion (2), test (3), or boltzmann (4).
MCC-----------------------------------------name=NULL (string) Name of the background gas package (currently only
Ar, Ne or Xe).
pressure=0 (scalar) [Torr] Uniform background gas pressure for this gas.
temperature=0.025 (scalar) [eV] Uniform background gas temperature.
eSpecies=NULL
(string) Electron species to create in ionization collisions.
iSpecies=NULL
(string) Ion species to create in ionization collisions.
Plasma Application
Modeling, POSTECH
Input.txt (Boundary Parameters)
Generic Boundary Parameters-----------------[for time functions, read timefunc.txt and evaluator.txt]
[for particle diagnostics see pdiag.txt]
j1 (int) x1 index for first boundary endpoint.
k1 (int) x2 index for first boundary endpoint.
j2 (int) x1 index for second boundary endpoint.
k2 (int) x2 index for second boundary endpoint.
Alternately, you may specify boundary locations in MKS units.
However, XOOPIC will put the computational boundary on the
nearest grid point.
A1 (scalar) x1 location for first boundary endpoint.
A2 (scalar) x2 location for first boundary endpoint.
B1 (scalar) x1 location for second boundary endpoint.
B2 (scalar) x2 location for second boundary endpoint.
As another alternative, you may specify the boundary endpoints by
using the Segment group, example:
Boundary
{
Segment
{
SegName = element1
A1 = 0
A2 = 0
B1 = 0.3
B2 = 0
normal = 1
}
...
Some boundaries will support multiple segments, see below.
Plasma Application
Modeling, POSTECH
Input.txt (Boundary Parameter, Load)
normal (int) Unit direction of normal: -1=down/left, 1=up/right.
EFFlag=0 (flag) Toggles recorder for Poynting flux through boundary: 0=off, 1=on.
IdiagFlag=0 (flag) Toggles particle current accumulation: 0=off, 1=on.
diagSpeciesName=Noname (string) species for distribution function accumulation.
If not present or set to "Noname", the diagnostic is off.
nxbins=100 (int) Number of spatial bins along boundary segment for distribution
accumulation.
nenergybins=0 (int) Number of energy bins for distribution accumulation.
nthetabins=0 (int) Number of bins for angular distribution function.
theta_min=0 (Scalar) Minimum angle for angular distribution function.
theta_max=90 (Scalar) Maximum angle for angular distribution function.
energy_min=0 (Scalar) [eV] Minimum energy for dist. funtion collector.
energy_max=100 (Scalar) [eV] Minimum energy for dist. funtion collector.
name (string) A name for this boundary, will appear in graphs under XOOPIC.
C=1 (scalar) DC value for time-dependent function.
A=0 (scalar) AC value for time-dependent function.
frequency=0 (scalar) [Hz] Frequency of AC variation for time-dependent function.
phase=0 (scalar) [rad] Initial phase of AC variation for time-dependent function.
tdelay=0 (scalar) [s] Delay time before start of envelope function.
trise=0 (scalar) [s] Rise time of envelope for time-dependent function.
tpulse=10000 (scalar) [s] Pulse width of envelope for time-dependent function.
tfall=0 (scalar) [s] Pulse fall time of envelope for time-dependent function.
a0=1 (scalar) Low value of envelope for time-dependent function.
a1=1 (scalar) High value of envelope for time-dependent function.
time_function_flag=0 (flag) Selects from available time functions: 0=default
1 = string interpreted function (see timefunc.txt)
Load----------------------------------------units=MKS (string) [MKS or EV] units for ALL the velocities
v1drift=0 (scalar) [m/s or eV] Drift velocity in x1.
v2drift=0 (scalar) [m/s or eV] Drift velocity in x2.
v3drift=0 (scalar) [m/s or eV] Drift velocity in x3.
temperature=0 (scalar) [m/s or eV] Isotropic temperature (3/2 kT = 1/2 m (Vtx^2+Vty^2+Vtz^2) ).
v1thermal=0 (scalar) [m/s or eV] Thermal velocity in x1. (1/2 kT = 1/2 m Vtx^2)
v2thermal=0 (scalar) [m/s or eV] Thermal velocity in x2. (1/2 kT = 1/2 m Vty^2)
v3thermal=0 (scalar) [m/s or eV] Thermal velocity in x3. (1/2 kT = 1/2 m Vtz^2)
density=0 (scalar) [m^-3] Uniform number density.
x1MinMKS (scalar) [m] Lower x1 coordinate of region.
x1MaxMKS (scalar) [m] Upper x1 coordinate of region.
x2MinMKS (scalar) [m] Lower x2 coordinate of region.
x2MaxMKS (scalar) [m] Upper x2 coordinate of region.
np2c (scalar) Number of physical particles to computer particles.
If np2c = 0, unmoving background rho.
Input.txt (Material)
Dielectric-----------------------------------
Generic Boundary parameters, only 1 Segment permitted.
er=1 (scalar) Relative permittivity.
QuseFlag=1 (flag) Determines whether to use the accumulated surface charge in the
field solve; i.e. 0 indicates that the charge drains off. This flag
is only applicable to the electrostatic model.
reflection=0 (scalar) Coefficient for particle reflection between 0 and 1.
refMaxE=1e10 (scalar) [eV] Only reflect particles below this energy.
Secondary group (see below) can contain zero or more.
Secondary-----------------------------------secondary=0 (scalar) Secondary emission coefficient, can be > 1
threshold=0.5 (scalar) [eV] Emission threshold: incident energy must exceed to emit.
Eemit=2 (scalar) [eV] Maximum energy of emitted secondaries.
secSpecies=NULL (string) Name of the species to emit as secondaries;
must correspond to an existing species if secondary > 0.
iSpecies=NULL (string) Incident species to generate secondaries.
DielectricRegion----------------------------Dielectric parameters, only 1 Segment permitted.
*note: for DielectricRegion, the points formed by (j1,k1) and (j2,k2)
indicate a rectangular region rather than a line segment.
Conductor-----------------------------------Dielectric parameters, multiple Segments permitted.
CylindricalAxis-----------------------------Generic Boundary parameters.
Plasma Application
Modeling, POSTECH
Input.txt (Equipotential, Plasma Source)
Gap-----------------------------------------Generic Boundary parameters, only 1 Segment permitted.
*note: uses timefunction (Generic Boundary parameters) to set time-dependent
field (V/m) uniformly in space across the gap.
Equipotential-------------------------------[see timefunc.txt, evaluator.txt and eqpot.txt for gotchas]
Conductor parameters.
*note: uses timefunction (Generic Boundary parameters) to set spatially
uniform time-dependent voltage on surface. Works as a grounded
Conductor in the electromagnetic model.
*note: if you have multiple boundary segments which are all at the same potential
it is important for performance that you specify them all
in the same Equipotential group.
PlasmaSource-----------------------------------
units1=MKS (string) [MKS or EV] units for ALL the velocities for species 1
v1drift1=0 (scalar) [m/s or eV] Drift velocity in x1.
v2drift1=0 (scalar) [m/s or eV] Drift velocity in x2.
v3drift1=0 (scalar) [m/s or eV] Drift velocity in x3.
temperature1=0 (scalar) [m/s or eV] Isotropic temperature. (see Load for definition)
v1thermal1=0 (scalar) [m/s or eV] Thermal velocity in x1. (see Load for definition)
v2thermal1=0 (scalar) [m/s or eV] Thermal velocity in x2. (see Load for definition)
v3thermal1=0 (scalar) [m/s or eV] Thermal velocity in x3. (see Load for definition)
speciesName1=NULL (scalar) Refers to the Species with the same speciesName.
units2=MKS (string) [MKS or EV] units for ALL the velocities for species 2
v1drift2=0 (scalar) [m/s or eV] Drift velocity in x1.
v2drift2=0 (scalar) [m/s or eV] Drift velocity in x2.
v3drift2=0 (scalar) [m/s or eV] Drift velocity in x3.
temperature2=0 (scalar) [m/s or eV] Isotropic temperature. (see Load for definition)
v1thermal2=0 (scalar) [m/s or eV] Thermal velocity in x1. (see Load for definition)
v2thermal2=0 (scalar) [m/s or eV] Thermal velocity in x2. (see Load for definition)
v3thermal2=0 (scalar) [m/s or eV] Thermal velocity in x3. (see Load for definition)
speciesName2=NULL (scalar) Refers to the Species with the same speciesName.
j1,k1,j2,k2: two corner points to define the rectangle.
sourceRate=0 (scalar) [#/m^3/s]
rate of plasma generation m^-3 s^-1
np2c=1e6 (scalar) ratio of physical to computer particles
Plasma Application
Modeling, POSTECH
Input.txt (Emitter)
Generic Emitter Parameters-----------------------
Dielectric Parameters, Only 1 Segment permitted.
units=MKS (string) [MKS or EV] units for ALL the velocities
v1drift=0 (scalar) [m/s or eV] Drift velocity in x1.
v2drift=0 (scalar) [m/s or eV] Drift velocity in x2.
v3drift=0 (scalar) [m/s or eV] Drift velocity in x3.
temperature=0 (scalar) [m/s or eV] Isotropic temperature. (see Load for definition)
v1thermal=0 (scalar) [m/s or eV] Thermal velocity in x1. (see Load for definition)
v2thermal=0 (scalar) [m/s or eV] Thermal velocity in x2. (see Load for definition)
v3thermal=0 (scalar) [m/s or eV] Thermal velocity in x3. (see Load for definition)
Lcutoff=0 (scalar) [m/s oreV] isotropic lower cutoff for temperature.
v1Lcutoff=0 (scalar) [m/s or eV] lower cutoff velocity in x1.
v2Lcutoff=0 (scalar) [m/s or eV] lower cutoff velocity in x2.
v3Lcutoff=0 (scalar) [m/s or eV] lower cutoff velocity in x3.
Ucutoff=0 (scalar) [m/s oreV] isotropic upper cutoff for temperature.
v1Ucutoff=0 (scalar) [m/s or eV] upper cutoff velocity in x1.
v2Ucutoff=0 (scalar) [m/s or eV] upper cutoff velocity in x2.
v3Ucutoff=0 (scalar) [m/s or eV] upper cutoff velocity in x3.
np2c (scalar) Number of physical particles to computer particles.
speciesName=NULL (scalar) Refers to the Species with the same speciesName.
BeamEmitter---------------------------------Generic Emitter parameters, only 1 Segment permitted.
I=1 (scalar) [A] Emission current.
thetadot=0 (scalar) [rad/s] Angular velocity of beam.
er=1 (scalar) Relative permittivity.
ExitPort------------------------------------Generic Boundary parameters, only 1 Segment permitted.
R=376.99 (scalar) [ohms] Resistive component of surface impedance.
L=0 (scalar) [H] Inductive component of surface impedance.
Cap=0 (scalar) [F] Capacitive component of surface impedance.
Rin=376.99 (scalar) [ohms] Resistive component of surface impedance for incoming
wave.
Lin=0 (scalar) [H] Inductive component of surface impedance for incoming wave.
Capin=0 (scalar) [F] Capacitive component of surface impedance for incoming wave.
Plasma Application
Modeling, POSTECH
Diagnostics-------------------------------For more information read diagnostic.txt
j1 (int) x1 index for first diagnostic endpoint.
k1 (int) x2 index for first diagnostic endpoint.
j2=j1 (int) x1 index for second diagnostic endpoint.
k2=k1 (int) x2 index for second diagnostic endpoint.
Alternately, you may specify boundary locations in MKS units.
However, XOOPIC will put the diagnostic on the
nearest grid point.
A1 (scalar) x1 location for first boundary endpoint.
A2 (scalar) x2 location for first boundary endpoint.
B1 (scalar) x1 location for second boundary endpoint.
B2 (scalar) x2 location for second boundary endpoint.
VarName (string) name of variable to be plotted. Currently the follow variables can be plotted.
For time histories:
E1 -> Ez (RZ) or Ex (XY), E2 -> Er (RZ) or Ey (XY), E3 -> Ephi (RZ) or Ez (XY)
B1 -> Bz (RZ) or Bx (XY), B2 -> Br (RZ) or By (XY), B3 -> Bphi (RZ) or Bz (XY)
I1 -> Iz (RZ) or Ix (XY),
I2 -> Ir (RZ) or Iy (XY),
I3 -> Iphi (RZ) or Iz (XY)
intEdl1 -> Ez (RZ) or Ex (XY)
intEdl2 -> Er (RZ) or Ey (XY)
intEdl3 -> Ephi (RZ) or Ez (XY)
poynting1 -> Poynting Vector in x1
poynting2 -> Poynting Vector in x2
poynting3 -> Poynting Vector in x3
rho -> charge density
n -> density of a given species
phi -> potential (only with electrostatic field solve)
Q -> surface charge on dielectrics
For spatial regions
JdotE -> JdotE
x1_Label=x1 (string) x1 Label of the XGrafix plot
x2_Label=x2 (string) x2 Label of the XGrafix plot
x3_Label=x3 (string) x3 Label of the XGrafix plot
title=not_named (string) Title of XGrafix window.
**************NOTE**************
DON'T HAVE TWO TITLES THE SAME. XGrafix DOESN'T LIKE IT.
nfft (int) number of data points for fft, must be power of 2[currently nonfunctional]
HistMax=64 (int) maximum length of history array
save=0 (int) Flag: 1 saves the diagnostic data in the dumpfile
Flag: 0 restarts when restarted from a dumpfile
Comb=0 (int) Every Comb'th value is left when HistMax is reached
**Note if Comb=0 the history is a local history.**
Ave=0 (int) Averaged over Ave data points when adding to history array
integral=NULL (string) one of: line (variable dotted into dl), flux (variable dotted
into dS), sum (simple summation).
Example of Input file (1)
default
{
Two Cavity Klystron. First cavity driven with an ExitPort.
Second cavity has power taken out through an ExitPort.
}
Region
{
Grid
{
n2 = 1.000e+00
x2f = 3.90e-02
x2s = 0.000e+00
K = 78
n1 = 1.000e+00
x1f = 5.50e-01
x1s = 0.000e+00
J = 275
Rule
{
Limit
n1 < 2.500e-01
Fatal -- n1 < 0.25 grid spacing too nonuniform to ensure accuracy
}
}
Control
{
B01 = 1.000
dt = 2.000e-13
Rule
{
Limit
dt <= 0.000e+00
Fatal -- time step must be positive
}
}
CylindricalAxis
{
normal = 1
k2 = 0
j2 = Jmax
k1 = 0
j1 = 0
Plasma Application
}
Modeling, POSTECH
Example of input file(2)
Conductor
{
normal = 1
k2 = 0
j2 = 0
k1 = 38
j1 = 0
ExitPort
{
EFFlag = 1
name = Input Gap
normal = -1
k2 = 78
j2 = 45
k1 = 78
j1 = 55
R = 6.3e3
Cap = 1.7487e-12
L= 1.5739e-9
}
Conductor
{
Segment
{
normal = 1
k2 = 42
j2 = 0
k1 = 46
j1 = 0
}
Segment
{
normal = -1
k2 = 46
j2 = 0
k1 = 46
j1 = 47
}
 ….
Species
{
name = electrons
m = 9.11e-31
q = -1.6e-19
}
BeamEmitter
{
np2c = 2.000e+9
I = 5.0e3
speciesName = electrons
v1drift = 2.997e+08
normal = 1
k2 = 38
j2 = 0
k1 = 42
j1 = 0
}
}
Gap
{
normal = -1
k2 = 46
j2 = 53
k1 = 46
j1 = 47
A = 1e6
frequency= 3.0337e9
EFFlag = 1
name = gap
}
Diagnostic
{
VarName = E1
Ave = 0
HistMax = 2024
title = Erdotdl at input Cavity
j1 = 50
k1 = 46
j2 = 51
k2 = 46
integral = line
x1_Label = time
x2_Label = Er
}