entos is easy to run
The entos executable can be run with an input in a named input file
on standard input
entos < my_input.in
or as a string
entos -s "print(message = 'Hello world!')"
The input language follows a strict grammar, and input is checked before execution of jobs. The key features are:
the input is hierarchical, so arbitrarily deeply nested structures can appear
nothing can appear in input that was not documented
The language consists of two things, commands and options. Commands look like command( ... ) and options look like option = value. Commands often contain both subcommands and options. Values assigned to an option are typed (the type system is quite complex, so for example an option could take a map of string to tuple of string and three doubles – but the types are always exactly as documented in the manual, and in most cases examples are given). Strings in input are specified by single quotes, but these can be dropped when the string contains only letters, numbers and underscore.
Calculations are triggered by top-level commands, with details specified by options and subcommands. For example, to run a simple DFT energy calculation on a water molecule the input reads:
In this example input, dft()is a command that performs a DFT single-point energy evaluation. It has one subcommand structure() and two options xc and ao.
The structure() subcommand specifies the molecular structure. One option is to specify molecule, whose value water is a built-in molecule with a pre-defined geometry. Alternatively, the structure could be provided in an XYZ format file via file = 'water.xyz'.
The options xc and ao specify the exchange-correlation functional and the atomic orbital (AO) basis set, respectively. In this example, we use the PBE functional and the 6-31G* AO basis for the DFT energy evaluation.
This example provides a basic idea on how entos input works. In the following, we will walk you through some other examples to demonstrate the capabilities of entos.
Examples on specific topics: