Source code for qiskit_nature.second_q.problems.electronic_properties_container

# This code is part of a Qiskit project.
#
# (C) Copyright IBM 2022, 2023.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.

"""The electronic properties container."""

from __future__ import annotations

from typing import cast

from qiskit_nature.second_q.properties import (
    AngularMomentum,
    ElectronicDensity,
    ElectronicDipoleMoment,
    Magnetization,
    ParticleNumber,
)

from .properties_container import PropertiesContainer


[docs]class ElectronicPropertiesContainer(PropertiesContainer): """The container class for electronic structure properties.""" @property def angular_momentum(self) -> AngularMomentum | None: """Returns the angular momentum property.""" return cast(AngularMomentum, self._getter(AngularMomentum)) @angular_momentum.setter def angular_momentum(self, angular_momentum: AngularMomentum | None) -> None: """Sets the angular momentum property.""" self._setter(angular_momentum, AngularMomentum) @property def electronic_density(self) -> ElectronicDensity | None: """Returns the electronic density property.""" return cast(ElectronicDensity, self._getter(ElectronicDensity)) @electronic_density.setter def electronic_density(self, electronic_density: ElectronicDensity | None) -> None: """Sets the electronic density property.""" self._setter(electronic_density, ElectronicDensity) @property def electronic_dipole_moment(self) -> ElectronicDipoleMoment | None: """Returns the electronic dipole moment property.""" return cast(ElectronicDipoleMoment, self._getter(ElectronicDipoleMoment)) @electronic_dipole_moment.setter def electronic_dipole_moment( self, electronic_dipole_moment: ElectronicDipoleMoment | None ) -> None: """Sets the electronic dipole moment property.""" self._setter(electronic_dipole_moment, ElectronicDipoleMoment) @property def magnetization(self) -> Magnetization | None: """Returns the magnetization property.""" return cast(Magnetization, self._getter(Magnetization)) @magnetization.setter def magnetization(self, magnetization: Magnetization | None) -> None: """Sets the magnetization property.""" self._setter(magnetization, Magnetization) @property def particle_number(self) -> ParticleNumber | None: """Returns the particle number property.""" return cast(ParticleNumber, self._getter(ParticleNumber)) @particle_number.setter def particle_number(self, particle_number: ParticleNumber | None) -> None: """Sets the particle number property.""" self._setter(particle_number, ParticleNumber)