Documentation change and testing examples
Documentation adapted to the new way to define geometry and pushers. Examples are currently being tested and small modifications are being done to include a reference output.
This commit is contained in:
parent
ae8aa9075e
commit
8dd3023bc0
12 changed files with 3075 additions and 64 deletions
Binary file not shown.
|
|
@ -405,28 +405,30 @@ make
|
|||
The object \textbf{geometry} contains information about the type of geometry, the mesh file format and the mesh filename.
|
||||
The accepted parameters are:
|
||||
\begin{itemize}
|
||||
\item \textbf{type}: Character.
|
||||
\item \textbf{dimension}: Integer.
|
||||
Number of spatial dimensions of the geometry.
|
||||
Current values are: $0$, $1$, $2$ or $3$.
|
||||
Zero dimension is a fictitious volume.
|
||||
Geometry used mostly to test collisional effects.
|
||||
No boundary or EM field is solved.
|
||||
No injection can be implemented.
|
||||
Initial state must be read from file.
|
||||
No mesh file is required.
|
||||
The optional argument \textbf{geometry.volume} can be used to set a value for the fictitious volume.
|
||||
Otherwise, the volume is set to 1 in non-dimensional units.
|
||||
\item \textbf{type}: Character.
|
||||
Type of geometry.
|
||||
Current accepted vaules are
|
||||
\begin{itemize}
|
||||
\item \textbf{3DCart}: Three-dimensional grid ($x \hyphen y \hyphen z$) in Cartesian coordinates..
|
||||
For \Gls{gmsh} mesh format, the coordinates $x$, $y$ and $z$ correspond to $x$, $y$ and $z$ respectively.
|
||||
\item \textbf{2DCyl}: Two-dimensional grid ($z \hyphen r$) with symmetry axis at $r = 0$.
|
||||
For \Gls{gmsh} mesh format, the coordinates $x$ and $y$ correspond to $z$ and $r$ respectively.
|
||||
\item \textbf{2DCart}: Two-dimensional grid ($x \hyphen y$) in Cartesian coordinates..
|
||||
For \Gls{gmsh} mesh format, the coordinates $x$ and $y$ correspond to $x$ and $y$ respectively.
|
||||
\item \textbf{1DRad}: One-dimensional grid ($r$) in radial coordinates
|
||||
For \Gls{gmsh} mesh format, the coordinates $x$ corresponds to $r$.
|
||||
\item \textbf{1DCart}: One-dimensional grid ($x$) in Cartesian coordinates
|
||||
For \Gls{gmsh} mesh format, the coordinates $x$ corresponds to $x$.
|
||||
\item \textbf{0D}: Zero dimension ficticius volume.
|
||||
Geometry used mostly to test collisional effects.
|
||||
No boundary or EM field is solved.
|
||||
No injection can be implemented.
|
||||
Initial state must be read from file.
|
||||
No mesh file is required.
|
||||
The optional argument \textbf{geometry.volume} can be used to set a ficticius volume.
|
||||
Otherwise, the volume is set to 1 in non-dimensional units.
|
||||
\item \textbf{Cart}: Cartesian coordinates.
|
||||
Available for \textbf{geometry.dimension} $1$, $2$ and $3$.
|
||||
For \Gls{gmsh} mesh format, the coordinates $x$, $y$ and $z$ correspond to $x$, $y$ and $z$ respectively.
|
||||
\item \textbf{Cyl}: Cylindrical coordinates ($z \hyphen r$) with symmetry axis at $r = 0$.
|
||||
Only available for \textbf{geometry.dimension} $2$.
|
||||
For \Gls{gmsh} mesh format, the coordinates $x$ and $y$ correspond to $z$ and $r$ respectively.
|
||||
\item \textbf{Rad}: One-dimensional radial space ($r$).
|
||||
Only available for \textbf{geometry.dimension} $1$.
|
||||
For \Gls{gmsh} mesh format, the coordinates $x$ corresponds to $r$.
|
||||
\end{itemize}
|
||||
\item \textbf{meshType}: Character.
|
||||
Format of mesh file.
|
||||
|
|
@ -437,9 +439,9 @@ make
|
|||
\item \textbf{meshFile}: Character.
|
||||
Mesh filename.
|
||||
This file is searched in the path \textbf{output.path} and must contain the file extension.
|
||||
\item \textbf{volume}: Real
|
||||
\item \textbf{volume}: Real.
|
||||
Units of $\unit{m^-3}$.
|
||||
Used to set a ficticius volume for the \textbf{0D} geometry.
|
||||
Used to set a fictitious volume for the $0$ dimension.
|
||||
Ignored in the other cases.
|
||||
\end{itemize}
|
||||
|
||||
|
|
@ -624,11 +626,12 @@ make
|
|||
\end{itemize}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\subsection{case}
|
||||
This object determines the simulation time, time step, pushers, weighting scheme and solver for the electromagnetic field.
|
||||
\subsection{solver}
|
||||
This object determines the input parameters for the solvers used in the case, both for particle pushers and electromagnetic field.
|
||||
Accepted variables are:
|
||||
\begin{itemize}
|
||||
\item \textbf{tau}: Real.
|
||||
Units of $\unit{s}$.
|
||||
Array dimension 'number of species'.
|
||||
Defines the different time steps for each species.
|
||||
Even if all time steps are equal, they need to be defined as an array.
|
||||
|
|
@ -643,18 +646,9 @@ make
|
|||
Array dimension 'number of species'.
|
||||
Indicates the type of pusher used for each species:
|
||||
\begin{itemize}
|
||||
\item \textbf{3DCartNeutral}: Pushes particles in a 3D Cartesian space ($x \hyphen y \hyphen z$) without any external force.
|
||||
\item \textbf{3DCartCharged}: Pushes particles in a 3D Cartesian space ($x \hyphen y \hyphen z$) including the effect of the electrostatic field.
|
||||
\item \textbf{2DCylNeutral}: Pushes particles in a 2D cylindrical space ($z \hyphen r$) without any external force.
|
||||
\item \textbf{2DCylCharged}: Pushes particles in a 2D cylindrical space ($z \hyphen r$) including the effect of the electrostatic field.
|
||||
\item \textbf{2DCartNeutral}: Pushes particles in a 2D Cartesian space ($x \hyphen y$) without any external force.
|
||||
\item \textbf{2DCartCharged}: Pushes particles in a 2D Cartesian space ($x \hyphen y$) including the effect of the electrostatic field.
|
||||
\item \textbf{1DRadNeutral}: Pushes particles in a 1D cylindrical space ($r$) without any external force.
|
||||
\item \textbf{1DRadCharged}: Pushes particles in a 1D cylindrical space ($r$) accounting the the electrostatic field.
|
||||
\item \textbf{1DCartNeutral}: Pushes particles in a 1D Cartesian space ($x$) without any external force.
|
||||
\item \textbf{1DCartCharged}: Pushes particles in a 1D Cartesian space ($x$) accounting the the electrostatic field.
|
||||
\item \textbf{0D}: Dummy pusher for 0D geometry.
|
||||
No pushing is actually done.
|
||||
\item \textbf{Neutral}: Pushes a particle without any external force.
|
||||
\item \textbf{Electrostatic}: Pushes a particle including the effect of the electrostatic field.
|
||||
\item \textbf{Electromagnetic}: Pushes particles accounting for the electromagnetic field.
|
||||
\end{itemize}
|
||||
\item \textbf{WeightingScheme}: Character.
|
||||
Indicates the variable weighting scheme to be used in the simulation.
|
||||
|
|
@ -669,7 +663,13 @@ make
|
|||
If no value is supplied, no field is solved.
|
||||
\begin{itemize}
|
||||
\item \textbf{Electrostatic}: Solves the Poison equation to obtain the self-consistent electrostatic potential.
|
||||
\item \textbf{ConstantB}: Assumes a constant magnetic field in all the domain.
|
||||
It solves the Poisson equation as in the \textbf{solver.EMSolver} option.
|
||||
\end{itemize}
|
||||
\item \textbf{B}: Real.
|
||||
Units of $\unit{T}$.
|
||||
Array of dimension $3$.
|
||||
Provides the value of constant magnetic field for the option \textbf{solver.EMSolver} \textbf{ConstantB}.
|
||||
\item \textbf{initial}: Array of objects.
|
||||
Determines initial values for the species.
|
||||
Required values are:
|
||||
|
|
|
|||
11
runs/0D_Argon/README.txt
Normal file
11
runs/0D_Argon/README.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
Example of 0D geometry.
|
||||
|
||||
Mostly used to test collision processes.
|
||||
|
||||
This example includes Ar and Ar+ with self-collisions for Ar and elastic collisions for AR-Ar+.
|
||||
|
||||
Different starting temperatures for each species that end up in equilibrium.
|
||||
|
||||
The gnuplpot script 'plot_Temperature.gp' generates a plot of the species temperatures.
|
||||
|
||||
The result is provided in the output folder to compare if modifications to the code are made.
|
||||
|
|
@ -21,8 +21,8 @@
|
|||
{"name": "Argon", "type": "neutral", "mass": 6.633e-26, "weight": 1.0e0}
|
||||
],
|
||||
"solver": {
|
||||
"tau": [1.0e-6, 1.0e-6],
|
||||
"finalTime": 1.0e-3,
|
||||
"tau": [1.0e-3, 1.0e-3],
|
||||
"finalTime": 1.0e0,
|
||||
"initial": [
|
||||
{"species": "Argon+", "file": "Argon+_Initial.dat"},
|
||||
{"species": "Argon", "file": "Argon_Initial.dat"}
|
||||
|
|
|
|||
1002
runs/0D_Argon/output/OUTPUT_Argon+.dat
Normal file
1002
runs/0D_Argon/output/OUTPUT_Argon+.dat
Normal file
File diff suppressed because it is too large
Load diff
1002
runs/0D_Argon/output/OUTPUT_Argon.dat
Normal file
1002
runs/0D_Argon/output/OUTPUT_Argon.dat
Normal file
File diff suppressed because it is too large
Load diff
1002
runs/0D_Argon/output/OUTPUT_Collisions.dat
Normal file
1002
runs/0D_Argon/output/OUTPUT_Collisions.dat
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -43,6 +43,8 @@ set output "comp_temp.eps"
|
|||
filename1 = "OUTPUT_Argon.dat"
|
||||
filename2 = "OUTPUT_Argon+.dat"
|
||||
|
||||
folder = 'output/'
|
||||
|
||||
set lmargin at screen lmar
|
||||
set rmargin at screen rmar
|
||||
|
||||
|
|
@ -58,7 +60,6 @@ set ylabel "Temperature (K)" offset 1.4,0.0
|
|||
set key width 0.5 height 0.1 spacing 1.3 samplen 0.2 box opaque font ",16"
|
||||
set key at graph 0.95, graph 0.9 right top
|
||||
|
||||
plot filename1 u ($1):($7) t "Ar" ls 1 with lines, \
|
||||
filename2 u ($1):($7) t "Ar^{+}" ls 2 with lines, \
|
||||
'< paste OUTPUT_Argon.dat OUTPUT_Argon+.dat' u ($1):($7 + $14) t "Sum" ls 3 with lines
|
||||
plot folder.filename1 u ($1):($7) t "Ar" ls 1 with lines, \
|
||||
folder.filename2 u ($1):($7) t "Ar^{+}" ls 2 with lines
|
||||
|
||||
8
runs/1D_Cathode/README.txt
Normal file
8
runs/1D_Cathode/README.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
This case is useful to explain how fpakc can work with different geometries (Cartisian and Radial in this case) using very similar input files and the same mesh.
|
||||
|
||||
From the position to the left, electrons are emitted at a constant rate.
|
||||
The electric potential at the left is fixed at 0.
|
||||
|
||||
Depending on the geometry (which affects the symmetry) different distributions of the electron density and electric potential are achieved.
|
||||
|
||||
The last iteration obtained for these cases is in the output folder.
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
{
|
||||
"output": {
|
||||
"path": "./runs/1D_Cathode/",
|
||||
"triggerOutput": 100,
|
||||
"triggerOutput": 1000,
|
||||
"cpuTime": false,
|
||||
"numColl": false,
|
||||
"EMField": true,
|
||||
|
|
@ -20,16 +20,13 @@
|
|||
"meshFile": "mesh.msh"
|
||||
},
|
||||
"species": [
|
||||
{"name": "Electron", "type": "charged", "mass": 9.109e-31, "charge":-1.0, "weight": 1.0e1},
|
||||
{"name": "Argon+", "type": "charged", "mass": 6.633e-26, "charge": 1.0, "weight": 1.0e1}
|
||||
{"name": "Electron", "type": "charged", "mass": 9.109e-31, "charge":-1.0, "weight": 1.0e1}
|
||||
],
|
||||
"boundary": [
|
||||
{"name": "Cathode", "physicalSurface": 1, "bTypes": [
|
||||
{"type": "absorption"},
|
||||
{"type": "absorption"}
|
||||
]},
|
||||
{"name": "Infinite", "physicalSurface": 2, "bTypes": [
|
||||
{"type": "transparent"},
|
||||
{"type": "transparent"}
|
||||
]}
|
||||
],
|
||||
|
|
@ -37,17 +34,13 @@
|
|||
{"name": "Cathode", "type": "dirichlet", "potential": 0.0, "physicalSurface": 1}
|
||||
],
|
||||
"inject": [
|
||||
{"name": "Plasma Inf Ar+", "species": "Argon+", "flow": 1.00e-6, "units": "A", "v": 300.0, "T": [ 500.0, 500.0, 500.0],
|
||||
"velDist": ["Maxwellian", "Maxwellian", "Maxwellian"], "n": [-1, 0, 0], "physicalSurface": 2},
|
||||
{"name": "Plasma Inf e", "species": "Electron", "flow": 2.64e-4, "units": "A", "v": 0.0, "T": [11604.0, 11604.0, 11604.0],
|
||||
"velDist": ["Maxwellian", "Maxwellian", "Maxwellian"], "n": [-1, 0, 0], "physicalSurface": 2},
|
||||
{"name": "Plasma Cat e", "species": "Electron", "flow": 2.64e-5, "units": "A", "v": 180000.0, "T": [ 2300.0, 2300.0, 2300.0],
|
||||
"velDist": ["Maxwellian", "Maxwellian", "Maxwellian"], "n": [ 1, 0, 0], "physicalSurface": 1}
|
||||
],
|
||||
"solver": {
|
||||
"tau": [1.0e-11, 1.0e-11],
|
||||
"finalTime": 4.0e-6,
|
||||
"pusher": ["Electrostatic", "Electrostatic"],
|
||||
"tau": [1.0e-11],
|
||||
"finalTime": 3.0e-7,
|
||||
"pusher": ["Electrostatic"],
|
||||
"EMSolver": "Electrostatic"
|
||||
},
|
||||
"parallel": {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
{
|
||||
"output": {
|
||||
"path": "./runs/1D_Cathode/",
|
||||
"triggerOutput": 100,
|
||||
"triggerOutput": 1000,
|
||||
"cpuTime": false,
|
||||
"numColl": false,
|
||||
"EMField": true,
|
||||
|
|
@ -20,16 +20,13 @@
|
|||
"meshFile": "mesh.msh"
|
||||
},
|
||||
"species": [
|
||||
{"name": "Electron", "type": "charged", "mass": 9.109e-31, "charge":-1.0, "weight": 1.0e1},
|
||||
{"name": "Argon+", "type": "charged", "mass": 6.633e-26, "charge": 1.0, "weight": 1.0e1}
|
||||
{"name": "Electron", "type": "charged", "mass": 9.109e-31, "charge":-1.0, "weight": 1.0e1}
|
||||
],
|
||||
"boundary": [
|
||||
{"name": "Cathode", "physicalSurface": 1, "bTypes": [
|
||||
{"type": "absorption"},
|
||||
{"type": "absorption"}
|
||||
]},
|
||||
{"name": "Infinite", "physicalSurface": 2, "bTypes": [
|
||||
{"type": "transparent"},
|
||||
{"type": "transparent"}
|
||||
]}
|
||||
],
|
||||
|
|
@ -37,17 +34,13 @@
|
|||
{"name": "Cathode", "type": "dirichlet", "potential": 0.0, "physicalSurface": 1}
|
||||
],
|
||||
"inject": [
|
||||
{"name": "Plasma Inf Ar+", "species": "Argon+", "flow": 1.00e-6, "units": "A", "v": 323.0, "T": [ 500.0, 500.0, 500.0],
|
||||
"velDist": ["Delta", "Maxwellian", "Maxwellian"], "n": [-1, 0, 0], "physicalSurface": 2},
|
||||
{"name": "Plasma Inf e", "species": "Electron", "flow": 2.64e-4, "units": "A", "v": 0.0, "T": [11604.0, 11604.0, 11604.0],
|
||||
"velDist": ["Maxwellian", "Maxwellian", "Maxwellian"], "n": [-1, 0, 0], "physicalSurface": 2},
|
||||
{"name": "Plasma Cat e", "species": "Electron", "flow": 2.64e-2, "units": "A", "v": 180000.0, "T": [ 2300.0, 2300.0, 2300.0],
|
||||
"velDist": ["Maxwellian", "Maxwellian", "Maxwellian"], "n": [ 1, 0, 0], "physicalSurface": 1}
|
||||
],
|
||||
"solver": {
|
||||
"tau": [1.0e-11, 1.0e-11],
|
||||
"tau": [1.0e-11],
|
||||
"finalTime": 3.0e-7,
|
||||
"pusher": ["Electrostatic", "Electrostatic"],
|
||||
"pusher": ["Electrostatic"],
|
||||
"EMSolver": "Electrostatic"
|
||||
},
|
||||
"parallel": {
|
||||
|
|
|
|||
|
|
@ -913,7 +913,6 @@ MODULE moduleInput
|
|||
|
||||
SELECT CASE(mesh%dimen)
|
||||
CASE (0)
|
||||
CALL config%get(object // '.meshType', meshFormat, found)
|
||||
CALL init0D(mesh)
|
||||
|
||||
!Read the 0D mesh
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue