Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Examples  

UnknownFunction.h

Go to the documentation of this file.
00001 #ifndef UNKNOWNFEFUNC_H
00002 #define UNKNOWNFEFUNC_H
00003 
00004 #include "SundanceDefs.h"
00005 
00006 #include "SymbolicFunction.h"
00007 
00008 
00009 namespace Sundance
00010 {
00011 
00012   using namespace TSF;
00013   using std::string;
00014 
00015   using std::ostream;
00016 
00017   /**
00018    * \ingroup UserLevelSymbolics
00019    * Expression subtype that can represent an unknown function in a
00020    * finite-element problem
00021    */
00022 
00023   class UnknownFunction : public SymbolicFunction
00024     {
00025     public:
00026       /** \name User-level methods */
00027       //@{
00028       /** Construct with a basis */
00029       UnknownFunction(const BasisFamily& basis);
00030       /** Construct with a basis and a name */
00031       UnknownFunction(const BasisFamily& basis, const string& name);
00032       //@}
00033       virtual ~UnknownFunction(){;}
00034 
00035       /** \name Developer-only methods */
00036       //@{
00037       /** identify self as an unknown */
00038       virtual bool isUnknown() const {return true;}
00039 
00040       /** */
00041       virtual void evaluate(const WorkSet& workSet,
00042                             const QuadratureFamily& quadFamily,
00043                             DenseSerialVector& result) const ;
00044 
00045       /** */
00046       virtual int sortPriority() const {return UNKNOWNFUNCTION;}
00047 
00048       /** */
00049       virtual ExprBase* clone() const ;
00050 
00051       /** */
00052       virtual void getVariation(Expr& result) const ;
00053 
00054       /** */
00055       virtual void getDifferential(Expr& result) const ;
00056 
00057       /** */
00058       virtual void setVariation(const Expr& v) ;
00059 
00060       /** */
00061       virtual void setDifferential(const Expr& du) ;
00062 
00063       /** */
00064       virtual void setFunctionValue(const Expr& u0) ;
00065       //@}
00066 
00067     protected:
00068       mutable Expr value_;
00069       mutable Expr differential_;
00070       mutable Expr variation_;
00071       mutable bool hasDifferential_;
00072       mutable bool hasVariation_;
00073       //      mutable ExprHashtable sensitivity_;
00074     };
00075 
00076 
00077 }
00078 #endif

Contact:
Kevin Long (krlong@ca.sandia.gov)


Documentation generated by