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

#include <GTransformation.hpp>

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

Public Types

using Scalar = _Scalar
 
- Public Types inherited from GQCP::SimpleTransformation< _Scalar, GTransformation< _Scalar > >
using Scalar = _Scalar
 
using DerivedTransformation = GTransformation< _Scalar >
 
using Self = SimpleTransformation< Scalar, DerivedTransformation >
 
using JacobiRotationType = JacobiRotation
 
using OrbitalRotationGeneratorType = typename OrbitalRotationGeneratorTraits< DerivedTransformation >::OrbitalRotationGenerators
 
- Public Types inherited from GQCP::BasisTransformable< Type >
using Transformation = typename BasisTransformableTraits< Type >::Transformation
 
- Public Types inherited from GQCP::JacobiRotatable< T >
using JacobiRotationType = typename JacobiRotatableTraits< T >::JacobiRotationType
 

Public Member Functions

 GTransformation (const SquareMatrix< Scalar > &T)
 
 GTransformation (const SquareMatrix< Scalar > &T, const size_t K_alpha, const size_t K_beta)
 
MatrixX< Scalaralpha () const
 
MatrixX< Scalarbeta () const
 
MatrixX< Scalarcomponent (const Spin sigma) const
 
- Public Member Functions inherited from GQCP::SimpleTransformation< _Scalar, GTransformation< _Scalar > >
 SimpleTransformation (const SquareMatrix< Scalar > &T)
 
 SimpleTransformation (const OrbitalRotationGeneratorType &kappa)
 
size_t numberOfOrbitals () const
 
size_t dimension () const
 
const SquareMatrix< Scalar > & matrix () const
 
DerivedTransformation adjoint () const
 
DerivedTransformation inverse () const
 
bool isUnitary (const double threshold=1.0e-12) const
 
DerivedTransformation transformed (const DerivedTransformation &T) const override
 
DerivedTransformation rotated (const JacobiRotationType &jacobi_rotation) const override
 
- Public Member Functions inherited from GQCP::BasisTransformable< Type >
virtual Type transformed (const Transformation &T) const =0
 
virtual void transform (const Transformation &T)
 
virtual Type rotated (const Transformation &U) const
 
void rotate (const Transformation &U)
 
- Public Member Functions inherited from GQCP::JacobiRotatable< T >
virtual T rotated (const JacobiRotationType &jacobi_rotation) const =0
 
void rotate (const JacobiRotationType &jacobi_rotation)
 

Static Public Member Functions

static GTransformation< ScalarFromRestricted (const RTransformation< Scalar > &r_transformation)
 
static GTransformation< ScalarFromUnrestricted (const UTransformation< Scalar > &u_transformation)
 
static GTransformation< ScalarIdentity (const size_t K_alpha, const size_t K_beta)
 
- Static Public Member Functions inherited from GQCP::SimpleTransformation< _Scalar, GTransformation< _Scalar > >
static DerivedTransformation FromJacobi (const JacobiRotation &jacobi_rotation, const size_t dim)
 
static DerivedTransformation Identity (const size_t dim)
 
static DerivedTransformation Random (const size_t dim)
 
static DerivedTransformation RandomUnitary (const size_t dim)
 
static DerivedTransformation Zero (const size_t dim)
 

Additional Inherited Members

- Protected Attributes inherited from GQCP::SimpleTransformation< _Scalar, GTransformation< _Scalar > >
SquareMatrix< ScalarT
 

Detailed Description

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

A 'general' basis transformation, i.e. a general, full-spinor basis transformation where the transformation mixes the alpha- and beta components of the two-component spinors.

In general, we adopt the convention outlined in (https://gqcg-res.github.io/knowdes/spinor-transformations.html), where the new orbitals' coefficients can be found in the respective column of the related transformation matrix.

Template Parameters
_ScalarThe scalar type used for a transformation coefficient: real or complex.

Member Typedef Documentation

◆ Scalar

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

Constructor & Destructor Documentation

◆ GTransformation() [1/2]

template<typename _Scalar >
GQCP::GTransformation< _Scalar >::GTransformation ( const SquareMatrix< Scalar > &  T)
inline

Construct a GTransformation from the transformation matrix that it encapsulates.

Parameters
TThe transformation matrix that collects the expansion coefficients of the new basis (vectors) in the old basis as columns.

◆ GTransformation() [2/2]

template<typename _Scalar >
GQCP::GTransformation< _Scalar >::GTransformation ( const SquareMatrix< Scalar > &  T,
const size_t  K_alpha,
const size_t  K_beta 
)
inline

Construct a GTransformation from the transformation matrix that it encapsulates, where the number of basis functions used for the expansion of the alpha components may differ from the number of basis functions for the beta components.

Parameters
TThe transformation matrix that collects the expansion coefficients of the new basis (vectors) in the old basis as columns.
K_alphaThe number of basis functions that are used for the expansion of the alpha components.
K_betaThe number of basis functions that are used for the expansion of the beta components.

Member Function Documentation

◆ alpha()

template<typename _Scalar >
MatrixX< Scalar > GQCP::GTransformation< _Scalar >::alpha ( ) const
inline
Returns
The part of the general transformation matrix that describes the expansion coefficients of the alpha components of the spinors.

◆ beta()

template<typename _Scalar >
MatrixX< Scalar > GQCP::GTransformation< _Scalar >::beta ( ) const
inline
Returns
The part of the general transformation matrix that describes the expansion coefficients of the beta components of the spinors.

◆ component()

template<typename _Scalar >
MatrixX< Scalar > GQCP::GTransformation< _Scalar >::component ( const Spin  sigma) const
inline
Parameters
sigmaAlpha or beta.
Returns
The part of the general transformation that describes the spinors of the requested component.

◆ FromRestricted()

template<typename _Scalar >
static GTransformation< Scalar > GQCP::GTransformation< _Scalar >::FromRestricted ( const RTransformation< Scalar > &  r_transformation)
inlinestatic

Convert an RTransformation into its generalized counterpart.

Parameters
r_transformationThe restricted transformation.
Returns
The GTransformation that corresponds to the RTransformation.

◆ FromUnrestricted()

template<typename _Scalar >
static GTransformation< Scalar > GQCP::GTransformation< _Scalar >::FromUnrestricted ( const UTransformation< Scalar > &  u_transformation)
inlinestatic

Convert an UTransformation into its generalized counterpart.

Parameters
u_transformationThe unrestricted transformation.
Returns
The GTransformation that corresponds to the UTransformation.

◆ Identity()

template<typename _Scalar >
static GTransformation< Scalar > GQCP::GTransformation< _Scalar >::Identity ( const size_t  K_alpha,
const size_t  K_beta 
)
inlinestatic

Construct an identity transformation related to different number of alpha and beta atomic spinors.


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