PSCF v1.3
rpg/field/CFieldContainer.h
1#ifndef RPG_C_FIELD_CONTAINER_H
2#define RPG_C_FIELD_CONTAINER_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/CFieldsReal.h> // base class template
12#include <rpg/field/FieldIo.h> // base class template parameter
13#include <prdc/cuda/RField.h> // base class template parameter
14
15namespace Pscf {
16namespace Rpg {
17
18 using namespace Util;
19 using namespace Prdc;
20 using namespace Prdc::Cuda;
21
31 template <int D>
32 class CFieldContainer : public CFieldsReal<D, RField<D>, FieldIo<D> >
33 {
34
35 public:
36
39
40 // Inherited public member functions
41 using Base::setFieldIo;
46 using Base::allocate;
47 using Base::basis;
48 using Base::rgrid;
49 using Base::writeBasis;
50 using Base::writeRGrid;
53 using Base::hasData;
55 using Base::setHasData;
57
58 protected:
59
60 using Base::fieldIo;
61
62 };
63
64 // Suppress implicit instantiation
65 extern template class CFieldContainer<1>;
66 extern template class CFieldContainer<2>;
67 extern template class CFieldContainer<3>;
68
69} // namespace Rpg
70namespace Prdc {
71 // Suppress implicit instantiation of base class
72 extern template class CFieldsReal<1, Cuda::RField<1>, Rpg::FieldIo<1> >;
73 extern template class CFieldsReal<2, Cuda::RField<2>, Rpg::FieldIo<2> >;
74 extern template class CFieldsReal<3, Cuda::RField<3>, Rpg::FieldIo<3> >;
75}
76} // namespace Pscf
77#endif
void allocateRGrid(IntVec< D > const &dimensions)
void allocate(int nMonomer, int nBasis, IntVec< D > const &dimensions)
A list of c fields stored in both basis and r-grid format.
CFieldsReal< D, RField< D >, FieldIo< D > > Base
Alias for base class.
File input/output operations and format conversions for fields.
Periodic fields and crystallography.
Definition CField.cpp:11
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.
Definition param_pc.dox:1