Output

Output from the Atoms object is handled by the Write method. Note that this is capitalized to avoid any possible confusion (by perl or by a syntax highlighting text editor) with perl's write function, as shown in this example:

  1. #!/usr/bin/perl
  2. use Demeter;
  3. my $atoms = Demeter::Atoms->new(file => "ybco.inp");
  4. print $atoms->Write("feff6");

There are several output targets, which are formatted using templates from the Atoms template set. The output targets, i.e. the arguments of the Write method, that come with DEMETER are:

feff6
Input file for FEFF6.

feff7
Input file for FEFF7 (which is not really very different from the FEFF6 input file).

feff8
Input file for FEFF8.

atoms
Input file for ATOMS. This used as the save-file target for a GUI.

p1
Input file for ATOMS using the P 1 spacegroup and the fully populated unit cell. Here's an example:
title = YBCO: Y Ba2 Cu3 O7
space = P M M M
a     =   3.82300    b    =   3.88600    c     =  11.68100
alpha =  90.00000    beta =  90.00000    gamma =  90.00000
rmax  =   5.20000    core  = cu2
shift =
atoms
# el.     x           y           z        tag
  Y      0.50000     0.50000     0.50000   Y
  Ba     0.50000     0.50000     0.18400   Ba
  Ba     0.50000     0.50000     0.81600   Ba
  Cu     0.00000     0.00000     0.00000   cu1
  Cu     0.00000     0.00000     0.35600   cu2
  Cu     0.00000     0.00000     0.64400   cu2
  O      0.00000     0.50000     0.00000   o1
  O      0.00000     0.00000     0.15800   o2
  O      0.00000     0.00000     0.84200   o2
  O      0.00000     0.50000     0.37900   o3
  O      0.00000     0.50000     0.62100   o3
  O      0.50000     0.00000     0.37700   o4
  O      0.50000     0.00000     0.62300   o4


absorption
A file containing several interesting calculations using tables of absorption coefficients. Here's an example:
## --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
##  total mu*x=1:  8.160 microns,  unit edge step:  23.243 microns
##  specific gravity:  6.375
## --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
##  normalization correction:     0.00046 ang^2
## --*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--


spacegroup
A file containing a description of the space group. Here's an example:
# title = YBCO: Y Ba2 Cu3 O7
# space = P M M M
# a     =   3.82300    b    =   3.88600    c     =  11.68100
# alpha =  90.00000    beta =  90.00000    gamma =  90.00000
# rmax  =   5.20000    core  = cu2
# shift =
# atoms
# # el.     x           y           z        tag
#   Y      0.50000     0.50000     0.50000   Y
#   Ba     0.50000     0.50000     0.18400   Ba
#   Cu     0.00000     0.00000     0.00000   cu1
#   Cu     0.00000     0.00000     0.35600   cu2
#   O      0.00000     0.50000     0.00000   o1
#   O      0.00000     0.00000     0.15800   o2
#   O      0.00000     0.50000     0.37900   o3
#   O      0.50000     0.00000     0.37700   o4

Spacegroup P M M M (#47)

  Schoenflies: D_2h^1
  Full symbol: p 2/m 2/m 2/m
  New symbol : 
  Thirtyfive : 
  Nicknames  : 

  Common shift vector:
      

  Bravais translations:

  8 positions:
       x         y         z
      -x        -y         z
      -x         y        -z
       x        -y        -z
      -x        -y        -z
       x         y        -z
       x        -y         z
      -x         y         z


It is certainly possible to make output templates for other cluster formats, such as alchemy or xyz. Indeed, this was a stadard part of ATOMS before DEMETER. I eventually intend to integrate OpenBabel with DEMETER's FEFF capabilities, which will obviate the need to write ATOMS templates for other cluster formats.

To do! A method of the Feff object to directly import an Atoms object without needing to write and read a feff.inp file.