PSCF v1.3
rpg/fts/compressor/IntraCorrelation.h
1#ifndef RPG_INTRACORRELATION_H
2#define RPG_INTRACORRELATION_H
3
4/*
5* PSCF - Polymer Self-Consistent Field
6*
7* Copyright 2015 - 2025, The Regents of the University of Minnesota
8* Distributed under the terms of the GNU General Public License.
9*/
10
11#include <util/param/ParamComposite.h> // base class
12#include <prdc/cuda/RField.h> // member
13#include <prdc/cuda/RFieldDft.h> // member
14#include <util/containers/DArray.h> // member
15
16namespace Pscf {
17namespace Rpg
18{
19
20 template <int D> class System;
21
22 using namespace Util;
23 using namespace Pscf::Prdc;
24 using namespace Pscf::Prdc::Cuda;
25
31 template <int D>
33 {
34
35 public:
36
43
48
54 void computeIntraCorrelations(RField<D>& correlations);
55
56 protected:
57
62
63 private:
64
66 System<D>* systemPtr_;
67
69 IntVec<D> kMeshDimensions_;
70
72 int kSize_;
73
74 };
75
76 // Get the parent system.
77 template <int D>
79 { return *systemPtr_; }
80
81
82 #ifndef RPG_INTRACORRELATION_TPP
83 // Suppress implicit instantiation
84 extern template class IntraCorrelation<1>;
85 extern template class IntraCorrelation<2>;
86 extern template class IntraCorrelation<3>;
87 #endif
88
89} // namespace Rpg
90} // namespace Pscf
91#endif
An IntVec<D, T> is a D-component vector of elements of integer type T.
Definition IntVec.h:27
Field of real double precision values on an FFT mesh.
Definition cpu/RField.h:29
Linear response function for response to pressure.
System< D > & system()
Return reference to parent system.
void computeIntraCorrelations(RField< D > &correlations)
Compute and return intramolecular correlations.
IntraCorrelation(System< D > &system)
Constructor.
Main class, representing one complete system.
ParamComposite()
Constructor.
Fields, FFTs, and utilities for periodic boundary conditions (CUDA)
Definition Reduce.cpp:14
Periodic fields and crystallography.
Definition CField.cpp:11
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.
Definition param_pc.dox:1