Send Ifeffit mailing list submissions to ifeffit@millenia.cars.aps.anl.gov
To subscribe or unsubscribe via the World Wide Web, visit http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit or, via email, send a message with subject or body 'help' to ifeffit-request@millenia.cars.aps.anl.gov
You can reach the person managing the list at ifeffit-owner@millenia.cars.aps.anl.gov
When replying, please edit your Subject line so it is more specific than "Re: Contents of Ifeffit digest..."
Today's Topics:
1. Re: maximum argument length? (Matt Newville) 2. Re: running feff - a problem (Matt Newville)
----------------------------------------------------------------------
Message: 1 Date: Mon, 5 Jan 2004 17:45:25 -0600 (CST) From: Matt Newville
Subject: Re: [Ifeffit] maximum argument length? To: XAFS Analysis using Ifeffit Message-ID: Content-Type: TEXT/PLAIN; charset=US-ASCII Hi Peter,
Sorry for the delay... Christmas/New Year's holidays. I'll be back for real later this week.
On Tue, 23 Dec 2003, Peter Southon wrote:
Is there a limit on the total length of arguments that follow an Ifeffit command? If so, is there a way of expanding the limit?
Yes, there is a limit. Actually, there are several limits that can affect how long the command line can be. The length limit on the strings in the code are 2048 characters, but the strings get passed back and forth enough times that I wouldn't claim that a single command with 2047 characters will always work. More importantly, there are various limits on different parts of the command length, which is what I think you're seeing.
I've constructed a rather complicated model which uses 37 paths (mostly multiple scattering). Furthermore, quite a few of these paths are sensitive to scattering angle, so I have calculated FEFF files for three versions each of most paths (each for a different scattering angle), as suggested in the course "EXAFS Analysis with FEFF and FEFFIT" and the old Feffit manual. Thus the final Ifeffit command calls on a lot of FEFF paths, each specifically numbered according to path and angle. Unfortunately, after adding a few extra paths I get error messages when running the feffit command: "feffit:unknown key" followed by a list of paths about halfway through my list, and also "feffit: no chi(k) data array?". I assume that this is because ifeffit will only swallow half
command, which is:
feffit(1-4,500,510,520,600,610,620,700,710,720,800,810,820,
9-13,15-16,1700,1710,1720,1800,1810,1820,1900,1910,1920,2000,20 10,2020,
37,
3800,3810,3820,3900,3910,3920,4000,4010,4020,4100,4110,4120,
4200,4210,4220,4300,4310,4320,4400,4410,4420,4500,4510,4520, 4600,4610,4620,4700,4710,4720,4800,4810,4820,4900,4910,4920, 5000,5010,5020,5100,5110,5120,5200,5210,5220,5300,5310,5320, 5400,5410,5420,5500,5510,5520, chi = data15.chi, macro = plot_fit)
Short of actually renumbering all my paths so that they run
sequentially,
is there any solution...?
Eek. This is my mistake, and I'll have to send repaired code for this to work, which could be as soon as the end of this week. You're hitting an accidentally low limit on the length of the 'path list'. The string '1-4,500,...,5520' needs to be converted to a list of integers: the limit on this string is currently only 256 characters, which is definitely a mistake and will be increased to 1024 shortly.
Another possible approach for this problem is to use the unadvertised, "slightly magic" behavior that an undefined path is silently ignored in the sum-over-paths. That is, if you define paths 500, 510, 520, but not any of the path numbers in between, using '500-520' would be the same as '500,510,520'. Though this will give the same sum of paths, it _currently_ won't help you, as it will quickly use up too many of the paths in the number of internally stored paths used in the code. This will be fixed and documented for the next version too (which should be within a couple weeks), and the path indices will be checked to be between 1 and 9999, so that saying '1-9999' will mean "use all defined paths".
In principle, that could make the sort of problem you're dealing with easier, but it might be real work for you at this point too.
Sorry for all the trouble, and hopefully we can get it to work soon.
--Matt
------------------------------
Message: 2 Date: Mon, 5 Jan 2004 17:47:16 -0600 (CST) From: Matt Newville
Subject: Re: [Ifeffit] running feff - a problem To: XAFS Analysis using Ifeffit Message-ID: Content-Type: TEXT/PLAIN; charset=US-ASCII Hi Tamas,
I'm trying to run feff to do the feff paths calculation the same way I've done before (feff file from TkAtoms and the executable feff6l are in
Hi Matt Earlier, I have also faced the problem faced by Tamas about the feff6 not running even though feff.inp is in the same folderas the executable. I was able to figure it out in my case. The problem was that the feff.inp file that we get from Tkatoms had to be for the right version of the Feff. There are different versions for the output availabe. If you trying running a feff.inp for feff8 format, it wouldnt run in feff6. I am not sure if tamas is also facing the same issue. thanks vivek Vivek S. Murthi Graduate Research Assistant 419 Egan Center Northeastern University Boston, MA-02115 Phone: 617-373-8949 On Tuesday, January 06, 2004 1:00 PM, ifeffit-request@millenia.cars.aps.anl.gov [SMTP:ifeffit-request@millenia.cars.aps.anl.gov] wrote: the the
same folder), and now it just doesn't want to work. Hitting feff6l causes the opening of the DOS window, but it closes immediately and doesn't do the calculation. Does anyone know what's the cause of this? (I have the updates version of Ifeffit and the updater, too.)
With 1.2.4(+ the updates), it should be that clicking on the feff6l batch file brings up a dialog to browse for feff.inp, and then runs feff6l on that file, in that directory. I think this batch file could be copied from C:\Program Files\Ifeffit (or whereever Ifeffit is installed) and still run OK. But I believe a shortcut to the executable (feff6l.exe) in another directory will not work, as this executable needs to find DLLs to run properly. That's why there are the batch files.
If the proper environmental variables are set and the Ifeffit directory is in your path, the executable should run from a DOS command window. You could add this to autoexec.bat (or look at feff6l.bat): SET IFEFFIT_DIR=C:\Program Files\Ifeffit SET PATH=%PATH%;%IFEFFIT_DIR% SET PGPLOT_DIR=%IFEFFIT_DIR% SET PGPLOT_DEV=/GW
or set these environmental variables from the Control Panel (Generally Control Panel -> Settings -> Advanced -> Environmental Variables, though it does vary with versions of Windows). Actually, for Feff6, only the path needs to be set to include the Ifeffit directory.
Please let me know if these suggestions don't help enough to get fef6l working for you...
--Matt
------------------------------
_______________________________________________ Ifeffit mailing list Ifeffit@millenia.cars.aps.anl.gov http://millenia.cars.aps.anl.gov/mailman/listinfo/ifeffit
End of Ifeffit Digest, Vol 11, Issue 1 **************************************
Hi Vivek, Thanks... using a feff.inp file for Feff8 would definitely cause problems for Feff6! Since warning/error messages are only printed to the screen, this can be difficult to see on Windows, where the command window would just disappear. I'll look into putting some (or all) of the status, warning, and error messages from Feff6 into a file that can be read later, and also look into giving some sort of error status that would indicate that something went wrong. --Matt
participants (2)
-
Matt Newville
-
Vivek S. Murthi