PSCF v1.4.0
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 <rp/system/System.h> // base class template
13#include <rpg/system/Types.h> // base class template argument
14
15namespace Pscf {
16namespace Rpg {
17
18 using namespace Util;
19 using namespace Prdc;
20 using namespace Prdc::Cuda;
21
33 template <int D>
34 class System : public Rp::System< D, Types<D> >
35 {
36 public:
37
41 System();
42
46 virtual ~System() = default;
47
48 // Prohibit copying and assignment.
49 System(System<D> const &) = delete;
50 System<D>& operator = (System<D> const &) = delete;
51
52 protected:
53
62 virtual void setThreadCount(int nThread) override;
63
64 };
65
66} // namespace Rpg
67} // namespace Pscf
68
69// Explicit instantiation declarations
70namespace Pscf {
71 namespace Rp {
72 extern template class Rp::System<1, Rpg::Types<1> >;
73 extern template class Rp::System<2, Rpg::Types<1> >;
74 extern template class Rp::System<3, Rpg::Types<1> >;
75 }
76 namespace Rpg {
77 extern template class System<1>;
78 extern template class System<2>;
79 extern template class System<3>;
80 }
81}
82#endif
Base class template for classes that represent a complete system.
Main class, representing a complete physical system.
System()
Constructor.
Definition System.cu:49
virtual void setThreadCount(int nThread) override
Explicitly set maximum number of threads per block.
Definition System.cu:60
virtual ~System()=default
Destructor.
Periodic fields and crystallography.
Definition complex.cpp:11
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.