Hi Matthew,



On Thu, May 29, 2014 at 11:18 AM, Matthew Marcus <mamarcus@lbl.gov> wrote:
I wonder if what he was asking about is an automated way of mapping the position parameters for a given space group, that is, fractional atomic coordinates as listed in a .cif, onto
the various path distances.  As it is now, it's impractically hard to do it except for very simple cases.

I completely agree.
 
 Maybe what is needed is a language for specifying local structures in which
atom positions and occupancies can be given by variables, and the program would automatically parameterize the paths.  As a hypothetical toy example, consider a simple model of
a substitutional model of Fe in bcc W (atoms chosen more or less at random).  Here, we suspect that since Fe is a smaller atom than W, the first neighbors would be
displaced inward.

This is an excellent suggestion...
 
 Thus, we might have a specification something like

SET a0 = 3.165  /* lattice parameter of pure W */
CENTRAL Fe 0 0 0
ATOM W          /* 1st NN */
        POS a0*(1-dist1)*(sqrt(3),sqrt(3),sqrt(3))/2
        OCC 1
        SS SS1
ATOM W
        POS a0*(1-dist1)*(-sqrt(3),sqrt(3),sqrt(3))/2
        OCC 1
        SS SS1
... add the other 6
ATOM W          /* 2nd NN */
        POS a0*(1-dist2)*(1,0,0)
        OCC 1
        SS SS2
... add the other 5

The program would then automatically compute not only the distances for the SS paths, but those for the MS paths as well,
and perhaps even estimate the ss values based on the ss's for the shells.  This is a relatively trivial example in which the scripting isn't needed.
However, it gets bigger.  For instance, suppose that some of the 1NN atoms might have Fe on them.  Then, the W sites would have
        OCC 1-xFe
and there would be ATOM Fe sites specifications like:
ATOM Fe
        POS a0*(1-dist1Fe)*(sqrt(3),sqrt(3),sqrt(3))/2
        OCC xFe
        SS SS1Fe

and the program would automatically work up MS paths with the proper weighting for the number of W and Fe atoms involved.

Now, consider an octahedral cage in which the central atom may be off-center:

SET a0 = <appropriate value>
CENTRAL Ti a0*(d_off,d_off,d_off)/sqrt(3)
ATOM O
        POS (a0/2)*(1+d1,d2,d2)
        OCC 1
        SS SS1
ATOM O
        POS (a0/2)*(d2,1+d1,d2)
        OCC 1
        SS SS1
ATOM O
        POS (a0/2)*(d2,d2,1+d1)
        OCC 1
        SS SS1
ATOM O
        POS (a0/2)*(-1+d1,d2,d2)
        OCC 1
        SS SS1
...

The distortions shown are intended to keep the 3-fold symmetry about 111.  Now, when you consider the higher shells, you can see that it could get
pretty messy to work out what the distances would be as a function of d_off, even if you don't allow displacements of higher neighbors.
This sort of specification only becomes sort of practical because computers can now handle the multitudes of paths which will appear.  Funny
that the Vpath thing should have just got discussed; that tool would be extra-important for distorted structures.

For the POS parameters, the above are given in Cartesian coords, but it would be good to have the option to do it in crystal coords, invoking
the crystal symmetry.  I'm not sure how to do that for impurities.

I realize that this would be a HUGE job, but whoever does it would win the hearts of EXAFS people everywhere :-)
        mam


Yes, that's a very nice way to do it, and I think such a distortion language would be a great way to map the problem to EXAFS.  I think such ideas have been kicked around for a long time, and I'm pretty sure something like this was part of Bruce's motivation for Virtual Paths.

A confounding, persistent issue for many years was that Feff's pathfinder (purposely?) loses all information about the atomic positions for a path.   Basically, the pathfinder needs to be able to retain the full path in order to model distortions in the way you're talking about.  I believe Bruce's pathfinder in Artemis does this.

I agree it's real work, but would be highly useful.

--Matt