1#ifndef COLVARGRID_INTEGRATE_H
2#define COLVARGRID_INTEGRATE_H
19 std::shared_ptr<colvar_grid_gradient> gradients);
52 std::shared_ptr<colvar_grid_gradient> gradients;
65 void nr_linbcg_sym(
const std::vector<cvm::real> &b, std::vector<cvm::real> &x,
72 void atimes(
const std::vector<cvm::real> &x, std::vector<cvm::real> &r);
Class for accumulating a scalar function on a grid.
Definition: colvargrid.h:1283
cvm::real minimum_value() const
Return the lowest value.
Definition: colvargrid.cpp:249
void add_constant(cvm::real const &t)
Add a constant to all elements (fast loop)
Definition: colvargrid.h:671
Integrate (1D, 2D or 3D) gradients.
Definition: colvargrid_integrate.h:9
void nr_linbcg_sym(const std::vector< cvm::real > &b, std::vector< cvm::real > &x, const cvm::real &tol, const int itmax, int &iter, cvm::real &err)
Solve linear system based on CG, valid for symmetric matrices only.
Definition: colvargrid_integrate.cpp:634
void update_div_neighbors(const std::vector< int > &ix)
Update matrix containing divergence and boundary conditions based on new gradient point value,...
Definition: colvargrid_integrate.cpp:112
bool b_smoothed
Flag requesting the use of a smoothed version of the gradient (default: false)
Definition: colvargrid_integrate.h:46
cvm::real l2norm(const std::vector< cvm::real > &x)
l2 norm of a vector
Definition: colvargrid_integrate.cpp:687
void atimes(const std::vector< cvm::real > &x, std::vector< cvm::real > &r)
Multiplication by sparse matrix representing Lagrangian (or its transpose)
Definition: colvargrid_integrate.cpp:218
int integrate(const int itmax, const cvm::real &tol, cvm::real &err, bool verbose=true)
Calculate potential from divergence (in 2D); return number of steps.
Definition: colvargrid_integrate.cpp:63
void get_grad(cvm::real *g, std::vector< int > &ix)
Definition: colvargrid_integrate.cpp:150
std::vector< cvm::real > divergence
Array holding divergence + boundary terms (modified Neumann) if not periodic.
Definition: colvargrid_integrate.h:55
void set_div()
Set matrix containing divergence and boundary conditions based on complete gradient grid.
Definition: colvargrid_integrate.cpp:103
void set_zero_minimum()
Add constant to potential so that its minimum value is zero Useful e.g. for output.
Definition: colvargrid_integrate.h:41
void update_div_local(const std::vector< int > &ix)
Update matrix containing divergence and boundary conditions called by update_div_neighbors and by col...
Definition: colvargrid_integrate.cpp:166
double real
Defining an abstract real number allows to switch precision.
Definition: colvarmodule.h:141