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 #include "Albany_AbstractDiscretization.hpp" 00008 #include "Albany_DiscretizationFactory.hpp" 00009 00010 #include "Epetra_Comm.h" 00011 00012 #include "Teuchos_RCP.hpp" 00013 #include "Teuchos_ParameterList.hpp" 00014 00015 namespace Albany { 00016 00017 Teuchos::RCP<AbstractDiscretization> 00018 discretizationNew( 00019 const Teuchos::RCP<Teuchos::ParameterList> &topLevelParams, 00020 const Teuchos::RCP<const Epetra_Comm> &epetraComm); 00021 00022 class DiscretizationTransformation { 00023 public: 00024 virtual void operator()(DiscretizationFactory &) = 0; 00025 virtual ~DiscretizationTransformation() {} 00026 }; 00027 00028 Teuchos::RCP<AbstractDiscretization> 00029 modifiedDiscretizationNew( 00030 const Teuchos::RCP<Teuchos::ParameterList> &topLevelParams, 00031 const Teuchos::RCP<const Epetra_Comm> &epetraComm, 00032 DiscretizationTransformation &transformation); 00033 00034 } // namespace Albany