12 #ifndef QMCPLUSPLUS_MAGNETIZATION_DENSITY_H 13 #define QMCPLUSPLUS_MAGNETIZATION_DENSITY_H 29 class MagnetizationDensityTests;
109 std::vector<Value>& sx,
110 std::vector<Value>& sy,
111 std::vector<Value>& sz);
a class that defines a supercell in D-dimensional Euclean space.
size_t computeBin(const Position &r, const unsigned int component) const
For a given spatial position r and spin component s, this returns the bin for accumulating the observ...
helper functions for EinsplineSetBuilder
CrystalLattice< OHMMS_PRECISION, OHMMS_DIM > ParticleLayout
void startBlock(int steps) override
void generateSpinIntegrand(ParticleSet &pset, TrialWaveFunction &wfn, const int iat, std::vector< Value > &sx, std::vector< Value > &sy, std::vector< Value > &sz)
Generates the spin integrand (s')/Psi(s)* s | {} | s' for a specific electron iat.
MagnetizationDensity(MagnetizationDensityInput &&min, const Lattice &lattice)
Value integrateMagnetizationDensity(const std::vector< Value > &fgrid) const
This is a convenience function that handles ^{2} dx f(x).
void collect(const RefVector< OperatorEstBase > &operator_estimators) override
Reduce estimator result data from crowds to rank.
QMCTraits::FullPrecValueType FullPrecValue
void registerOperatorEstimator(hdf_archive &file) override
CrystalLattice< OHMMS_PRECISION, OHMMS_DIM > lattice
Specialized paritlce class for atomistic simulations.
Value integrateBySimpsonsRule(const std::vector< Value > &fgrid, Real gridDx) const
Implementation of Simpson's 1/3 rule to integrate a function on a uniform grid.
MagnetizationDensityInput input_
QTFull::ValueType FullPrecValueType
QTBase::ValueType ValueType
QMCTraits::ValueType Value
TinyVector< int, DIM > gdims_
void generateGrid(std::vector< Real > &sgrid) const
Convenience function to generate a grid between 0 and 2pi, consistent with nsamples_ and integration ...
RealAlias< FullPrecValue > FullPrecReal
A minimally functional wrapper for the since c++11 <random>
An abstract class for gridded estimators.
void generateUniformGrid(std::vector< Real > &sgrid, const Real start, const Real stop) const
Generate a uniform grid between [start,stop] for numerical quadrature.
std::unique_ptr< OperatorEstBase > spawnCrowdClone() const override
size_t getFullDataSize()
This returns the total size of data object required for this estimator.
TinyVector< int, DIM > grid_
std::vector< std::reference_wrapper< T > > RefVector
void accumulate(const RefVector< MCPWalker > &walkers, const RefVector< ParticleSet > &psets, const RefVector< TrialWaveFunction > &wfns, const RefVector< QMCHamiltonian > &hams, RandomBase< FullPrecReal > &rng) override
Class to represent a many-body trial wave function.
typename RealAlias_impl< T >::value_type RealAlias
If you have a function templated on a value that can be real or complex and you need to get the base ...
DataLocality
data locality with respect to walker buffer
void generateRandomGrid(std::vector< Real > &sgrid, RandomBase< FullPrecReal > &rng, Real start, Real stop) const
Generate random grid between [start,stop] for MC integration.
Magnetization density estimator for non-collinear spin calculations.