PSCF v1.4.0
LrAmCompressor.cu
1/*
2* PSCF - Polymer Self-Consistent Field
3*
4* Copyright 2015 - 2025, The Regents of the University of Minnesota
5* Distributed under the terms of the GNU General Public License.
6*/
7
8#include "LrAmCompressor.h"
9#include <rpg/system/System.h>
10#include <rpg/solvers/Mixture.h>
11#include <rpg/field/Domain.h>
12#include <rpg/field/CFields.h>
13#include <rpg/field/WFields.h>
14
15#include <prdc/cuda/FFT.h>
16#include <prdc/cuda/RField.h>
17
18#include <pscf/cuda/VecOp.h>
19#include <pscf/cuda/VecOpMisc.h>
20#include <pscf/cuda/Reduce.h>
21#include <pscf/math/IntVec.h>
22
23#include <util/global.h>
24
25#include <rp/fts/compressor/LrAmCompressor.tpp>
26
27namespace Pscf {
28namespace Rpg {
29
30 /*
31 * Constructor.
32 */
33 template <int D>
37
38}
39}
40
41// Explicit instantiation definitions
42namespace Pscf {
43 namespace Rp {
44 template
45 class LrAmCompressor<1, Rpg::Types<1>, DeviceArray<cudaReal> >;
46 template
47 class LrAmCompressor<2, Rpg::Types<2>, DeviceArray<cudaReal> >;
48 template
49 class LrAmCompressor<3, Rpg::Types<3>, DeviceArray<cudaReal> >;
50 }
51 namespace Rpg {
52 template class LrAmCompressor<1>;
53 template class LrAmCompressor<2>;
54 template class LrAmCompressor<3>;
55 }
56}
Dynamic array on the GPU device with aligned data.
Definition DeviceArray.h:96
Linear-response Anderson mixing compressor.
LrAmCompressor(System< D > &system)
Constructor.
Main class, representing a complete physical system.
List of aliases for types used in the Rpg program-level namespace.
File containing preprocessor macros for error handling.
Class templates for real-valued periodic fields.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.
cufftDoubleReal cudaReal
Real number type used in CPU code that uses FFTW.
Definition cudaTypes.h:35