Conventions and Terms
Reading and writing
tesliper
was designed to deal with multiple conformers of a single molecule. It
identifies conformers using a stem of an extracted file (i.e. its filename without
extension). When files with identical names (save extension) are extracted in course of
subsequent Tesliper.extract()
calls (or in recursive extraction, see method’s
documentation), they are treated as the same conformer. This enables to join data
from subsequent calculations steps, e.g. geometry optimization, vibrational spectra
simulation, and electronic spectra simulation.
Note
If specific data genre is available from more than one file, only recently extracted values will be stored.
Also, writing extracted and calculated data to files is done in batch, as usually
multiple files are produced. Hence, tesliper
will chose names for these files
automatically, only allowing to specify output directory (as
Tesliper.output_dir
attribute). If you need more control over this process,
you will need to use one of the writer objects directly. These are easily available
via the writer_base.writer()
factory function.
Handling data
tesliper
stores multiple data entries of various types for each conformer. To
prevent confusion with Python’s data type
and with data itself, tesliper
refers
to specific kinds of data as genres. Genres in code are represented by specific
strings, used as identifiers. To learn about data genres known to tesliper
, see
documentation for GaussianParser
, which lists them.
Note
Given the above, you may wonder why is it genres and not just kinds of data then? The reason is that naming things is hard (one of the only two hard things in Computer Science, as Phil Karlton said). As of time of deciding on this name, I did not come up with the second one. Hopefully, this small oddity will not bother you too much.
tesliper
may not work properly when used to process data concerning different
molecules (i.e. having different number of atoms, different number of degrees of
freedom, etc.). If you want to use it for such purpose anyway, you may set
Tesliper.conformers.allow_data_inconsistency
to True
. tesliper
will then stop
complaining and try to do its best.
Glossary
- genre
A specific kind of data, e.g. SCF energy, dipole strengths, atoms’ positions in space, or command used for calculations. Represented in code by a short string. Not to be confused with Python’s data
type
. See Available data genres.- trimming
Internally marking certain conformers as not kept.
tesliper
provides an easy way to trim conformers to user’s needs, see Filtering conformers.- kept
Conformers may be internally marked as kept or not kept. Kept conformers will be normally processed by
tesliper
, not kept conformers will be ignored. SeeConformers.kept
.- arrayed
About data turned into an instance of
DataArray
-like object, usually byConformers
’ method of the same name. SeeConformers.arrayed()
.- data array
Type of objects used by
tesliper
to handle data read from multiple conformers. The same data array class may be used to represent more than one genre. Sometimes referred to asDataArray
-like classes or objects. Seearrays
.- data inconsistency
An event of data having non-uniform properties, e.g. when number of values doesn’t match number of conformers, or when some conformers provide a different number of values than other conformers for a particular data genre. See
array_base
.