PSCF v1.4.0
System.cu
1#ifndef RPG_SYSTEM_CU
2#define RPG_SYSTEM_CU
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 "System.h" // class header
12
13#include <rpg/environment/EnvironmentFactory.h>
14#include <rpg/fts/simulator/Simulator.h>
15#include <rpg/fts/simulator/SimulatorFactory.h>
16#include <rpg/fts/compressor/Compressor.h>
17#include <rpg/scft/ScftThermo.h>
18#include <rpg/scft/iterator/Iterator.h>
19#include <rpg/scft/iterator/IteratorFactory.h>
20#include <rpg/scft/sweep/Sweep.h>
21#include <rpg/scft/sweep/SweepFactory.h>
22#include <rpg/solvers/Mixture.h>
23#include <rpg/solvers/MixtureModifier.h>
24#include <rpg/solvers/Polymer.h>
25#include <rpg/solvers/Solvent.h>
26#include <rpg/field/Domain.h>
27#include <rpg/field/CFields.h>
28#include <rpg/field/WFields.h>
29#include <rpg/field/Mask.h>
30
31#include <prdc/cuda/RField.h>
32#include <prdc/cuda/RFieldDft.h>
33#include <prdc/cuda/WaveList.h>
34#include <prdc/environment/Environment.h>
35
36#include <pscf/interaction/Interaction.h>
37#include <pscf/cuda/ThreadArray.h>
38#include <pscf/cuda/ThreadMesh.h>
39
40#include <rp/system/System.tpp> // base class template implementation
41
42namespace Pscf {
43namespace Rpg {
44
45 /*
46 * Constructor.
47 */
48 template <int D>
50 : Rp::System<D, Types<D> >(*this)
51 {
54 }
55
56 /*
57 * Set thread count.
58 */
59 template <int D>
65
66}
67}
68
69// Explicit instantiation definitions
70namespace Pscf {
71 namespace Rp {
72 template class System< 1, Rpg::Types<1> >;
73 template class System< 2, Rpg::Types<2> >;
74 template class System< 3, Rpg::Types<3> >;
75 }
76 namespace Rpg {
77 template class System<1>;
78 template class System<2>;
79 template class System<3>;
80 }
81}
82#endif
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
List of aliases for types used in the Rpg program-level namespace.
void setClassName(const char *className)
Set class name string.
void init()
Initialize static variables in Pscf::ThreadArray namespace.
void setThreadsPerBlock()
Set the number of threads per block to a default value.
void setThreadsPerBlock(int blockSize)
Manually set the block size that should be used by default.
Class templates for real-valued periodic fields.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.