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
Obtain the timer object of this class.
Methods Summary
block_spaces
(self, arg0)compute_apply
(self, block, in, out)compute_matvec
(self, ins, outs)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, ordering])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, block: str, in: libadcc.Tensor, out: libadcc.Tensor) → None¶
-
compute_matvec
(self: libadcc.AdcMatrix, ins: libadcc.AmplitudeVector, outs: 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, ordering='adcc')¶ Return the list of indices and their values of the dense basis representation
ordering: adcc, spin, spatial
-
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.
-