PSCF v1.4.0
rpg/field/Domain.h
1#ifndef RPG_DOMAIN_H
2#define RPG_DOMAIN_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 <rp/field/Domain.h> // base class template
12
13// Forward declarations
14namespace Pscf {
15 namespace Prdc {
16 namespace Cuda {
17 template <int D> class FFT;
18 template <int D> class WaveList;
19 }
20 }
21 namespace Rpg {
22 template <int D> class FieldIo;
23 }
24}
25
26namespace Pscf {
27namespace Rpg {
28
29 using namespace Util;
30 using namespace Pscf::Prdc;
31 using namespace Pscf::Prdc::Cuda;
32
45 template <int D>
46 class Domain
47 : public Rp::Domain< D, FFT<D>, WaveList<D>, FieldIo<D> >
48 {
49 public:
50 Domain() = default;
51 virtual ~Domain() = default;
52 };
53
54
55} // namespace Rpg
56} // namespace Pscf
57
58// Explicit instantiation declarations
59namespace Pscf {
60 namespace Rp {
61 using namespace Prdc::Cuda;
62 extern template
63 class Domain<1, FFT<1>, WaveList<1>, Rpg::FieldIo<1> >;
64 extern template
65 class Domain<2, FFT<2>, WaveList<2>, Rpg::FieldIo<2> >;
66 extern template
67 class Domain<3, FFT<3>, WaveList<3>, Rpg::FieldIo<3> >;
68 }
69 namespace Rpg {
70 extern template class Domain<1>;
71 extern template class Domain<2>;
72 extern template class Domain<3>;
73 }
74}
75#endif
Fourier transform wrapper for real or complex data.
Definition cuda/FFT.h:38
Class to compute and store properties associated with wavevectors.
Spatial domain for a periodic structure with real fields.
Spatial domain for a periodic structure with real fields, on a GPU.
File input/output operations and format conversions for fields.
Fields, FFTs, and utilities for periodic boundary conditions (CUDA).
Definition CField.cu:12
Periodic fields and crystallography.
Definition complex.cpp:11
Class templates for real-valued periodic fields.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.