Program Listing for File libuw12.hpp
↰ Return to documentation for file (libuw12.hpp)
//
// Created by Zack Williams on 12/02/2024.
//
#ifndef LIBUW12_HPP
#define LIBUW12_HPP
#include "src/integrals/base_integrals.hpp"
#include "src/three_electron/ri_utils.hpp"
#include "src/utils/utils.hpp"
namespace uw12 {
using integrals::BaseIntegrals;
using three_el::ri::ABSProjectors;
using utils::Occupations;
using utils::Orbitals;
BaseIntegrals setup_base_integrals(
const double* X3,
const double* X2,
const double* X3_ri,
size_t n_ao,
size_t n_df,
size_t n_ri,
bool copy_data = false
);
BaseIntegrals setup_base_integrals(
const double* X3,
const double* X2,
size_t n_ao,
size_t n_df,
bool copy_data = false
);
ABSProjectors setup_abs_projectors(const double* S, size_t n_ao, size_t n_ri);
Orbitals setup_orbitals(
const double* C, size_t n_ao, size_t n_orb, size_t n_spin
);
Occupations setup_occupations(const double* occ, size_t n_occ);
Occupations setup_occupations(
const double* occ, size_t n_occ_alpha, size_t n_occ_beta
);
double uw12_energy(
const BaseIntegrals& W,
const BaseIntegrals& V,
const BaseIntegrals& WV,
const ABSProjectors& abs_projectors,
const Orbitals& orbitals,
const Occupations& occ,
const std::vector<size_t>& n_active,
double scale_opp_spin,
double scale_same_spin,
size_t print_level = 0
);
double uw12_fock(
double* fock,
const BaseIntegrals& W,
const BaseIntegrals& V,
const BaseIntegrals& WV,
const ABSProjectors& abs_projectors,
const Orbitals& orbitals,
const Occupations& occ,
const std::vector<size_t>& n_active,
double scale_opp_spin,
double scale_same_spin,
size_t print_level = 0
);
} // namespace uw12
#endif // LIBUW12_HPP