22#ifndef MADNESS_CHEM_OPERATOR_DIAGNOSTICS_H
23#define MADNESS_CHEM_OPERATOR_DIAGNOSTICS_H
36template<
typename T =
double>
57template<
typename T =
double, std::
size_t NDIM = 6>
71 std::map<std::string, DiagnosticEntry<T>>
entries;
129 double eps = -1.0)
const;
143 double energy,
double lo,
double eps = -1.0)
const;
172 double eps = -1.0)
const;
179template<
typename T, std::
size_t LDIM>
181template<
typename T, std::
size_t LDIM>
192template<
typename T, std::
size_t NDIM>
194 const std::vector<std::string>& pieces,
195 const std::vector<double>& signs,
196 const std::string& title);
209template<
typename T, std::
size_t NDIM>
223template<
typename T, std::
size_t NDIM>
225 const std::vector<std::string>& pieces,
226 const std::vector<double>& signs,
229 const std::string& title);
247template<
typename T, std::
size_t NDIM>
249 const std::vector<std::string>& pieces,
250 const std::vector<std::string>& labels,
251 const std::vector<double>& energy6d,
254 const std::string& title);
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
double time
Definition operator_diagnostics.h:73
void compute_errors()
Compute error = ||ref - result||_F for every initialized entry.
Definition operator_diagnostics.cc:399
std::vector< CCPairFunction< T, NDIM > > build_simple_bra() const
Single-slot bra for plain.
Definition operator_diagnostics.h:160
std::vector< CCPairFunction< T, NDIM > > build_Gab_bra(double energy, double lo, double eps=-1.0) const
Definition operator_diagnostics.cc:138
Tensor< T > project_ab(const Function< T, NDIM > &ket) const
Returns T(a,b) = <ao_basis[a] ao_basis[b] | ket>.
Definition operator_diagnostics.cc:119
Tensor< T > ref_GQab(const ElementProvider &elements, const std::vector< Function< T, LDIM > > &occ_ket, const std::vector< Function< T, LDIM > > &occ_bra, double energy, double lo, double eps=-1.0) const
Definition operator_diagnostics.cc:212
World & world_
Definition operator_diagnostics.h:175
DiagnosticMatrix(World &world, std::vector< Function< T, LDIM > > ao_basis_in, bool orthonormalize=true)
Definition operator_diagnostics.cc:25
std::vector< Function< T, LDIM > > ao_basis
orthonormalized observer basis
Definition operator_diagnostics.h:72
Tensor< T > project_Gab(const Function< T, NDIM > &ket, double energy, double lo) const
Returns T(a,b) ≈ <ao_basis[a] ao_basis[b] | G · ket> via Schwinger BSH quadrature.
Definition operator_diagnostics.cc:183
Tensor< T > & init(const std::string &name)
Definition operator_diagnostics.h:87
std::map< std::string, DiagnosticEntry< T > > entries
Definition operator_diagnostics.h:71
int nbasis() const
Definition operator_diagnostics.h:83
void print_report(const std::string &tag="") const
Print a compact report: name, ||ref||, ||result||, error.
Definition operator_diagnostics.cc:410
std::function< Tensor< T >( const std::vector< Function< T, LDIM > > &, const std::vector< Function< T, LDIM > > &)> ElementProvider
Definition operator_diagnostics.h:67
Tensor< T > ref_Gab(const ElementProvider &elements, double energy, double lo, double eps=-1.0) const
Definition operator_diagnostics.cc:202
static constexpr std::size_t LDIM
one-particle space dimension
Definition operator_diagnostics.h:60
Tensor< T > project_xy(const std::vector< CCPairFunction< T, NDIM > > &bra, const Function< T, NDIM > &ket) const
Definition operator_diagnostics.cc:59
A multiresolution adaptive numerical function.
Definition mra.h:141
Definition operator.h:158
A tensor is a multidimensional array.
Definition tensor.h:313
A parallel world class.
Definition world.h:134
double(* energy)()
Definition derivatives.cc:58
static double lo
Definition dirac-hatom.cc:23
Main include file for MADNESS and defines Function interface.
Namespace for all elements and tools of MADNESS.
Definition DFConvergence.h:9
void print_pair_energy_report(const DiagnosticMatrix< T, NDIM > &dm, const std::vector< std::string > &pieces, const std::vector< double > &signs, const std::string &title)
Definition operator_diagnostics.cc:248
void print_pair_energy_report_RI(const DiagnosticMatrix< T, NDIM > &dm, const std::vector< std::string > &pieces, const std::vector< double > &signs, const Tensor< T > &W, double factor, const std::string &title)
Definition operator_diagnostics.cc:312
Tensor< T > pair_energy_weights(World &world, const std::vector< Function< T, NDIM/2 > > &observer, const Function< T, NDIM/2 > &phi_i_bra, const Function< T, NDIM/2 > &phi_j_bra, const std::vector< Function< T, NDIM/2 > > &occ_ket, const std::vector< Function< T, NDIM/2 > > &occ_bra, const SeparatedConvolution< T, NDIM/2 > &g12)
Definition operator_diagnostics.cc:279
void print_pair_energy_table_RI(const DiagnosticMatrix< T, NDIM > &dm, const std::vector< std::string > &pieces, const std::vector< std::string > &labels, const std::vector< double > &energy6d, const Tensor< T > &W, double factor, const std::string &title)
Definition operator_diagnostics.cc:350
std::vector< Function< T, NDIM > > orthonormalize(const std::vector< Function< T, NDIM > > &vf_in)
orthonormalize the vectors
Definition vmra.h:466
std::string name(const FuncType &type, const int ex=-1)
Definition ccpairfunction.h:28
DiagnosticMatrix(World &, std::vector< Function< T, LDIM > >) -> DiagnosticMatrix< T, 2 *LDIM >
Definition operator_diagnostics.h:37
Tensor< T > result
NDIM-D projection result (set by DiagnosticMatrix methods).
Definition operator_diagnostics.h:39
void compute_error()
Definition operator_diagnostics.h:42
Tensor< T > ref
LDIM-D analytic reference (set by caller).
Definition operator_diagnostics.h:38
double error
Definition operator_diagnostics.h:40
void e()
Definition test_sig.cc:75
constexpr std::size_t NDIM
Definition testgconv.cc:54