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

Albany_AggregateScalarResponseFunction.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 
00007 #ifndef ALBANY_AGGREGATE_SCALAR_RESPONSE_FUNCTION_HPP
00008 #define ALBANY_AGGREGATE_SCALAR_RESPONSE_FUNCTION_HPP
00009 
00010 #include "Albany_SamplingBasedScalarResponseFunction.hpp"
00011 #include "Teuchos_Array.hpp"
00012 
00013 namespace Albany {
00014 
00019   class AggregateScalarResponseFunction : 
00020     public SamplingBasedScalarResponseFunction {
00021   public:
00022   
00024     AggregateScalarResponseFunction(
00025       const Teuchos::RCP<const Epetra_Comm>& comm,
00026       const Teuchos::Array< Teuchos::RCP<ScalarResponseFunction> >& responses);
00027 
00029     virtual void setup();
00030 
00032     virtual ~AggregateScalarResponseFunction();
00033 
00035     virtual unsigned int numResponses() const;
00036 
00038     virtual void 
00039     evaluateResponse(const double current_time,
00040          const Epetra_Vector* xdot,
00041          const Epetra_Vector* xdotdot,
00042          const Epetra_Vector& x,
00043          const Teuchos::Array<ParamVec>& p,
00044          Epetra_Vector& g);
00045 
00047     virtual void 
00048     evaluateTangent(const double alpha, 
00049         const double beta,
00050         const double omega,
00051         const double current_time,
00052         bool sum_derivs,
00053         const Epetra_Vector* xdot,
00054         const Epetra_Vector* xdotdot,
00055         const Epetra_Vector& x,
00056         const Teuchos::Array<ParamVec>& p,
00057         ParamVec* deriv_p,
00058         const Epetra_MultiVector* Vxdot,
00059         const Epetra_MultiVector* Vxdotdot,
00060         const Epetra_MultiVector* Vx,
00061         const Epetra_MultiVector* Vp,
00062         Epetra_Vector* g,
00063         Epetra_MultiVector* gx,
00064         Epetra_MultiVector* gp);
00065 
00067     virtual void 
00068     evaluateGradient(const double current_time,
00069          const Epetra_Vector* xdot,
00070          const Epetra_Vector* xdotdot,
00071          const Epetra_Vector& x,
00072          const Teuchos::Array<ParamVec>& p,
00073          ParamVec* deriv_p,
00074          Epetra_Vector* g,
00075          Epetra_MultiVector* dg_dx,
00076          Epetra_MultiVector* dg_dxdot,
00077          Epetra_MultiVector* dg_dxdotdot,
00078          Epetra_MultiVector* dg_dp);
00079 
00080   private:
00081 
00083     AggregateScalarResponseFunction(const AggregateScalarResponseFunction&);
00084     
00086     AggregateScalarResponseFunction& operator=(const AggregateScalarResponseFunction&);
00087 
00088   protected:
00089 
00091     Teuchos::Array< Teuchos::RCP<ScalarResponseFunction> > responses;
00092 
00093   };
00094 
00095 }
00096 
00097 #endif // ALBANY_AGGREGATE_SCALAR_RESPONSE_FUNCTION_HPP

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