forte2.base_classes.ci_base#
Module Contents#
- class forte2.base_classes.ci_base.CIBase#
Bases:
forte2.base_classes.active_space_solver.ActiveSpaceSolverBase class for (state-averaged) CI-type active-space solvers.
Provides the representation-agnostic orchestration shared by all concrete solvers: root/state bookkeeping, state-averaged RDMs, and cumulants. These methods assume the subclass populates the following in its
_startup/run:self.norb: number of active orbitalsself.evals_flat: flat array of eigenvalues over all rootsself.sub_solvers: list of per-state worker objects, each exposingnrootandmake_{1,2,3}rdm(root)returning the spin-free RDMs.
Subclasses implement the eigensolve and RDM primitives (
run,reset_eigensolver,get_convergence_status,make_sf_*/make_sd_*).- first_run: bool = True#
- executed: bool = False#
- compute_average_energy()#
Compute the average energy from the CI roots using the weights.
- Returns:
- float
Average energy of the CI roots.
- make_average_1rdm()#
Make the average spin-free one-particle RDM from the CI vectors.
- Returns:
- NDArray
Average spin-free one-particle RDM.
- make_average_2rdm()#
Make the average spin-free two-particle RDM from the CI vectors.
- Returns:
- NDArray
Average spin-free two-particle RDM.
- make_average_3rdm()#
Make the average spin-free three-particle RDM from the CI vectors.
- Returns:
- NDArray
Average spin-free three-particle RDM.
- make_average_2cumulant()#
- make_average_3cumulant()#
- make_average_cumulants()#
- abstractmethod run()#
- abstractmethod reset_eigensolver()#
- abstractmethod get_convergence_status()#
- abstractmethod make_1rdm(left_root: int, right_root: int | None = None)#
- abstractmethod make_2rdm(left_root: int, right_root: int | None = None)#
- class forte2.base_classes.ci_base.RelCIBase#
Bases:
forte2.base_classes.active_space_solver.RelActiveSpaceSolver- first_run: bool = True#
- executed: bool = False#
- compute_average_energy#
- make_average_1rdm#
- make_average_2rdm#
- make_average_3rdm#
- make_average_2cumulant#
- make_average_3cumulant#
- make_average_cumulants#
- abstractmethod run(use_asym_ints=False)#
- abstractmethod reset_eigensolver()#
- abstractmethod get_convergence_status()#
- abstractmethod make_1rdm(left_root: int, right_root: int | None = None)#
- abstractmethod make_2rdm(left_root: int, right_root: int | None = None)#