Notes on using ORBIT with time-dependent magnet strengths and internal lattice function calculations: The TeaPot module has been modified to incorporate time-dependent magnet strengths into quadrupoles, multipoles, and solenoid, in addition to the existing capability of time-dependent kicker waveforms. The list of arguments in the buildTPlattice calling sequence has been modified. We have delete fringeD, fringeS, and fringeK since these were meaningless anyway: Void buildTPlattice(const String &MADTwissFile, const String &MADLATFile, const Integer &nstepTPD, const Integer &nstepTPM, const Integer &fringeM, const Integer &nstepTPQ, const Integer &fringeQ, const Integer &nstepTPB, const Integer &fringeB, const Integer &nstepTPS, const Integer &nstepTPK); There is now a new TeaPot lattice builder, buildTPlatticeNew. It requires a lattice file, just as with buildTPlattice. However, it does not require a MAD twiss file. Instead, it asks for a string, ring_line, which must be either "Ring" or "Line". If ringline is "Ring" the lattice functions are evaluated using periodic boundary condiditons. If ringline is "Line", the lattice functions at the beginning of the line Ring::alphaX, Ring::betaX, Ring::alphaY, Ring::betaY, Ring::etaX = xxx, and Ring::etaPX = xxx must be specified prior to the call to buildTPlatticeNew: Ring::alphaX = xxx; Ring::betaX = xxx; Ring::alphaY = xxx; Ring::betaY = xxx; Ring::etaX = xxx; Ring::etaPX = xxx; Void buildTPlatticeNew(const String &LATFile, const String &ring_line, const Integer &nstepTPD, const Integer &nstepTPM, const Integer &fringeM, const Integer &nstepTPQ, const Integer &fringeQ, const Integer &nstepTPB, const Integer &fringeB, const Integer &nstepTPS, const Integer &nstepTPK); Lattice functions can now be calculated on demand by calling calcLatFuncs from the script. These will be printed in a specified output file. Void calcLatFuncs(const Integer &herdNo, const String &ring_line, Ostream &sout) - "Routine to calculate lattice functions"; Magnet strengths can now be varied in time. This is accomplished by multiplying the initial magnet strength by the variable TeaPot::strength which is defaulted to a value of 1.0. The user can program the time dependent value of the strength in any of the subroutines Void WaveForm10(); Void WaveForm11(); Void WaveForm12(); Void WaveForm13(); Void WaveForm14(); Void WaveForm15(); Void WaveForm16(); Void WaveForm17(); Void WaveForm18(); Void WaveForm19(); At present, WaveForm0() - WaveForm9() are reserved for time-dependent kicker waveforms. As with kickers, these are accessed by including the value of "sub" in each element of the TeaPot input file, for example quadrupole k1 -0.727661605359 l 0.533 sub 11 end specifies a quadrupole that gets its time-dependent strength function from WaveForm11(). At present, WaveForm10() has been programmed to give the constant value TeaPot::strength = 1.0. WaveForm11() allows a linear-in-time variation of TeaPot::strength. It uses the module variables TeaPot::strinitial = initial strength; TeaPot::strfinal = final strength; TeaPot::tstrinitial = initial time for variation (in milliseconds); TeaPot::tstrfinal = final time for variation (in milliseconds); The other WaveFormxx() are open at present. Different routines can be used simultaneously to give different strengths to various elements. The TeaPot file generator has been changed to print element properties values sub 10 end at present.