• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

MOR_ReducedOperatorFactory.hpp

Go to the documentation of this file.
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 #ifndef MOR_REDUCEDOPERATORFACTOR_HPP
00007 #define MOR_REDUCEDOPERATORFACTOR_HPP
00008 
00009 class Epetra_MultiVector;
00010 class Epetra_Operator;
00011 class Epetra_CrsMatrix;
00012 
00013 #include "Teuchos_RCP.hpp"
00014 
00015 namespace MOR {
00016 
00017 class ReducedOperatorFactory {
00018 public:
00019   ReducedOperatorFactory();
00020 
00021   virtual bool fullJacobianRequired(bool residualRequested, bool jacobianRequested) const = 0;
00022 
00023   virtual const Epetra_MultiVector &leftProjection(const Epetra_MultiVector &fullVector,
00024                                                    Epetra_MultiVector &result) const = 0;
00025 
00026   virtual Teuchos::RCP<Epetra_CrsMatrix> reducedJacobianNew() = 0;
00027   virtual const Epetra_CrsMatrix &reducedJacobian(Epetra_CrsMatrix &result) const = 0;
00028 
00029   virtual void fullJacobianIs(const Epetra_Operator &op) = 0;
00030 
00031   virtual ~ReducedOperatorFactory();
00032 
00033 private:
00034   // Disallow copy and assignment
00035   ReducedOperatorFactory(const ReducedOperatorFactory &);
00036   ReducedOperatorFactory &operator=(const ReducedOperatorFactory &);
00037 };
00038 
00039 inline
00040 ReducedOperatorFactory::ReducedOperatorFactory() {
00041   // Nothing to do
00042 }
00043 
00044 inline
00045 ReducedOperatorFactory::~ReducedOperatorFactory() {
00046   // Nothing to do
00047 }
00048 
00049 } // namespace MOR
00050 
00051 #endif /* MOR_REDUCEDOPERATORFACTOR_HPP */

Generated on Wed Mar 26 2014 18:36:40 for Albany: a Trilinos-based PDE code by  doxygen 1.7.1