GQCP
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
GQCP::T2Amplitudes< _Scalar > Class Template Reference

#include <T2Amplitudes.hpp>

Inheritance diagram for GQCP::T2Amplitudes< _Scalar >:
Inheritance graph
Collaboration diagram for GQCP::T2Amplitudes< _Scalar >:
Collaboration graph

Public Types

using Scalar = _Scalar
 
using Self = T2Amplitudes< Scalar >
 
- Public Types inherited from GQCP::CRTP< _Derived >
using Derived = _Derived
 

Public Member Functions

 T2Amplitudes (const ImplicitRankFourTensorSlice< Scalar > &t, const OrbitalSpace &orbital_space)
 
 T2Amplitudes (const ImplicitRankFourTensorSlice< Scalar > &t, const size_t N, const size_t M)
 
Scalar operator() (const size_t i, const size_t j, const size_t a, const size_t b) const
 
Scalaroperator() (const size_t i, const size_t j, const size_t a, const size_t b)
 
const ImplicitRankFourTensorSlice< Scalar > & asImplicitRankFourTensorSlice () const
 
const OrbitalSpaceorbitalSpace () const
 
Scalar norm () const
 
Selfoperator+= (const Self &rhs) override
 
Selfoperator*= (const Scalar &a) override
 
- Public Member Functions inherited from GQCP::VectorSpaceArithmetic< T2Amplitudes< _Scalar >, _Scalar >
virtual T2Amplitudes< _Scalar > & operator+= (const T2Amplitudes< _Scalar > &rhs)=0
 
virtual T2Amplitudes< _Scalar > & operator*= (const _Scalar &a)=0
 
T2Amplitudes< _Scalar > & operator-= (const T2Amplitudes< _Scalar > &rhs)
 
T2Amplitudes< _Scalar > operator- () const
 
- Public Member Functions inherited from GQCP::CRTP< _Derived >
Derivedderived ()
 
const Derivedderived () const
 

Static Public Member Functions

static T2Amplitudes< ScalarPerturbative (const SquareMatrix< Scalar > &f, const SquareRankFourTensor< Scalar > &V_A, const OrbitalSpace &orbital_space)
 

Detailed Description

template<typename _Scalar>
class GQCP::T2Amplitudes< _Scalar >

The coupled-cluster T2-amplitudes t_{ij}^{ab}.

In general, these are spinor amplitudes, but they may be used to represent spin-orbital amplitudes as well.

Parameters
_ScalarThe scalar type that represents one of the amplitudes.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar >
using GQCP::T2Amplitudes< _Scalar >::Scalar = _Scalar

◆ Self

template<typename _Scalar >
using GQCP::T2Amplitudes< _Scalar >::Self = T2Amplitudes<Scalar>

Constructor & Destructor Documentation

◆ T2Amplitudes() [1/2]

template<typename _Scalar >
GQCP::T2Amplitudes< _Scalar >::T2Amplitudes ( const ImplicitRankFourTensorSlice< Scalar > &  t,
const OrbitalSpace orbital_space 
)
inline

Construct T2-amplitudes given their representation as an ImplicitRankFourTensorSlice and explicit occupied-virtual orbital space.

Parameters
tThe T2-amplitudes as an implicit tensor, implementing intuitive operator(i,j,a,b) calls.
orbital_spaceThe orbital space which encapsulates the occupied-virtual separation.

◆ T2Amplitudes() [2/2]

template<typename _Scalar >
GQCP::T2Amplitudes< _Scalar >::T2Amplitudes ( const ImplicitRankFourTensorSlice< Scalar > &  t,
const size_t  N,
const size_t  M 
)
inline

Construct the T2-amplitudes given their representation as an ImplicitRankFourTensorSlice and an implicit occupied-virtual orbital space determined by the given number of occupied orbitals and total number of orbitals.

Parameters
tThe T2-amplitudes as an implicit tensor, implementing intuitive operator(i,j,a,b) calls.
NThe number of occupied orbitals.
MThe total number of orbitals.

Member Function Documentation

◆ asImplicitRankFourTensorSlice()

template<typename _Scalar >
const ImplicitRankFourTensorSlice< Scalar > & GQCP::T2Amplitudes< _Scalar >::asImplicitRankFourTensorSlice ( ) const
inline
Returns
The T2-amplitudes as an ImplicitRankFourTensorSlice.

◆ norm()

template<typename _Scalar >
Scalar GQCP::T2Amplitudes< _Scalar >::norm ( ) const
inline
Returns
The Frobenius norm of these T2-amplitudes.

◆ operator()() [1/2]

template<typename _Scalar >
Scalar & GQCP::T2Amplitudes< _Scalar >::operator() ( const size_t  i,
const size_t  j,
const size_t  a,
const size_t  b 
)
inline

Access one of the T2-amplitudes.

Parameters
iAn occupied index.
jAn occupied index.
aA virtual index.
bA virtual index.
Returns
A writable reference to the T2-amplitude corresponding to t_{ij}^{ab}

◆ operator()() [2/2]

template<typename _Scalar >
Scalar GQCP::T2Amplitudes< _Scalar >::operator() ( const size_t  i,
const size_t  j,
const size_t  a,
const size_t  b 
) const
inline

Access one of the T2-amplitudes.

Parameters
iAn occupied index.
jAn occupied index.
aA virtual index.
bA virtual index.
Returns
A read-only reference to the T2-amplitude t_{ij}^{ab}.

◆ operator*=()

template<typename _Scalar >
Self & GQCP::T2Amplitudes< _Scalar >::operator*= ( const Scalar a)
inlineoverridevirtual

Scalar multiplication-assignment.

Implements GQCP::VectorSpaceArithmetic< T2Amplitudes< _Scalar >, _Scalar >.

◆ operator+=()

template<typename _Scalar >
Self & GQCP::T2Amplitudes< _Scalar >::operator+= ( const Self rhs)
inlineoverride

Addition-assignment.

◆ orbitalSpace()

template<typename _Scalar >
const OrbitalSpace & GQCP::T2Amplitudes< _Scalar >::orbitalSpace ( ) const
inline
Returns
The orbital space for these T2-amplitudes, which encapsulates the occupied-virtual separation.

◆ Perturbative()

template<typename _Scalar >
static T2Amplitudes< Scalar > GQCP::T2Amplitudes< _Scalar >::Perturbative ( const SquareMatrix< Scalar > &  f,
const SquareRankFourTensor< Scalar > &  V_A,
const OrbitalSpace orbital_space 
)
inlinestatic

Create perturbative T2-amplitudes.

Parameters
fThe (inactive) Fock matrix.
V_AThe antisymmetrized two-electron integrals (in physicist's notation).
orbital_spaceThe orbital space which encapsulates the occupied-virtual separation.
Returns
T2-amplitudes calculated from an initial perturbative result.

The documentation for this class was generated from the following file: