Scattering paths

This chapter explains how to use the results of a FEFF calculation. The Path object is the component of a fitting model that encapsolates the contribution from an individual scattering geometry. Here is an example of a typical Path object:

  1. my $paths = Demeter::Path -> new(parent => $feff_object,  
  2.                                  data   => $data_object,
  3.                                  sp     => $sp_object,
  4.                                  s02    => "amp",
  5.                                  e0     => "enot",
  6.                                  delr   => "deltaa",
  7.                                  sigma2 => "ssn",
  8.                                 );

In lines 4 through 7, the path parameters are set using the names of GDS parameters. More information about setting and querying path parameter values later in this chapter.

Lines 1 through 3 show the hierarchy of the Path object. The Path object relies upon connections to DEMETER objects to do its work.

parent
At line 1, the “parent” Feff object. is identified. The parent is the Feff object that was used to run the FEFF calulcation that generated this scattering path. The Path object needs to know

data

At line 2, the Data object containing the data for which this scattering path is being used to model. This connection is required for two reasons. The Fit object uses this linkage to properly create the IFEFFIT commands involved in running the fit. The other use of the Data object connection is to plot the Path object properly. The Fourier transform parameters of the Data object are used to process the scattering path for plotting.

The data attribute is not stricly required. When DEMETER is imported at the beginning of your program, a default Data object is created using a sensible set of processing parameters. If the data attribute is not explicitly set, the default Data object is used. This allows you to sensibly plot scattering paths without actually importing data into a Data object. When using a Path object as part of a simulation or a fit, it is important to properly identify the data attribute so that the path is Fourier transformed in the same manner as its associated data.



sp
The final part of the Path object's hierarchy is shown in line 3. The ScatteringPath object is the thing that links the FEFF calculation with the Path object. This is explained in detail in the next section. As it might seem confusing that two different objects are involved in defining a scattering path, here is the way to think about it. The Path object is outward expression of the scattering path and is intended to resemble a path paragraph in a feffit.inp file or a command in an IFEFFIT script. The ScatteringPath object is aware of all the details of the path finder and encapsolates the results of the FEFF calculation, much like the feffNNNN.dat but with lots of object-oriented functionality surrounding it.