GQCP
|
#include <Simple2DM.hpp>
Public Types | |
using | Scalar = _Scalar |
using | DerivedDM = _DerivedDM |
using | Self = Simple2DM< Scalar, DerivedDM > |
using | OneDM = typename DensityMatrixTraits< DerivedDM >::OneDM |
using | Transformation = typename DensityMatrixTraits< DerivedDM >::Transformation |
![]() | |
using | Transformation = typename BasisTransformableTraits< _DerivedDM >::Transformation |
![]() | |
using | JacobiRotationType = typename JacobiRotatableTraits< _DerivedDM >::JacobiRotationType |
![]() | |
using | Derived = _Derived |
Public Member Functions | |
Simple2DM (const SquareRankFourTensor< Scalar > &d) | |
Simple2DM () | |
const SquareRankFourTensor< Scalar > & | tensor () const |
SquareRankFourTensor< Scalar > & | tensor () |
size_t | numberOfOrbitals () const |
OneDM | reduce () const |
Scalar | trace () const |
DerivedDM & | operator+= (const DerivedDM &rhs) override |
DerivedDM & | operator*= (const Scalar &a) override |
DerivedDM | transformed (const Transformation &T) const override |
DerivedDM | rotated (const JacobiRotation &jacobi_rotation) const override |
![]() | |
virtual _DerivedDM | transformed (const Transformation &T) const=0 |
virtual void | transform (const Transformation &T) |
virtual _DerivedDM | rotated (const Transformation &U) const |
void | rotate (const Transformation &U) |
![]() | |
virtual _DerivedDM | rotated (const JacobiRotationType &jacobi_rotation) const=0 |
void | rotate (const JacobiRotationType &jacobi_rotation) |
![]() | |
virtual _DerivedDM & | operator+= (const _DerivedDM &rhs)=0 |
virtual _DerivedDM & | operator*= (const _Scalar &a)=0 |
_DerivedDM & | operator-= (const _DerivedDM &rhs) |
_DerivedDM | operator- () const |
![]() | |
Derived & | derived () |
const Derived & | derived () const |
A two-electron density matrix that is described by a single tensor.
This class is used as a base class for Orbital2DM
and G2DM
, since they are both expressed using a single tensor, as opposed to SpinResolved2DM
, which uses separate alpha- and beta- tensor. The word 'simple' is used here as an antonym for 'compound'.
_Scalar | The scalar type used for a density matrix element: real or complex. |
_DerivedDM | The type of the density matrix that derives from this class, enabling CRTP and compile-time polymorphism. |
using GQCP::Simple2DM< _Scalar, _DerivedDM >::DerivedDM = _DerivedDM |
using GQCP::Simple2DM< _Scalar, _DerivedDM >::OneDM = typename DensityMatrixTraits<DerivedDM>::OneDM |
using GQCP::Simple2DM< _Scalar, _DerivedDM >::Scalar = _Scalar |
using GQCP::Simple2DM< _Scalar, _DerivedDM >::Self = Simple2DM<Scalar, DerivedDM> |
using GQCP::Simple2DM< _Scalar, _DerivedDM >::Transformation = typename DensityMatrixTraits<DerivedDM>::Transformation |
|
inline |
Create a Simple2DM
from its matrix representation.
D | The matrix representation of the two-electron density matrix. |
|
inline |
The default constructor.
|
inline |
|
inlineoverridevirtual |
Scalar multiplication-assignment.
Implements GQCP::VectorSpaceArithmetic< _DerivedDM, _Scalar >.
|
inlineoverridevirtual |
Addition-assignment.
Implements GQCP::VectorSpaceArithmetic< _DerivedDM, _Scalar >.
|
inline |
|
inlineoverride |
Apply the Jacobi rotation and return the result.
jacobi_rotation | The Jacobi rotation. |
|
inline |
|
inline |
|
inline |
|
inlineoverride |
Apply the basis transformation and return the resulting two-electron integrals.
T | The basis transformation |