81 MADNESS_EXCEPTION(
"implement make_fock operator for your derived NemoBase class",1);
82 return std::shared_ptr<Fock<double,3>>();
86 std::shared_ptr<NuclearCorrelationFactor>
get_ncf_ptr()
const {
91 template<
typename T, std::
size_t NDIM>
95 if (
nemo.size()==0)
return;
100 std::vector<Function<T,NDIM> > mos = (metric.is_initialized())
105 std::vector<double> invnorm(norms.size());
106 for (std::size_t i = 0; i < norms.size(); ++i)
107 invnorm[i] = 1.0 / norms[i];
118 template<
typename T, std::
size_t NDIM>
122 if (
nemo.size()==0)
return;
125 if (
nemo.front().k()==
k) {
130 if (
world.rank()==0)
print(
"reprojecting nemos from k =",
nemo.front().k(),
"to k =",
k);
132 for (std::size_t i=0; i<
nemo.size(); ++i)
142 for (
int i=0; i<s.dim(0); ++i)
Q(i,i) += 1.5;
147 template<
typename T, std::
size_t NDIM>
152 if (
nemo.size()==0)
return;
156 std::vector<Function<T,NDIM> > Rnemo = (metric.is_initialized())
160 for (
int i=0; i<
Q.dim(0); ++i)
161 for (
int j=0; j<i; ++j)
173 template<
typename T, std::
size_t NDIM>
181 if ((not
R.is_initialized()) or (
R.thresh()>
thresh)) need=
true;
182 if (not
ncf) need=
true;
189 if (
R.is_initialized() and
R.k()!=
k) need=
true;
203 const std::shared_ptr<PotentialManager>& pm,
204 const std::pair<std::string,double>& ncf_parameter) {
232 template<
typename T, std::
size_t NDIM>
270 double ke=2.0*(ke1+ke2+ke3);
278 template<
typename T, std::
size_t NDIM>
282 for (
int i=0; i<
nemo.size(); ++i) {
284 ke+=2.0*fnorm2*fnorm2;
286 timer1.
end(
"compute_kinetic_energy1");
295 template<
typename T, std::
size_t NDIM>
299 for (
int i=0; i<
NDIM; ++i) {
300 std::vector< std::shared_ptr< Derivative<T,NDIM> > >
grad=
303 ke+=2.0*fnorm2*fnorm2;
305 timer1.
end(
"compute_kinetic_energy1a");
313 template<
typename T, std::
size_t NDIM>
330 const std::vector<double> oldenergies,
const double bsh_norm,
332 const double econv,
const double dconv)
const {
334 double maxenergychange=fabs(energies.size()-oldenergies.size());
335 for (
auto iter1=energies.begin(), iter2=oldenergies.begin();
336 (iter1!=energies.end() and iter2!=oldenergies.end()); iter1++, iter2++) {
337 maxenergychange=std::max(maxenergychange,fabs(*iter1 - *iter2));
339 double delta_energy=fabs(energies[0]-oldenergies[0]);
341 bool bsh_conv=
param.converge_bsh_residual() ? bsh_norm<dconv :
true;
342 bool total_energy_conv=
param.converge_total_energy() ? delta_energy<econv :
true;
343 bool each_energy_conv=
param.converge_each_energy() ? maxenergychange<econv*3.0 :
true;
344 bool density_conv=
param.converge_density() ? delta_density<dconv :
true;
346 if (
world.rank()==0 and
param.print_level()>2) {
347 std::stringstream line;
348 line <<
"convergence: bshresidual, energy change, max energy change, density change "
349 << std::scientific << std::setprecision(1)
350 << bsh_norm <<
" " << delta_energy <<
" "
351 << maxenergychange <<
" " << delta_density;
355 return (bsh_conv and density_conv and each_energy_conv and total_energy_conv);
361 std::shared_ptr<NuclearCorrelationFactor>
ncf;
385 static constexpr char const*
tag =
"nemo";
397 return std::string(
"dft");
405 initialize<bool> (
"read_cphf",
false,
"read the converged orbital response for nuclear displacements from file");
406 initialize<bool> (
"restart_cphf",
false,
"read the guess orbital response for nuclear displacements from file");
407 initialize<bool> (
"purify_hessian",
false,
"symmetrize the hessian matrix based on atomic charges");
433 std::string
name()
const {
return "nemo";}
438 print(
"The nemo code computes Hartree-Fock and DFT energies, gradients and hessians using a nuclear correlation factor");
439 print(
"that regularizes the singular nuclear potential. SCF orbitals for the basis for post-SCF calculations like");
440 print(
"excitation energies (cis), correlation energies (cc2), local potentials (oep), etc\n");
441 print(
"A nemo calculation input is mostly identical to a moldft calculation input, but it uses the additional input");
442 print(
"parameter ncf (nuclear correlation factor)\n");
443 print(
"You can print all available calculation parameters by running\n");
444 print(
"nemo --print_parameters\n");
445 print(
"You can perform a simple calculation by running\n");
446 print(
"nemo --geometry=h2o.xyz\n");
447 print(
"provided you have an xyz file in your directory.\n\n");
448 print(
"To see what a restart archive holds -- geometry, k, the precision it");
449 print(
"converged to, whether it is moldft or nemo orbitals -- without starting");
450 print(
"a calculation:\n");
451 print(
"nemo --restart_info=<prefix>\n");
457 print(
"default parameters for the nemo program are");
458 param.print(
"nemo",
"end");
459 print(
"\n\nthe molecular geometry must be specified in a separate block:");
465 double xsq = x.
sumsq();
478 virtual nlohmann::json
analyze()
const;
528 const SCFProtocol&
p,
const std::string& xc_data)
const;
581 return calc->molecule;
602 const int axis)
const;
622 int k=
f.get_impl()->get_k();
689 timer1.
end(
"reproject ncf");
693 poisson = std::shared_ptr<real_convolution_3d>(
707 if (
calc->ao.size()>0 and
calc->ao.front().k()!=
k) {
709 print(
"reprojecting the AO basis from k =",
calc->ao.front().k(),
"to k =",
k);
751 vecfuncT& Unemo, std::vector<vecfuncT>& xcflux,
tensorT& fock_xc)
const {
753 xcflux, fock_xc,
true);
766 std::vector<vecfuncT> xcflux;
769 xcflux, fock_xc,
false);
779 const bool allow_weak)
const;
797 const std::vector<vecfuncT>&
xi)
const;
828 return calc->vtol / std::min(30.0,
double(
get_calc()->amo.size()));
834 coord_3d start(0.0); start[0]=-width;
840 template<
typename T,
size_t NDIM>
844 template<
typename T,
size_t NDIM>
850template<
typename T,
size_t NDIM>
859template<
typename T,
size_t NDIM>
866 for (std::size_t i=0; i<fsize; ++i) ar &
f[i];
double w(double t, double eps)
Definition DKops.h:22
solution protocol for SCF calculations
static int get_k()
Returns the default wavelet order.
Definition funcdefaults.h:170
static const double & get_thresh()
Returns the default threshold.
Definition funcdefaults.h:183
static double get_cell_min_width()
Returns the minimum width of any user cell dimension.
Definition funcdefaults.h:405
FunctionFactory & functor(const std::shared_ptr< FunctionFunctorInterface< T, NDIM > > &f)
Definition function_factory.h:141
FunctionFactory & special_level(int special_level)
Definition function_factory.h:210
A multiresolution adaptive numerical function.
Definition mra.h:141
Definition molecule.h:129
static void print_parameters()
Definition molecule.cc:120
std::shared_ptr< NuclearCorrelationFactor > ncf
the nuclear correlation factor
Definition nemo.h:361
double compute_kinetic_energy1a(const std::vector< Function< T, NDIM > > &nemo) const
compute kinetic energy as square of the "analytical" derivative of the orbitals
Definition nemo.h:296
double compute_kinetic_energy1(const std::vector< Function< T, NDIM > > &nemo) const
compute kinetic energy as square of the "analytical" derivative of the orbitals
Definition nemo.h:279
std::shared_ptr< NuclearCorrelationFactor > get_ncf_ptr() const
create an instance of the derived object based on the input parameters
Definition nemo.h:86
virtual void invalidate_factors_and_potentials()
Definition nemo.h:195
static void normalize(std::vector< Function< T, NDIM > > &nemo, const Function< double, NDIM > metric=Function< double, NDIM >())
normalize the nemos
Definition nemo.h:92
void reproject_mos(std::vector< Function< T, NDIM > > &nemo, const Function< double, NDIM > &metric) const
reproject a set of nemos onto the current k and thresh
Definition nemo.h:119
NemoBase(World &w)
Definition nemo.h:76
real_function_3d R
the nuclear correlation factor
Definition nemo.h:364
Function< typename Tensor< T >::scalar_type, NDIM > compute_density(const std::vector< Function< T, NDIM > > nemo) const
Definition nemo.h:174
virtual std::shared_ptr< Fock< double, 3 > > make_fock_operator() const
Definition nemo.h:80
virtual bool need_recompute_factors_and_potentials(const double thresh) const
Definition nemo.h:178
real_function_3d R_square
the square of the nuclear correlation factor
Definition nemo.h:367
Tensor< double > compute_gradient(const real_function_3d &rhonemo, const Molecule &molecule) const
compute the nuclear gradients
Definition madness/chem/nemo.cc:107
double compute_kinetic_energy(const std::vector< Function< T, NDIM > > &nemo) const
compute kinetic energy as square of the "analytical" expectation value
Definition nemo.h:233
static Tensor< T > Q2(const Tensor< T > &s)
Definition nemo.h:140
void construct_nuclear_correlation_factor(const Molecule &molecule, const std::shared_ptr< PotentialManager > &pm, const std::pair< std::string, double > &ncf_parameter)
Definition nemo.h:202
double compute_kinetic_energy2(const std::vector< Function< T, NDIM > > &nemo) const
compute kinetic energy as direct derivative of the orbitals (probably imprecise)
Definition nemo.h:314
World & world
Definition nemo.h:358
void orthonormalize(std::vector< Function< T, NDIM > > &nemo, const Function< double, NDIM > metric=Function< double, NDIM >(), const double trantol=FunctionDefaults< NDIM >::get_thresh() *0.01) const
orthonormalize the vectors
Definition nemo.h:148
virtual ~NemoBase()
Definition nemo.h:78
bool check_convergence(const std::vector< double > energies, const std::vector< double > oldenergies, const double bsh_norm, const double delta_density, const CalculationParameters ¶m, const double econv, const double dconv) const
Definition nemo.h:329
real_function_3d U1dotU1
U1.U1 = |grad R|^2 / R^2, by which the physical kinetic energy exceeds the regularized one.
Definition nemo.h:370
void set_protocol(const double thresh)
adapt the thresholds consistently to a common value
Definition nemo.h:679
bool do_symmetry() const
Definition nemo.h:819
virtual double value()
Definition nemo.h:469
projector_irrep get_symmetry_projector() const
return the symmetry_projector
Definition nemo.h:641
tensorT compute_fock_matrix(const vecfuncT &nemo, const tensorT &occ) const
compute the Fock matrix from scratch
Definition madness/chem/nemo.cc:464
double trantol() const
return the threshold for vanishing elements in orbital rotations
Definition nemo.h:827
Nemo(World &world, const commandlineparser &parser)
ctor
Definition madness/chem/nemo.cc:155
const NemoCalculationParameters & get_nemo_param() const
Definition nemo.h:568
std::filesystem::path work_dir
Definition nemo.h:417
Molecule & molecule() const
return a reference to the molecule
Definition nemo.h:580
vecfuncT compute_cphf_parallel_term(const size_t iatom, const int iaxis) const
Definition madness/chem/nemo.cc:1891
void load_function(std::vector< Function< T, NDIM > > &f, const std::string name) const
load a function
Definition nemo.h:860
std::shared_ptr< SCF > get_calc() const
Definition nemo.h:566
Tensor< double > purify_hessian(const Tensor< double > &hessian) const
purify and symmetrize the hessian
Definition madness/chem/nemo.cc:1358
std::shared_ptr< real_convolution_3d > poperatorT
Definition nemo.h:378
real_function_3d get_coulomb_potential(const vecfuncT &psi) const
return the Coulomb potential
Definition madness/chem/nemo.cc:983
Tensor< double > gradient(const Tensor< double > &x)
compute the nuclear gradients
Definition madness/chem/nemo.cc:1133
virtual nlohmann::json analyze() const
compute dipole moment and gradient at the current geometry
Definition madness/chem/nemo.cc:341
const CalculationParameters & get_calc_param() const
Definition nemo.h:569
nlohmann::json population_analysis() const
atomic charges of the orbitals R*nemo by the schemes of the population key
Definition madness/chem/nemo.cc:371
void compute_nemo_potentials_impl(const vecfuncT &nemo, const vecfuncT &R2nemo, vecfuncT &Jnemo, vecfuncT &Knemo, vecfuncT &xcnemo, vecfuncT &pcmnemo, vecfuncT &Unemo, std::vector< vecfuncT > &xcflux, tensorT &fock_xc, const bool allow_weak) const
implementation of both compute_nemo_potentials forms
Definition madness/chem/nemo.cc:856
double solve(const SCFProtocol &proto)
solve the HF equations
Definition madness/chem/nemo.cc:562
vecfuncT solve_cphf(const size_t iatom, const int iaxis, const Tensor< double > &fock, const vecfuncT &guess, const vecfuncT &rhsconst, const Tensor< double > &incomplete_hessian, const vecfuncT ¶llel, const SCFProtocol &p, const std::string &xc_data) const
solve the CPHF equations for the nuclear displacements
Definition madness/chem/nemo.cc:1542
Tensor< double > make_incomplete_hessian() const
compute the incomplete hessian
Definition madness/chem/nemo.cc:1403
std::vector< vecfuncT > compute_all_cphf()
solve the CPHF equation for all displacements
Definition madness/chem/nemo.cc:1711
Tensor< double > make_incomplete_hessian_response_part(const std::vector< vecfuncT > &xi) const
compute the complementary incomplete hessian
Definition madness/chem/nemo.cc:1461
real_function_3d make_density(const Tensor< double > &occ, const vecfuncT &nemo) const
make the density (alpha or beta)
Definition madness/chem/nemo.cc:989
const NemoCalculationParameters nemo_param
Definition nemo.h:633
static void smoothen(real_function_3d &f)
smooth a function by projecting it onto k-1 and then average with k
Definition nemo.h:621
void compute_nemo_potentials(const vecfuncT &nemo, const vecfuncT &R2nemo, vecfuncT &Jnemo, vecfuncT &Knemo, vecfuncT &xcnemo, vecfuncT &pcmnemo, vecfuncT &Unemo, std::vector< vecfuncT > &xcflux, tensorT &fock_xc) const
compute the reconstructed orbitals, and all potentials applied on nemo
Definition nemo.h:749
PCM get_pcm() const
Definition nemo.h:571
friend class TDHF
Definition nemo.h:380
Tensor< double > compute_IR_intensities(const Tensor< double > &normalmodes, const vecfuncT &dens_pt) const
compute the IR intensities in the double harmonic approximation
Definition madness/chem/nemo.cc:1910
virtual std::shared_ptr< Fock< double, 3 > > make_fock_operator() const
construct the fock operator based on the calculation parameters (K or XC?)
Definition madness/chem/nemo.cc:399
std::shared_ptr< SCF > calc
Definition nemo.h:630
void load_mos(World &w)
Definition nemo.h:473
static void print_parameters()
Definition nemo.h:455
bool check_converged(const Tensor< double > &x) const
Definition nemo.h:464
bool provides_gradient() const
Override this to return true if the derivative is implemented.
Definition nemo.h:489
real_function_3d kinetic_energy_potential(const vecfuncT &nemo) const
the Laplacian of the density
Definition madness/chem/nemo.cc:1033
PCM pcm
polarizable continuum model
Definition nemo.h:674
VibrationalResults hessian(const Tensor< double > &x)
returns the molecular hessian matrix at structure x
Definition madness/chem/nemo.cc:1163
void save_function(const std::vector< Function< T, NDIM > > &f, const std::string name) const
save a function
Definition nemo.h:851
void make_plots(const real_function_3d &f, const std::string &name="function") const
Definition nemo.h:831
friend class PNO
Definition nemo.h:379
bool do_ac() const
Definition nemo.h:815
projector_irrep symmetry_projector
Definition nemo.h:636
double coords_sum
sum of square of coords at last solved geometry
Definition nemo.h:648
std::shared_ptr< real_convolution_3d > poisson
a poisson solver
Definition nemo.h:652
real_function_3d make_sigma(const real_function_3d &rho1, const real_function_3d &rho2) const
compute the reduced densities sigma (gamma) for GGA functionals
Definition madness/chem/nemo.cc:1106
real_function_3d make_ddensity(const real_function_3d &rhonemo, const int axis) const
make the derivative of the density
Definition madness/chem/nemo.cc:1016
AC< 3 > ac
asymptotic correction for DFT
Definition nemo.h:655
void compute_nemo_potentials(const vecfuncT &nemo, const vecfuncT &R2nemo, vecfuncT &Jnemo, vecfuncT &Knemo, vecfuncT &xcnemo, vecfuncT &pcmnemo, vecfuncT &Unemo) const
compute all potentials applied on nemo, without the weak-form split
Definition nemo.h:763
vecfuncT localize(const vecfuncT &nemo, const double dconv, const bool randomize) const
localize the nemo orbitals
Definition madness/chem/nemo.cc:381
bool do_pcm() const
Definition nemo.h:809
bool selftest()
Definition nemo.h:434
std::vector< double > compute_energy_regularized(const vecfuncT &nemo, const vecfuncT &R2nemo, const vecfuncT &Jnemo, const vecfuncT &Knemo, const vecfuncT &Unemo, const Tensor< double > &kinetic) const
given nemos, compute the HF energy using the regularized expressions for T and V
Definition madness/chem/nemo.cc:769
AC< 3 > get_ac() const
Definition nemo.h:817
vecfuncT make_cphf_constant_term(const size_t iatom, const int iaxis, const vecfuncT &R2nemo, const real_function_3d &rhonemo) const
compute the constant term for the CPHF equations
Definition madness/chem/nemo.cc:1490
Molecule & molecule()
return a reference to the molecule
Definition nemo.h:577
std::string name() const
Definition nemo.h:433
static void help()
Definition nemo.h:436
bool is_dft() const
Definition nemo.h:807
functor for a local U1 dot U1 potential
Definition correlationfactor.h:628
static constexpr int ncf_special_level
projection depth of the factor's functions at the nuclei
Definition correlationfactor.h:110
input parameters for the polarizable continuum model – the pcm data group
Definition pcm.h:69
interface class to the PCMSolver library
Definition pcm.h:132
void read_input_and_commandline_options(World &world, const commandlineparser &parser, const std::string tag)
Definition chem/QCCalculationParametersBase.h:339
bool parameter_exists(const std::string &key) const
Definition chem/QCCalculationParametersBase.h:598
T get(const std::string key) const
Definition chem/QCCalculationParametersBase.h:313
void initialize(const std::string &key, const T &value, const std::string comment="", const std::vector< T > allowed_values={})
Definition chem/QCCalculationParametersBase.h:394
QCCalculationParametersBase()
ctor for testing
Definition chem/QCCalculationParametersBase.h:383
class implementing properties of QC models
Definition QCPropertyInterface.h:11
struct for running a protocol of subsequently tightening precision
Definition SCFProtocol.h:54
A tensor is a multidimensional array.
Definition tensor.h:313
T sumsq() const
Returns the sum of the squares of the elements.
Definition tensor.h:1674
A parallel world class.
Definition world.h:134
An archive for storing local or parallel data wrapping a BinaryFstreamOutputArchive.
Definition parallel_archive.h:321
Definition pointgroupsymmetry.h:98
char * p(char *buf, const char *name, int k, int initial_level, double thresh, int order)
Definition derivatives.cc:72
static double lo
Definition dirac-hatom.cc:23
Defines/implements plotting interface for functions.
double psi(const Vector< double, 3 > &r)
Definition hatom_energy.cc:78
Implements (2nd generation) static load/data balancing for functions.
#define MADNESS_EXCEPTION(msg, value)
Macro for throwing a MADNESS exception.
Definition madness_exception.h:119
optimize the geometrical structure of a molecule
Main include file for MADNESS and defines Function interface.
Namespace for all elements and tools of MADNESS.
Definition DFConvergence.h:9
double FunctionDefaults< NDIM >::thresh
Definition mraimpl.h:3879
std::shared_ptr< NuclearCorrelationFactor > create_nuclear_correlation_factor(World &world, const Molecule &molecule, const std::shared_ptr< PotentialManager > potentialmanager, const std::string inputline)
create and return a new nuclear correlation factor
Definition correlationfactor.cc:45
void print_header2(const std::string &s)
medium section heading
Definition print.cc:54
Function< double, NDIM > abssq(const Function< double_complex, NDIM > &z, bool fence=true)
Returns a new function that is the square of the absolute value of the input.
Definition mra.h:3114
std::vector< double > norm2s(World &world, const std::vector< Function< T, NDIM > > &v)
Computes the 2-norms of a vector of functions.
Definition vmra.h:976
int FunctionDefaults< NDIM >::k
Definition mraimpl.h:3878
Function< TENSOR_RESULT_TYPE(T, R), NDIM > dot(World &world, const std::vector< Function< T, NDIM > > &a, const std::vector< Function< R, NDIM > > &b, bool fence=true, bool do_make_redundant=true)
Multiplies and sums two vectors of functions r = \sum_i a[i] * b[i]; see dot_sparse for screening.
Definition vmra.h:1897
std::vector< Function< TENSOR_RESULT_TYPE(T, R), NDIM > > transform(World &world, const std::vector< Function< T, NDIM > > &v, const Tensor< R > &c, bool fence=true)
Transforms a vector of functions according to new[i] = sum[j] old[j]*c[j,i].
Definition vmra.h:807
void truncate(World &world, std::vector< Function< T, NDIM > > &v, double tol=0.0, bool fence=true)
Truncates a vector of functions.
Definition vmra.h:336
Tensor< double > tensorT
Definition distpm.cc:21
const std::vector< Function< T, NDIM > > & reconstruct(const std::vector< Function< T, NDIM > > &v)
reconstruct a vector of functions
Definition vmra.h:163
void set_thresh(World &world, std::vector< Function< T, NDIM > > &v, double thresh, bool fence=true)
Sets the threshold in a vector of functions.
Definition vmra.h:1506
double norm2(World &world, const std::vector< Function< T, NDIM > > &v)
Computes the 2-norm of a vector of functions.
Definition vmra.h:1010
void plot_plane(World &world, const Function< double, NDIM > &function, const std::string name)
Definition funcplot.h:625
std::vector< std::shared_ptr< Derivative< T, NDIM > > > gradient_operator(World &world, const BoundaryConditions< NDIM > &bc=FunctionDefaults< NDIM >::get_bc(), int k=FunctionDefaults< NDIM >::get_k())
Convenience function returning vector of derivative operators implementing grad ( ).
Definition derivative.h:801
FunctionFactory< double, 3 > real_factory_3d
Definition functypedefs.h:108
Derivative< T, NDIM > free_space_derivative(World &world, int axis, int k=FunctionDefaults< NDIM >::get_k())
Convenience function returning derivative operator with free-space boundary conditions.
Definition derivative.h:775
NDIM & f
Definition mra.h:2817
Function< double, 3 > real_function_3d
Definition functypedefs.h:80
void print(const T &t, Ts &&... ts)
Print items to std::cout (items separated by spaces) and terminate with a new line.
Definition print.h:232
static SeparatedConvolution< double, 3 > * CoulombOperatorPtr(World &world, double lo, double eps, const std::array< LatticeRange, 3 > &lattice_ranges=FunctionDefaults< 3 >::get_bc().lattice_range(), int k=FunctionDefaults< 3 >::get_k())
Factory function generating separated kernel for convolution with 1/r in 3D.
Definition operator.h:2039
vector< functionT > vecfuncT
Definition corepotential.cc:58
CCPairFunction< T, NDIM > apply(const SeparatedConvolution< T, NDIM/2 > &op, const CCPairFunction< T, NDIM > &arg)
apply the operator to the argument
Definition ccpairfunction.h:901
bool FunctionDefaults< NDIM >::refine
Definition mraimpl.h:3884
Function< TENSOR_RESULT_TYPE(L, R), NDIM > mul_sparse(const Function< L, NDIM > &left, const Function< R, NDIM > &right, double tol, bool fence=true, bool do_make_redundant=true)
Sparse multiplication; the scalar interface redirects to the vector one in vmra.h.
Definition mra.h:1983
std::vector< Function< T, NDIM > > grad(const Function< T, NDIM > &f, bool refine=false, bool fence=true)
shorthand gradient operator
Definition vmra.h:2370
Function< T, CCPairFunction< T, NDIM >::LDIM > inner(const CCPairFunction< T, NDIM > &c, const Function< T, CCPairFunction< T, NDIM >::LDIM > &f, const std::tuple< int, int, int > v1, const std::tuple< int, int, int > v2)
Definition ccpairfunction.h:1007
Vector< double, 3 > coord_3d
Definition funcplot.h:1074
void scale(World &world, std::vector< Function< T, NDIM > > &v, const std::vector< Q > &factors, bool fence=true)
Scales inplace a vector of functions by distinct values.
Definition vmra.h:923
void plot_line(World &world, const char *filename, int npt, const Vector< double, NDIM > &lo, const Vector< double, NDIM > &hi, const opT &op)
Generates ASCII file tabulating f(r) at npoints along line r=lo,...,hi.
Definition funcplot.h:442
Function< T, NDIM > project(const Function< T, NDIM > &other, int k=FunctionDefaults< NDIM >::get_k(), double thresh=FunctionDefaults< NDIM >::get_thresh(), bool fence=true)
Definition mra.h:2800
std::string name(const FuncType &type, const int ex=-1)
Definition ccpairfunction.h:28
Derivative< double, 3 > real_derivative_3d
Definition functypedefs.h:185
void matrix_inner(DistributedMatrix< T > &A, const std::vector< Function< T, NDIM > > &f, const std::vector< Function< T, NDIM > > &g, bool sym=false)
Definition distpm.cc:46
@ nemo
nemo's regularized orbitals F = psi/R
Definition Restart.h:60
static long abs(long a)
Definition tensor.h:214
Implementation of Krylov-subspace nonlinear equation solver.
Implements most functionality of separated operators.
double Q(double a)
Definition relops.cc:20
const double xi
Exponent for delta function approx.
Definition siam_example.cc:60
Definition test_ar.cc:204
Definition CalculationParameters.h:51
std::string pcm_data() const
Definition CalculationParameters.h:245
Definition molecular_optimizer.h:46
virtual Molecule & molecule()
return the molecule of the target
Definition molecular_optimizer.h:49
class holding parameters for a nemo calculation beyond the standard dft parameters from moldft
Definition nemo.h:384
void initialize_nemo_parameters()
Definition nemo.h:400
std::pair< std::string, double > ncf() const
Definition nemo.h:410
bool hessian() const
Definition nemo.h:411
static constexpr char const * tag
Definition nemo.h:385
NemoCalculationParameters(World &world, const commandlineparser &parser)
Definition nemo.h:387
std::string get_tag() const override
Definition nemo.h:396
NemoCalculationParameters()
Definition nemo.h:392
very simple command line parser
Definition commandlineparser.h:28
Definition timing_utilities.h:9
double end(const std::string msg)
Definition timing_utilities.h:56
InputParameters param
Definition tdse.cc:203
static double guess(const coordT &r)
Definition tdse.confused.cc:345
AtomicInt sum
Definition test_atomicint.cc:46
constexpr std::size_t NDIM
Definition testgconv.cc:54
std::size_t axis
Definition testpdiff.cc:59
static Molecule molecule
Definition testperiodicdft.cc:39
Defines operations on vectors of Functions.