|
From: Corbett, J. <co...@sl...> - 2012-08-17 03:20:41
|
Hi Boaz, One interesting development would be to add the capability to run MAD with MATLAB commands. Exactly how it would work is completely open-ended but the idea would be to provide optics matching and other MAD features in the MATLAB environment. Andre originally make 'paramgroups' and 'makeparamgroups' with optics matching in MATLAB in mind. It might be easier to simply drive the MAD engine from the MATLAB environment. Other potential developments would be add beam dynamic features found in ELEGANT or make an impedance module for basic ZAP-like calculations. ZAP would be a good closed-ended student project. Now that computers are faster it could include more complicated impedance/instability calculations plotting root loci and the like from dispersion relations. Lots of fun. Best regards, Jeff Corbett -----Original Message----- From: Boaz Nash [mailto:boa...@es...] Sent: Thursday, August 09, 2012 6:52 AM To: atc...@li... Subject: [Atcollab-general] some recent atcollab project developments Hi all, Hope you're all enjoying your summer (for those in northern hemisphere!). There have been a few changes to the atcollab project recently that I wanted to mention. 1) First of all, the wiki which is located at this url: http://sourceforge.net/apps/mediawiki/atcollab/index.php?title=Main_Page uses the hosted apps framework within Sourceforge. Sourceforge has announced that it will no longer support hosted apps, and so this wiki will no longer be active. The original deadline for this change was September, but its now been pushed back to later. Basically, what they want you to do is to migrate to the project space which involves downloading the data and sql database for the wiki material and reinstalling it along with mediawiki. The instructions for this are here: http://sourceforge.net/p/forge/community-docs/Migrating%20MediaWiki%20from%20Hosted%20Apps/ but it still has pending uncertainties. I will follow this, and let people know when the wiki material has been moved to the new url. 2) As part of changing infrastructure within Sourceforge, the location of the svn repository has moved. Now, to check out the code base via svn use: svn checkout https://svn.code.sf.net/p/atcollab/code-0/trunk atcollab 3) The adminstrators for the SourceForge atcollab project are Laurent Farvacque and I. Previously we had several others in the administrator role. Because it looked like one could change things a little too easily with the new interface (no checks on deleting members, etc.) we thought it safer to keep it this way. If anyone wants to participate in this way as well, let us know. Those in the "Developer" role currently are Xiaobiao Huang, Eugene Tan, Peace Change, and Thomas Perron. These people can directly upload code to the SVN repository. Anyone should be able to download the code and use svn update to keep up with recent changes of the code. If others want to be able to upload to the repository, let us know. 4) Ok, let's get back to the business of improving the AT code! There are two points I think are important for improving the code and have seen some development recently (mainly work by Laurent Farvacque here at ESRF) a) The first is to move away from use of global variables (THERING, FAMLIST, etc...) For this purpose it is good to think in terms of the basic data structures we deal with. One has ring elements, and one has rings. Thus, in the lattice directory, it is nice to think of the functions as those that either create new elements, or transform existing ones. We have added a new directory called element_creation: http://sourceforge.net/p/atcollab/code-0/103/tree/trunk/atmat/lattice/element_creation/ Here we find the functions atcorrector.m corrector atmarker.m marker atrbend.m rectangular bend atthinmultipole.m thin multipole atdrift.m drift atmultipole.m multipole atsbend.m sector bend atidtable.m ID element with kick map integrator atquadrupole.m quadrupole atsextupole.m sextupole each of these functions has a default passmethod and outputs an element with the required fields for that integrator. Note that by using the syntax [req opt]=integrator where integrator is the name of the PassMethod, (e.g. CorrectorPass), one gets a list of required and optional fields for the integrator. This is a design decision and must be correctly coded into the mex file. We are checking this for the existing pass methods, and it should be checked if a new integrator is developed. The idea is that these can replace the existing element creation functions that use the global variables and are located in the atintegrators directory. With element standardization the question is raised of how to identify a given type of element. How to pick out all quadrupoles for example? One clear approach suggest by LF is that one can define a dipole by elements with a nonzero value in the BendingAngle field. A quadrupole has PolynomB[2] nonzero and is not a dipole. One can add an additional field to define the kind of element it is. At ESRF where we often create a lattice by reading in a beta file, we have used an additional beta code field to classify the elements. But this is nonstandard. Others have used other similar fields. What should be pointed out is that if people choose different conventions for this, it becomes more difficult to share code. b) Have a look at the atplot function by Laurent http://sourceforge.net/p/atcollab/code-0/103/tree/trunk/atmat/pubtools/atplot.m It allows the plotting of different lattice functions together with a representation of the lattice elements. The default behavior plots the beta functions and the dispersion. One can zoom in on regions and the function will slice the lattice so that the function is computed smoothly. It also accepts an arbitrary function argument so that you can compute whatever other quantities you want and plot them together with a lattice layout. Just look at the defaultplot function at the bottom of atplot.m. If you create a function (called yourfunction) that computes a driving term or some coupling parameter or some particle orbit, you can plot the result together with the layout by calling atplot(ring, @yourfunction) See the help for the function for more details. -------------------------- These are a few recent developments on our side here at ESRF. We've been trying to make changes that are of general interest and will break things as little as possible. Let us know what you think. What sort of development and documentation priorities would people suggest? Feel free to email me privately at boa...@es... with ideas concerns and questions, though if its of general interest to the many people using AT, please send it to this mailing list. Thanks, and look forward to continuing with this project! Best wishes, Boaz ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Atcollab-general mailing list Atc...@li... https://lists.sourceforge.net/lists/listinfo/atcollab-general |