PSCF v1.4.0
cpc/field/Domain.h
1#ifndef CPC_DOMAIN_H
2#define CPC_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 <cp/field/Domain.h> // base class template
12
13// Forward declarations
14namespace Pscf {
15 namespace Prdc {
16 namespace Cpu {
17 template <int D> class WaveList;
18 template <int D> class FFT;
19 }
20 }
21 namespace Cpc {
22 template <int D> class FieldIo;
23 }
24}
25
26// Explicit instantiation declarations for base class
27namespace Pscf {
28 namespace Cp {
29 using namespace Prdc::Cpu;
30 extern template
31 class Domain<1, FFT<1>, WaveList<1>, Cpc::FieldIo<1> >;
32 extern template
33 class Domain<2, FFT<2>, WaveList<2>, Cpc::FieldIo<2> >;
34 extern template
35 class Domain<3, FFT<3>, WaveList<3>, Cpc::FieldIo<3> >;
36 }
37}
38
39namespace Pscf {
40namespace Cpc {
41
42 using namespace Util;
43 using namespace Pscf::Prdc;
44 using namespace Pscf::Prdc::Cpu;
45
61 template <int D>
62 class Domain
63 : public Cp::Domain< D, FFT<D>, WaveList<D>, FieldIo<D> >
64 {
65
66 public:
67
73 Domain();
74
77
78 // Inherited pubic member functions
82 using Base::unitCell;
83 using Base::mesh;
84 using Base::fft;
85 using Base::waveList;
86 using Base::fieldIo;
87 using Base::lattice;
88
89 };
90
91 // Explicit instantiation declarations
92 extern template class Domain<1>;
93 extern template class Domain<2>;
94 extern template class Domain<3>;
95
96} // namespace Cpc
97} // namespace Pscf
98#endif
Spatial domain for a periodic structure with complex fields.
void readFieldHeader(std::istream &in, int &nMonomer)
Spatial domain for a periodic structure with real fields, on a CPU.
Cp::Domain< D, FFT< D >, WaveList< D >, FieldIo< D > > Base
Alias for base class.
File input/output operations for fields.
Fourier transform wrapper.
Definition cpu/FFT.h:39
Class to compute and store properties associated with wavevectors.
Complex-valued periodic fields (class templates).
Definition cp.mod:6
Complex periodic fields, CL-FTS (CPU).
Definition cpc.mod:6
Fields and FFTs for periodic boundary conditions (CPU)
Definition complex.cpp:12
Periodic fields and crystallography.
Definition complex.cpp:11
PSCF package top-level namespace.