1#ifndef RP_LR_COMPRESSOR_H
2#define RP_LR_COMPRESSOR_H
11#include <pscf/math/IntVec.h>
12#include <util/containers/DArray.h>
13#include <util/misc/Timer.h>
41 template <
int D,
class T>
97 using CompressorT =
typename T::Compressor;
98 using CompressorT::mdeCounter_;
99 using CompressorT::system;
103 using RFieldT =
typename T::RField;
104 using RFieldDftT =
typename T::RFieldDft;
105 using FFTT =
typename T::FFT;
108 typename T::IntraCorrelation intra_;
120 RFieldT intraCorrelationK_;
130 std::string errorType_;
151 bool isIntraCalculated_;
158 void computeResidual();
163 void updateWFields();
171 double computeError(
int verbose);
An IntVec<D, T> is a D-component vector of elements of integer type T.
int compress()
Iterate pressure field to obtain partial saddle point.
void outputTimers(std::ostream &out) const
Return compressor times contributions.
LrCompressor(typename T::System &system)
Constructor.
~LrCompressor()=default
Destructor.
void setup()
Initialize just before entry to iterative loop.
void readParameters(std::istream &in)
Read all parameters and initialize.
void clearTimers()
Clear all timers.
Class templates for real-valued periodic fields.
PSCF package top-level namespace.