PSCF v1.3
rpg/fts/compressor/CompressorFactory.h
1#ifndef RPG_COMPRESSOR_FACTORY_H
2#define RPG_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 <util/param/Factory.h>
12#include <rpg/fts/compressor/Compressor.h>
13#include <rpg/system/System.h>
14
15#include <string>
16
17namespace Pscf {
18namespace Rpg {
19
20 using namespace Util;
21
27
28 template <int D>
29 class CompressorFactory : public Factory< Compressor<D> >
30 {
31
32 public:
33
36
43 Compressor<D>* factory(const std::string &className) const;
44
46
47 private:
48
50 System<D>* sysPtr_;
51
52 };
53
54 #ifndef RPG_COMPRESSOR_FACTORY_TPP
55 // Suppress implicit instantiation
56 extern template class CompressorFactory<1>;
57 extern template class CompressorFactory<2>;
58 extern template class CompressorFactory<3>;
59 #endif
60
61}
62}
63#endif
Factory for subclasses of Compressor.
CompressorFactory(System< D > &system)
Constructor.
Compressor< D > * factory(const std::string &className) const
Method to create any Compressor supplied with PSCF.
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
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.
Definition param_pc.dox:1