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

DiscreteFunctionDeriv.h

Go to the documentation of this file.
00001 #ifndef DISCRETEFUNCTIONDERIV_H
00002 #define DISCRETEFUNCTIONDERIV_H
00003 
00004 #include "SundanceDefs.h"
00005 
00006 #include "DiscreteFunction.h"
00007 
00008 
00009 namespace Sundance
00010 {
00011 
00012   using namespace TSF;
00013   using std::string;
00014 
00015   using std::ostream;
00016 
00017   /** \ingroup LowLevelSymbolics
00018    * The derivative of a discrete function
00019    */
00020 
00021   class DiscreteFunctionDeriv : public FuncExprBase
00022     {
00023     public:
00024       /** \name Developer-only methods */
00025       //@{
00026       /** Construct with an Expr (which had better be a DiscreteFunction) and
00027           a multiindex */
00028       DiscreteFunctionDeriv(const Expr& func, const MultiIndex& deriv);
00029       /** */
00030       virtual ~DiscreteFunctionDeriv(){;}
00031 
00032       /** */
00033       virtual void evaluate(const WorkSet& workSet,
00034                             const QuadratureFamily& quadFamily,
00035                             DenseSerialVector& result) const ;
00036       /** */
00037       virtual double norm() const ;
00038       /** */
00039       virtual double maxNorm() const ;
00040       /** */
00041       virtual void getVector(TSFVector& vector) const ;
00042 
00043       /** */
00044       virtual ExprValue average(const Cell& cell) const ;
00045 
00046       /** */
00047       virtual const MultiIndex& multiIndex() const {return d_;}
00048 
00049       // differentiation
00050       /** */
00051       virtual void derivative(const MultiIndex& d, Expr& result) const ;
00052 
00053 
00054       // ordering and RTTI
00055       /** */
00056       virtual bool operator==(const Expr& other) const ;
00057       /** */
00058       virtual bool operator<(const Expr& other) const ;
00059       /** */
00060       virtual int sortPriority() const {return DISCRETEFUNCTIONDERIV;}
00061       /** */
00062       virtual bool isDiscreteFunction() const {return true;}
00063 
00064       // misc
00065       /** */
00066       virtual ExprBase* clone() const ;
00067       /** */
00068       virtual void print(ostream& os, bool paren=false) const ;
00069 
00070       /** */
00071       virtual string toString(bool paren=false) const ;
00072 
00073       /** */
00074       virtual XMLObject toXML() const ;
00075 
00076       // FE support
00077       /** */
00078       virtual void getBasis(BasisFamily& basis) const {basis = f_.getBasis();}
00079 
00080       //@}
00081     private:
00082 
00083       Expr f_;
00084       MultiIndex d_;
00085     };
00086 
00087 }
00088 #endif
00089 
00090 
00091 
00092 

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


Documentation generated by