TBTK
TBTK::FockStateRule::FockStateRule Class Referenceabstract
Inheritance diagram for TBTK::FockStateRule::FockStateRule:
TBTK::FockStateRule::DifferenceRule TBTK::FockStateRule::SumRule TBTK::FockStateRule::WrapperRule

Public Types

enum  FockStateRuleID { WrapperRule = 0, SumRule = 1, DifferenceRule = 2 }
 

Public Member Functions

 FockStateRule (FockStateRuleID fockStateRuleID)
 
virtual ~FockStateRule ()
 
virtual FockStateRuleclone () const =0
 
virtual WrapperRule createNewRule (const LadderOperator< BitRegister > &ladderOperator) const =0
 
virtual WrapperRule createNewRule (const LadderOperator< ExtensiveBitRegister > &ladderOperator) const =0
 
virtual bool isSatisfied (const FockSpace< BitRegister > &fockSpace, const FockState< BitRegister > &fockState) const =0
 
virtual bool isSatisfied (const FockSpace< ExtensiveBitRegister > &fockSpace, const FockState< ExtensiveBitRegister > &fockState) const =0
 
virtual bool operator== (const FockStateRule &rhs) const =0
 
FockStateRuleID getFockStateRuleID () const
 
virtual void print () const =0
 

Friends

WrapperRule operator* (const LadderOperator< BitRegister > &ladderOperator, const FockStateRule &fockStateRule)
 
WrapperRule operator* (const LadderOperator< ExtensiveBitRegister > &ladderOperator, const FockStateRule &fockStateRule)
 

Member Enumeration Documentation

◆ FockStateRuleID

List of FockStateRule identifiers. Official supported FockStateRules are given unique identifiers. FockStateRules not (yet) supported should make sure they use an identifier that does not clash with the officially supported ones [ideally a large random looking number (magic number) to also minimize accidental clashes with other FockStateRules that are not (yet) supported].

Constructor & Destructor Documentation

◆ FockStateRule()

TBTK::FockStateRule::FockStateRule::FockStateRule ( FockStateRuleID  fockStateRuleID)

Constructor

◆ ~FockStateRule()

virtual TBTK::FockStateRule::FockStateRule::~FockStateRule ( )
virtual

Destructor.

Member Function Documentation

◆ clone()

virtual FockStateRule* TBTK::FockStateRule::FockStateRule::clone ( ) const
pure virtual

◆ createNewRule() [1/2]

virtual WrapperRule TBTK::FockStateRule::FockStateRule::createNewRule ( const LadderOperator< BitRegister > &  ladderOperator) const
pure virtual

Create a new rule that describes the space the state is in after the given ladder operator has been applied to the state.

Implemented in TBTK::FockStateRule::SumRule, TBTK::FockStateRule::DifferenceRule, and TBTK::FockStateRule::WrapperRule.

◆ createNewRule() [2/2]

virtual WrapperRule TBTK::FockStateRule::FockStateRule::createNewRule ( const LadderOperator< ExtensiveBitRegister > &  ladderOperator) const
pure virtual

Create a new rule that describes the space the state is in after the given ladder operator has been applied to the state.

Implemented in TBTK::FockStateRule::SumRule, TBTK::FockStateRule::DifferenceRule, and TBTK::FockStateRule::WrapperRule.

◆ getFockStateRuleID()

FockStateRule::FockStateRuleID TBTK::FockStateRule::FockStateRule::getFockStateRuleID ( ) const
inline

Get FockStateRule identifier.

◆ isSatisfied() [1/2]

virtual bool TBTK::FockStateRule::FockStateRule::isSatisfied ( const FockSpace< BitRegister > &  fockSpace,
const FockState< BitRegister > &  fockState 
) const
pure virtual

Check whether a given FockState fullfills the rule with respect to a particular FockSpace.

Implemented in TBTK::FockStateRule::SumRule, TBTK::FockStateRule::DifferenceRule, and TBTK::FockStateRule::WrapperRule.

◆ isSatisfied() [2/2]

virtual bool TBTK::FockStateRule::FockStateRule::isSatisfied ( const FockSpace< ExtensiveBitRegister > &  fockSpace,
const FockState< ExtensiveBitRegister > &  fockState 
) const
pure virtual

Check whether a given FockState fullfills the rule with respect to a particular FockSpace.

Implemented in TBTK::FockStateRule::SumRule, TBTK::FockStateRule::DifferenceRule, and TBTK::FockStateRule::WrapperRule.

◆ operator==()

virtual bool TBTK::FockStateRule::FockStateRule::operator== ( const FockStateRule rhs) const
pure virtual

◆ print()

virtual void TBTK::FockStateRule::FockStateRule::print ( ) const
pure virtual

Friends And Related Function Documentation

◆ operator* [1/2]

WrapperRule operator* ( const LadderOperator< BitRegister > &  ladderOperator,
const FockStateRule fockStateRule 
)
friend

Multiplication operator between a LadderOperator and a FockStateRule. Alternative notation for FockStateRule::createNewRule().

Note: Implemented in Wrapper.h to await complete definition of WrapperRule.

◆ operator* [2/2]

WrapperRule operator* ( const LadderOperator< ExtensiveBitRegister > &  ladderOperator,
const FockStateRule fockStateRule 
)
friend

Multiplication operator between a LadderOperator and a FockStateRule. Alternative notation for FockStateRule::createNewRule().

Note: Implemented in Wrapper.h to await complete definition of WrapperRule.


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