source: MML/trunk/at/doc_html/at/simulator/element/WigTablePass.html @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 4.7 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3<html>
4<head>
5  <title>Description of WigTablePass</title>
6  <meta name="keywords" content="WigTablePass">
7  <meta name="description" content="WIGTABLEPASS - The tracking table is described in">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
10  <meta name="robots" content="index, follow">
11  <link type="text/css" rel="stylesheet" href="../../../m2html.css">
12</head>
13<body>
14<a name="_top"></a>
15<div><a href="../../../index.html">Home</a> &gt;  <a href="../../index.html">at</a> &gt; <a href="#">simulator</a> &gt; <a href="index.html">element</a> &gt; WigTablePass.m</div>
16
17<!--<table width="100%"><tr><td align="left"><a href="../../../index.html"><img alt="<" border="0" src="../../../left.png">&nbsp;Master index</a></td>
18<td align="right"><a href="index.html">Index for at/simulator/element&nbsp;<img alt=">" border="0" src="../../../right.png"></a></td></tr></table>-->
19
20<h1>WigTablePass
21</h1>
22
23<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
24<div class="box"><strong>WIGTABLEPASS - The tracking table is described in</strong></div>
25
26<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
27<div class="box"><strong>function varargout = WigTablePass(varargin) </strong></div>
28
29<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
30<div class="fragment"><pre class="comment"> WIGTABLEPASS - The tracking table is described in
31 P. Elleaume, &quot;A new approach to the electron beam dynamics in undulators
32 and wigglers&quot;, EPAC92.</pre></div>
33
34<!-- crossreference -->
35<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
36This function calls:
37<ul style="list-style-image:url(../../../matlabicon.gif)">
38</ul>
39This function is called by:
40<ul style="list-style-image:url(../../../matlabicon.gif)">
41</ul>
42<!-- crossreference -->
43
44
45<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
46<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function varargout = WigTablePass(varargin)</a>
470002 <span class="comment">% WIGTABLEPASS - The tracking table is described in</span>
480003 <span class="comment">% P. Elleaume, &quot;A new approach to the electron beam dynamics in undulators</span>
490004 <span class="comment">% and wigglers&quot;, EPAC92.</span>
500005
510006
520007 <span class="keyword">if</span> nargin == 0
530008     varargout{1} = {<span class="string">'Length'</span>};
540009     <span class="keyword">if</span> nargout &gt; 1
550010         varargout{2} = {};
560011     <span class="keyword">end</span>
570012
580013 <span class="keyword">elseif</span> nargin == 2
590014     WigTableStruct = varargin{1};
600015     xkicktable = WigTableStruct.xkick;
610016     ykicktable = WigTableStruct.ykick;
620017     xtable = WigTableStruct.xtable;
630018     ytable = WigTableStruct.ytable;
640019     Nslice = WigTableStruct.Nslice;
650020     R = varargin{2};
660021     Ldrift = WigTableStruct.Length/(2*Nslice);
670022     <span class="keyword">for</span> ns = 1:Nslice
680023         <span class="comment">%Drift</span>
690024         NormL = Ldrift./(1+R(5,:));
700025         R(1,:) = R(1,:) + R(2,:).*NormL;
710026         R(3,:) = R(3,:) + R(4,:).*NormL;
720027         R(6,:) = R(6,:) + NormL.*(R(2,:).*R(2,:) + R(4,:).*R(4,:))./(1+R(5,:))/2;
730028         <span class="comment">%kick</span>
740029         deltaxp = (1/Nslice)*interp2(xtable,ytable,xkicktable,R(1,:),R(3,:),<span class="string">'*linear'</span>)./(1+R(5,:)).^2;  <span class="comment">%The kick from IDs varies quadratically, not linearly, with energy.</span>
750030         deltayp = (1/Nslice)*interp2(xtable,ytable,ykicktable,R(1,:),R(3,:),<span class="string">'*linear'</span>)./(1+R(5,:)).^2;
760031         R(2,:) = R(2,:) + deltaxp.*(1+R(5,:));
770032         R(4,:) = R(4,:) + deltayp.*(1+R(5,:));
780033         <span class="comment">%Drift</span>
790034         NormL = Ldrift./(1+R(5,:));
800035         R(1,:) = R(1,:) + R(2,:).*NormL;
810036         R(3,:) = R(3,:) + R(4,:).*NormL;
820037         R(6,:) = R(6,:) + NormL.*(R(2,:).*R(2,:) + R(4,:).*R(4,:))./(1+R(5,:))/2;
830038     <span class="keyword">end</span>
840039     varargout{1} = R;
850040
860041 <span class="keyword">end</span></pre></div>
87<hr><address>Generated on Mon 21-May-2007 15:26:45 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
88</body>
89</html>
Note: See TracBrowser for help on using the repository browser.