GQCP
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
GQCP::LibintInterfacer Class Reference

#include <LibintInterfacer.hpp>

Collaboration diagram for GQCP::LibintInterfacer:
Collaboration graph

Public Types

using libint_target_ptr_vec = libint2::Engine::target_ptr_vec
 

Public Member Functions

 LibintInterfacer (LibintInterfacer const &libint_communicator)=delete
 
void operator= (LibintInterfacer const &libint_communicator)=delete
 
libint2::svector< double > interface (const std::vector< double > &vector) const
 
std::vector< double > interface (const libint2::svector< double > &svector) const
 
libint2::Atom interface (const Nucleus &nucleus) const
 
std::vector< libint2::Atom > interface (const std::vector< Nucleus > &nuclei) const
 
libint2::Shell interface (const GTOShell &shell) const
 
libint2::BasisSet interface (const ShellSet< GTOShell > &shellset) const
 
std::vector< GTOShellinterface (const libint2::Shell &libint_shell, const std::vector< Nucleus > &nuclei, bool undo_renorm=true) const
 
std::vector< GTOShellinterface (const libint2::BasisSet &libint_basisset, const std::vector< Nucleus > &nuclei) const
 
libint2::Engine createEngine (const CoulombRepulsionOperator &op, const size_t max_nprim, const size_t max_l) const
 
libint2::Engine createEngine (const ElectronicDipoleOperator &op, const size_t max_nprim, const size_t max_l) const
 
libint2::Engine createEngine (const KineticOperator &op, const size_t max_nprim, const size_t max_l) const
 
libint2::Engine createEngine (const NuclearAttractionOperator &op, const size_t max_nprim, const size_t max_l) const
 
libint2::Engine createEngine (const OverlapOperator &op, const size_t max_nprim, const size_t max_l) const
 
size_t numberOfShells (const libint2::Shell &libint_shell) const
 
size_t numberOfShells (const libint2::BasisSet &libint_basisset) const
 
void undoRenorm (libint2::Shell &libint_shell) const
 

Static Public Member Functions

static LibintInterfacerget ()
 

Detailed Description

A singleton class that takes care of interfacing with the Libint2 (version 2.3.1) C++ API

Singleton class template from: https://stackoverflow.com/a/1008289

Member Typedef Documentation

◆ libint_target_ptr_vec

using GQCP::LibintInterfacer::libint_target_ptr_vec = libint2::Engine::target_ptr_vec

Constructor & Destructor Documentation

◆ LibintInterfacer()

GQCP::LibintInterfacer::LibintInterfacer ( LibintInterfacer const &  libint_communicator)
delete

Remove the public copy constructor and the public assignment operator

Member Function Documentation

◆ createEngine() [1/5]

libint2::Engine GQCP::LibintInterfacer::createEngine ( const CoulombRepulsionOperator op,
const size_t  max_nprim,
const size_t  max_l 
) const

Construct a libint2 engine that corresponds to the given operator

Parameters
opthe Coulomb repulsion operator
max_nprimthe maximum number of primitives per contracted Gaussian shell
max_lthe maximum angular momentum of Gaussian shell
Returns
the proper libint2 engine

◆ createEngine() [2/5]

libint2::Engine GQCP::LibintInterfacer::createEngine ( const ElectronicDipoleOperator op,
const size_t  max_nprim,
const size_t  max_l 
) const

Construct a libint2 engine that corresponds to the given operator

Parameters
opthe electronic electric dipole operator
max_nprimthe maximum number of primitives per contracted Gaussian shell
max_lthe maximum angular momentum of Gaussian shell
Returns
the proper libint2 engine

◆ createEngine() [3/5]

libint2::Engine GQCP::LibintInterfacer::createEngine ( const KineticOperator op,
const size_t  max_nprim,
const size_t  max_l 
) const

Construct a libint2 engine that corresponds to the given operator

Parameters
opthe kinetic operator
max_nprimthe maximum number of primitives per contracted Gaussian shell
max_lthe maximum angular momentum of Gaussian shell
Returns
the proper libint2 engine

◆ createEngine() [4/5]

libint2::Engine GQCP::LibintInterfacer::createEngine ( const NuclearAttractionOperator op,
const size_t  max_nprim,
const size_t  max_l 
) const

Construct a libint2 engine that corresponds to the given operator

Parameters
opthe nuclear attraction operator
max_nprimthe maximum number of primitives per contracted Gaussian shell
max_lthe maximum angular momentum of Gaussian shell
Returns
the proper libint2 engine

◆ createEngine() [5/5]

libint2::Engine GQCP::LibintInterfacer::createEngine ( const OverlapOperator op,
const size_t  max_nprim,
const size_t  max_l 
) const

Construct a libint2 engine that corresponds to the given operator

Parameters
opthe overlap operator
max_nprimthe maximum number of primitives per contracted Gaussian shell
max_lthe maximum angular momentum of Gaussian shell
Returns
the proper libint2 engine

◆ get()

LibintInterfacer & GQCP::LibintInterfacer::get ( )
static
Returns
the static singleton instance

◆ interface() [1/8]

libint2::Shell GQCP::LibintInterfacer::interface ( const GTOShell shell) const
Parameters
shellthe GQCP shell that should be interfaced
Returns
a libint2::Shell whose renorm()alization has been undone, interfaced from the GQCP GTOShell
Parameters
shellthe GQCP shell that should be interfaced
Returns
a libint2::Shell whose renorm()alization has been undone, interfaced from the GQCP Shell

◆ interface() [2/8]

std::vector< GTOShell > GQCP::LibintInterfacer::interface ( const libint2::BasisSet &  libint_basisset,
const std::vector< Nucleus > &  nuclei 
) const

Interface a libint2::BasisSet to the corresponding GQCP::ShellSet and undo the libint2 renorm()alization

Parameters
libint_basissetthe libint2 Shell that should be interfaced
nucleithe nuclei that can serve as centers of the Shells
Returns
a vector of GTOShells corresponding to the un-renorm()alized libint2::BasisSet

◆ interface() [3/8]

std::vector< GTOShell > GQCP::LibintInterfacer::interface ( const libint2::Shell &  libint_shell,
const std::vector< Nucleus > &  nuclei,
bool  undo_renorm = true 
) const

Interface a libint2::Shell to the corresponding list of GQCP::Shells. Note that there is no one-to-one libint -> GQCP conversion, since GQCP does not support representing 'linked' sp-'shells'

Parameters
libint_shellthe libint2 Shell that should be interfaced
nucleithe nuclei that can serve as centers of the Shells
undo_renormif the libint2::Shell should be un-renorm()alized
Returns
a vector of GQCP::Shells corresponding to the given libint2::Shells

Interface a libint2::Shell to the corresponding list of GQCP::Shells. Note that there is no one-to-one libint -> GQCP conversion, since GQCP does not support representing 'linked' sp-'shells'

Parameters
libint_shellthe libint2 Shell that should be interfaced
nucleithe nuclei that can serve as centers of the Shells
undoRenormif the libint2::Shell should be un-renorm()alized
Returns
a vector of GQCP::Shells

◆ interface() [4/8]

std::vector< double > GQCP::LibintInterfacer::interface ( const libint2::svector< double > &  svector) const

Convert a libint2::svector to a std::vector.

Parameters
svectorThe libint2::svector.
Returns
The std::vector.

◆ interface() [5/8]

libint2::Atom GQCP::LibintInterfacer::interface ( const Nucleus nucleus) const
Parameters
nucleusthe GQCP-nucleus that should be interfaced into a libint2::Atom
Returns
a libint2::Atom, interfaced from the given GQCP::Nucleus

◆ interface() [6/8]

libint2::BasisSet GQCP::LibintInterfacer::interface ( const ShellSet< GTOShell > &  shellset) const
Parameters
shellsetthe GQCP ShellSet that should be interfaced
Returns
a libint2::BasisSet (whose underlying libint2::Shells have been re-renorm()alized), interfaced from the GQCP ShellSet. Note that it is not possible to create libint2-sp-shells from a GQCP ShellSet

◆ interface() [7/8]

libint2::svector< double > GQCP::LibintInterfacer::interface ( const std::vector< double > &  vector) const

Convert a std::vector to a libint2::svector.

Parameters
vectorThe std::vector.
Returns
The libint2::svector.

◆ interface() [8/8]

std::vector< libint2::Atom > GQCP::LibintInterfacer::interface ( const std::vector< Nucleus > &  nuclei) const
Parameters
nucleithe GQCP-nuclei that should be interfaced
Returns
libint2::Atoms, interfaced from the given GQCP nuclei

◆ numberOfShells() [1/2]

size_t GQCP::LibintInterfacer::numberOfShells ( const libint2::BasisSet &  libint_basisset) const
Parameters
libint_basissetthe libint2::BasisSet
Returns
the number of true shells that are contained in the libint2::BasisSet

◆ numberOfShells() [2/2]

size_t GQCP::LibintInterfacer::numberOfShells ( const libint2::Shell &  libint_shell) const
Parameters
libint_shellthe libint2::Shell
Returns
the number of true shells that are contained in the libint2::Shell
Parameters
libint_shellthe libint2::Shell
Returns
the number of true shells that are contained in the libint shell

◆ operator=()

void GQCP::LibintInterfacer::operator= ( LibintInterfacer const &  libint_communicator)
delete

◆ undoRenorm()

void GQCP::LibintInterfacer::undoRenorm ( libint2::Shell &  libint_shell) const

Undo the libint2 default renormalization (see libint2::Shell::renorm())

Parameters
libint_shellthe shell that should be un-renorm()alized

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