sisi4s
Loading...
Searching...
No Matches
sisi4s::FockVectorNdCanonical< F, N, StartDimension > Class Template Reference

#include <FockVector.hpp>

Inheritance diagram for sisi4s::FockVectorNdCanonical< F, N, StartDimension >:
Collaboration diagram for sisi4s::FockVectorNdCanonical< F, N, StartDimension >:

Public Member Functions

 FockVectorNdCanonical (const unsigned int No, const unsigned int Nv)
 Build a canonical vector from No and Nv.
 
 FockVectorNdCanonical ()
 Empty constructor.
 
 FockVectorNdCanonical (FockVector< F > &&a)
 Move constructor taking possession of the tensors owned by a.
 
 FockVectorNdCanonical (const FockVector< F > &a)
 Copy constructor copying the tensors owned by a.
 
- Public Member Functions inherited from sisi4s::FockVector< F >
 FockVector ()
 Default constructor for an empty Fock vector without elements.
 
 FockVector (FockVector< F > &&a)
 Move constructor taking possession of the tensors owned by a.
 
 FockVector (const FockVector< F > &a)
 Copy constructor copying the tensors owned by a.
 
 FockVector (const std::vector< std::shared_ptr< Tensor< F > > > &tensors, const std::vector< std::string > &indices)
 Move constructor taking possession of the tensors given.
 
 FockVector (TensorsIterator tensorsBegin, TensorsIterator tensorsEnd, IndicesIterator indicesBegin, IndicesIterator indicesEnd)
 Move constructor taking possession of the tensors given by the iterators.
 
const std::shared_ptr< Tensor< F > > & get (const size_t i) const
 Retrieves the i-th component tensor. Note that the Tensor is not const since rearrangement may be required also in non-modifying tensor operations.
 
std::shared_ptr< Tensor< F > > & get (const size_t i)
 Retrieves the i-th component tensor.
 
const std::string & get_indices (const size_t i) const
 Retrieves the i-th component indices.
 
std::string & get_indices (const size_t i)
 Retrieves the i-th component indices as modifiable string.
 
FockVector< F > & operator= (const FockVector< F > &&a)
 Move assignment operator taking possession of the tensors owned by a.
 
FockVector< F > & operator= (const FockVector< F > &a)
 Copy assignment operator copying the tensors owned by a.
 
FockVector< F > & operator+= (const FockVector< F > &a)
 Add-to assignment operator adding each component of a to the respective component of this FockVector.
 
FockVector< F > & operator-= (const FockVector< F > &a)
 Subtract-from assignment operator subtracting each component of a from the respective component of this FockVector.
 
FockVector< F > & operator*= (const F s)
 Multiply-by assignment operator scalar multiplying each component each component of this FockVector by the given scalar.
 
FockVector< F > conjugateTranspose () const
 Creates and returns the conjugate transpose of this FockVector. The first and the second half of the inidices in each component are swapped for the transposition. For real types F the conjugation does nothing.
 
braket (const FockVector< F > &ket) const
 Returns the matrix product of this bra-FockVector with the given dual ket-FockVector ket.
 
dot (const FockVector< F > &a) const
 Returns the inner product of this ket-FockVector with the given ket-FockVector a. The elements of this FockVector are conjugated in the inner product, i.e. this->dot(a) yields the same results as this->conjugateTranspose().braket(a).
 
size_t get_components_count () const
 Get the number of component tensors of this FockVector.
 
size_t get_dimension () const
 Get the total number of degrees of freedom represented by this FockVector, i.e. the total number of field values contained in all component tensors. The indices used by read and write are between 0 and get_dimension()-1.
 
size_t get_index (const size_t component, const size_t componentIndex) const
 
void fromIndex (const size_t index, size_t &component, size_t &componentIndex) const
 
std::vector< std::pair< size_t, F > > readLocal () const
 Reads out all locally stored values together with their respective indices. The indices are between 0 and get_dimension()-1.
 
void write (const std::vector< std::pair< size_t, F > > &elements)
 Writes the given values together with their respective indices. The indices are between 0 and get_dimension()-1.
 

Additional Inherited Members

- Public Types inherited from sisi4s::FockVector< F >
typedef F FieldType
 
- Public Attributes inherited from sisi4s::FockVector< F >
std::vector< std::shared_ptr< Tensor< F > > > component_tensors
 
std::vector< std::string > component_indices
 
- Protected Member Functions inherited from sisi4s::FockVector< F >
void build_index_translation ()
 
void copy_components (const std::vector< std::shared_ptr< Tensor< F > > > &components)
 Sets this FockVector's component tensors by copying the given component tensors. Called by copy constructors and copy assignments.
 
void checkDualCompatibility (const FockVector< F > &a) const
 Check if two FockVectors are transpose of each other by swapping the first and the second half of the component indices.
 
void checkCompatibilityTo (const FockVector< F > &a) const
 
- Protected Attributes inherited from sisi4s::FockVector< F >
std::vector< size_t > index_ends
 The end of the FockVector index range for each component. This vector is used for translating component number and indices into FockVector indicies.
 

Constructor & Destructor Documentation

◆ FockVectorNdCanonical() [1/4]

template<typename F , int N, int StartDimension = 0>
sisi4s::FockVectorNdCanonical< F, N, StartDimension >::FockVectorNdCanonical ( const unsigned int  No,
const unsigned int  Nv 
)
inline

Build a canonical vector from No and Nv.

Here is the call graph for this function:

◆ FockVectorNdCanonical() [2/4]

template<typename F , int N, int StartDimension = 0>
sisi4s::FockVectorNdCanonical< F, N, StartDimension >::FockVectorNdCanonical ( )
inline

Empty constructor.

◆ FockVectorNdCanonical() [3/4]

template<typename F , int N, int StartDimension = 0>
sisi4s::FockVectorNdCanonical< F, N, StartDimension >::FockVectorNdCanonical ( FockVector< F > &&  a)
inline

Move constructor taking possession of the tensors owned by a.

Here is the call graph for this function:

◆ FockVectorNdCanonical() [4/4]

template<typename F , int N, int StartDimension = 0>
sisi4s::FockVectorNdCanonical< F, N, StartDimension >::FockVectorNdCanonical ( const FockVector< F > &  a)
inline

Copy constructor copying the tensors owned by a.

Here is the call graph for this function:

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