PSCF v1.4.0
cpc/field/WFields.h
1#ifndef CPC_W_FIELDS_H
2#define CPC_W_FIELDS_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/WFields.h> // base class template
12#include <prdc/cpu/CField.h> // base class template argument
13#include <cpc/field/FieldIo.h> // base class template argument
14
15namespace Pscf {
16namespace Cpc {
17
18 using namespace Util;
19 using namespace Prdc;
20 using namespace Prdc::Cpu;
21
31 template <int D>
32 class WFields
33 : public Cp::WFields<D, CField<D>, FieldIo<D> >
34 {
35 public:
36
39
40 // Inherited public member functions
41 using Base::setFieldIo;
42 using Base::allocate;
43 using Base::setFields;
44 using Base::clear;
45 using Base::fields;
46 using Base::field;
48 using Base::hasData;
49
50 protected:
51
53 using Base::meshSize;
54 using Base::nMonomer;
55 using Base::fieldIo;
56
57 private:
58
65 void assignField(CField<D>& lhs, CField<D> const & rhs) const
66 override;
67
68 };
69
70 // Explicit instantiation declarations
71 extern template class WFields<1>;
72 extern template class WFields<2>;
73 extern template class WFields<3>;
74
75} // namespace Cpc
76} // namespace Pscf
77
78// Explicit instantiation declarations for base class
79namespace Pscf {
80 namespace Cp {
81 extern template
82 class WFields<1, Prdc::Cpu::CField<1>, Cpc::FieldIo<1> >;
83 extern template
84 class WFields<2, Prdc::Cpu::CField<2>, Cpc::FieldIo<2> >;
85 extern template
86 class WFields<3, Prdc::Cpu::CField<3>, Cpc::FieldIo<3> >;
87 }
88}
89#endif
A container of complex-valued w fields.
void setFields(DArray< CField< D > > const &fields)
CField< D > const & field(int monomerId) const
void setFieldIo(FieldIo< D > const &fieldIo)
void allocate(int nMonomer, IntVec< D > const &dimensions)
DArray< CField< D > > const & fields() const
File input/output operations for fields.
A container of w fields.
Cp::WFields< D, CField< D >, FieldIo< D > > Base
Alias for base class.
Field of complex double precision values on an FFT mesh.
Definition cpu/CField.h:29
Complex periodic fields, CL-FTS (CPU).
Definition cpc.mod:6
Periodic fields and crystallography.
Definition complex.cpp:11
PSCF package top-level namespace.