PSCF v1.3
rpc/fts/compressor/CompressorFactory.h
1#ifndef RPC_COMPRESSOR_FACTORY_H
2#define RPC_COMPRESSOR_FACTORY_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 <rpc/fts/compressor/Compressor.h>
12#include <util/param/Factory.h>
13
14#include <string>
15
16namespace Pscf {
17namespace Rpc {
18
19 template <int D> class System;
20
21 using namespace Util;
22
28
29 template <int D>
30 class CompressorFactory : public Factory< Compressor<D> >
31 {
32
33 public:
34
37
44 Compressor<D>* factory(const std::string &className) const;
45
47
48 private:
49
51 System<D>* sysPtr_;
52
53 };
54
55 #ifndef RPC_COMPRESSOR_FACTORY_TPP
56 // Suppress implicit instantiation
57 extern template class CompressorFactory<1>;
58 extern template class CompressorFactory<2>;
59 extern template class CompressorFactory<3>;
60 #endif
61
62}
63}
64#endif
Factory for subclasses of Compressor.
Compressor< D > * factory(const std::string &className) const
Method to create any Compressor supplied with PSCF.
CompressorFactory(System< D > &system)
Constructor.
Base class for iterators that impose incompressibility.
Main class, representing one complete system.
Compressor< D > * trySubfactories(const std::string &className) const
Definition Factory.h:425
Real periodic fields, SCFT and PS-FTS (CPU).
Definition param_pc.dox:2
PSCF package top-level namespace.
Definition param_pc.dox:1