Fragments

A fragment feature is available albeit rather primitive. It allows for the analysis of the DOS in a fragment basis and for the calculation of the deformation density with respect to fragment densities. A typical application is the periodical adsorption of one or more molecules on a surface. For instance, consider periodic adsorption of hydrogen molecules over a surface. First you calculate the free molecule in the same orientation as when adsorbed to the substrate. Since you would like to use a molecular fragment, it makes sense to put the molecules far apart (large lattice spacing) and force dispersion to be neglected (KSPACE 1). To use the fragment in the next run you need to rename the result file (“RUNKF”), to something like “frag.runkf”, see the example script discussed below or the example covering this topic.

Fragment key

Fragment (block-type)
Defines a fragment. This key takes as argument the fragment file name (absolute path or path relative to the executing directory). You can define several fragments for a calculation.
Fragment filename
  indexFragAt indexCurrentAt
  {...}
  {Labels
    labelName1
    {...}
   Subend}
End
indexFragAt indexCurrentAt
One has to associate the atoms of the fragment to the atoms of the current calculation. So, for each atom of the fragment the indexFragAt has to be associated uniquely to the indexCurrentAt for the current calculation.
Labels
This subkey gives the possibility to introduce labels for the fragment orbitals.

Example:

Fragment
  1 3 !  atom 1 of this fragment is assigned to third atom
  2 4 !  atom 2 of this fragment is assigned to fourth atom
  Labels
   Sigma
   Sigma*
   Pi_x
   Pi_y
   Pi_x*
   Pi_y*
  Subend
End

In this example the first six fragment orbitals will be labeled as stated in the body of this key. The remaining orbitals are labeled by the default labeling system (e.g. 1/FO/5, etc.). The labels are used in combination with options like Print Eigens and Print OrbPop. (See also Print OrbLabels). This key can be given once for each fragment.

Tip

Specifying:

Print Eigens

for a calculation produces output concerning the eigen states, thereby providing a means to identify the eigen states (e.g. to be sigma, pi, et cetera). So, one can label the orbitals of a fragment according to this information.