Go to the documentation of this file.00001
00002
00003
00004
00005
00006 #ifndef MOR_REDUCEDSPACEFACTORY_HPP
00007 #define MOR_REDUCEDSPACEFACTORY_HPP
00008
00009 #include "MOR_ReducedBasisRepository.hpp"
00010
00011 #include "Teuchos_ParameterList.hpp"
00012 #include "Teuchos_RCP.hpp"
00013
00014 #include <string>
00015 #include <map>
00016
00017 class Epetra_Operator;
00018 class Epetra_Map;
00019
00020 namespace MOR {
00021
00022 class ReducedBasisFactory;
00023 class SampleDofListFactory;
00024 class ReducedSpace;
00025
00026 class ReducedSpaceFactory {
00027 public:
00028 ReducedSpaceFactory(
00029 const Teuchos::RCP<ReducedBasisFactory> &basisFactory,
00030 const Teuchos::RCP<SampleDofListFactory> &samplingFactory);
00031
00032 Teuchos::RCP<ReducedSpace> create(const Teuchos::RCP<Teuchos::ParameterList> ¶ms);
00033
00034 Teuchos::RCP<const Epetra_MultiVector> getBasis(const Teuchos::RCP<Teuchos::ParameterList> ¶ms);
00035
00036 Teuchos::RCP<const Epetra_MultiVector> getProjector(const Teuchos::RCP<Teuchos::ParameterList> ¶ms);
00037
00038 Teuchos::RCP<const Epetra_Operator> getSamplingOperator(
00039 const Teuchos::RCP<Teuchos::ParameterList> ¶ms,
00040 const Epetra_Map &stateMap);
00041
00042 private:
00043 ReducedBasisRepository basisRepository_;
00044 Teuchos::RCP<SampleDofListFactory> samplingFactory_;
00045
00046 Teuchos::RCP<const Epetra_Vector> getOrigin(const Teuchos::RCP<Teuchos::ParameterList> ¶ms);
00047 };
00048
00049 }
00050
00051 #endif