Skip to content

structure

Specify a molecular or periodic structure. This command can appear in the global context.

Subcommands

Options

bond_length

Sets the bond length for a diatomic formula:

structure(formula = HCl bond_length = 1.0 angstrom)
  • The type is quantity
  • There is no default value.
charge

Specify total system charge.

  • The type is real
  • There is no default value.
charges

Specify a map of modified nuclear charges for each element.

structure(
  molecule = water
  charges = {H: 1.0, O: 6.0})
  • The type is {real}
  • There is no default value.
dummy

Specify a list of dummy atoms, ordered according to the order in input (or in an external file), starting at 1. The charge of the dummy-atom nucleus is set to zero, and the default number of electrons is reduced by the atomic number. For example

structure(
molecule = water
dummy = [2, 3])
will dummy the 2 hydrogen atoms.

  • The type is [int]
  • There is no default value.
file

Specify an xyz (or xyz+) file for reading molecular structure.

The xyz file format has the familiar structure

3
any comment text (ignored)
O    0.00000000     0.00000000    -0.06669620
H    0.00000000     0.76075414     0.52934657
H    0.00000000    -0.76075414     0.52934657
while the comment line can be used in xyz+ to specify the total molecular charge, for example
3
1 <-- this is the charge
O    0.00000000     0.00000000    -0.06669620
H    0.00000000     0.76075414     0.52934657
H    0.00000000    -0.76075414     0.52934657
for the water cation.

Note: in other versions of xyz+, multiplicity can also be specified in the comment line. This is not possible in qcore because multiplicity has to be specified in the scope of the energy command, not the structure.

  • The type is string
  • There is no default value.
formula

Specify a molecule by chemical formula. For example, a single atom can be loaded:

structure(formula = He)
For a diatomic formula a bond length must also be specified:

structure(formula = HCl bond_length = 1.0 angstrom)
  • The type is string
  • There is no default value.
fractional

Specify atoms and their fractional coordinates in the primitive cell. For example:

structure(
  fractional = [[C, 0.0,  0.0,  0.0 ],
                [C, 0.25, 0.25, 0.25]]
  lattice(a = 3.57 angstrom
          bravais = fcc)
)
The option requires a list of tuples. Each tuple must have an element name and three coordinates (as fractions of the lattice vectors). It also requires the lattice subcommand.

  • The type is [(string, real, real, real)]
  • There is no default value.
load

Load a previously saved structure. For example

foo := structure(molecule = water)
structure(load = foo)
loads the structure saved with name foo.

  • The type is string
  • There is no default value.
masses

Specify a map of modified nuclear masses (in atomic mass units) for each element.

structure(
  molecule = water
  masses = {H: 4.0})

This option is deprecated.

  • The type is {real}
  • There is no default value.
molecule

Specify a molecule name from entos data/molecules directory. For example:

structure(molecule = water)
loads a single water molecule.

  • The type is string
  • There is no default value.
  • The value must be one of:
    • ethene
    • methane
    • methanol
    • propane
    • toluene
    • water
name

Specify the name of a set of results.

This option is deprecated.

  • The type is string
  • There is no default value.
print_level

Print level.

  • The type is int
  • There is no default value.
  • The value must be one of:
    • -2 - No output
    • -1 - Minimum output
    • 0 - Output that doesn't scale with system size
    • 1 - Output that scales linearly with system size
    • 2 - (Debugging) output that scales quadratically with system size
    • 3 - (Debugging) output that scales cubically with system size
separation_threshold

Separation threshold at which two atoms are considered to be occupying the same position.

  • The type is quantity
  • The default is 1e-3 bohr
  • The value must be nonnegative
wrap_atoms

When defining atomic positions using fractional, wrap_atoms = true will wrap them to their equivalent positions in the central cell. Any position \((n, n, n)\), where \(|n| = 1,\; 2\;, \ldots\) will be redefined at the origin.

  • The type is bool
  • The default is false
xyz

Specify atoms and their cartesian positions. For example:

structure(
  xyz = [ [O, 0.0,  0.0,       -0.06669620],
          [H, 0.0,  0.76075414, 0.52934657],
          [H, 0.0, -0.76075414, 0.52934657] ]
)
The option requires a list of tuples. Each tuple must have an element name and three coordinates (in Angstrom).

  • The type is [(string, real, real, real)]
  • There is no default value.
xyz_plus_policy

Specify how xyz+ files should be handled/detected.

  • The type is string
  • The default is extension
  • The value must be one of:
    • always - Always assume xyz+, ignoring the file extension
    • extension - Determine whether to read xyz or xyz+ based on the file extension
    • never - Never assume xyz+, ignoring the file extension