# 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.