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 <mutex>
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::GridBatches
 The exchange grid in point batches: every atomic grid's points and weights concatenated, each batch a contiguous (start, count) range of one atom's points. 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
struct  occ::qm::cosx::SemiNumericalExchange::SecondDerivatives
 Second-derivative terms of the COSX exchange energy E_x = -tr(D K) (restricted, D = C_o C_o^T) at fixed AO density, with every dependence compute_K_gradient differentiates, for the operator selected by omega. More...
class  occ::qm::cosx::MolecularGrid
 Class for molecular integration grids in DFT. More...
struct  occ::qm::cosx::AtomGrid
 Structure to hold atom-centered grid data. More...
struct  occ::qm::cosx::GridSettings
 Extended settings for Becke grid generation. More...

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 (Eigen::Ref< 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.