PSCF v1.2
rpg/fts/compressor/intra/IntraCorrelation.h
1#ifndef RPG_INTRACORRELATION_H
2#define RPG_INTRACORRELATION_H
3
4/*
5* PSCF - Polymer Self-Consistent Field Theory
6*
7* Copyright 2016 - 2022, 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>
32 class IntraCorrelation : public ParamComposite
33 {
34
35 public:
36
42 IntraCorrelation(System<D>& system);
43
48
54 void computeIntraCorrelations(RField<D>& correlations);
55
56 protected:
57
61 System<D>& system();
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.
Base class for iterators that impose incompressibility.
System< D > & system()
Return reference to parent system.
void computeIntraCorrelations(RField< D > &correlations)
Compute and return intramolecular correlations.
Main class for calculations that represent one system.
Definition rpg/System.h:107
An object that can read multiple parameters from file.
Fields, FFTs, and utilities for periodic boundary conditions (CUDA)
Definition CField.cu:12
Periodic fields and crystallography.
Definition CField.cpp:11
PSCF package top-level namespace.
Definition param_pc.dox:1
Utility classes for scientific computation.