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
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
Localizer & set_enforce_core_valence_separation(const bool value)
Definition: localizer.h:43
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_metric(const Function< double, 3 > &R)
Definition: localizer.h:38
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
Function< double, 3 > metric
Definition: localizer.h:159
std::vector< int > at_nbf
Definition: localizer.h:155
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
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
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
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
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
Localizer & set_method(const std::string method1)
Definition: localizer.h:29
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.
File holds all helper structures necessary for the CC_Operator and CC2 class.
Definition: DFParameters.h:10
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
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
static const double thresh
Definition: rk.cc:45
static const long k
Definition: rk.cc:44
void e()
Definition: test_sig.cc:75