PSCF v1.3.3
rpg/system/System.h
1#ifndef RPG_SYSTEM_H
2#define RPG_SYSTEM_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// Header file includes
12#include <prdc/system/SystemTmpl.h> // base class template
13#include <rpg/system/Types.h> // base class template param
14#include <rpg/field/WFields.h> // member
15#include <rpg/field/CFields.h> // member
16#include <rpg/field/Mask.h> // member
17
18namespace Pscf {
19namespace Rpg {
20
21 using namespace Util;
22 using namespace Prdc;
23 using namespace Prdc::Cuda;
24
34 template <int D>
35 class System : public SystemTmpl< D, Types<D> >
36 {
37 public:
38
42 System();
43
44 System(System<D> const &) = delete;
45 System<D>& operator = (System<D> const &) = delete;
46
47 protected:
48
57 virtual void setThreadCount(int nThread) override;
58
59 };
60
61 // Explicit instantiation declarations
62 extern template class System<1>;
63 extern template class System<2>;
64 extern template class System<3>;
65
66} // namespace Rpg
67namespace Prdc {
68
69 // Explicit instantiation declarations of base class
70 extern template class SystemTmpl<1, Rpg::Types<1> >;
71 extern template class SystemTmpl<2, Rpg::Types<1> >;
72 extern template class SystemTmpl<3, Rpg::Types<1> >;
73
74} // namespace Prdc
75} // namespace Pscf
76#endif
SystemTmpl(typename Types< D >::System &system)
Main class, representing a complete physical system.
System()
Constructor.
Definition System.cu:51
virtual void setThreadCount(int nThread) override
Explicitly set maximum number of threads per block.
Definition System.cu:62
Periodic fields and crystallography.
Definition CField.cpp:11
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.