Description | Perl tools for X-ray Absorption Spectroscopy |
Demeter::Feff::Aggregate - Perform the pathfinder fuzzily over inequivalent sites
This documentation refers to Demeter version 0.9.26.
my $atoms = Demeter::Atoms->new(file=>'BaFe12O19.inp');
my $bigfeff = Demeter::Feff::Aggregate->new;
$bigfeff->setup($atoms, 'Fe');
$bigfeff->run;
The run
method calls overridden potph
and pathfinder
methods which iterate over all inequivalent sites in the unit cell. The degeneracies of the paths are weighted by the number of each site in the fully populated unit cell.
See the file examples/recipes/FuzzyOverSites/pfo.pl in the Demeter distribution for an example.
This organizes a sequence of partial Feff calculations, one for each inequivalent site in the unit cell containing the absorber species. The potph
method is run on each Feff object. Then, for each, Feff object the first few steps of the pathfinder
method are run. For each Feff, the tree of scattering geometries is constructed and the heap of paths is filled.
Each heap is then unloaded onto a master heap. This master heap is collapsed in the nomral manner so that fuzzy degeneracies are found over all the inequivalent sites in the aggregate.
Care is taken to compute the degeneracies and fuzzy half lengths considering the fractional representation of each site in the unit cell. As a result, degeneracies are unlikely to be integer valued.
This object extends the normal Feff object. At the end, therefore, the pathlist
attribute is filled with fuzzily degenerate path list computed in the aggregate over all sites. In that sense, the Aggregate object can be used just like a normal Feff object when it comes time to build a fitting model or do something else with the Feff claculation.
Each individual Feff calculation is retained and used when it comes time to compute the actual paths. A few attributes of the Aggregate object may be a bit surprising. The miscdat
attribute is filled with that value from the Feff object from first site in the list of inequivalent sites. The nsites
attribute is filled with average of the nsites of the constituent Feff objects, rounded to the nearest integer.
Many parameters are made common to all the Feff objects, included rmax
, fuzz
, and betafuzz
.
Note that this runs Feff and Demeter's pathfinder once for each inequivalent site. It, therefore, takes exactly N times longer to run than a normal Feff calculation. Set rmax
sensibly!
parts
This is a reference to an array containing the Feff objects from each inequivalent site.
setup
Load up the Feff::Aggregate object with its consitutent Feff objects.
my $atoms = Demeter::Atoms->new(file=>'BaFe12O19.inp');
my $bigfeff = Demeter::Feff::Aggregate->new;
my $ret = $bigfeff->setup($atoms, 'Fe');
The arguments are an atoms object containing the crystal data and the symbol of the absorbing element. The Aggregate object will then contain one Feff object for each inequivalent site in the unit cell.
The clusters computed for each site will be examined to verify that they contain the same number of unique potentials which are listed in the ipot list in the same order.
This method returns a Demeter::Return object. This will be loaded with a message
containin any problem discovered in the analysis of the ipot lists from the constituent atoms calculations.
fractions
This populates a unit cell and counts how many of each inequivalent site is present. It then sets the site_fraction
attribute of each Feff object in the Aggregate so that path degeneracies and fuzzy halflengths are corectly calculated.
See Demeter for a description of the configuration system.
The dependencies of the Demeter system are in the Build.PL file.
Please report problems to the Ifeffit Mailing List (http://cars9.uchicago.edu/mailman/listinfo/ifeffit/)
Patches are welcome.
Bruce Ravel, http://bruceravel.github.io/home
http://bruceravel.github.io/demeter/
Copyright (c) 2006-2018 Bruce Ravel (http://bruceravel.github.io/home). All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlgpl.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.