PSCF v1.3.1
rpg/system/Types.h
1#ifndef RPG_TYPES_H
2#define RPG_TYPES_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// Forward declarations
12namespace Pscf {
13 class Interaction;
14 namespace Prdc {
15 class Environment;
16 namespace Cuda {
17 template <int D> class RField;
18 template <int D> class RFieldDft;
19 template <int D> class FFT;
20 template <int D> class RFieldComparison;
21 template <int D> class RFieldDftComparison;
22 template <int D> class WaveList;
23 }
24 }
25 namespace Rpg {
26 template <int D> class System;
27 template <int D> class Mixture;
28 template <int D> class MixtureModifier;
29 template <int D> class Polymer;
30 template <int D> class Solvent;
31 template <int D> class Block;
32 template <int D> class Propagator;
33 template <int D> class Domain;
34 template <int D> class FieldIo;
35 template <int D> class WFields;
36 template <int D> class CFields;
37 template <int D> class Mask;
38 template <int D> class ScftThermo;
39 template <int D> class EnvironmentFactory;
40 template <int D> class Iterator;
41 template <int D> class IteratorFactory;
42 template <int D> class Sweep;
43 template <int D> class SweepFactory;
44 template <int D> class Simulator;
45 template <int D> class SimulatorFactory;
46 }
47}
48
49namespace Pscf {
50namespace Rpg {
51
52 // Namespaces that may be used implicitly
53 using namespace Util;
54 using namespace Prdc;
55
61 template <int D>
62 class Types
63 {
64
65 public:
66
67 using System = Rpg::System<D>;
68
69 using Mixture = Rpg::Mixture<D>;
70 using MixtureModifier = Rpg::MixtureModifier<D>;
71 using Polymer = Rpg::Polymer<D>;
72 using Solvent = Rpg::Solvent<D>;
73 using Block = Rpg::Block<D>;
74 using Propagator = Rpg::Propagator<D>;
75
76 using Interaction = Pscf::Interaction;
77 using Domain = Rpg::Domain<D>;
78 using FieldIo = Rpg::FieldIo<D>;
79 using ScftThermo = Rpg::ScftThermo<D>;
80
81 using WFields = Rpg::WFields<D>;
82 using CFields = Rpg::CFields<D>;
83 using Mask = Rpg::Mask<D>;
84
85 using Environment = Prdc::Environment;
86 using EnvironmentFactory = Rpg::EnvironmentFactory<D>;
87 using Iterator = Rpg::Iterator<D>;
88 using IteratorFactory = Rpg::IteratorFactory<D>;
89 using Sweep = Rpg::Sweep<D>;
90 using SweepFactory = Rpg::SweepFactory<D>;
91 using Simulator = Rpg::Simulator<D>;
92 using SimulatorFactory = Rpg::SimulatorFactory<D>;
93
94 using RField = Prdc::Cuda::RField<D>;
95 using RFieldDft = Prdc::Cuda::RFieldDft<D>;
96 using FFT = Prdc::Cuda::FFT<D>;
97 using RFieldComparison = Prdc::Cuda::RFieldComparison<D>;
98 using RFieldDftComparison = Prdc::Cuda::RFieldDftComparison<D>;
99 using WaveList = Prdc::Cuda::WaveList<D>;
100
101 };
102
103} // namespace Rpg
104} // namespace Pscf
105#endif
Flory-Huggins excess free energy model.
Definition Interaction.h:26
Fourier transform wrapper.
Definition cpu/FFT.h:38
Comparator for fields in real-space (r-grid) format.
Comparator for RFieldDft (k-grid) arrays.
Fourier transform of a real field on an FFT mesh.
Field of real double precision values on an FFT mesh.
Definition cpu/RField.h:29
Class to calculate and store properties of wavevectors.
Fourier transform wrapper for real or complex data.
Definition cuda/FFT.h:39
Comparator for fields in real-space (r-grid) format.
Comparator for RFieldDft (k-grid) arrays, allocated on device.
Discrete Fourier Transform (DFT) of a real field, allocated on a GPU.
Field of real values on a regular mesh, allocated on a GPU device.
Definition cuda/RField.h:32
Class to calculate and store properties of wavevectors.
Base class mask and external field generator for variable-cell SCFT.
Definition Environment.h:59
Block within a branched polymer.
A list of c fields stored in both basis and r-grid format.
Spatial domain for a periodic structure with real fields, on a GPU.
Factory for subclasses of Environment.
File input/output operations and format conversions for fields.
Factory for subclasses of Iterator.
Base class for iterative solvers for SCF equations.
A field to which the total monomer concentration is constrained.
Parameter modifier for an associated Mixture.
Solver and descriptor for a mixture of polymers and solvents.
Descriptor and solver for one polymer species.
MDE solver for one-direction of one block.
Computes SCFT free energies.
Factory for subclasses of Simulator.
Field theoretic simulator (base class).
Solver and descriptor for a solvent species.
Default Factory for subclasses of Sweep.
Solve a sequence of problems along a line in parameter space.
Main class, representing a complete physical system.
List of aliases for types used the in Rpg namespace.
A container of fields stored in both basis and r-grid format.
Fields, FFTs, and utilities for periodic boundary conditions (CUDA)
Definition Reduce.cpp:14
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