Skip to content

Outputs

ProgramOutput is the core object that captures all information from a QC calculation including all input data, the computed values and files (collectively called Results), and additional metadata such as stdout and Provenance information. The .results attribute will correspond to the CalcType requested, e.g., a SinglePointResults, OptimizationsResults, etc.

qcio.ProgramOutput

ProgramOutput(**data: Any)

The core output object from a quantum chemistry calculation.

Attributes:

Name Type Description
input_data InputType

The input data for the calculation. Any of qcio.Inputs.

success Literal[True, False]

Whether the calculation was successful.

results ResultsType

The results of the calculation. Contains parsed values and files. Any of qcio.Results.

stdout Optional[str]

The standard output from the calculation.

traceback Optional[str]

The traceback from the calculation, if it failed.

provenance Provenance

The provenance information for the calculation.

extras Dict[str, Any]

Additional information to bundle with the object. Use for schema development and scratch space.

pstdout str

@property Print the stdout text.

ptraceback str

@property Print the traceback text.

Source code in qcio/models/outputs.py
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
def __init__(self, **data: Any):
    """Backwards compatibility for files attribute."""

    if "files" in data:
        warnings.warn(
            "The 'files' attribute has been moved to 'results.files'. Please "
            "update your code accordingly.",
            category=FutureWarning,
            stacklevel=2,
        )

        # This moves files from the top level to the results attribute
        if isinstance(data["results"], dict):
            results_files_dict = data["results"].get("files", {})
        else:  # data["results"] is Files, SinglePointResults, OptimizationResults
            results_files_dict = data["results"].files

        results_files_dict.update(**data.pop("files"))

    super().__init__(**data)

Results

qcio.Results module-attribute

qcio.SinglePointResults

The computed results from a single point calculation.

Attributes:

Name Type Description
calcinfo_natoms Optional[int]

The number of atoms as computed by the program.

calcinfo_nalpha Optional[int]

The number of alpha electrons as computed by the program.

calcinfo_nbeta Optional[int]

The number of beta electrons as computed by the program.

calcinfo_nbasis Optional[int]

The number of basis functions in the calculation.

calcinfo_nmo Optional[int]

The number of molecular orbitals in the calculation.

energy Optional[float]

The electronic energy of the structure in Hartrees.

gradient Optional[SerializableNDArray]

The gradient of the structure in Hartrees/Bohr.

hessian Optional[SerializableNDArray]

The hessian of the structure in Hartrees/Bohr^2.

nuclear_repulsion_energy Optional[float]

The nuclear repulsion energy of the structure in Hartrees.

wavefunction Optional[Wavefunction]

Wavefunction data from the calculation.

freqs_wavenumber List[float]

The frequencies of the structure in wavenumbers.

normal_modes_cartesian Optional[SerializableNDArray]

3D n_vibmodes x n_atoms x 3 array containing un-mass-weighted Cartesian displacements of each normal mode.

gibbs_free_energy Optional[float]

Gibbs free energy (i.e. thermochemical analysis) in Hartrees of a system where translation / rotation / vibration degrees of freedom are approximated using ideal gas / rigid rotor / harmonic oscillator respectively.

scf_dipole_moment Optional[List[float]]

The x, y, z component of the dipole moment of the structure in units of e a0 (NOT Debye!).

qcio.OptimizationResults

Computed properties for an optimization.

Attributes:

Name Type Description
energies ndarray

The energies for each step of the optimization.

structures List[Structure]

The Structure objects for each step of the optimization.

final_structure Structure

The final, optimized Structure.

trajectory List[Union[ProgramOutput[ProgramInput, SinglePointResults], ProgramOutput[ProgramInput, Files]]]

The SinglePointOutput objects for each step of the optimization.

structures property

structures: List[Structure]

The Structure objects for each step of the optimization.

final_structure property

final_structure: Structure

The final Structure in the optimization.

energies property

energies: ndarray

The energies for each step of the optimization.

final_energy property

final_energy: Optional[float]

The final energy in the optimization. Is np.nan if final calculation failed.

to_xyz

to_xyz() -> str

Return the trajectory as an xyz string.

Source code in qcio/models/outputs.py
259
260
261
262
263
def to_xyz(self) -> str:
    """Return the trajectory as an `xyz` string."""
    return "".join(
        prog_output.input_data.structure.to_xyz() for prog_output in self.trajectory
    )

save

save(
    filepath: Union[Path, str],
    exclude_none: bool = True,
    exclude_unset: bool = True,
    indent: int = 4,
    **kwargs: Dict[str, Any]
) -> None

Save an OptimizationOutput to a file.

Parameters:

Name Type Description Default
filepath Union[Path, str]

The path to save the molecule to.

required
exclude_none bool

If True, attributes with a value of None will not be written to the file.

True
exclude_unset bool

If True, attributes that have not been set will not be written to the file.

True
**kwargs Dict[str, Any]

Additional keyword arguments to pass to the json serializer.

{}
Note

If the filepath has a .xyz extension, the trajectory will be saved to a multi-structure xyz file.

Source code in qcio/models/outputs.py
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
def save(
    self,
    filepath: Union[Path, str],
    exclude_none: bool = True,
    exclude_unset: bool = True,
    indent: int = 4,
    **kwargs: Dict[str, Any],
) -> None:
    """Save an OptimizationOutput to a file.

    Args:
        filepath: The path to save the molecule to.
        exclude_none: If True, attributes with a value of None will not be written
            to the file.
        exclude_unset: If True, attributes that have not been set will not be
            written to the file.
        **kwargs: Additional keyword arguments to pass to the json serializer.

    Note:
        If the filepath has a `.xyz` extension, the trajectory will be saved to a
        multi-structure `xyz` file.
    """
    filepath = Path(filepath)
    if filepath.suffix == ".xyz":
        filepath.write_text(self.to_xyz())
        return
    super().save(filepath, exclude_none, exclude_unset, indent, **kwargs)

qcio.ConformerSearchResults

Results from a conformer search calculation.

Conformers and rotamers are sorted by energy.

Attributes:

Name Type Description
conformers List[Structure]

The conformers found in the search.

conformer_energies SerializableNDArray

The energies for each conformer.

rotamers List[Structure]

The rotamers found in the search.

rotamer_energies SerializableNDArray

The energies for each rotamer.

conformer_energies_relative property

conformer_energies_relative: ndarray

The relative energies for each conformer in the search.

rotamer_energies_relative property

rotamer_energies_relative: ndarray

The relative energies for each rotamer in the search.

qcio.Wavefunction

The wavefunction for a single point calculation.

Attributes:

Name Type Description
scf_eigenvalues_a Optional[SerializableNDArray]

The SCF alpha-spin orbital eigenvalues.

scf_eigenvalues_b Optional[SerializableNDArray]

The SCF beta-spin orbital eigenvalues.

scf_occupations_a Optional[SerializableNDArray]

The SCF alpha-spin orbital occupations.

scf_occupations_b Optional[SerializableNDArray]

The SCF beta-spin orbital occupations.