PSCF v1.3.1
rpc/system/Types.h
1#ifndef RPC_TYPES_H
2#define RPC_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 Cpu {
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 Rpc {
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 Rpc {
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 = Rpc::System<D>;
68
69 using Mixture = Rpc::Mixture<D>;
70 using MixtureModifier = Rpc::MixtureModifier<D>;
71 using Polymer = Rpc::Polymer<D>;
72 using Solvent = Rpc::Solvent<D>;
73 using Block = Rpc::Block<D>;
74 using Propagator = Rpc::Propagator<D>;
75
76 using Interaction = Pscf::Interaction;
77 using Domain = Rpc::Domain<D>;
78 using FieldIo = Rpc::FieldIo<D>;
79 using ScftThermo = Rpc::ScftThermo<D>;
80
81 using WFields = Rpc::WFields<D>;
82 using CFields = Rpc::CFields<D>;
83 using Mask = Rpc::Mask<D>;
84
85 using Environment = Prdc::Environment;
86 using EnvironmentFactory = Rpc::EnvironmentFactory<D>;
87 using Iterator = Rpc::Iterator<D>;
88 using IteratorFactory = Rpc::IteratorFactory<D>;
89 using Sweep = Rpc::Sweep<D>;
90 using SweepFactory = Rpc::SweepFactory<D>;
91 using Simulator = Rpc::Simulator<D>;
92 using SimulatorFactory = Rpc::SimulatorFactory<D>;
93
94 using RField = Prdc::Cpu::RField<D>;
95 using RFieldDft = Prdc::Cpu::RFieldDft<D>;
96 using FFT = Prdc::Cpu::FFT<D>;
97 using RFieldComparison = Prdc::Cpu::RFieldComparison<D>;
98 using RFieldDftComparison = Prdc::Cpu::RFieldDftComparison<D>;
99 using WaveList = Prdc::Cpu::WaveList<D>;
100
101 };
102
103} // namespace Rpc
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.
Base class mask and external field generator for variable-cell SCFT.
Definition Environment.h:59
Block within a linear or branched block 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 CPU.
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 density 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 SCFT problems along a line in parameter space.
Main class, representing a complete physical system.
List of aliases for types used the in Rpc namespace.
A container of fields stored in both basis and r-grid format.
Fields and FFTs for periodic boundary conditions (CPU)
Definition CField.cpp:12
Periodic fields and crystallography.
Definition CField.cpp:11
Real periodic fields, SCFT and PS-FTS (CPU).
Definition param_pc.dox:2
PSCF package top-level namespace.
Definition param_pc.dox:1