PSCF v1.3.1
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/solvers/Mixture.h> // member
15#include <rpg/field/Domain.h> // member
16#include <rpg/field/WFields.h> // member
17#include <rpg/field/CFields.h> // member
18#include <rpg/field/Mask.h> // member
19
20namespace Pscf {
21namespace Rpg {
22
23 using namespace Util;
24 using namespace Prdc;
25 using namespace Prdc::Cuda;
26
36 template <int D>
37 class System : public SystemTmpl< D, Types<D> >
38 {
39 public:
40
44 System();
45
46 System(System<D> const &) = delete;
47 System<D>& operator = (System<D> const &) = delete;
48
49 protected:
50
59 virtual void setThreadCount(int nThread) override;
60
61 };
62
63 // Explicit instantiation declarations
64 extern template class System<1>;
65 extern template class System<2>;
66 extern template class System<3>;
67
68} // namespace Rpg
69namespace Prdc {
70
71 // Explicit instantiation declarations of base class
72 extern template class SystemTmpl<1, Rpg::Types<1> >;
73 extern template class SystemTmpl<2, Rpg::Types<1> >;
74 extern template class SystemTmpl<3, Rpg::Types<1> >;
75
76} // namespace Prdc
77} // namespace Pscf
78#endif
SystemTmpl(typename Types< D >::System &system)
Main class, representing a complete physical system.
System()
Constructor.
Definition System.cu:48
virtual void setThreadCount(int nThread) override
Explicitly set maximum number of threads per block.
Definition System.cu:59
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