Advanced Multi-Physics (AMP)
On-Line Documentation
VectorFactory.h
Go to the documentation of this file.
1#ifndef included_AMP_Vector_VectorFactory
2#define included_AMP_Vector_VectorFactory
3
4#include "AMP/utils/FactoryStrategy.hpp"
5
6
7namespace AMP::IO {
8class RestartManager;
9}
10
11
12namespace AMP::LinearAlgebra {
13
14class Vector;
15
16template<class VECTOR>
17std::unique_ptr<VECTOR> createVectorFromRestart( int64_t fid, AMP::IO::RestartManager *manager )
18{
19 return std::make_unique<VECTOR>( fid, manager );
20}
21
22
24class VectorFactory
25{
26public:
29 {
30 static VectorFactory singletonInstance;
31 return singletonInstance;
32 }
33
35 static std::shared_ptr<Vector> create( int64_t fid, AMP::IO::RestartManager *manager );
36
38 template<class VECTOR>
39 static void registerVector( const std::string &name )
40 {
41 FactoryStrategy<Vector, int64_t, AMP::IO::RestartManager *>::registerFactory(
42 name, createVectorFromRestart<VECTOR> );
43 }
44};
45
46
47} // namespace AMP::LinearAlgebra
48
49#endif
Class to manage reading/writing restart data.
virtual std::string name() const =0
static void registerVector(const std::string &name)
Register a vector with the factory.
static std::shared_ptr< Vector > create(int64_t fid, AMP::IO::RestartManager *manager)
Create the vector from the restart file.
static VectorFactory & getFactory()
get a singleton instance of the factory
std::unique_ptr< VECTOR > createVectorFromRestart(int64_t fid, AMP::IO::RestartManager *manager)



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:41.
Comments on this page