LIBINT 2.9.0
Public Types | Public Member Functions | Static Public Member Functions | List of all members
libint2::GenIntegralSet_1_1< BFS, Oper, AuxQuanta > Class Template Reference

Generic integral over a one-body operator with one bfs for each particle in bra and ket. More...

#include <integral_1_1.h>

Inheritance diagram for libint2::GenIntegralSet_1_1< BFS, Oper, AuxQuanta >:
Inheritance graph
[legend]
Collaboration diagram for libint2::GenIntegralSet_1_1< BFS, Oper, AuxQuanta >:
Collaboration graph
[legend]

Public Types

typedef BFS BasisFunctionType
 
typedef Oper OperType
 
typedef DefaultOnePBraket< BFS >::Result BraType
 
typedef DefaultOnePBraket< BFS >::Result KetType
 
typedef AuxQuanta AuxIndexType
 
typedef GenIntegralSet_1_1< BFS, Oper, AuxQuanta > this_type
 
typedef GenIntegralSet< OperType, IncableBFSet, BraType, KetType, AuxIndexType > parent_type
 
typedef GenIntegralSet_1_1< typename BFS::iter_type, typename Oper::iter_type, typename AuxQuanta::iter_type > iter_type
 this is a set of these subobjects
 
typedef parent_type::key_type key_type
 
typedef SingletonStack< this_type, key_type > SingletonManagerType
 This the type of the object that manages objects of this type as Singletons.
 
typedef PtrEquiv< this_typePtrComp
 This class provides comparison operations on pointers.
 
- Public Types inherited from libint2::GenIntegralSet< Oper, BFS, BraSetType, KetSetType, AuxQuanta >
typedef GenIntegralSet this_type
 
typedef GenIntegralSet< typename Oper::iter_type, BFS, typename BraSetType::iter_type, typename KetSetType::iter_type, typename AuxQuanta::iter_type > iter_type
 GenIntegralSet is a set of these subobjects.
 
typedef IntegralSet< BFS > parent_type
 GenIntegralSet is derived from IntegralSet.
 
typedef PtrEquiv< GenIntegralSetPtrComp
 This type provides comparison operations on pointers to GenIntegralSet.
 
typedef mpz_class key_type
 
typedef std::string key_type
 
typedef SingletonStack< GenIntegralSet, key_type > SingletonManagerType
 This the type of the object that manages GenIntegralSet's as Singletons.
 
typedef Oper OperType
 This is the type of the operator.
 
typedef BraSetType::bfs_type BasisFunctionType
 This is the real type of basis functions.
 
typedef BraSetType BraType
 
typedef KetSetType KetType
 
typedef Oper OperatorType
 
typedef AuxQuanta AuxQuantaType
 
- Public Types inherited from libint2::DGVertex
typedef MemoryManager::Address Address
 The address on the stack during computation is described using this type.
 
typedef MemoryManager::Size Size
 The size of a block the stack during computation is described using this type.
 
typedef NotSet< AddressAddressNotSet
 Exception thrown if address is not set.
 
typedef NotSet< std::string > GraphLabelNotSet
 Exception thrown if graph label is not set.
 
typedef NotSet< std::string > SymbolNotSet
 Exception thrown if code symbol is not set.
 
typedef KeyTypes::ClassID ClassID
 Type identifier.
 
typedef KeyTypes::InstanceID InstanceID
 Instance identifier.
 
typedef KeyTypes::InstanceID KeyType
 DGVertex provides function key() which computes key of type KeyType and returns it using KeyReturnType.
 
typedef Hashable< KeyType, ComputeKey >::KeyReturnType KeyReturnType
 
typedef std::list< std::shared_ptr< DGArc > > ArcSetType
 ArcSetType is a container used to maintain entry and exit arcs.
 
- Public Types inherited from libint2::Hashable< KeyTypes::InstanceID, ComputeKey >
typedef KeyTraits< KeyTypes::InstanceID >::ReturnType KeyReturnType
 

Public Member Functions

bool operator== (const this_type &) const
 Comparison operator.
 
void unregister () const
 Reimplements DGVertex::unregister()
 
bool auto_unroll () const
 Implements GenIntegralSet::auto_unroll()
 
bool auto_unroll () const
 always unroll (s|V|s)^(m)
 
- Public Member Functions inherited from libint2::GenIntegralSet< Oper, BFS, BraSetType, KetSetType, AuxQuanta >
virtual ~GenIntegralSet ()
 No constructors are public since this is a singleton-like quantity.
 
virtual bool operator== (const GenIntegralSet &) const
 Comparison operator.
 
bool equiv (const std::shared_ptr< DGVertex > &v) const override
 Specialization of DGVertex::equiv()
 
unsigned int size () const override
 Specialization of DGVertex::size()
 
const std::string & label () const override
 Specialization of DGVertex::label()
 
const std::string & id () const override
 Specialization of DGVertex::id()
 
std::string description () const override
 Specialization of DGVertex::description()
 
unsigned int num_part () const override
 Implementation of IntegralSet::num_part.
 
unsigned int num_func_bra (unsigned int p) const override
 Implementation of IntegralSet::num_func_bra.
 
unsigned int num_func_ket (unsigned int p) const override
 Implementation of IntegralSet::num_func_ket.
 
BraSetType::bfs_cref bra (unsigned int p, unsigned int i) const override
 Implementation of IntegralSet::bra() const.
 
KetSetType::bfs_cref ket (unsigned int p, unsigned int i) const override
 Implementation of IntegralSet::ket() const.
 
BraSetType::bfs_ref bra (unsigned int p, unsigned int i) override
 Implementation of IntegralSet::bra()
 
KetSetType::bfs_ref ket (unsigned int p, unsigned int i) override
 Implementation of IntegralSet::ket()
 
const std::shared_ptr< Operoper () const
 Obtain the operator.
 
const BraType & bra () const
 Obtain const ref to bra.
 
const KetType & ket () const
 Obtain const ref to bra.
 
const std::shared_ptr< AuxQuanta > aux () const
 Obtain the auxiliary quanta.
 
DGVertex::KeyReturnType key () const override
 Implements Hashable::key()
 
- Public Member Functions inherited from libint2::IntegralSet< BFS >
virtual unsigned int np () const=0
 Return the number of particles.
 
- Public Member Functions inherited from libint2::DGVertex
 DGVertex (ClassID tid)
 Sets typeid to tid.
 
 DGVertex (ClassID tid, const std::vector< std::shared_ptr< DGArc > > &parents, const std::vector< std::shared_ptr< DGArc > > &children)
 Sets typeid to tid.
 
 DGVertex (const DGVertex &v)
 This is a copy constructor.
 
void make_a_target ()
 make_a_target() marks this vertex as a target
 
bool is_a_target () const
 is_a_target() returns true if this vertex is a target
 
virtual void add_exit_arc (const std::shared_ptr< DGArc > &)
 add_exit_arc(arc) adds arc as an arc connecting to children of this vertex.
 
virtual void del_exit_arcs ()
 del_exit_arcs() removes all exit arcs from this and corresponding children vertices.
 
void replace_exit_arc (const std::shared_ptr< DGArc > &A, const std::shared_ptr< DGArc > &B)
 replace_exit_arc() replaces A with B.
 
void detach ()
 this function detaches the vertex from other vertices.
 
const ArcSetTypeexit_arcs () const
 
const ArcSetTypeentry_arcs () const
 
unsigned int num_entry_arcs () const
 returns the number of parents
 
ArcSetType::const_iterator first_entry_arc () const
 returns parents::begin()
 
ArcSetType::const_iterator plast_entry_arc () const
 returns parents::end()
 
unsigned int num_exit_arcs () const
 returns the number of children
 
ArcSetType::const_iterator first_exit_arc () const
 returns children::begin()
 
ArcSetType::const_iterator plast_exit_arc () const
 returns children::end()
 
const std::shared_ptr< DGArc > & exit_arc (const std::shared_ptr< DGVertex > &v) const
 return arc connecting this to v, otherwise null pointer
 
bool precomputed () const
 precomputed() returns whether this DGVertex is precomputed.
 
virtual void print (std::ostream &os) const
 print(os) prints vertex info to os
 
const DirectedGraphdg () const
 Returns pointer to the DirectedGraph to which this DGVertex belongs to.
 
void dg (const DirectedGraph *d)
 Sets pointer to the DirectedGraph to which this DGVertex belongs to.
 
const std::string & graph_label () const
 returns the label used for this vertex when visualizing graph.
 
void set_graph_label (const std::string &graph_label)
 sets the graph label
 
const std::shared_ptr< DRTree > & subtree () const
 Returns the subtree to which this vertex belongs.
 
void refer_this_to (const std::shared_ptr< DGVertex > &V)
 refer_this_to(V) makes this vertex act like a reference to V so that calls to symbol() and address() report code symbol and stack address of V
 
bool refers_to_another () const
 refers to another vertex?
 
const std::string & symbol () const
 returns the code symbol. can throw SymbolNotSet
 
void set_symbol (const std::string &symbol)
 sets the code symbol
 
bool symbol_set () const
 returns true if the symbol has been set
 
void reset_symbol ()
 this function void the symbol, i.e.
 
Address address () const
 returns the address of this quantity on Libint's stack.
 
void set_address (const Address &address)
 sets the address of this quantity on Libint's stack
 
bool address_set () const
 returns true if the address has been set
 
void need_to_compute (bool ntc)
 indicates whether this vertex needs to be computed.
 
void not_need_to_compute ()
 shortcut to need_to_compute(false)
 
bool need_to_compute () const
 returns true if this index needs to be computed.
 
bool declared () const
 
void declared (bool d)
 
void prepare_to_traverse ()
 prepare_to_traverse() must be called before traversal of the graph starts
 
unsigned int tag ()
 tag() tags the vertex and returns the total number of tags this vertex has received
 
void schedule ()
 schedule() marks the vertex as scheduled, hence its code exists
 
bool scheduled () const
 scheduled() returns true if the vertex has been scheduled
 
std::shared_ptr< DGVertexpostcalc () const
 Returns pointer to vertex to be computed after this vertex, 0 if this is the last vertex.
 
void set_postcalc (const std::shared_ptr< DGVertex > &postcalc)
 Sets postcalc.
 
void reset ()
 Resets the vertex, releasing all arcs.
 

Static Public Member Functions

static const std::shared_ptr< this_typeInstance (const BFS &bra0, const BFS &ket0, const AuxIndexType &aux=AuxIndexType(), const OperType &oper=OperType())
 This "constructor" takes basis function sets.
 
static const std::shared_ptr< this_typeInstance (const algebra::Wedge< BraketPair< BFS, PBra >, BraketPair< BFS, PKet > > &braket_wedge, const AuxIndexType &aux=AuxIndexType(), const OperType &oper=OperType())
 This "constructor" uses a wedge of 2 physicists brakets.
 
static const std::shared_ptr< this_typeInstance (const algebra::Wedge< BraketPair< BFS, CBra >, BraketPair< BFS, CKet > > &braket_wedge, const AuxIndexType &aux=AuxIndexType(), const OperType &oper=OperType())
 This "constructor" uses a wedge of 2 chemists brakets.
 
static const std::shared_ptr< this_typeInstance (const BraType &bra, const KetType &ket, const AuxIndexType &aux=AuxIndexType(), const OperType &oper=OperType())
 Returns a pointer to a unique instance, a la Singleton.
 
- Static Public Member Functions inherited from libint2::GenIntegralSet< Oper, BFS, BraSetType, KetSetType, AuxQuanta >
static const std::shared_ptr< GenIntegralSetInstance (const BraSetType &bra, const KetSetType &ket, const AuxQuanta &aux, const Oper &oper=Oper())
 Returns a pointer to a unique instance, a la Singleton.
 

Additional Inherited Members

- Public Attributes inherited from libint2::DGVertex
ClassID typeid_
 typeid stores the ClassID of the concrete type.
 
InstanceID instid_
 instid stores the InstanceID of the object.
 
- Static Public Attributes inherited from libint2::GenIntegralSet< Oper, BFS, BraSetType, KetSetType, AuxQuanta >
static constexpr auto num_particles = BraSetType::num_particles
 The number of particles.
 
static constexpr auto num_bf = BraSetType::num_bf + KetSetType::num_bf
 The total number of basis functions.
 
- Protected Member Functions inherited from libint2::GenIntegralSet< Oper, BFS, BraSetType, KetSetType, AuxQuanta >
 GenIntegralSet (const Oper &oper, const BraSetType &bra, const KetSetType &ket, const AuxQuanta &aux)
 
void set_size (unsigned int sz)
 set size to sz
 
void reset_cache ()
 Resets all cached values.
 
- Static Protected Member Functions inherited from libint2::GenIntegralSet< Oper, BFS, BraSetType, KetSetType, AuxQuanta >
static key_type compute_key (const Oper &O, const BraType &bra, const KetType &ket, const AuxQuanta &aux)
 computes a key.
 
- Protected Attributes inherited from libint2::GenIntegralSet< Oper, BFS, BraSetType, KetSetType, AuxQuanta >
BraSetType bra_
 
KetSetType ket_
 
- Protected Attributes inherited from libint2::Hashable< KeyTypes::InstanceID, ComputeKey >
KeyStore< KeyTypes::InstanceID, OwnKey< KeyMP >::result > key_
 

Detailed Description

template<class BFS, class Oper, class AuxQuanta = EmptySet>
class libint2::GenIntegralSet_1_1< BFS, Oper, AuxQuanta >

Generic integral over a one-body operator with one bfs for each particle in bra and ket.

Member Function Documentation

◆ auto_unroll() [1/2]

template<class BFS , class Oper , class AuxQuanta >
bool libint2::GenIntegralSet_1_1< BFS, Oper, AuxQuanta >::auto_unroll ( ) const
virtual

◆ auto_unroll() [2/2]

bool libint2::GenIntegralSet_1_1< CGShell, ElecPotOper, mType >::auto_unroll ( ) const
inlinevirtual

always unroll (s|V|s)^(m)

uncontracted (s|s) are precomputed

Reimplemented from libint2::GenIntegralSet< Oper, BFS, BraSetType, KetSetType, AuxQuanta >.

◆ Instance() [1/2]

template<class BFS , class Oper , class AuxQuanta >
const std::shared_ptr< GenIntegralSet_1_1< BFS, Oper, AuxQuanta > > libint2::GenIntegralSet_1_1< BFS, Oper, AuxQuanta >::Instance ( const BFS & bra0,
const BFS & ket0,
const AuxIndexType & aux = AuxIndexType(),
const OperType & oper = OperType() )
static

This "constructor" takes basis function sets.

Returns a pointer to a unique instance, a la Singleton. Note that the ordering of arguments is a bit counterintuitive, but in fact corresponds to their practical (rather than logical) importance.

Referenced by libint2::GenIntegralSet_1_1< BFS, Oper, AuxQuanta >::Instance(), and libint2::GenIntegralSet_1_1< BFS, Oper, AuxQuanta >::Instance().

◆ Instance() [2/2]

template<class BFS , class Oper , class AuxQuanta >
const std::shared_ptr< GenIntegralSet_1_1< BFS, Oper, AuxQuanta > > libint2::GenIntegralSet_1_1< BFS, Oper, AuxQuanta >::Instance ( const BraType & bra,
const KetType & ket,
const AuxIndexType & aux = AuxIndexType(),
const OperType & oper = OperType() )
static

Returns a pointer to a unique instance, a la Singleton.

Note that the ordering of arguments is a bit counterintuitive, but in fact corresponds to their practical (rather than logical) importance.

◆ unregister()

template<class BFS , class Oper , class AuxQuanta >
void libint2::GenIntegralSet_1_1< BFS, Oper, AuxQuanta >::unregister ( ) const
virtual

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