00001 #ifndef FIELD_1_H 00002 #define FIELD_1_H 00003 00004 #include "field.h" 00005 #include "interpolator.h" 00006 00007 namespace afl 00008 { 00013 class Field_1 : public Field 00014 { 00016 // typedef Iterator iterator; 00017 00019 public: 00027 Field_1( const std::string& name, ddf::PropertySet* pset = NULL); 00028 00032 virtual ~Field_1(); 00033 00047 virtual void interpolation( interp_t method ); 00048 00054 virtual void addBoundarySegment( const Field* f ); 00055 00056 00062 virtual Value get( const Point& x ) const; 00063 00068 virtual Derivative jacobian( const Point& x ) const; 00069 00077 virtual Point gradient( const Point& x ) const; 00078 00085 virtual data_t divergence( const Point& x ) const; 00086 00093 virtual data_t laplacian( const Point& x ) const; 00094 00104 virtual void set( const Point& x, const Value& value ); 00105 00119 virtual void set( const Point& x, const Value& value, const Derivative& dvalue ); 00120 00127 virtual size_t getDimension( ) const { return 1; } 00128 00135 virtual Point getBoundingBoxMin( ) const; 00136 00143 virtual Point getBoundingBoxMax( ) const; 00144 00148 virtual Field* clone( ) const; 00149 00162 virtual Value integral ( const Simplex& s ) const; 00163 }; 00164 00165 }; 00166 00167 #endif // FIELD_1_H