Structure objects represent a collection of atoms, a molecule, or any super molecular structure in 3D cartesian space.
Input objects define the input parameters for a calculation.
ProgramOutput objects store computed values and output files (collectively called Results) from a calculation. ProgramOutput also stores the exact input data (.input_data) used for a calculation, relevant metadata, and Provenance information so you have full visibility of how every result was generated.
Other objects, such as Identifiers, Files, Provenance, and Model support these core data structures by organizing relevant information in a user-friendly way.
💾 Saving your data to disk and re-opening it again later for analysis is as simple as calling my_obj.save(/path/to/file.json) or MyModel.open(/path/to/file.json). These methods are not shown in the documentation for individual classes to avoid redundancy. Files can be saved as .json, .yaml, or .toml. Structure and OptimizationResults (which contains a list of Structures) may additionally be saved as .xyz files for compatibility with external program.