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_AbstractAdapter_hpp) 00009 #define AAdapt_AbstractAdapter_hpp 00010 00011 #include <Teuchos_RCP.hpp> 00012 #include <Teuchos_ParameterList.hpp> 00013 #include <Teuchos_VerboseObject.hpp> 00014 00015 #include <Epetra_Map.h> 00016 #include <Epetra_Vector.h> 00017 00018 #include <NOX_Epetra_AdaptManager.H> 00019 00020 #include <Sacado_ScalarParameterLibrary.hpp> 00021 00022 #include "Albany_StateManager.hpp" 00023 00024 namespace AAdapt { 00025 00029 class AbstractAdapter : public NOX::Epetra::AdaptManager { 00030 00031 public: 00032 00036 AbstractAdapter(const Teuchos::RCP<Teuchos::ParameterList>& params_, 00037 const Teuchos::RCP<ParamLib>& paramLib_, 00038 Albany::StateManager& StateMgr_, 00039 const Teuchos::RCP<const Epetra_Comm>& comm_); 00040 00044 virtual ~AbstractAdapter() {}; 00045 00049 virtual Teuchos::RCP<const Teuchos::ParameterList> getValidAdapterParameters() const { 00050 return getGenericAdapterParams("Generic Adapter List"); 00051 } 00052 00053 protected: 00054 00059 Teuchos::RCP<Teuchos::ParameterList> 00060 getGenericAdapterParams(std::string listname = "AdapterList") const; 00061 00065 Teuchos::RCP<Teuchos::FancyOStream> output_stream_; 00066 00070 Teuchos::RCP<Teuchos::ParameterList> adapt_params_; 00071 00075 Teuchos::RCP<ParamLib> param_lib_; 00076 00080 Albany::StateManager& state_mgr_; 00081 00085 Teuchos::RCP<const Epetra_Comm> epetra_comm_; 00086 00087 private: 00088 00090 AbstractAdapter(); 00091 AbstractAdapter(const AbstractAdapter&); 00092 00094 AbstractAdapter& operator=(const AbstractAdapter&); 00095 }; 00096 } 00097 00098 #endif // AbstractAdaptation_hpp