PSCF v1.4.0
Simulator.cu
1/*
2* PSCF - Polymer Self-Consistent Field
3*
4* Copyright 2015 - 2025, The Regents of the University of Minnesota
5* Distributed under the terms of the GNU General Public License.
6*/
7
8#include "Simulator.h"
9
10#include <rpg/fts/simulator/SimState.h>
11#include <rpg/fts/compressor/Compressor.h>
12#include <rpg/fts/compressor/CompressorFactory.h>
13#include <rpg/fts/perturbation/Perturbation.h>
14#include <rpg/fts/perturbation/PerturbationFactory.h>
15#include <rpg/fts/ramp/Ramp.h>
16#include <rpg/fts/ramp/RampFactory.h>
17
18#include <rpg/system/System.h>
19#include <rpg/solvers/Mixture.h>
20#include <rpg/solvers/Polymer.h>
21#include <rpg/solvers/Solvent.h>
22#include <rpg/field/Domain.h>
23#include <rpg/field/WFields.h>
24#include <rpg/field/CFields.h>
25
26#include <prdc/cuda/RField.h>
27
28#include <pscf/cuda/VecOp.h>
29#include <pscf/cuda/Reduce.h>
30#include <pscf/cuda/CudaVecRandom.h>
31
32#include <rp/fts/simulator/Simulator.tpp> // base class implementation
33
34namespace Pscf {
35namespace Rpg {
36
37 using namespace Util;
38
39 /*
40 * Constructor.
41 */
42 template <int D>
43 Simulator<D>::Simulator(typename Types<D>::System& system)
44 : Base(system, *this)
45 {}
46
47 /*
48 * Initialize the GPU vector random number generator.
49 */
50 template <int D>
53
54}
55}
56
57// Explicit instantiation definitions
58namespace Pscf {
59 namespace Rp {
60 template class Simulator<1, Rpg::Types<1> >;
61 template class Simulator<2, Rpg::Types<2> >;
62 template class Simulator<3, Rpg::Types<3> >;
63 }
64 namespace Rpg {
65 template class Simulator<1>;
66 template class Simulator<2>;
67 template class Simulator<3>;
68 }
69}
Types< D >::VecRandom & vecRandom()
Field theoretic simulator (base class).
Simulator(typename Types< D >::System &system)
Constructor.
Definition Simulator.cu:43
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
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.