PSCF v1.4.0
cpc/field/CFields.h
1#ifndef CPC_C_FIELDS_H
2#define CPC_C_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/CFields.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 CFields
33 : public Cp::CFields<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::fields;
44 using Base::field;
47 using Base::hasData;
48
49 protected:
50
52 using Base::meshSize;
53 using Base::nMonomer;
54 using Base::fieldIo;
55
56 };
57
58} // namespace Cpc
59} // namespace Pscf
60
61// Explicit instantiation declarations
62namespace Pscf {
63 namespace Cp {
64 extern template
65 class CFields<1, Prdc::Cpu::CField<1>, Cpc::FieldIo<1> >;
66 extern template
67 class CFields<2, Prdc::Cpu::CField<2>, Cpc::FieldIo<2> >;
68 extern template
69 class CFields<3, Prdc::Cpu::CField<3>, Cpc::FieldIo<3> >;
70 }
71 namespace Cpc {
72 extern template class CFields<1>;
73 extern template class CFields<2>;
74 extern template class CFields<3>;
75 }
76}
77#endif
A container of complex-valued concentration fields (c fields).
void setFieldIo(FieldIo< D > const &fieldIo)
void allocate(int nMonomer, IntVec< D > const &dimensions)
A container of w fields.
Cp::CFields< D, CField< D >, FieldIo< D > > Base
Alias for base class.
File input/output operations for fields.
Complex periodic fields, CL-FTS (CPU).
Definition cpc.mod:6
Periodic fields and crystallography.
Definition complex.cpp:11
PSCF package top-level namespace.