LANLLANL Home - LANL Directory - Search LANL Web
Los Alamos Accelerator Code Group
Los Alamos
Accelerator Code Group *
|LANL| LANSCE| LANL Accelerators| Home|
|About Us| LAACG Codes| Accelerator Physics| News|
|Beam Physics| General Resources| Software/Methods| Site Index|

  Poisson Superfish Announcement

->LAACG Codes

   ->Poisson Superfish





->LAACG Databases



Poisson Superfish Announcement

December 28, 2003


Poisson Superfish Update Announcement
From: "James H. Billen"
Date: Sun, 28 Dec 2003 16:22:14 -0700

To: Poisson Superfish Users
From: James H. Billen

Holiday greetings and best wishes for a prosperous 2004.

Poisson Superfish Version 7.09 is now available on the LAACG FTP servers.

The last announcement was April 4, 2003 for Version 7.00. Poisson Superfish codes now use Winteracter version 5.10e and Lahey/Fujistu Fortran 95 version 5.7d.

Automesh and Very Large Meshes

We fixed a serious bug in Automesh that would affect any problem with a very large number of mesh points. The bug has been in all previous versions of Poisson Superfish, but only became apparent when people began to take advantage of modern powerful computers to run larger meshes than ever attempted in the past. The trouble was in the part of Automesh that was formerly a separate program known as "Lattice." When assigning the interior points of the mesh the code included some integer arithmetic that multiplied together four numbers that could be as large as the quantity (Kmax*Lmax)2, where Kmax and Lmax are the number of mesh intervals in the X and Y directions. For a mesh with equal intervals in both directions, this intermediate product would exceed the largest positive 4-byte integer if both logical coordinates K and L exceeded 215. Oblong meshes were not as troublesome. For example, a problem with Kmax = 462 and Lmax = 100 would not cause a problem. The symptoms of this bug were varied. The initial assignments of the interior points could result in a severely distorted mesh, but the successive over-relaxation optimization procedure, which tries to equalize triangle areas, might correct any problems. In some cases, the problems could be so severe that Automesh would issue an error message about overlapping or near-zero-area triangles. Problems were less likely to occur if the geometry contained line regions. The worst situation appears to have been large expanses that lacked both line regions and features described by closed regions.

Poisson and Pandira Solutions for a Series of Current Multipliers

At the request of a user at Brookhaven National Laboratory, we added to Poisson and Pandira the ability to compute a series of solutions for different values of the current multiplier XJFACT. To implement the feature, the user supplies two REG namelist variables in the Automesh input file. Variable XJFEND is the ending value and XJSTEPS is the number of steps in the series after the first calculation. Variable XJFACT itself serves as the starting value for the series. The code saves output files with filenames that include the number in the series of calculations.

Vanadium Permendur Table Added

Poisson and Pandira problems now may select an internal permeability table for vanadium permendur. The data were obtained through a user at Argonne National Laboratory, but we are still trying to locate the original source to include in the documentation.

We had planned to add more material tables for several years, but convergence problems in Poisson with vanadium permendur delayed this project. We recently became aware of the reason for the convergence problems. Convergence can be sensitive to variable RHOGAM, which is an under-relaxation parameter that limits the rate of change in the reluctivity at each re-calculation. The default value of 0.08 is usually near optimum for 1010 steel (the default material table), but it may be too large for some materials, in particular for vanadium permendur. Automesh will issue a warning message if RHOGAM remains at its default setting when the vanadium permendur table is in use. Poisson will issue a warning if the residuals RESIDA or RESIDI do not decrease steadily. The warning message advises that a possible cause of the oscillation is too large a value for under-relaxation parameter RHOGAM.

Complex Root Finder Improvements

We made some changes in the complex root finder used by program CFish. The code now counts the number of materials that have a nonzero imaginary part of either permittivity or permeability. If there are no complex materials, the root finder and convergence are the same as in program Fish. With no complex materials, CFish does not attempt to fit a resonance circle to the driving-point field error data. It just returns the usual D(k2) value. If there are any complex materials, then the convergence criteria on the slope of D(k2) being close to -1 is replaced by the requirement that the slope is negative. During a resonance search, CFish will not test for convergence until it has enough data (3 cycles) to fit a circle to the driving- point field error in the complex plane. The documentation (in file SFcodes.doc) includes a new section that discusses the complex root finder. We made some changes to the plot file FishScan.tbl written by programs Fish and CFish. The column of sequence numbers, which was seldom of any use has been omitted. CFish now writes both real and imaginary parts of D(k2) and dH1, the field error at the driving point.

There are two new SF.INI variables related to the changes in the CFish code. Variable CFishCirclePlot controls whether CFish writes an input file for program Quikplot to display fitted resonance circles at each cycle of a mode search. Variable ScanFormatComplex controls whether the initial FishScan.tbl display shows a plot of the driving-point field error in the complex plane or a plot of D(k2) versus frequency as it does for the results written by program Fish.

We added two new options in program Tablplot that are useful for displaying the driving-point field error in the complex plane mentioned above. The code can sort the data table by a specified column, and it can label individual data points by the values from a specified column. The features can be activated by keywords in the input file or from menu items after the program starts. When labeling points, the user can select which point to start with, how many points to skip between labeled points, the number of significant digits in the labels, and the label orientation angles.

While working on these CFish changes, we found that both Fish and CFish failed to complete the output file OUTFIS.TXT if one used the Escape key to stop the program while the code performs a frequency scan. File OUTFIS.TXT will now contain all the calculated data is the scan is interrupted.

Improvements in Program ConvertF

We made the some improvements in ConvertF, which converts rf cavity frequencies between ambient and operating conditions. The changes include:

  • Radio buttons replace previous scrolling text boxes to select ambient gas and cavity material.
  • Cavity material "Other" selects the user-supplied thermal expansion coefficient in units corresponding to the current temperature input units (e.g., /deg F or /deg C).
  • Results appear in color in a text box that allows the user to highlight and copy text.
  • The computed expansion coefficient now appear in the results text box and also in the output file XFREQ.TXT.
  • Precision of frequency output changed from 10 Hz to 1 Hz.
  • The dialog box now has buttons to update results or stop the program. (As in previous versions, changing entry fields also updates the results automatically.)
  • Results appear in a larger display region to avoid writing multiple lines when certain Windows fonts are in use.

Other Changes

We added a new namelist type in program Automesh. Variables in the POA namelist define a single-point boundary value at location XA,YA. Boundary value ASET corresponds to the vector potential Az (or Aphi) for magnet problems, voltage V for electrostatic problems, or the magnetic field Hz (or Hphi) for rf problems. This feature restores a capability previously found in older versions of Poisson and Pandira. In version 4 and earlier, users could provide a list of logical coordinates and potential values directly to these solver programs. The present implementation defines the points using their physical coordinates instead of their logical coordinates, and the entries are part of the Automesh input file.

We fixed a potential problem in the line parser used in all Poisson Superfish codes. In previous versions, the line parser would attempt to read as real variables certain character strings that did not represent numbers. The codes will now recognize examples such as "100E0.2" or "1.0E+400" or "1.0E-400" as character strings rather than numbers. Any decimal point must precede the "E" or "D" that signals a number in scientific notation. Also, for numbers in scientific notation, the exponent must be in the range -307 to +307. This change should result in a useful error message if this sort of typographical error occurs in an input file.

We fixed a bug in Automesh that affected input files that use lines regions and also use units other than centimeters (CONV values other than 1.0). The code could diagnose an error because line-region coordinates in user units were being compared with problem boundaries in centimeters.

In Automesh, there is no longer a default value for variable KPROB. Users must set KPROB in the first REG namelist to define the problem type. Allowed values are KPROB = 0 for a Poisson or Pandira problem, or KPROB = 1 for a Superfish problem.

We changed the way Automesh reads title lines from the input file. The title still contains up to ten 80-character title lines, but there can now be blank lines or comment lines (starting with a semicolon or an exclamation mark) interspersed among title lines. The code includes more error checking when reading title lines and will write a warning message if the file contains no title lines or more than 10 title lines before the first REG namelist. This change affects tuning programs. If comment lines appear in the Title/EndTitle section of a tuning-code control file, the code transfers these lines to subsequent control files, log files, and to each Automesh input file. Automesh ignores these comment lines and they will not appear in output files written by Automesh, Fish or SFO.

We fixed a bug in SFO reported by a user at SLAC. If the Automesh input file included the NORM=3 option to normalize fields to the value of ASCALE, and if SFO read a .SEG file, the code would set ASCALE = 0 unless the .SEG file included a value for ASCALE.

Program Tablplot now changes the correct scale (X or Y) from linear to log or back when the menu item is selected.

We fixed a bug in several programs that resulted in truncated names for some output files if the original Automesh input file had a name longer than 12 characters. The problem affected output files written by SFO, SF7, Poisson, and Pandira.

We noticed that two options from pre-1992 versions of Poisson could not be selected because the appropriate REG namelist variables were not recognized. It is doubtful that the features of of much use, but nevertheless, we added the variables ICAL, IHDL, and ICYSEN to the REG namelist variables. The limited documentation we could find for these features appears in sections under "Input options for Poisson and Pandira" in file SFcodes.Doc.

New SF.INI variable Force1MVperMeter controls whether postprocessor SF7 normalizes the fields calculated for Parmela to EZERO = 1.0 MV/m when running the code with a .IN7 input file. Previously, in order to turn off the 1-MV/m normalization, the user would have to use the dialog window and uncheck the box labeled "Force E0 = 1 MV/m." Variable Force1MVperMeter also defines the initial setting of the check box in the SF7 dialog window.

We fixed a bug in the calculation of power losses and stored energy for rectangular regions computed by SF7 and WSFplot. The area of some mesh triangles near corners of the rectangular region were being calculated incorrectly. The bug was encountered only rarely because the only triangles affected were those that had one point outside the rectangular region and that point plus one other point were both exactly on one of the boundaries of the rectangular region.

Error messages 384 and 386 include a clarifying comment about the origin of the quantities XMIN, XMAX, YMIN, and YMAX.

We failed to assign a number to two SFO error messages when Poisson Superfish version 7 was first released. Error 600 now occurs if SFO cannot allocate arrays for boundary- point data. Error 638 occurs if the SFO input file contains an unrecognized keyword.

The preference files containing start-up settings written by plotting programs WSFplot, Quikplot, and Tablplot are now text files rather than binary files. The codes will delete old copies of the binary files with extension .PRF. The new text filenames are WSFPRF.Txt, QplotPRF.Txt, and TplotPRF.Txt.

We fixed a bug in SF7 that caused the code to crash on electrostatic problems when interpolating on a grid.

Poisson and Pandira now report the correct (positive) sign of the stored energy for electrostatic problems in Cartesian coordinates.

Obtaining Updated Files

Related Mailing Lists

* This work is supported by the U. S. Department of Energy, Office of Science, Division of High Energy Physics.

 Los Alamos National Laboratory
Operated by the University of California for the National Nuclear Security Administration,
of the US Department of Energy.    
Copyright © 2003 UC | Disclaimer/Privacy

Last modified: Wed 31 Dec 1969 5:00 PM , LDD or FLK