PSCF v1.4.0
rpc/solvers/Propagator.h
1#ifndef RPC_PROPAGATOR_H
2#define RPC_PROPAGATOR_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/solvers/Propagator.h> // base class template
12#include <rpc/system/Types.h> // base class template argument
13
14namespace Pscf {
15namespace Rpc {
16
17 using namespace Util;
18 using namespace Pscf::Prdc;
19
39 template <int D>
40 class Propagator : public Rp::Propagator< D, Types<D> >
41 {
42
43 public:
44
45 // Member functions
46
50 Propagator();
51
56
71 void allocate(int ns, const Mesh<D>& mesh) override;
72
84 void reallocate(int ns) override;
85
86 protected:
87
90
92 using typename RpPropagatorT::PropagatorTmplT;
93
99
100 };
101
102} // namespace Rpc
103} // namespace Pscf
104
105// Explicit instantiation declarations
106namespace Pscf {
107 namespace Rp {
108 extern template class Propagator<1, Rpc::Types<1> >;
109 extern template class Propagator<2, Rpc::Types<2> >;
110 extern template class Propagator<3, Rpc::Types<3> >;
111 }
112 namespace Rpc {
113 extern template class Propagator<1>;
114 extern template class Propagator<2>;
115 extern template class Propagator<3>;
116 }
117}
118#endif
Description of a regular grid of points in a periodic domain.
Definition Mesh.h:61
MDE solver for one direction of one block.
Mesh< D > const & mesh() const
PropagatorTmpl< typename Types< D >::Propagator > PropagatorTmplT
DArray< typename Types< D >::RField > qFields_
MDE solver for one direction of one block.
Rp::Propagator< D, Types< D > > RpPropagatorT
Direct (parent) base class.
void allocate(int ns, const Mesh< D > &mesh) override
Allocate memory used by this propagator.
void reallocate(int ns) override
Reallocate memory used by this propagator.
Periodic fields and crystallography.
Definition complex.cpp:11
Class templates for real-valued periodic fields.
Real periodic fields, SCFT and PS-FTS (CPU).
Definition param_pc.dox:2
PSCF package top-level namespace.