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

Albany_SolutionValuesResponseFunction.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_SOLUTIONVALUESRESPONSEFUNCTION_HPP
00008 #define ALBANY_SOLUTIONVALUESRESPONSEFUNCTION_HPP
00009 
00010 #include "Albany_SamplingBasedScalarResponseFunction.hpp"
00011 
00012 #include "Albany_Application.hpp"
00013 
00014 #include "Teuchos_ParameterList.hpp"
00015 #include "Teuchos_RCP.hpp"
00016 
00017 class Epetra_Import;
00018 
00019 namespace Albany {
00020 
00021   class SolutionCullingStrategyBase;
00022 
00026   class SolutionValuesResponseFunction :
00027     public SamplingBasedScalarResponseFunction {
00028   public:
00029 
00031     SolutionValuesResponseFunction(
00032       const Teuchos::RCP<const Application>& app,
00033       Teuchos::ParameterList& responseParams);
00034 
00036     virtual unsigned int numResponses() const;
00037 
00039     virtual void setup();
00040 
00042     virtual void
00043     evaluateResponse(const double current_time,
00044          const Epetra_Vector* xdot,
00045          const Epetra_Vector* xdotdot,
00046          const Epetra_Vector& x,
00047          const Teuchos::Array<ParamVec>& p,
00048          Epetra_Vector& g);
00049 
00051     virtual void
00052     evaluateTangent(const double alpha,
00053         const double beta,
00054         const double omega,
00055         const double current_time,
00056         bool sum_derivs,
00057         const Epetra_Vector* xdot,
00058         const Epetra_Vector* xdotdot,
00059         const Epetra_Vector& x,
00060         const Teuchos::Array<ParamVec>& p,
00061         ParamVec* deriv_p,
00062         const Epetra_MultiVector* Vxdot,
00063         const Epetra_MultiVector* Vxdotdot,
00064         const Epetra_MultiVector* Vx,
00065         const Epetra_MultiVector* Vp,
00066         Epetra_Vector* g,
00067         Epetra_MultiVector* gx,
00068         Epetra_MultiVector* gp);
00069 
00071     virtual void
00072     evaluateGradient(const double current_time,
00073          const Epetra_Vector* xdot,
00074          const Epetra_Vector* xdotdot,
00075          const Epetra_Vector& x,
00076          const Teuchos::Array<ParamVec>& p,
00077          ParamVec* deriv_p,
00078          Epetra_Vector* g,
00079          Epetra_MultiVector* dg_dx,
00080          Epetra_MultiVector* dg_dxdot,
00081          Epetra_MultiVector* dg_dxdotdot,
00082          Epetra_MultiVector* dg_dp);
00083 
00084   private:
00086     SolutionValuesResponseFunction(const SolutionValuesResponseFunction&);
00087 
00089     SolutionValuesResponseFunction& operator=(const SolutionValuesResponseFunction&);
00090 
00091     Teuchos::RCP<const Application> app_;
00092 
00093     Teuchos::RCP<SolutionCullingStrategyBase> cullingStrategy_;
00094     Teuchos::RCP<Epetra_Import> solutionImporter_;
00095 
00096     void updateSolutionImporter();
00097   };
00098 
00099 }
00100 
00101 #endif // ALBANY_SOLUTIONVALUESRESPONSEFUNCTION_HPP

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