AdcMatrixlike¶

class
adcc.
AdcMatrixlike
(innermatrix)¶ Bases:
object
Class implementing minimal functionality of AdcMatrixlike objects.
Note: This is not the userfacing highlevel 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 matrixvectorproducts 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 matrixvectorproducts 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 matrixvector 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 nonphysical excitations (e.g. with linear combinations of α>β and α>α components in the excitation vector).
This function has not been sufficiently tested to be considered stable.
