Commit ebe8d90c authored by Thomas Planche's avatar Thomas Planche

revising the tutorial Part 1 and the corresponding example files

parent 7ba59a62
......@@ -31,27 +31,24 @@ zgoubi HRS tuto: DIPOLE
36.32357
'MATRIX'
2 0 !order of the map; 0:means calculate the matrix here
'FIT'
4 !Number of physical parameters to be varied
3 5 0. 0.01
3 64 3.66 0.01
2 1 0.0 0.05
3 21 -3.037 1.0
4 1e-10 100
3 1 2 4 0.0 10. 0
3 1 3 4 0.0 10. 0
1 2 2 5 0.0 3. 0
2 2 22 5 0.0 1. 0
'END'
! 'MATRIX'
! 2 0 !order of the map; 0:means calculate the matrix here
!
!
! 'FIT'
! 4 !Number of physical parameters to be varied
! 3 5 0. 0.01
! 3 64 3.66 0.01
! 2 1 0.0 0.05
! 3 21 -3.037 1.0
! 4 1e-10 100
! 3 1 2 4 0.0 10. 0
! 3 1 3 4 0.0 10. 0
! 1 2 2 5 0.0 3. 0
! 2 2 22 5 0.0 1. 0
!
!
! 'END'
......
zgoubi HRS tuto: DIPOLE
'OBJET'
544.1328 !544.1192 or 544.1328
3.01 !read from particles from
1 3000 1 !IP1; IP2; IPStep (Read particles numbered IT1 to IT2, step ITStep)
1 1 1 !not used here
1. 1. 1. 0.5 1. 1. 1. * !scaling factors on Y,T,Z,P,S,DP
0 0 0 0 0 0 0 ! not used here
0 ! not sure what this one does
noEspread.beam ! name of the input file
'DRIFT'
36.32357
'DIPOLE'
0 !output flag: 0: no outpot, 2: output trajectory to zgoubi.plt, etc.
130 120. !AT[deg.], RM[cm]
65 4.5343276 0. 0. 0. !ACENT[deg.];B0[kG]; N; B; GX
7.0 0. !ENTRANCE FIELD BOUNDARY: fringe field extend[cm]; unused
4 0. 1.8 0. 0. 0. 0. 0. !unused; C0...C5; shift
45. 26.543694 220.000 0.0 0.0 220.000 !W+[deg.]; edge angle[deg.]; R1[cm]; U1; U2; R2[cm]
7.0 0. !EXIT FIELD BOUNDARY: lambda; =-1 for Enge like
4 0. 1.8 0. 0. 0. 0. 0. !unused; C0...C5; shift
-45. -26.543694 -220.000 0. 0. -220.000 0. !W-; edge angle; R1; U1; U2; R2
0. 0. !FACE 3: (Not used here)
0 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
2 4. !IRD(=2, 25 or 4)
0.5 !Integration step size[cm]
2 127.96748 -0.349067 127.96748 0.349067 !KPOS RE[cm]; TE[rad]; RS[cm]; TS[rad]
'DRIFT'
36.32357
'DRIFT'
36.32357
'DIPOLE'
0 !output flag: 0: no outpot, 2: output trajectory to zgoubi.plt, etc.
130 120. !AT[deg.], RM[cm]
65 4.5343276 0. 0. 0. !ACENT[deg.];B0[kG]; N; B; GX
7.0 0. !ENTRANCE FIELD BOUNDARY: fringe field extend[cm]; unused
4 0. 1.8 0. 0. 0. 0. 0. !unused; C0...C5; shift
45. 26.543694 220.000 0.0 0.0 220.000 !W+[deg.]; edge angle[deg.]; R1[cm]; U1; U2; R2[cm]
7.0 0. !EXIT FIELD BOUNDARY: lambda; =-1 for Enge like
4 0. 1.8 0. 0. 0. 0. 0. !unused; C0...C5; shift
-45. -26.543694 -220.000 0. 0. -220.000 0. !W-; edge angle; R1; U1; U2; R2
0. 0. !FACE 3: (Not used here)
0 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0.
2 4. !IRD(=2, 25 or 4)
0.5 !Integration step size[cm]
2 127.96748 -0.349067 127.96748 0.349067 !KPOS RE[cm]; TE[rad]; RS[cm]; TS[rad]
'DRIFT'
36.32357 ! drift length=80-120*tan(20/deg.)
'FAISCNL'
mass2-ec.fai
'END'
set term postscript eps color enhanced "Times-Roman" 18 lw 2
set output "twomasses_edgeCurvature.eps"
set xlabel 'X/mm'
set ylabel 'X`/mrad'
set grid
titletext="Horizontal and vertical emittance: 3{/Symbol m}m, no DE/E, m/Dm=20000 \n"
set title titletext
set key left cent
cm2mm=10.0
plot "mass1-ec.fai" u ($10*cm2mm):11 w points pt 7 ps 0.5 lc 1 title "^{238}U mass", \
"mass2-ec.fai" u ($10*cm2mm):11 w points pt 7 ps 0.5 lc 3 title"20001/20000*^{238}U mass"
This diff is collapsed.
This diff is collapsed.
zgoubi HRS tuto: DIPOLE
'OBJET'
544.1192 !544.1192/544.1328
544.1328 !544.1192 or 544.1328
3.01 !read from particles from
1 3000 1 !IP1; IP2; IPStep (Read particles numbered IT1 to IT2, step ITStep)
1 1 1 !not used here
......@@ -61,7 +61,7 @@ noEspread.beam ! name of the input file
36.32357 ! drift length=80-120*tan(20/deg.)
'FAISCNL'
mass1.fai
mass2.fai
'END'
......
......@@ -13,8 +13,3 @@ cm2mm=10.0
plot "mass1.fai" u ($10*cm2mm):11 w points pt 7 ps 0.5 lc 1 title "^{238}U mass", \
"mass2.fai" u ($10*cm2mm):11 w points pt 7 ps 0.5 lc 3 title"20001/20000*^{238}U mass"
set key right
set output "test.eps"
plot "init.fai" u ($10*cm2mm):11 w points pt 7 ps 0.5 lc 0 title "init",\
"curv_mass1.fai" u ($10*cm2mm):11 w points pt 7 ps 0.5 lc 1 title "curved edge",\
"curv_mass2.fai" u ($10*cm2mm):11 w points pt 7 ps 0.5 lc 3 title "curved edge"
\ No newline at end of file
set term postscript eps color enhanced "Times-Roman" 18 lw 2
set output "traj.eps"
set multiplot layout 1,2
set xlabel "Theta/deg."
set ylabel "R/cm" offset 2,0,0
set xrange[0:65]
set size ratio 1
unset key
plot "zgoubi.plt" using ($22*180./pi):($10) w l
th0=pi*65./180.
set xlabel "R/cm*sin(th)"
set ylabel "R/cm*cos(th)" offset 2,0,0
set xrange[-125:0]
set yrange[0:125]
set size ratio -1
unset key
plot "zgoubi.plt" using ($10*sin($22-th0)):($10*cos($22-th0)) w l
../../DIPOLE/twomasses.eps
\ No newline at end of file
../../DIPOLE/plot-multiparticles/twomasses.eps
\ No newline at end of file
No preview for this file type
......@@ -21,17 +21,18 @@
%morecomment=[l]{!\ }% Comment only with space after !
}
\usepackage[section]{placeins}% to be able to use \FloatBarrier
\usepackage[capitalise]{cleveref}%to use \cref
\usepackage{cleveref}%to use \cref
\usepackage{longtable}
\addtolength{\textwidth}{1.5 cm}
\addtolength{\hoffset}{-0.8 cm}
% \addtolength{\textwidth}{1.5 cm}
% \addtolength{\hoffset}{-0.8 cm}
%\addtolength{\topmargin}{-2 cm}
%\addtolength{\textheight}{3. cm}
%opening
\title{Zgoubi, would you do for me\\TRIUMF's High Resolution Separator?}
\title{TRIUMF High-Resolution Separator using {\tt zgoubi}\\[0.5em]
Part 1 -- Dipole Model}
\author{Thomas Planche}
%\footnote{tplanche@triumf.ca}\\~\\ TRIUMF\thanks{This work has been supported by the Natural Sciences and Engineering Research Council of Canada. TRIUMF also receives federal funding via a contribution agreement through the National Research Council of Canada.}}
......@@ -41,8 +42,8 @@
\tableofcontents
\section{Basic Layout}\label{sec:layout}
The optical system we will consider in this tutorial is designed to separate rare isotopes with mass/charge differences of only one part in 20\,000 in beams with transverse emittances of at least 3\,$\mu$m\footnote{Un-normalized emittance. Note that to achieve such resolution an energy spread of the order of 1\,eV or less is required.}~\cite{TRI-DN-16-09}.
It is composed of:
The optical system we consider in this tutorial is designed to separate rare isotopes with relative mass/charge differences of one part in 20\,000 in beams with transverse emittances of 3\,$\mu$m\footnote{Un-normalized emittance. Note that to achieve such resolution an energy spread of the order of 1\,eV or less is required.}~\cite{MARCHETTO2019, TRI-DN-16-09}.
As shown in~\cref{fig:marco-layout}, it is composed of:
\begin{itemize}
\item a source slit;
\item followed by an 80\,cm drift;
......@@ -50,21 +51,14 @@
\item followed by an 80\,cm drift;
\item followed by an image slit.
\end{itemize}
The basic parameters of this high resolution separator (HRS) were determined using the linear optics code {\tt TRANSOPTR}~\cite{de1983first,baartman2016transoptr}.
\begin{figure}[htb]
\centering
\includegraphics*[width=0.8 \linewidth]{figure/marco}
\caption{TRIUMF high resolution separator basic layout (from source slit to image slit).}\label{fig:marco}
\end{figure}
\FloatBarrier
The basic parameters of this high resolution separator (HRS) were determined using the linear optics code {\tt TRANSOPTR}~\cite{optrOnGitlab}.
To achieve in practice the desired resolving power, it is essential to compensate non-linear aberration. For this purpose an electrostatic multipole corrector is added halfway between the two dipoles. The detailed design of the most critical components -- the dipoles and the multipole corrector -- was accomplished using a 3D finite element code ({\tt OPERA}) and non-linear optics codes such as {\tt COSY-INFINITY} and {\tt zgoubi}.
\caption{TRIUMF high resolution separator basic layout (from source slit to image slit).}\label{fig:marco-layout}
\end{figure}\FloatBarrier
In this note I will go through the steps of the design work done using {\tt zgoubi}.
To achieve the desired resolving power, it is essential to compensate non-linear aberration. For this purpose an electrostatic multipole corrector is added halfway between the two dipoles. The detailed design of the most critical components -- the dipoles and the multipole corrector -- was accomplished using a 3D finite element code ({\tt OPERA}) and non-linear optics codes such as {\tt COSY-INFINITY} and {\tt zgoubi}. In this note I go through the steps of the design work done using {\tt zgoubi}.
\section{Define your {\tt'OBJECT'}}
Let's start with something simple and try to track one single particle. Let's say we want to track a single 60\,keV $\rm{^{238}U}^+$ ion. At first we will track it through magnetic elements only, so the knowledge of the magnetic rigidity $B\rho$ is sufficient. As a reminder the magnetic rigidity is given by:
......@@ -75,13 +69,14 @@
\begin{equation}
p^2c^2=E^2-m^2c^4\,,
\end{equation}
where $E$ is the particle's total energy, $m$ its mass, and $c$ the speed of light. For non-relativistic particles, like our 60\,keV uranium ion, the momentum can also be calculated from:
where $E$ is the particle's total energy, $m$ its mass, and $c$ the speed of light. For non-relativistic particles, like our 60\,keV uranium ion, the momentum can also be calculated using the non-relativistic formula:
\begin{equation}
p=\sqrt{2mqV}\,,
\end{equation}
where $V$ is the beam potential (60\,kV in our case).%\footnote{$qV$ is often called `kinetic' energy. It is a true kinetic energy only in the non-relativistic approximation. In the relativistic case the beam potential is given by $(\gamma-1)mc^2$ and cannot be seen as a kinetic energy term, whatever way you look at it~\cite{2014PHYS-1}.}.
where $V$ is the ``beam potential'' (60\,kV in our case).\footnote{Note that $qV$ is often called `kinetic' energy. $qV$ is a true kinetic energy only in the non-relativistic approximation. %In the relativistic case $(\gamma-1)mc^2$ and cannot be seen as a kinetic energy term, whatever way you look at it~\cite{2014PHYS-1}.
}
If you look into {\tt zgoubi} user's guide~\cite{meot2012zgoubi} you will find you need to call use the keyword {\tt 'OBJECT'} (or {\tt 'OBJET'} if you like to talk to {\tt zgoubi} in French). There are several ways (KOBJ=1 to 6) to have the 'object' you will track be one single particle. Let's try to use KOBJ=2:
If you look into {\tt zgoubi} user's guide~\cite{meot2012zgoubi} you will find that you need to call use the keyword {\tt 'OBJECT'} (or {\tt 'OBJET'} if you like to talk to {\tt zgoubi} in French;-). There are several ways (KOBJ=1 to 6) to have the 'object' you will track be one single particle. Let's try to use KOBJ=2:
\begin{lstlisting}[label=list:OBJET]
zgoubi HRS tuto: DIPOLE !zgoubi requires input files to be given a title on line 1
......@@ -101,9 +96,9 @@
\includegraphics*[width=0.7 \linewidth, trim={10 10 10 10}]{figure/Fig9a}
\caption{Parameters used to define the field map and geometrical boundaries, from {\tt zgoubi} user's guide~\cite{meot2012zgoubi}.}\label{fig:DIPOLE}
\end{figure}
We will first try to simulate our separator using {\tt zgoubi}'s built-in {\tt 'DIPOLE'} model. \cref{fig:DIPOLE} reproduces a figure from {\tt zgoubi} user's guide~\cite{meot2012zgoubi} that is very useful to understand the input values to {\tt 'DIPOLE'}.
Let's try to simulate our separator using {\tt zgoubi}'s built-in {\tt 'DIPOLE'} model. Figure~\ref{fig:DIPOLE} reproduces a figure from {\tt zgoubi} user's guide~\cite{meot2012zgoubi} which helps to understand the input values to {\tt 'DIPOLE'}.
To mimic our separator dipole, we will need to determine the parameters such that the beam is bent 90\,deg.~and passes through the center of the dipole at a radius of 120\,cm. To do that it is convenient to stop the tracking right in the middle of the dipole:
To model our separator dipole, we need to adjust the input parameters of {\tt 'DIPOLE'} such that the beam is bent 90\,deg.~and passes through the center of the dipole at a radius of 120\,cm. To do that it is convenient to stop the tracking right in the middle of the dipole:
\FloatBarrier
\begin{lstlisting}[label=list:halfDIPOLE]
......@@ -130,8 +125,7 @@
'END'
\end{lstlisting}
Note that the tracking starts 20\,deg. before the effective edge of the magnet to leave room for the fringe field\footnote{About fringe fields: in most cases it is unimportant to know the precise shape of the field field. For dipoles (and quadrupoles~\cite{baartman1997intrinsic}) the lowest order aberration (second order for dipoles, third order for quads) is practically independent of the details of the fringe field. The next order aberration depends only on the fringe field extend. For more details read Ref.~\cite{baartman2001end}. It is only when you look at quite-high-order aberrations that the shape of the field fall off starts to matter.
For our dipole I chose a fringe field as simple as possible: fringe field extend~=~magnet gap (7\,cm) and a shape defined by a single Enge coefficient: {\tt C1}=1.8 (all the others are set to 0).} to fall off to (practically) zero, which leads to {\tt AT}=90/2+20=65\,degree.
Note that the tracking starts 20\,deg. before the effective edge of the magnet to leave room for the fringe field to fall off to (practically) zero, which leads to {\tt AT}=90/2+20=65\,degree.
{\it Assignment: copy-paste these lines right bellow the {\tt 'OBJECT'} definition (\cref{list:OBJET}). Guess the values of {\tt B0, RE}, and {\tt TE} such that the particle arrives at the magnet center:
\begin{itemize}
......@@ -139,17 +133,19 @@
\item at {\tt Y}=120\,cm (radial coordinate in the local reference frame of {\tt 'DIPOLE'});
\item with {\tt T}=0\,mrad (angle w.r.t.~the reference trajectory).
\end{itemize}
To check how good your guess was look into the output of {\tt 'FAISCNL'} (in this case: in the file `atDIPOLEcenter.fai'). You can also plot the step-by-step output into zgoubi.plt (triggered by IL=2). If you use {\tt gnuplot}, try something like:}
To check how good was your guess, look into the output of {\tt 'FAISCNL'} (in this case: in the file `atDIPOLEcenter.fai'). You can also plot the step-by-step output into zgoubi.plt (triggered by IL=2). If you use {\tt gnuplot}, try something like:}
\begin{verbatim}
set xlabel "Theta/deg."
set ylabel "R/cm"
plot "zgoubi.plt" using ($22*180./pi):($10)
\end{verbatim}
Side note on fringe fields: in most cases it is unimportant to know the precise shape of the field field. For dipoles (and quadrupoles~\cite{baartman1997intrinsic}) the lowest order intrinsic aberration (second order for dipoles, third order for quads) does not depend on the details of the fringe field. The next order aberration depends only on the fringe field extend. For more details read Ref.~\cite{baartman2001end}. It is only when you look at quite high-order aberrations that the shape of the field fall off starts to matter.
For our dipole I chose a fringe field as simple as possible: fringe field extend~=~magnet gap (7\,cm) and a shape defined by a single Enge coefficient: {\tt C1}=1.8 (all the others are set to 0).
\section{{\tt 'FIT'} dipole parameters}
To accurately (and rapidly) determined the values of {\tt B0}, and {\tt RE} we will use the {\tt 'FIT'} keyword. Add this right before the {\tt 'END'} statement:
To accurately (and rapidly) determined the values of {\tt B0}, and {\tt RE}, it is advisable to use the {\tt 'FIT'} command. Add this right before the {\tt 'END'} statement:
\begin{lstlisting}[label=list:FIT]
'FIT'
2 !Number of physical parameters to be varied
......@@ -159,29 +155,30 @@
3 1 2 2 120.0 1. 0 !IC; Particle #; coordinate#=2 for Y;element #; wanted value; weigth ; 0
3 1 3 2 0.0 1. 0 !IC; Particle #; coordinate#=3 for T;element #; wanted value; weigth ; 0
\end{lstlisting}
{\it Assignment: Find values {\tt B0}, and {\tt RE} from fit. run {\tt zgoubi} with those fitted values and plot the resulting particle trajectory (from zgoubi.plt). You should get plots like in~\cref{fig:DIPOLEtraj}. }
{\it Assignment: Find values {\tt B0}, and {\tt RE} from fit. Run {\tt zgoubi} with those fitted values and plot the resulting particle trajectory (from zgoubi.plt). You should get plots like in~\cref{fig:DIPOLEtraj}. }
\begin{figure}[htb]
\centering
\includegraphics*[width=1.0 \linewidth, trim={0 40 0 40}]{figure/traj}
\caption{Trajectory output into zgoubi.plt plotted in cylindrical (left) and Cartesian (right) coordinates. }\label{fig:DIPOLEtraj}
\end{figure}\FloatBarrier
\end{figure}
Side note: looking for the a parameter number can be sometime quite frustrating, especially for an element like {\tt 'DIPOLE'} that has a large number of input parameters. What works best for me it to look for it by trial-and-error, watching the `INITIAL' value column in {\tt zgoubi}'s console output.
Tip: looking for the a parameter number can be sometime quite frustrating, especially for an element like {\tt 'DIPOLE'} which has a large number of input parameters. What works best for me it to look for it by trial-and-error, watching the `INITIAL' value column in {\tt zgoubi}'s console output.
\FloatBarrier
\section{{\tt'MATRIX'} to fit edge angles}
The dipole edge angles are set so that the phase advance from the source slit to the image slit is exactly 180\,deg. (in the horizontal direction). One could fit the transfer matrix coefficient $m_{12}$ and $m_{21}$ to be zero at the image slit. One can also fit the transfer matrix coefficient $m_{11}$ and $m_{22}$ to be zero half-way through the HRS, since the phase advance from the source slit should there be 180/2=90\,degree. I choose to follow the second approach.
{\it Assignment: we have only simulated one half of a magnet so far. Let's set up the other half: in {\tt 'DIPOLE'} set {\tt AT}=65$\times$2=130\,deg., and define the exit face parameters so that the exit face is the mirror image of the entrance face. Be careful with the signs! They are NOT consistent with the standard {\tt TRANSPORT} definition (see~\cref{fig:DIPOLE}) }
{\it Assignment: we have only simulated one half of a magnet so far. Let's set up the other half: in {\tt 'DIPOLE'} set {\tt AT}=65$\times$2=130\,deg., and define the exit face parameters so that the exit face is the mirror image of the entrance face. Be careful with the signs! They are NOT consistent with the standard {\tt TRANSPORT} definition (see~\cref{fig:DIPOLE}). }
Before and after the dipole we should also have 80\,cm drift length (see~\cref{sec:layout}). The thing is that we already have a drift length built into the dipole definition: the 2$\times$20 extra degree we left for the field to fall off. So the drift length we have to add is $80-120\tan(20\,{\rm deg.)}$. So add this before and after your dipole definition:
Before and after the dipole we should also have 80\,cm drift length (see~\cref{sec:layout}). The thing is that we already have a drift length built into the dipole definition: the 2$\times$20 extra degree we left for the field to fall off. So the drift length we have to add is $80-120\tan(20\,{\rm deg.)}$. Add this before and after your dipole definition:
\begin{lstlisting}[label=list:DRIFT]
'DRIFT'
36.32357 ! drift length=80-120*tan(20/deg.)
\end{lstlisting}
Now to we get {\tt zgoubi} to calculate transfer matrix coefficient: use the keyword {\tt 'MATRIX'} together with an {\tt 'OBJECT'} defined using {\tt KOBJ}=5 (see user's guide~\cite{meot2012zgoubi}).
Now, to get {\tt zgoubi} to calculate transfer matrix coefficient we use the {\tt 'MATRIX'} command. This requires to use an {\tt 'OBJECT'} defined using {\tt KOBJ}=5 (see user's guide~\cite{meot2012zgoubi}).
Let's replace our previous {\tt 'OBJECT'} definition by.
\begin{lstlisting}[label=list:OBJECT4]
'OBJET'
......@@ -204,10 +201,10 @@
1 1 1 5 0.0 1. 0 !1:matrix; matrix element 1 1; element#; wanted; weigth ; 0
1 2 2 5 0.0 1. 0 !1:matrix; matrix element 2 2; element#; wanted; weigth ; 0
\end{lstlisting}
The fit should converge to an value for the edge angle close to 26.56\,deg.\footnote{26.56\,deg. is the number that the linear optics code {\tt TRANSOPTR} finds}.
The fit should converge to an value for the edge angle close to 26.56\,deg.\footnote{26.56\,deg. is the number that the linear optics code {\tt TRANSOPTR} finds} Give it a try.
\section{Multiparticle simulation}
I got from my good friend Jim (who simulated the HRS using {\tt COSY-INFINITY}) a file containing the coordinates of 3\,000 randomly generated particles. You can download the file from here: \href{http://beamphys.triumf.ca/~tplanche/text/designs/HRS/zgoubi/DIPOLE/noEspread.beam}{link}. Each line of this file contains is (using {\tt zgoubi}'s notation): {\tt Y,T,Z,P,S,DP}. This format is what {\tt 'OBJECT'} can read when {\tt KOBJ}=3.01:
I got from my good friend Jim (who designed most of the HRS optics using {\tt COSY-INFINITY}) a file containing the coordinates of 3\,000 randomly generated particles. You can download the file from here: \href{http://beamphys.triumf.ca/~tplanche/text/designs/HRS/zgoubi/DIPOLE/noEspread.beam}{link}. Each line of this file contains, using {\tt zgoubi}'s notation: {\tt Y,T,Z,P,S,DP}. This format is what {\tt 'OBJECT'} can read when {\tt KOBJ}=3.01:
\begin{lstlisting}[label=list:FITedge]
'OBJET'
544.1192 !60 keV U1+
......@@ -229,7 +226,7 @@
\includegraphics*[width=0.8 \linewidth]{figure/twomasses}
\caption{Two isobars with a relative mass difference of 1/20\,000 through the HRS, before correcting non-linear aberration.}\label{fig:twomassesInit}
\end{figure}
What you see in~\cref{fig:twomassesInit} is that the two masses completely overlap. This is (mostly) the effect of second order (sextupole) aberration. To achieve the designed resolution, we must correct the aberration.
What you see in~\cref{fig:twomassesInit} is that the two masses completely overlap. This is (mostly) the effect of second order (sextupole) aberration. To achieve the designed resolution, we must correct this aberration.
\section{Dipole edge curvature}
......@@ -241,7 +238,7 @@
\bibliographystyle{/home/tplanche/utils/latex/formating/elsarticle-num}
\bibliography{/home/tplanche/utils/latex/Mybib,/home/tplanche/utils/latex/bib/AllDN}
\bibliographystyle{elsarticle-num}
\bibliography{Mybib,AllDN,bib}
\end{document}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment