12#ifndef MADNESS_CHEM_EXCHANGE_COMMUTATOR_H
13#define MADNESS_CHEM_EXCHANGE_COMMUTATOR_H
31 std::vector<CCPairFunction<double, 6>>
Kf;
32 std::vector<CCPairFunction<double, 6>>
fK;
33 std::vector<CCPairFunction<double, 6>>
KffK;
167 const std::vector<real_function_3d>&
aobasis,
168 bool orthonormalize_basis =
true)
const;
221 const std::vector<real_function_3d>&
aobasis,
222 bool orthonormalize_basis =
true)
const;
261 const std::vector<real_function_3d>&
aobasis,
262 bool orthonormalize_basis =
true)
const;
structure for a CC Function 3D which holds an index and a type
Definition ccpairfunction.h:45
a 6D function, either in full or low rank form, possibly including an 2-particle function
Definition ccpairfunction.h:373
Definition operator_diagnostics.h:58
std::function< Tensor< T >( const std::vector< Function< T, LDIM > > &, const std::vector< Function< T, LDIM > > &)> ElementProvider
Definition operator_diagnostics.h:67
LowRankFunction represents a hi-dimensional (NDIM) function as a sum of products of low-dimensional (...
Definition lowrankfunction.h:752
A parallel world class.
Definition world.h:134
double(* energy)()
Definition derivatives.cc:58
Runtime details on the configuration and version of MADNESS.
Definition madness.h:69
Namespace for all elements and tools of MADNESS.
Definition DFConvergence.h:9
Function< double, 3 > real_function_3d
Definition functypedefs.h:80
SeparatedConvolution< double, 6 > real_convolution_6d
Definition functypedefs.h:139
Definition exchange_commutator.h:30
double t_wall
wall time (s)
Definition exchange_commutator.h:34
std::vector< CCPairFunction< double, 6 > > Kf
K̂ f₁₂ | i j ⟩
Definition exchange_commutator.h:31
long rank
combined LRF rank (0 for 6D)
Definition exchange_commutator.h:36
std::string algo
"6d" / "lrf" / "lrf-direct" / "lrf-split-alpha"
Definition exchange_commutator.h:37
std::vector< CCPairFunction< double, 6 > > KffK
[K̂, f₁₂] | i j ⟩ = Kf − fK (signs baked in)
Definition exchange_commutator.h:33
double mem_gb
combined size of pair factors (GByte)
Definition exchange_commutator.h:35
std::vector< CCPairFunction< double, 6 > > fK
f₁₂ K̂ | i j ⟩
Definition exchange_commutator.h:32
Definition exchange_commutator.h:42
double eps_gfit
Definition exchange_commutator.h:46
double alpha_star
GFit partition threshold; α_μ > α* is discarded.
Definition exchange_commutator.h:43
double hi
Definition exchange_commutator.h:45
double lo
Definition exchange_commutator.h:44
Definition exchange_commutator.h:55
LowRankFunctionParameters lrfparam_medium
Definition exchange_commutator.h:65
double alpha_hi
medium / tight boundary (≡ alpha_star)
Definition exchange_commutator.h:57
double hi
Definition exchange_commutator.h:59
int max_taylor_order
Definition exchange_commutator.h:73
double lo
Definition exchange_commutator.h:58
bool medium_use_taylor
Definition exchange_commutator.h:70
LowRankFunctionParameters lrfparam_diffuse
Definition exchange_commutator.h:64
double eps_gfit
Definition exchange_commutator.h:60
double alpha_lo
diffuse / medium boundary
Definition exchange_commutator.h:56
bool medium_use_6d
Definition exchange_commutator.h:78
static KffKResult apply_KffK_6d(World &world, const CCFunction< double, 3 > &phi_i, const CCFunction< double, 3 > &phi_j, const Info &info, const real_convolution_6d *Gscreen=nullptr)
Definition exchange_commutator.cc:142
DiagnosticMatrix diagnose_GKffK(World &world, const std::vector< CCPairFunction< double, 6 > > &GKf_cc, const std::vector< CCPairFunction< double, 6 > > &GfK_cc, const real_function_3d &phi_i, const real_function_3d &phi_j, const real_function_3d &Kphi_i, const real_function_3d &Kphi_j, const Info &info, double energy, const std::vector< real_function_3d > &aobasis, bool orthonormalize_basis=true) const
Definition exchange_commutator.cc:608
ExchangeCommutator()=default
static DiagnosticMatrix ::ElementProvider kf_provider(World &world, const real_function_3d &phi_i, const real_function_3d &phi_j, const Info &info, double eps=-1.0)
Definition exchange_commutator.cc:659
DiagnosticMatrix diagnose_GQKffK(World &world, const std::vector< CCPairFunction< double, 6 > > &GQKf_cc, const std::vector< CCPairFunction< double, 6 > > &GQfK_cc, const real_function_3d &phi_i, const real_function_3d &phi_j, const real_function_3d &Kphi_i, const real_function_3d &Kphi_j, const Info &info, double energy, const std::vector< real_function_3d > &aobasis, bool orthonormalize_basis=true) const
Definition exchange_commutator.cc:728
static LowRankFunction< double, 6 > compute_lrf_exchange_operator(World &world, const Info &info, const SplitAlphaOptions &opt, const LowRankFunctionParameters &lrfparam)
Definition exchange_commutator.cc:196
DiagnosticMatrix diagnose_KffK(World &world, const std::vector< CCPairFunction< double, 6 > > &Kf_cc, const std::vector< CCPairFunction< double, 6 > > &fK_cc, const real_function_3d &phi_i, const real_function_3d &phi_j, const real_function_3d &Kphi_i, const real_function_3d &Kphi_j, const Info &info, double energy, const std::vector< real_function_3d > &aobasis, bool orthonormalize_basis=true) const
Definition exchange_commutator.cc:567
static KffKResult apply_KffK_lowrank_split_alpha(World &world, const CCFunction< double, 3 > &phi_i, const CCFunction< double, 3 > &phi_j, const Info &info, const LowRankFunction< double, 6 > &exchange_op, const LowRankFunctionParameters &lrfparam, const SplitAlphaOptions &opt)
Definition exchange_commutator.cc:258
static DiagnosticMatrix ::ElementProvider fk_provider(World &world, const real_function_3d &phi_i, const real_function_3d &phi_j, const real_function_3d &Kphi_i, const real_function_3d &Kphi_j, const Info &info, double eps=-1.0)
Definition exchange_commutator.cc:691
static KffKResult apply_KffK_lowrank_three_range(World &world, const CCFunction< double, 3 > &phi_i, const CCFunction< double, 3 > &phi_j, const Info &info, const ThreeRangeOptions &opt)
Definition exchange_commutator.cc:354
POD holding some basic functions and some intermediates for the CC2 calculation.
Definition CCStructures.h:919
Definition lowrankfunction.h:22
static AtomicBasisSet aobasis
Definition testperiodicdft.cc:40
vector< FLOAT > opt(const vector< FLOAT > &x, const vector< FLOAT > &f, const vector< FLOAT > &w, const vector< FLOAT > &guess, int maxiter)
Definition y.cc:486