occ
Loading...
Searching...
No Matches
seminumerical_exchange.h File Reference
#include <occ/core/atom.h>
#include <occ/core/linear_algebra.h>
#include <occ/numint/molecular_grid.h>
#include <occ/qm/integral_engine.h>
#include <occ/qm/mo.h>
#include <occ/qm/spinorbital.h>
#include <occ/qm/opmatrix.h>
#include <occ/ints/esp.h>
#include <ankerl/unordered_dense.h>
#include <vector>
#include <memory>
Include dependency graph for seminumerical_exchange.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  occ::qm::cosx::Settings
 Configuration settings for COSX seminumerical exchange. More...
 
struct  occ::qm::cosx::GridBatchInfo
 
struct  occ::qm::cosx::ScreenedShellPairs
 
struct  occ::qm::cosx::ShellLists
 ORCA-style SHARK shell lists (shell-based, not pair-based) See: Helmich-Paris et al. More...
 
class  occ::qm::cosx::SemiNumericalExchange
 

Namespaces

namespace  occ
 
namespace  occ::qm
 quantum mechanics/quantum chemistry functionality including Hartree-Fock and more
 
namespace  occ::qm::cosx
 

Functions

GridBatchInfo occ::qm::cosx::compute_batch_info (const occ::Mat3N &pts_block)
 
ScreenedShellPairs occ::qm::cosx::screen_shell_pairs (const GridBatchInfo &batch, const std::vector< occ::gto::Shell > &shells, const Vec &screening_extents, double margin=1.0)
 
std::vector< size_t > occ::qm::cosx::screen_shells_geometric (const GridBatchInfo &batch, const std::vector< occ::gto::Shell > &shells, const Vec &screening_extents, double margin=1.0)
 Screen shells based on geometric proximity to grid batch Returns list-1: shells where distance - extent < batch_radius + margin.
 
std::vector< size_t > occ::qm::cosx::screen_shells_density (const std::vector< size_t > &list1, const Mat &Fg, const std::vector< occ::gto::Shell > &shells, const std::vector< int > &first_bf, double threshold=1e-10)
 Screen shells based on F intermediate magnitude (density-weighted basis values) Returns list-2: shells from list1 where max|F_shell| > threshold F = sum_kappa P_kappa,lambda * X_kappa,g (Eq.
 
std::vector< size_t > occ::qm::cosx::screen_shells_overlap (const std::vector< size_t > &list2, const GridBatchInfo &batch, const std::vector< occ::gto::Shell > &shells, const Vec &screening_extents, double threshold=1e-12)
 Screen shells based on differential overlap for ESP integrals Returns list-3: shells from list2 with non-negligible overlap at grid points This is based on the "chain of spheres" - each basis function has a sphere outside of which it's negligible.
 
ShellLists occ::qm::cosx::build_shell_lists (const GridBatchInfo &batch, const Mat &Fg, const std::vector< occ::gto::Shell > &shells, const std::vector< int > &first_bf, const Vec &screening_extents, double f_threshold=1e-10, double overlap_threshold=1e-12, double margin=1.0)
 Build all three shell lists for a batch.