SOLIDstate
A C++ library for solid state physics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Static Public Member Functions | List of all members
solid::IOperatorParameters< T1, T2 > Class Template Referenceabstract

interface for Observable class More...

#include <Observable.hpp>

Inheritance diagram for solid::IOperatorParameters< T1, T2 >:
Inheritance graph
[legend]

Public Member Functions

virtual void FillParameters ()=0
 Filling the Parameters. More...
 
virtual void PreprocessingVirtual (T1< T2 > &matrixElements)
 virtual link for static Postprocessing More...
 
virtual ~IOperatorParameters ()
 Destroy the IOperatorParameters object. More...
 

Static Public Member Functions

static void Preprocessing (T1< T2 > &matrixElements)
 static virtial function for matrixElements postprocessing More...
 

Detailed Description

template<template< typename > class T1, typename T2>
class solid::IOperatorParameters< T1, T2 >

interface for Observable class

Template Parameters
T1matrix type: arma::Mat and arma:SpMat are supported
T2data type: double, std::complex<double> are supported

Abstract class containg two purely virtual functions (one static virtual)

Constructor & Destructor Documentation

template<template< typename > class T1, typename T2 >
virtual solid::IOperatorParameters< T1, T2 >::~IOperatorParameters ( )
inlinevirtual

Destroy the IOperatorParameters object.

Member Function Documentation

template<template< typename > class T1, typename T2 >
virtual void solid::IOperatorParameters< T1, T2 >::FillParameters ( )
pure virtual

Filling the Parameters.

Purely virtual function to override for IOperatorParameters implementation

Implemented in solid::ParityOperator< T1, T2 >, and solid::ParticleNumberOperator< T1, T2 >.

template<template< typename > class T1, typename T2 >
static void solid::IOperatorParameters< T1, T2 >::Preprocessing ( T1< T2 > &  matrixElements)
inlinestatic

static virtial function for matrixElements postprocessing

TODO change name to postprocessing

Parameters
matrixElementsfor postprocessing

As an example consider parity operator: \(\mathcal P = \displaystyle\prod_i (1 -2\hat n_i) \). It can be constructed from particle number operator: \( \hat N = \sum_i \hat n_i \). Solution:

  1. Generate \( \hat N \)
  2. Apply postprocessing for all matrix elements: \( \hat N_{ij} \to (-1)^{\hat N_{ij}} \)

Purely virtual function to override for IOperatorParameters implementation

template<template< typename > class T1, typename T2 >
virtual void solid::IOperatorParameters< T1, T2 >::PreprocessingVirtual ( T1< T2 > &  matrixElements)
inlinevirtual

virtual link for static Postprocessing

Reimplemented in solid::ParityOperator< T1, T2 >.


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