AdcMatrixlike

class adcc.AdcMatrixlike(innermatrix)

Bases: object

Class implementing minimal functionality of AdcMatrixlike objects.

Note: This is not the user-facing high-level object. Use adcc.AdcMatrix if you want to construct an ADC matrix object yourself.

Attributes Summary

blocks
ground_state
intermediates
is_core_valence_separated
mospaces
ndim
reference_state
shape
timer Obtain the timer object of this class.

Methods Summary

block_spaces(self, arg0)
compute_apply(self, arg0, arg1, arg2)
compute_matvec(self, arg0, arg1)
construct_symmetrisation_for_blocks() Construct the symmetrisation functions, which need to be applied to relevant blocks of an AmplitudeVector in order to symmetrise it to the right symmetry in order to be used with the various matrix-vector-products of this function.
dense_basis([blocks]) Return the list of indices and their values of the dense basis representation
diagonal(self, arg0)
has_block(self, arg0)
matvec(v)
rmatvec(v)
to_cpp(*args[, wfuncopy])
to_dense_matrix([out]) Return the ADC matrix object as a dense numpy array.

Attributes Documentation

blocks
ground_state
intermediates
is_core_valence_separated
mospaces
ndim
reference_state
shape
timer

Obtain the timer object of this class.

Methods Documentation

block_spaces(self: libadcc.AdcMatrix, arg0: str) → List[str]
compute_apply(self: libadcc.AdcMatrix, arg0: str, arg1: libadcc.Tensor, arg2: libadcc.Tensor) → None
compute_matvec(self: libadcc.AdcMatrix, arg0: libadcc.AmplitudeVector, arg1: libadcc.AmplitudeVector) → None
construct_symmetrisation_for_blocks()

Construct the symmetrisation functions, which need to be applied to relevant blocks of an AmplitudeVector in order to symmetrise it to the right symmetry in order to be used with the various matrix-vector-products of this function.

Most importantly the returned functions antisymmetrise the occupied and virtual parts of the doubles parts if this is sensible for the method behind this adcmatrix.

Returns a dictionary block identifier -> function

dense_basis(blocks=None)

Return the list of indices and their values of the dense basis representation

diagonal(self: libadcc.AdcMatrix, arg0: str) → libadcc.Tensor
has_block(self: libadcc.AdcMatrix, arg0: str) → bool
matvec(v)
rmatvec(v)
to_cpp(*args, wfuncopy='to_cpp', **kwargs)
to_dense_matrix(out=None)

Return the ADC matrix object as a dense numpy array. Converts the sparse internal representation of the ADC matrix to a dense matrix and return as a numpy array.

Notes

This method is only intended to be used for debugging and visualisation purposes as it involves computing a large amount of matrix-vector products and the returned array consumes a considerable amount of memory.

The resulting matrix has no spin symmetry imposed, which means that its eigenspectrum may contain non-physical excitations (e.g. with linear combinations of α->β and α->α components in the excitation vector).

This function has not been sufficiently tested to be considered stable.