PSCF v1.4.0
rpg/fts/simulator/Simulator.h
1#ifndef RPG_SIMULATOR_H
2#define RPG_SIMULATOR_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 <rp/fts/simulator/Simulator.h> // base class template
12#include <rpg/system/Types.h> // template argument
13#include <rpg/fts/simulator/SimState.h> // member
14#include <prdc/cuda/RField.h> // member (template arg)
15
16namespace Pscf {
17namespace Rpg {
18
19 using namespace Util;
20 using namespace Prdc;
21
33 template <int D>
34 class Simulator : public Pscf::Rp::Simulator<D, Types<D> >
35 {
36 public:
37
40
46 Simulator(typename Types<D>::System& system);
47
51 virtual ~Simulator() = default;
52
53 protected:
54
59
60 };
61
62} // namespace Rpg
63} // namespace Pscf
64
65// Explicit instantiation declarations
66namespace Pscf {
67 namespace Rp {
68 extern template class Simulator<1, Rpg::Types<1> >;
69 extern template class Simulator<2, Rpg::Types<2> >;
70 extern template class Simulator<3, Rpg::Types<3> >;
71 }
72 namespace Rpg {
73 extern template class Simulator<1>;
74 extern template class Simulator<2>;
75 extern template class Simulator<3>;
76 }
77}
78#endif
Base class for field theoretic PS-FTS simulator.
Field theoretic simulator (base class).
Simulator(typename Types< D >::System &system)
Constructor.
Definition Simulator.cu:43
virtual ~Simulator()=default
Destructor.
Pscf::Rp::Simulator< D, Types< D > > Base
Alias for direct base class.
void initializeVecRandom()
Initialize seed for vector random number generator.
Definition Simulator.cu:51
Periodic fields and crystallography.
Definition complex.cpp:11
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.