source: MML/trunk/at/lattice/insertelem0.m @ 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: 683 bytes
Line 
1function NEWLATTICE = insertelem0(LATTICE, DRIFTPOS, SPLITLENGTH, ELEMDATA)
2%INSERTELEM0 - quick and dirty:
3%  inserts element(s) of zero length into a drift space
4%
5% NEWLATTICE = INSERTELEM0(LATTICE, DRIFTINDEX, SPLITLENGTH, ELEMDATA)
6
7DRIFT1 = LATTICE{SPLITPOS};
8DRIFT1.Length = LATTICE{SPLITPOS}.Length*SPLITLENGTH;
9DRIFT2 = LATTICE{SPLITPOS};
10DRIFT2.Length = LATTICE{SPLITPOS}.Length*(1-SPLITLENGTH);
11
12if DRIFTPOS==1
13    NEWLATTICE = [{DRIFT1,ELEMDATA,DRIFT2},LATTICE(2:end)];
14elseif DRIFTPOS == length(LATTICE);
15    NEWLATTICE = [LATTICE(1:end-1),{DRIFT1, ELEMDATA,DRIFT2 }];
16else
17    NEWLATTICE = [LATTICE(1:DRIFTPOS-1), {DRIFT1,ELEMDATA,DRIFT2},LATTICE(DRIFTPOS+1)]; 
18end
Note: See TracBrowser for help on using the repository browser.