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

ParameterExpr.h

Go to the documentation of this file.
00001 #ifndef PARAMETEREXPR_H
00002 #define PARAMETEREXPR_H
00003 
00004 #include "SundanceDefs.h"
00005 
00006 #include "Expr.h"
00007 
00008 
00009 namespace Sundance
00010 {
00011 
00012   using namespace TSF;
00013   using std::string;
00014 
00015   using std::ostream;
00016 
00017   /** \ingroup UserLevelSymbolics
00018    * An expression that represents a modifiable design parameter.
00019    */
00020   class ParameterExpr : public ExprBase
00021     {
00022     public:
00023       /** \name User-level methods */
00024       //@{
00025       /** Construct with a name and a value */
00026       ParameterExpr(const double& value, const string& name = "");
00027       //@}
00028 
00029       /** \name Developer-only methods */
00030       //@{
00031       //* no detailed doc for low-level methods */
00032         virtual ~ParameterExpr(){;}
00033 
00034         // evaluation
00035         /** */
00036         virtual double value() const ;
00037         /** */
00038         virtual void setParameterValue(const double& value);
00039 
00040         /** */
00041         virtual void evaluate(const WorkSet& workSet,
00042                               const QuadratureFamily& quadFamily,
00043                               DenseSerialVector& result) const ;
00044 
00045         /** */
00046         virtual void evaluate(const AbstractFunctionSpace& targetSpace,
00047                               const TSFArray<Cell>& cells,
00048                               const TSFArray<int>& cellIndices,
00049                               const TSFArray<int>& dofIndices,
00050                               const TSFArray<Point>& x,
00051                               DenseSerialVector& values) const ;
00052 
00053         /** */
00054         virtual ExprValue average(const Cell& cell) const ;
00055 
00056         // differentiation
00057         /** */
00058         virtual void derivative(const MultiIndex& d, Expr& result) const ;
00059 
00060         // ordering support
00061         /** */
00062         virtual bool operator==(const Expr& other) const ;
00063         /** */
00064         virtual bool operator<(const Expr& other) const ;
00065         /** */
00066         virtual int sortPriority() const {return PARAMETEREXPR;}
00067 
00068         // RTTI
00069         /** */
00070         virtual bool isParameterExpr() const {return true;}
00071 
00072         /** */
00073         virtual bool isSpatiallyConstant() const {return true;}
00074 
00075         // miscellany
00076         /** */
00077         virtual ExprBase* clone() const ;
00078         /** */
00079         virtual void print(ostream& os, bool paren=false) const ;
00080         /** */
00081         virtual XMLObject toXML() const ;
00082         /** */
00083         virtual const string& name() const ;
00084         //@}
00085     private:
00086         double value_;
00087         string name_;
00088         static int topID_;
00089     };
00090 
00091 }
00092 #endif

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


Documentation generated by