source: MML/trunk/machine/SOLEIL/doc_html/machine/Soleil/StorageRing/modelmcfsensitivity.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: 11.1 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 modelmcfsensitivity</title>
6  <meta name="keywords" content="modelmcfsensitivity">
7  <meta name="description" content="TUNESENSITIVITY - Computes quadrupole change for a given tune step">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html v1.5 &copy; 2003-2005 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="#">machine</a> &gt; <a href="#">Soleil</a> &gt; <a href="index.html">StorageRing</a> &gt; modelmcfsensitivity.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 machine/Soleil/StorageRing&nbsp;<img alt=">" border="0" src="../../../right.png"></a></td></tr></table>-->
19
20<h1>modelmcfsensitivity
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>TUNESENSITIVITY - Computes quadrupole change for a given tune step</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 [Rmcf Rmcf2]=modelmcfsensitivity(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">TUNESENSITIVITY - Computes quadrupole change for a given tune step
31
32  INPUTS
33  1. dnux - horizontal tune change
34  2. dnuz - vertical tune change
35
36  OUTPUTS
37  1. Rmcf - gradient change to get dnux
38  2. DKz  - gradient change to get dnuz
39
40  See Also <a href="modeltunesensitivity.html" class="code" title="function [DKx DKz DtuneVal]=modeltunesensitivity(varargin)">modeltunesensitivity</a>, modechrosensitivity</pre></div>
41
42<!-- crossreference -->
43<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
44This function calls:
45<ul style="list-style-image:url(../../../matlabicon.gif)">
46<li><a href="physics_mcf.html" class="code" title="function [alpha1 alpha2 alpha3] = physics_mcf(varargin)">physics_mcf</a>     PHYSICS_MCF - Computes momentum compaction up to 3rd order</li></ul>
47This function is called by:
48<ul style="list-style-image:url(../../../matlabicon.gif)">
49</ul>
50<!-- crossreference -->
51
52
53
54<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
55<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [Rmcf Rmcf2]=modelmcfsensitivity(varargin)</a>
560002 <span class="comment">%TUNESENSITIVITY - Computes quadrupole change for a given tune step</span>
570003 <span class="comment">%</span>
580004 <span class="comment">%  INPUTS</span>
590005 <span class="comment">%  1. dnux - horizontal tune change</span>
600006 <span class="comment">%  2. dnuz - vertical tune change</span>
610007 <span class="comment">%</span>
620008 <span class="comment">%  OUTPUTS</span>
630009 <span class="comment">%  1. Rmcf - gradient change to get dnux</span>
640010 <span class="comment">%  2. DKz  - gradient change to get dnuz</span>
650011 <span class="comment">%</span>
660012 <span class="comment">%  See Also modeltunesensitivity, modechrosensitivity</span>
670013
680014 <span class="comment">% TODO</span>
690015 <span class="comment">% Analytic model.</span>
700016 <span class="comment">% Improvements</span>
710017 <span class="comment">%  1. Compute beta by tracking through the quad</span>
720018 <span class="comment">%  2. Fit every thing by tracking</span>
730019
740020 <span class="comment">%</span>
750021 <span class="comment">%  Written by Laurent S. Nadolski</span>
760022
770023 FirstOrderFlag = 0;
780024 QuadFlag  = 0;
790025 SextuFlag = 0;
800026
810027 <span class="comment">% Flag factory parser</span>
820028 <span class="keyword">for</span> i = length(varargin):-1:1
830029     <span class="keyword">if</span> strcmpi(varargin{i},<span class="string">'Quad'</span>)
840030         QuadFlag = 1;
850031         varargin(i) = [];
860032     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'NoQuad'</span>)
870033         QuadFlag = 0;
880034         varargin(i) = [];
890035     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'Sextu'</span>)
900036         SextuFlag = 1;
910037         varargin(i) = [];
920038     <span class="keyword">elseif</span> strcmpi(varargin{i},<span class="string">'NoSextu'</span>)
930039         SextuFlag = 0;
940040         varargin(i) = [];
950041     <span class="keyword">end</span>
960042 <span class="keyword">end</span>
970043
980044 <span class="comment">% Parser of variaton</span>
990045 <span class="keyword">if</span> isempty(varargin)
1000046     dnux = 1e-2;
1010047     dnuz = 1e-2;
1020048 <span class="keyword">elseif</span> length(varargin) == 1
1030049     dnux = vararing{1}; <span class="comment">%#ok&lt;USENS&gt;</span>
1040050     dnuz = dnux;
1050051 <span class="keyword">else</span>
1060052     dnux = vararing{1};
1070053     dnuz = vararing{1};
1080054 <span class="keyword">end</span>
1090055
1100056 <span class="keyword">global</span> GLOBVAL;
1110057
1120058 fprintf(<span class="string">'   ******** Summary for ''%s'' ********\n'</span>, GLOBVAL.LatticeFile);
1130059
1140060 a = findmemberof(<span class="string">'QUAD'</span>);
1150061
1160062 <span class="keyword">if</span> QuadFlag
1170063     <span class="comment">% remove nanoscopium</span>
1180064     a(12) = [];
1190065     a(11) = [];
1200066     FamNb= length(a);
1210067     Rmcf  = zeros(1,FamNb);
1220068     Rmcf2 = zeros(1,FamNb);
1230069
1240070     <span class="comment">% Quadrupole variation in Ampere</span>
1250071     StepValue = ones(1,FamNb)*0.1; <span class="comment">% A</span>
1260072
1270073     fprintf(<span class="string">'Quadrupole change for a change of 1 A \n'</span>);
1280074     <span class="keyword">for</span> k = 1:FamNb,
1290075
1300076         Family = a{k};
1310077
1320078         stepsp(Family, 0.5*StepValue(k), <span class="string">'Model'</span>); <span class="comment">% plus delta</span>
1330079
1340080         <span class="keyword">if</span> FirstOrderFlag
1350081             mcfplus = getmcf(<span class="string">'Model'</span>);
1360082
1370083             stepsp(Family, -StepValue(k), <span class="string">'Model'</span>); <span class="comment">% minus delta</span>
1380084
1390085             mcfminus = getmcf(<span class="string">'Model'</span>);
1400086         <span class="keyword">else</span>
1410087             [alpha1 alpha2] = <a href="physics_mcf.html" class="code" title="function [alpha1 alpha2 alpha3] = physics_mcf(varargin)">physics_mcf</a>(<span class="string">'Nodisplay'</span>);
1420088             mcfplus  = alpha1;
1430089             mcf2plus = alpha2;
1440090
1450091             stepsp(Family, -StepValue(k), <span class="string">'Model'</span>); <span class="comment">% minus delta</span>
1460092
1470093             [alpha1 alpha2] = <a href="physics_mcf.html" class="code" title="function [alpha1 alpha2 alpha3] = physics_mcf(varargin)">physics_mcf</a>(<span class="string">'Nodisplay'</span>);
1480094             mcfminus  = alpha1;
1490095             mcf2minus = alpha2;
1500096         <span class="keyword">end</span>
1510097
1520098         stepsp(Family, 0.5*StepValue(k), <span class="string">'Model'</span>); <span class="comment">% come back to nominal value</span>
1530099
1540100         Rmcf(k) = (mcfplus - mcfminus) / StepValue(k);
1550101
1560102         <span class="keyword">if</span> FirstOrderFlag
1570103             fprintf(<span class="string">'%4s : Delta MCF1 = %1.2e\n'</span>, <span class="keyword">...</span>
1580104                 Family, Rmcf(k));
1590105         <span class="keyword">else</span>
1600106             Rmcf2(k) = (mcf2plus - mcf2minus) / StepValue(k);
1610107             fprintf(<span class="string">'%4s : Delta MCF1 = %+1.2e Delta MCF2 = %+1.2e\n'</span>, <span class="keyword">...</span>
1620108                 Family, Rmcf(k), Rmcf2(k));
1630109         <span class="keyword">end</span>
1640110
1650111     <span class="keyword">end</span>
1660112 <span class="keyword">end</span>
1670113
1680114 <span class="keyword">if</span> SextuFlag
1690115
1700116     FamNb= length(a);
1710117     Rmcf  = zeros(1,FamNb);
1720118     Rmcf2 = zeros(1,FamNb);
1730119
1740120     a = findmemberof(<span class="string">'Sext'</span>);
1750121
1760122     FamNb= length(a);
1770123     Rmcf  = zeros(1,FamNb);
1780124     Rmcf2 = zeros(1,FamNb);
1790125
1800126     <span class="comment">% Sextupole variation in Ampere</span>
1810127     StepValue = ones(1,FamNb)*0.1; <span class="comment">% A</span>
1820128
1830129     fprintf(<span class="string">'Sextupole change for a change of 1 A \n'</span>);
1840130     <span class="keyword">for</span> k = 1:FamNb,
1850131
1860132         Family = a{k};
1870133
1880134         stepsp(Family, 0.5*StepValue(k), <span class="string">'Model'</span>); <span class="comment">% plus delta</span>
1890135
1900136         <span class="keyword">if</span> FirstOrderFlag
1910137             mcfplus = getmcf(<span class="string">'Model'</span>);
1920138
1930139             stepsp(Family, -StepValue(k), <span class="string">'Model'</span>); <span class="comment">% minus delta</span>
1940140
1950141             mcfminus = getmcf(<span class="string">'Model'</span>);
1960142         <span class="keyword">else</span>
1970143             [alpha1 alpha2] = <a href="physics_mcf.html" class="code" title="function [alpha1 alpha2 alpha3] = physics_mcf(varargin)">physics_mcf</a>(<span class="string">'Nodisplay'</span>);
1980144             mcfplus  = alpha1;
1990145             mcf2plus = alpha2;
2000146
2010147             stepsp(Family, -StepValue(k), <span class="string">'Model'</span>); <span class="comment">% minus delta</span>
2020148
2030149             [alpha1 alpha2] = <a href="physics_mcf.html" class="code" title="function [alpha1 alpha2 alpha3] = physics_mcf(varargin)">physics_mcf</a>(<span class="string">'Nodisplay'</span>);
2040150             mcfminus  = alpha1;
2050151             mcf2minus = alpha2;
2060152         <span class="keyword">end</span>
2070153
2080154         stepsp(Family, 0.5*StepValue(k), <span class="string">'Model'</span>); <span class="comment">% come back to nominal value</span>
2090155
2100156         Rmcf(k) = (mcfplus - mcfminus) / StepValue(k);
2110157
2120158         <span class="keyword">if</span> FirstOrderFlag
2130159             fprintf(<span class="string">'%4s : Delta MCF1 = %1.2e\n'</span>, <span class="keyword">...</span>
2140160                 Family, Rmcf(k));
2150161         <span class="keyword">else</span>
2160162             Rmcf2(k) = (mcf2plus - mcf2minus) / StepValue(k);
2170163             fprintf(<span class="string">'%4s : Delta MCF1 = %+1.2e Delta MCF2 = %+1.2e\n'</span>, <span class="keyword">...</span>
2180164                 Family, Rmcf(k), Rmcf2(k));
2190165         <span class="keyword">end</span>
2200166
2210167     <span class="keyword">end</span>
2220168 <span class="keyword">end</span></pre></div>
223<hr><address>Generated on Fri 23-Jul-2010 00:42:07 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/" title="Matlab Documentation in HTML">m2html</a></strong> &copy; 2005</address>
224</body>
225</html>
Note: See TracBrowser for help on using the repository browser.