5#ifndef MADNESS_LOCALIZER_H
6#define MADNESS_LOCALIZER_H
53 print(
"Localizer info");
62 template<
typename T, std::
size_t NDIM>
66 template<
typename T, std::
size_t NDIM>
68 bool randomize)
const;
70 template<
typename T, std::
size_t NDIM>
73 template<
typename T, std::
size_t NDIM>
84 template<
typename T, std::
size_t NDIM>
90 const bool silent=
false);
125 template<
typename T, std::
size_t NDIM>
128 const double thresh = 1
e-9,
const bool randomize =
true,
const bool doprint =
false)
const;
130 template<
typename T, std::
size_t NDIM>
133 const std::vector<int>& set,
135 const bool randomize =
true,
136 const bool doprint =
false)
const;
138 template<
typename T, std::
size_t NDIM>
141 const std::vector<int>& set,
143 const bool randomize =
true,
144 const bool doprint =
false)
const;
148 return dip(i, j, 0) * dip(
k, l, 0) + dip(i, j, 1) * dip(
k, l, 1) + dip(i, j, 2) * dip(
k, l, 2);
158 std::vector<Function<double, 3>>
ao;
Definition test_ar.cc:118
Contracted Gaussian basis.
Definition madness/chem/molecularbasis.h:465
std::string get_name() const
Definition madness/chem/molecularbasis.h:505
long dim(int i) const
Returns the size of dimension i.
Definition basetensor.h:147
Manages data associated with a row/column/block distributed array.
Definition distributed_matrix.h:388
Computes matrix representation of the Fock operator.
Definition SCFOperators.h:805
A multiresolution adaptive numerical function.
Definition mra.h:122
bool is_initialized() const
Returns true if the function is initialized.
Definition mra.h:147
Definition localizer.h:21
static void undo_rotations_within_sets(Tensor< T > &U, const std::vector< int > &localized_set)
given a unitary transformation matrix undo rotations within blocks of localized orbitals
Definition localizer.cc:687
DistributedMatrix< T > localize_boys(World &world, const std::vector< Function< T, NDIM > > &mo, const std::vector< int > &set, const double thresh=1e-9, const bool randomize=true, const bool doprint=false) const
Definition localizer.cc:155
static void undo_degenerate_rotations(Tensor< T > &U, const Tensor< double > &eval, const double thresh_degenerate)
given a unitary transformation matrix undo rotations between degenerate columns
Definition localizer.cc:695
double DIP(const Tensor< T > &dip, int i, int j, int k, int l) const
Definition localizer.h:147
std::vector< Function< double, 3 > > ao
Definition localizer.h:158
double thetamax
=R for computing matrix elements of operators
Definition localizer.h:160
Localizer & set_enforce_core_valence_separation(const bool value)
Definition localizer.h:43
Tensor< T > compute_core_valence_separation_transformation_matrix(World &world, const MolecularOrbitals< T, NDIM > &mo_in, const Tensor< T > &Fock) const
localize orbitals while enforcing core-valence separation
Definition localizer.cc:113
std::string method
no rotations between core and valence orbitals (distinguished by 'set')
Definition localizer.h:164
std::string get_method()
Definition localizer.h:34
static std::size_t determine_frozen_orbitals(const Tensor< T > fmat)
Definition localizer.cc:554
const double tolloc
maximum rotation(?)
Definition localizer.h:161
std::vector< int > at_to_bf
Definition localizer.h:155
AtomicBasisSet aobasis
map atoms to basis functions in the "new" algorithm
Definition localizer.h:156
static Tensor< T > undo_rotation(const Tensor< T > &U_in, const std::vector< Slice > &blocks)
given a unitary transformation matrix undo the rotations within the blocks
Definition localizer.cc:666
Localizer & set_method(const std::string method1)
Definition localizer.h:29
Function< double, 3 > metric
Definition localizer.h:159
std::vector< int > at_nbf
Definition localizer.h:155
Localizer & set_metric(const Function< double, 3 > &R)
Definition localizer.h:38
DistributedMatrix< T > localize_PM(World &world, const std::vector< Function< T, NDIM > > &mo, const std::vector< int > &set, const double thresh=1e-9, const bool randomize=true, const bool doprint=false) const
Definition localizer.cc:295
static std::vector< Slice > find_degenerate_blocks(const Tensor< double > &eval, const double thresh_degenerate)
find sets of degenerate states/orbitals
Definition localizer.cc:645
Molecule molecule
Definition localizer.h:157
Tensor< T > matrix_exponential(const Tensor< T > &A) const
Definition localizer.cc:703
bool enforce_core_valence_separation
when are orbitals degenerate
Definition localizer.h:163
void print_info() const
Definition localizer.h:52
AtomicBasisSet get_aobasis() const
Definition localizer.h:48
MolecularOrbitals< T, NDIM > localize(const MolecularOrbitals< T, NDIM > &mo_in, bool randomize) const
localize the orbitals
Definition localizer.cc:21
double thresh_degenerate
Definition localizer.h:162
Tensor< T > compute_localization_matrix(World &world, const MolecularOrbitals< T, NDIM > &mo_in, bool randomize) const
Definition localizer.cc:73
DistributedMatrix< T > localize_new(World &world, const std::vector< Function< T, NDIM > > &mo, const std::vector< int > &set, const double thresh=1e-9, const bool randomize=true, const bool doprint=false) const
Definition localizer.cc:306
static bool check_core_valence_separation(const Tensor< T > &Fock, const std::vector< int > &localized_set, const bool silent=false)
Definition localizer.cc:136
static void undo_reordering(Tensor< T > &U, const Tensor< double > &occ)
given a unitary transformation matrix undo mere reordering
Definition localizer.h:99
static bool check_frozen_consistency(const long nfrozen, const std::vector< int > &localize_sets)
Definition localizer.cc:583
MolecularOrbitals< T, NDIM > separate_core_valence(const MolecularOrbitals< T, NDIM > &mo_in, const Tensor< T > &Fock) const
Definition localizer.cc:96
Definition MolecularOrbitals.h:24
Definition molecule.h:124
A tensor is a multidimension array.
Definition tensor.h:317
A parallel world class.
Definition world.h:132
static const double R
Definition csqrt.cc:46
Main include file for MADNESS and defines Function interface.
Namespace for all elements and tools of MADNESS.
Definition DFParameters.h:10
void print(const T &t, const Ts &... ts)
Print items to std::cout (items separated by spaces) and terminate with a new line.
Definition print.h:225
Function< T, NDIM > copy(const Function< T, NDIM > &f, const std::shared_ptr< WorldDCPmapInterface< Key< NDIM > > > &pmap, bool fence=true)
Create a new copy of the function with different distribution and optional fence.
Definition mra.h:2002
static const double thresh
Definition rk.cc:45
static const long k
Definition rk.cc:44
void e()
Definition test_sig.cc:75