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 00008 #if !defined(AAdapt_AdaptationFracory_hpp) 00009 #define AAdapt_AdaptationFracory_hpp 00010 00011 #include <Teuchos_ParameterList.hpp> 00012 #include <Teuchos_RCP.hpp> 00013 00014 #include "AAdapt_AbstractAdapter.hpp" 00015 00016 namespace AAdapt { 00017 00021 class AdaptationFactory { 00022 public: 00023 00027 AdaptationFactory(const Teuchos::RCP<Teuchos::ParameterList>& adaptParams, 00028 const Teuchos::RCP<ParamLib>& paramLib, 00029 Albany::StateManager& StateMgr, 00030 const Teuchos::RCP<const Epetra_Comm>& comm); 00031 00035 virtual ~AdaptationFactory() {} 00036 00040 virtual Teuchos::RCP<AAdapt::AbstractAdapter> createAdapter(); 00041 00042 private: 00043 00045 AdaptationFactory(const AdaptationFactory&); 00046 00048 AdaptationFactory& operator=(const AdaptationFactory&); 00049 00050 protected: 00051 00055 Teuchos::RCP<Teuchos::ParameterList> adapt_params_; 00056 00058 Teuchos::RCP<ParamLib> param_lib_; 00059 00061 Teuchos::RCP<const Epetra_Comm> epetra_comm_; 00062 00064 Albany::StateManager& state_mgr_; 00065 00066 }; 00067 00068 } 00069 00070 #endif // AdaptationFracory_hpp