1#ifndef RPG_LR_COMPRESSOR_H
2#define RPG_LR_COMPRESSOR_H
11#include "Compressor.h"
12#include <prdc/cuda/RField.h>
13#include <prdc/cuda/RFieldDft.h>
14#include <util/containers/DArray.h>
15#include <util/containers/DMatrix.h>
16#include <util/misc/Timer.h>
17#include <rpg/fts/compressor/IntraCorrelation.h>
23 template <
int D>
class System;
80 double subspacePercent(){
return 0;};
82 double correctionPercent(){
return 0;};
118 std::string errorType_;
163 void updateWFields();
171 double computeError(
int verbose);
204 bool isIntraCalculated_;
216 #ifndef RPG_LR_COMPRESSOR_TPP
An IntVec<D, T> is a D-component vector of elements of integer type T.
Fourier transform of a real field on an FFT mesh.
Field of real double precision values on an FFT mesh.
int mdeCounter_
Count how many times MDE has been solved.
Compressor(System< D > &system)
Constructor.
System< D > const & system() const
Return const reference to parent system.
Linear response function for response to pressure.
Linear response compressor.
void setup()
Initialize just before entry to iterative loop.
void readParameters(std::istream &in)
Read all parameters and initialize.
void clearTimers()
Clear timers.
~LrCompressor()
Destructor.
int compress()
Iterate pressure field to obtain partial saddle point.
LrCompressor(System< D > &system)
Constructor.
void outputTimers(std::ostream &out) const
Return compressor times contributions.
Main class, representing one complete system.
Dynamically allocatable contiguous array template.
ScalarParam< Type > & read(std::istream &in, const char *label, Type &value)
Add and read a new required ScalarParam < Type > object.
void setClassName(const char *className)
Set class name string.
ScalarParam< Type > & readOptional(std::istream &in, const char *label, Type &value)
Add and read a new optional ScalarParam < Type > object.
Fields, FFTs, and utilities for periodic boundary conditions (CUDA)
Periodic fields and crystallography.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.