1#ifndef RPG_LR_POST_AM_COMPRESSOR_H
2#define RPG_LR_POST_AM_COMPRESSOR_H
11#include "Compressor.h"
12#include <rpg/fts/compressor/IntraCorrelation.h>
13#include <prdc/cpu/RField.h>
14#include <prdc/cpu/RFieldDft.h>
15#include <pscf/cuda/DeviceArray.h>
16#include <pscf/iterator/AmIteratorTmpl.h>
21 template <
int D>
class System;
73 void setup(
bool isContinuation);
197 bool hasInitialGuess();
243 double computeLambda(
double r);
248 bool isIntraCalculated_;
265 #ifndef RPG_LR_POST_AM_COMPRESSOR_TPP
Dynamic array on the GPU device with aligned data.
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.
Base class for iterators that impose incompressibility.
Linear response function for response to pressure.
Anderson Mixing compressor with linear-response mixing step.
~LrAmCompressor()
Destructor.
void outputTimers(std::ostream &out) const
Return compressor times contributions.
void readParameters(std::istream &in)
Read all parameters and initialize.
int compress()
Compress to obtain partial saddle point w+.
void clearTimers()
Clear all timers (reset accumulated time to zero).
void setup(bool isContinuation)
Initialize just before entry to iterative loop.
LrAmCompressor(System< D > &system)
Constructor.
Main class, representing one complete system.
Dynamically allocatable contiguous array template.
ScalarParam< Type > & readOptional(std::istream &in, const char *label, Type &value)
Add and read a new optional ScalarParam < Type > object.
Class for storing history of previous values in an array.
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.