Skip to content

xTB Output

Item Value
Format ID xtbout
Extensions .out, .log, .xtbout
Read Yes
Write No
Registry role Reader
Data level QM results; coordinates when printed in the output

Quick read

Python
from molop import AutoParser

frame = AutoParser("xtb.out", parser_detection="xtbout")[0][-1]
print(frame.qm_software_version, frame.is_normal)
print(frame.energies.total_energy.m_as("hartree"))
print(len(frame.atoms), frame.coords.shape)
Output contract

Output reports version, termination status, total energy, and geometry size. If an xTB single-point stdout only references an external coordinate file without printing geometry, the final line can be 0 (0, 3).

MolOP does not implicitly read adjacent coordinate files.

MolOP parses command-line standard output from xTB major version 5 and versions >=6. The reader covers both the legacy xTB ⅚.1 print family and the modern xTB >=6 print family. It does not define a separate xTB input format because xTB calculations normally receive coordinates and options directly from the command line.

Feature Support Scope Limits
Version scope, setup, tasks, and status Partial Recognizes xTB major version 5 and treats versions >=6 as the modern print family; parses version, program call, coordinate-file name, method, charge, multiplicity, OMP threads, task requests, termination, SCC status, and total wall time. Versions before 5 are rejected. Future major versions are accepted through the >=6 contract but are not vendor-validated until real outputs are available; the xTB 5 sample is also a compact contract.
Geometry availability Partial Parses legacy Bohr $coord blocks, legacy setup coordinates, modern XYZ final structures, and embedded V2000 SDF final structures. Single-point xTB stdout often references an external coordinate file without printing coordinates. Such logs retain a property frame with empty geometry; the parser does not read adjacent files implicitly.
Energies and geometry optimization Partial Exposes final total energy in Hartree, source-labeled energy evidence, optimization convergence, energy-change criteria, and xTB gradient norm fields. Energy decomposition rows and full optimization trajectories are not structured; only the final geometry printed by stdout is represented.
Orbitals, populations, and dipole Partial Parses legacy and modern orbital energies/occupancies, GFN1 Mulliken/CM5 charges, GFN2 Mulliken charges, molecular dipole, and rotational constants where printed. Wiberg bond-order tables, quadrupoles, dispersion-property tables, and omitted orbital ranges are not fully reconstructed.
Vibrations and thermochemistry Partial Parses projected physical frequencies, reduced masses, IR intensities, zero-point energy, total enthalpy, total free energy, heat capacity, entropy, temperature, and molecular mass where printed. Normal-mode displacement vectors, Hessian sidecar files, Raman intensities, and detailed rotor/interpolation tables are not structured from stdout.
xTB analysis properties Partial Parses vertical IP, vertical EA, global electrophilicity index, and atom-resolved Fukui indices when requested and printed. Additional xTB workflows such as FOD, metadynamics, MD, ONIOM, GFN-FF topology, and JSON/sidecar outputs are outside the current stdout contract.

xTB 5 / xTB >=6 Capability Coverage Matrix

The table below defines the field-level contract of the stdout reader. Statuses have the following meanings:

  • Supported: an explicit parser path and a regression sample for that version family exist.
  • Partial: only known print forms, final values, or a limited subset of task semantics are covered.
  • Unverified: the parser path may apply, but no real output sample from that version family establishes a stable contract.
  • Unsupported: no corresponding structured field is currently produced.
  • Not applicable: the capability is outside the responsibility of the stdout reader.

“Supported” in the xTB >=6 modern column is established by real xTB 6 fixtures. xTB 7 and later versions use the same modern contract, but remain forward-compatible rather than independently version-validated until real outputs are available.

xTB output capability xTB 5 legacy xTB >=6 modern Structured result Current boundary
Banner and version Partial Supported qm_software, qm_software_version Major version 5 and versions >=6 are accepted. The xTB 5 fixture is a legacy contract, and no real >=7 output fixture is currently available.
Concatenated command-line runs Unverified Supported One segment and result frame per version banner Every run must print a version banner; arbitrary shell separator text is not used for splitting.
Program call and coordinate-file name Partial Supported keywords, input_file_name, and model-chemistry raw keywords Only the printed program call and coordinate file lines are read; shell environment and the relative-path base are not recovered.
GFN Hamiltonian Partial Supported method, model_chemistry.method, with method family SEMIEMPIRICAL Printed GFN, GFN1, GFN2, and GFN-FF-style labels are recognized; method/version compatibility is not validated.
Charge, multiplicity, and OMP threads Partial Supported charge, multiplicity, request_num_cpu, resource_request Multiplicity is derived from --uhf or the printed unpaired-electron count plus one; common xTB defaults apply when values are absent.
SP, optimization, frequency, and gradient requests Partial Supported task_requests with derivative order and requested properties Inference covers --opt, --ohess, --hess, --grad, --vip, --vea, --vipea, --fukui, and --vfukui; not every xTB CLI combination is modeled.
Implicit solvent and temperatures Unverified Partial solvent, temperature, electron_temperature Only printed model, solvent, vibrational/solvent temperature, and electronic temperature values are parsed; complete ALPB/GBSA parameters are not reconstructed.
Legacy setup coordinates and $coord final structure Partial Partial atoms, Angstrom coords, coordinate precision, and observed provenance Bohr input is converted to Angstrom; original units, whitespace, and line text are not retained.
Modern XYZ final structure Unverified Supported atoms, Angstrom coords, coordinate precision, and observed provenance Only the final XYZ after final structure: is read from stdout; intermediate optimization geometries are not retained.
Embedded V2000 SDF final structure Unverified Supported Atoms and coordinates Only the atom block is used; bonds, formal charges, and SDF property blocks are not reconstructed by this reader.
External coordinates and sidecars such as xtbopt.xyz Unsupported Unsupported Only the printed coordinate-file name is retained Adjacent files are not read implicitly, preserving a single-source contract for stdout spans and hashes.
Final total energy Partial Supported Hartree energies.total_energy; an EnergyObservation when source evidence is enabled The last recognized final-energy print form is selected; individual SCC iterations are not represented as an energy trajectory.
SCC and energy-decomposition tables Unsupported Unsupported No dedicated decomposition fields Isotropic electrostatic, dispersion, repulsion, and similar components are not structured.
SCC and termination status Partial Supported status.scf_converged, status.normal_terminated SCC success may be inferred from a convergence line or final energy; normal termination depends on the finished run marker.
Wall time Partial Supported Second-valued running_time, aggregated at file level across segments xTB wall-time lines are parsed; CPU time, module timings, and external scheduler time are not.
Optimization convergence and thresholds Partial Supported geometry_optimization_status, energy change/threshold, gradient norm/threshold Only final printed values are retained; per-step convergence history is not structured.
Complete optimization trajectory Unsupported Unsupported No per-step frame sequence A command-line run currently maps to one result frame rather than one frame per optimization step.
Gradient vectors Unsupported Unsupported Only the gradient task request and final gradient norm can be recorded Per-atom stdout gradients and the gradient sidecar are not mapped to structured arrays.
Orbital energies and occupancies Partial Supported Alpha/beta orbital energies and occupancies Legacy occ./eps and modern orbital tables are covered. Orbitals hidden by ellipses cannot be recovered, and non-spin-resolved occupancies are split into alpha/beta channels.
Atomic charges Unverified Partial GFN1 Mulliken/CM5 and GFN2 Mulliken charges with source-labeled extensible population metadata Spin populations, complete population tables, and every Hamiltonian-specific charge scheme are not parsed.
Dipole and rotational constants Unverified Partial Debye dipole vector and GHz rotational constants Dipole magnitude, quadrupole, polarizability tensors, and higher multipoles are not structured.
Frequencies, reduced masses, and IR intensities Unverified Supported vibrations, including imaginary-mode count Only printed projected physical frequencies are covered; missing columns are not synthesized.
Mode displacements, Hessian, and Raman Unsupported Unsupported No corresponding structured arrays Stdout displacement blocks, .hessian sidecars, and Raman intensity tables are not read.
Thermochemistry Unverified Supported ZPVE, enthalpy, free energy, C_V, entropy, temperature, and molecular mass Only summary values are retained; rotor/interpolation details and individual thermal-correction components are not structured.
VIP, VEA, GEI, and Fukui indices Unverified Supported single_point_properties scalars and atom-resolved Fukui arrays Values exist only when the corresponding analysis is requested and printed to stdout.
Wiberg, FOD, MD, metadynamics, ONIOM, and GFN-FF topology Unsupported Unsupported No dedicated fields These analyses and workflows are outside the current stdout contract.
JSON, Molden, Hessian, and other auxiliary output Unsupported Unsupported No sidecar merge The parser consumes only the supplied stdout text and does not scan the working directory.
xTB input and output writers Not applicable Not applicable Reader only MolOP does not define an xTB input format or reconstruct command lines or stdout from result models.

Coordinate Boundary

xTB commonly prints only the coordinate file path for single-point jobs. MolOP does not silently read that adjacent file: doing so would mix a second source artifact into a parser result whose source spans and hashes describe only the stdout file. Optimization outputs that print a final structure do expose normal coordinate fields.

Version Boundary

The parser accepts major version 5 and routes all versions >=6 through the modern parsing contract. Recognized xTB outputs with a major version below 5 raise an explicit unsupported-version error instead of falling through to Gaussian or ORCA output readers.