Collaboration diagram for mpqc::lcao::gaussian::Basis:

Documentation

Basis is a (nonrecursive) clustered sequence of libint2::Shell objects. The sequence is represented as a vector of vectors of shells.

Classes

class  Factory
 Factory is a ctor helper. More...
 

Public Types

using Shell = ::mpqc::lcao::gaussian::Shell
 
- Public Types inherited from mpqc::DescribedClass
typedef std::shared_ptr< DescribedClass >(* keyval_ctor_wrapper_type) (const KeyVal &)
 

Public Member Functions

 Basis ()
 creates an empty Basis More...
 
virtual ~Basis ()
 
 Basis (Basis const &)
 
 Basis (Basis &&)
 
Basisoperator= (Basis const &)
 
Basisoperator= (Basis &&)
 
 Basis (std::vector< ShellVec > shells)
 construct a Basis from a clustered sequence of shells More...
 
std::vector< ShellVec > const & cluster_shells () const
 
ShellVec const & cluster_shells (std::size_t cluster) const
 
const std::vector< Shell > & flattened_shells () const
 
const std::vector< std::int64_t > & bf2shell () const
 
TiledArray::TiledRange1 create_trange1 () const
 
TiledArray::TiledRange1 make_trange1 () const
 
TiledArray::TiledRange1 make_shell_trange1 () const
 
TiledArray::TiledRange1 make_trange1 (std::size_t cluster, std::size_t lobound=std::numeric_limits< std::size_t >::max()) const
 
TiledArray::TiledRange1::range_type make_range1 (std::size_t cluster, std::size_t lobound=std::numeric_limits< std::size_t >::max()) const
 
int64_t max_nprim () const
 
int64_t max_am () const
 
int64_t nfunctions () const
 
int64_t nshells () const
 
int64_t nclusters () const
 
template<typename Archive >
std::enable_if< madness::archive::is_output_archive< Archive >::value >::type serialize (const Archive &ar)
 
template<typename Archive >
std::enable_if< madness::archive::is_input_archive< Archive >::value >::type serialize (const Archive &ar)
 
- Public Member Functions inherited from mpqc::DescribedClass
 DescribedClass ()=default
 
virtual ~DescribedClass ()
 
std::string class_key () const
 
- Public Member Functions inherited from mpqc::enable_shared_from_this< DescribedClass >
virtual ~enable_shared_from_this ()=default
 
std::shared_ptr< DescribedClassshared_from_this ()
 returns the pointer to this object More...
 
std::shared_ptr< std::add_const_t< DescribedClass > > shared_from_this () const
 returns the pointer to this object More...
 
- Public Member Functions inherited from mpqc::detail::virt_base_of_enable_shared_from_this
virtual ~virt_base_of_enable_shared_from_this ()=default
 
bool shared_from_this_possible () const
 
template<typename Target , typename = std::enable_if_t<!std::is_const_v<Target>>>
std::shared_ptr< Target > cast_shared_from_this_to ()
 returns the pointer to this cast to a particular type More...
 
template<typename Target >
std::shared_ptr< std::add_const_t< Target > > cast_shared_from_this_to () const
 returns the pointer to this cast to a particular type More...
 

Protected Member Functions

void init_trange1_hashmarks () const
 

Protected Attributes

std::vector< ShellVecshells_
 
std::vector< std::size_t > trange1_hashmarks_
 
std::vector< Shellflattened_shells_
 
std::vector< int64_t > bf2shell_
 
int64_t max_nprim_ = -1
 
int64_t max_am_ = -1
 
int64_t nfunctions_ = -1
 
int64_t nshells_ = -1
 

Friends

std::shared_ptr< const Basismerge (const Basis &basis1, const Basis &basis2)
 

Additional Inherited Members

- Static Public Member Functions inherited from mpqc::DescribedClass
static keyval_ctor_wrapper_type type_to_keyval_ctor (const std::string &type_name)
 
template<typename T >
static void register_keyval_ctor ()
 
template<typename T >
static bool is_registered ()
 
template<typename T >
static std::string class_key ()
 
static const keyval_ctor_registry_type & keyval_ctor_registry ()
 returns const ref to the keyval ctor registry More...
 

Member Typedef Documentation

◆ Shell

Constructor & Destructor Documentation

◆ Basis() [1/4]

mpqc::lcao::gaussian::Basis::Basis ( )
default

creates an empty Basis

◆ ~Basis()

mpqc::lcao::gaussian::Basis::~Basis ( )
virtualdefault

◆ Basis() [2/4]

mpqc::lcao::gaussian::Basis::Basis ( Basis const &  )
default

◆ Basis() [3/4]

mpqc::lcao::gaussian::Basis::Basis ( Basis &&  )
default

◆ Basis() [4/4]

mpqc::lcao::gaussian::Basis::Basis ( std::vector< ShellVec shells)

construct a Basis from a clustered sequence of shells

Member Function Documentation

◆ bf2shell()

const std::vector< int64_t > & mpqc::lcao::gaussian::Basis::bf2shell ( ) const
Returns
std::vector mapping basis function indices to shell indices
Note
the map is computed on first invocation, and memoized

◆ cluster_shells() [1/2]

std::vector< ShellVec > const & mpqc::lcao::gaussian::Basis::cluster_shells ( ) const
Returns
a reference to the vector of shell clusters

◆ cluster_shells() [2/2]

ShellVec const & mpqc::lcao::gaussian::Basis::cluster_shells ( std::size_t  cluster) const
Parameters
clusterthe cluster ordinal
Returns
a reference to the shells of cluster cluster

◆ create_trange1()

TiledArray::TiledRange1 mpqc::lcao::gaussian::Basis::create_trange1 ( ) const

◆ flattened_shells()

const std::vector< Shell > & mpqc::lcao::gaussian::Basis::flattened_shells ( ) const
Returns
the vector of all shells
Note
the flattened shell list is computed on first invocation, and memoized

◆ init_trange1_hashmarks()

void mpqc::lcao::gaussian::Basis::init_trange1_hashmarks ( ) const
protected

◆ make_range1()

TiledArray::TiledRange1::range_type mpqc::lcao::gaussian::Basis::make_range1 ( std::size_t  cluster,
std::size_t  lobound = std::numeric_limits<std::size_t>::max() 
) const

Constructs a range for the given shell cluster

Parameters
clusterthe cluster index
loboundthe lobound index of the element range, the default is to use the lobound of the cluster's range in the basis (
See also
Basis::make_trange1() )
Returns
the {lobound, upbound} range of cluster cluster

◆ make_shell_trange1()

TiledArray::TiledRange1 mpqc::lcao::gaussian::Basis::make_shell_trange1 ( ) const
Returns
the TiledArray::TiledRange1 object describing this basis as a sequence of shells

◆ make_trange1() [1/2]

TiledArray::TiledRange1 mpqc::lcao::gaussian::Basis::make_trange1 ( ) const
Returns
the TiledArray::TiledRange1 object describing this basis as a sequence of clusters

◆ make_trange1() [2/2]

TiledArray::TiledRange1 mpqc::lcao::gaussian::Basis::make_trange1 ( std::size_t  cluster,
std::size_t  lobound = std::numeric_limits<std::size_t>::max() 
) const

Constructs a range for the given shell cluster tiled by shells

Parameters
clusterthe cluster index
loboundthe lobound index of the element range, the default is to use the lobound of the cluster's range in the basis (
See also
Basis::make_trange1() )
Returns
a TiledArray::TiledRange1 object describing cluster cluster as a sequence of shells

◆ max_am()

int64_t mpqc::lcao::gaussian::Basis::max_am ( ) const
Returns
the highest angular momentum of any shell in this Basis; if empty, returns -1
Note
the value is computed on the first invocation, then memoized

◆ max_nprim()

int64_t mpqc::lcao::gaussian::Basis::max_nprim ( ) const
Returns
the maximum number of primitives in any shell in this Basis; if empty, returns -1
Note
the value is computed on the first invocation, then memoized

◆ nclusters()

int64_t mpqc::lcao::gaussian::Basis::nclusters ( ) const
Returns
the total number of shell clusters in this Basis

◆ nfunctions()

int64_t mpqc::lcao::gaussian::Basis::nfunctions ( ) const
Returns
the total number of functions in this Basis
Note
the value is computed on the first invocation, then memoized

◆ nshells()

int64_t mpqc::lcao::gaussian::Basis::nshells ( ) const
Returns
the total number of shells in this Basis
Note
the value is computed on the first invocation, then memoized

◆ operator=() [1/2]

Basis & mpqc::lcao::gaussian::Basis::operator= ( Basis &&  )
default

◆ operator=() [2/2]

Basis & mpqc::lcao::gaussian::Basis::operator= ( Basis const &  )
default

◆ serialize() [1/2]

template<typename Archive >
std::enable_if< madness::archive::is_output_archive<Archive>::value>::type mpqc::lcao::gaussian::Basis::serialize ( const Archive &  ar)
inline

◆ serialize() [2/2]

template<typename Archive >
std::enable_if< madness::archive::is_input_archive<Archive>::value>::type mpqc::lcao::gaussian::Basis::serialize ( const Archive &  ar)
inline

Friends And Related Function Documentation

◆ merge

std::shared_ptr<const Basis> merge ( const Basis basis1,
const Basis basis2 
)
friend

merges two Basis objects by concatenating their shell cluster sequences.

Returns
a Basis object in which shells of basis1 and basis2

Member Data Documentation

◆ bf2shell_

std::vector<int64_t> mpqc::lcao::gaussian::Basis::bf2shell_
mutableprotected

◆ flattened_shells_

std::vector<Shell> mpqc::lcao::gaussian::Basis::flattened_shells_
mutableprotected

◆ max_am_

int64_t mpqc::lcao::gaussian::Basis::max_am_ = -1
mutableprotected

◆ max_nprim_

int64_t mpqc::lcao::gaussian::Basis::max_nprim_ = -1
mutableprotected

◆ nfunctions_

int64_t mpqc::lcao::gaussian::Basis::nfunctions_ = -1
mutableprotected

◆ nshells_

int64_t mpqc::lcao::gaussian::Basis::nshells_ = -1
mutableprotected

◆ shells_

std::vector<ShellVec> mpqc::lcao::gaussian::Basis::shells_
protected

◆ trange1_hashmarks_

std::vector<std::size_t> mpqc::lcao::gaussian::Basis::trange1_hashmarks_
mutableprotected

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