PSCF v1.3.3
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 <prdc/field/DomainTmpl.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
26// Explicit instantiation declarations for base class template
27namespace Pscf {
28 namespace Prdc {
29 using namespace Cuda;
30 extern template
31 class DomainTmpl<1, FFT<1>, WaveList<1>, Rpg::FieldIo<1> >;
32 extern template
33 class DomainTmpl<2, FFT<2>, WaveList<2>, Rpg::FieldIo<2> >;
34 extern template
35 class DomainTmpl<3, FFT<3>, WaveList<3>, Rpg::FieldIo<3> >;
36 }
37}
38
39namespace Pscf {
40namespace Rpg {
41
42 using namespace Util;
43 using namespace Pscf::Prdc;
44 using namespace Pscf::Prdc::Cuda;
45
58 template <int D>
59 class Domain
60 : public DomainTmpl< D, FFT<D>, WaveList<D>, FieldIo<D> >
61 {
62
63 public:
64
70 Domain();
71
74
75 // Inherited pubic member functions
76
80 using Base::makeBasis;
81 using Base::unitCell;
82 using Base::mesh;
83 using Base::group;
84 using Base::basis;
85 using Base::fft;
86 using Base::waveList;
87 using Base::fieldIo;
88 using Base::lattice;
89 using Base::groupName;
90 using Base::hasGroup;
91 using Base::hasBasis;
92 using Base::writeStars;
93 using Base::writeWaves;
94 using Base::writeGroup;
95
96 };
97
98 // Explicit instantiation declarations
99 extern template class Domain<1>;
100 extern template class Domain<2>;
101 extern template class Domain<3>;
102
103} // namespace Rpg
104} // namespace Pscf
105#endif
Fourier transform wrapper.
Definition cpu/FFT.h:38
Class to calculate and store properties of wavevectors.
Spatial domain for a periodic structure with real fields.
Definition DomainTmpl.h:71
Spatial domain for a periodic structure with real fields, on a GPU.
DomainTmpl< D, FFT< D >, WaveList< D >, FieldIo< D > > Base
Typename alias base class.
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 CField.cpp:11
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.