Data classes ============ QDK/Chemistry uses immutable data classes to represent molecular information, electronic structure results, and quantum objects. These classes serve as the inputs and outputs for :doc:`algorithm classes <../algorithms/index>`, enabling a clean flow of data through the computational pipeline. All data classes support :doc:`serialization ` to JSON and HDF5 formats for persistence and interoperability. Comprehensive details on each data class can be found in the :ref:`API documentation `. Here, we provide a quick reference guide to help users understand the purpose and typical sources of commonly encountered data classes. Each of the links below leads to a detailed description of the data class, including its attributes, methods, and usage examples. Quick reference --------------- .. list-table:: :header-rows: 1 :widths: 25 55 20 * - Data Class - Purpose - Typical Source * - :doc:`Structure ` - Molecular geometry (atoms and coordinates) - User input * - :doc:`BasisSet ` - Atomic orbital basis definitions - Library lookup, User input * - :doc:`Orbitals ` - Molecular orbital coefficients and energies - :doc:`ScfSolver <../algorithms/scf_solver>` * - :doc:`Hamiltonian ` - One- and two-electron integrals - :doc:`HamiltonianConstructor <../algorithms/hamiltonian_constructor>` * - ``Wavefunction`` - Electronic state (orbitals + :term:`CI` coefficients) - :doc:`MCCalculator <../algorithms/mc_calculator>` * - ``QubitHamiltonian`` - Pauli operator representation - :doc:`QubitMapper <../algorithms/qubit_mapper>` * - :doc:`PauliOperator ` - Pauli operator expressions with arithmetic - User construction .. toctree:: :maxdepth: 1 :caption: Contents serialization basis_set hamiltonian orbitals pauli_operator structure