00001 //*****************************************************************// 00002 // Albany 2.0: Copyright 2012 Sandia Corporation // 00003 // This Software is released under the BSD license detailed // 00004 // in the file "license.txt" in the top-level Albany directory // 00005 //*****************************************************************// 00006 00007 #ifndef MOR_DEFAULTSAMPLEDOFLISTPROVIDERS_HPP 00008 #define MOR_DEFAULTSAMPLEDOFLISTPROVIDERS_HPP 00009 00010 #include "MOR_SampleDofListFactory.hpp" 00011 00012 #include "Teuchos_RCP.hpp" 00013 00014 class Epetra_BlockMap; 00015 00016 namespace MOR { 00017 00018 class AllSampleDofListProvider : public SampleDofListFactory::DofListProvider { 00019 public: 00020 explicit AllSampleDofListProvider(const Teuchos::RCP<const Epetra_BlockMap> &map); 00021 virtual Teuchos::Array<int> operator()(const Teuchos::RCP<Teuchos::ParameterList> ¶ms); 00022 00023 private: 00024 Teuchos::RCP<const Epetra_BlockMap> map_; 00025 }; 00026 00027 class InlineSampleDofListProvider : public SampleDofListFactory::DofListProvider { 00028 public: 00029 explicit InlineSampleDofListProvider(const Teuchos::RCP<const Epetra_BlockMap> &map); 00030 virtual Teuchos::Array<int> operator()(const Teuchos::RCP<Teuchos::ParameterList> ¶ms); 00031 00032 private: 00033 Teuchos::RCP<const Epetra_BlockMap> map_; 00034 }; 00035 00036 class XMLFileSampleDofListProvider : public SampleDofListFactory::DofListProvider { 00037 public: 00038 explicit XMLFileSampleDofListProvider(const Teuchos::RCP<const Epetra_BlockMap> &map); 00039 virtual Teuchos::Array<int> operator()(const Teuchos::RCP<Teuchos::ParameterList> ¶ms); 00040 00041 private: 00042 Teuchos::RCP<const Epetra_BlockMap> map_; 00043 }; 00044 00045 Teuchos::RCP<SampleDofListFactory> defaultSampleDofListFactoryNew(const Teuchos::RCP<const Epetra_BlockMap> &map); 00046 00047 } // namespace MOR 00048 00049 #endif /* MOR_DEFAULTSAMPLEDOFLISTPROVIDERS_HPP */