Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

Field.h

Go to the documentation of this file.
00001 
00005 class Field : public virtual HandleId
00006 
00007 {
00008 protected:
00009   Field (const char* fieldname = NULL);
00010   String fieldname;
00011 
00012   Handle(SpaceTimeScale) xt_scale;    
00013   ScalarScale            field_scale; 
00014 
00015 public:
00016   virtual ~Field ();
00017 
00018   
00019   static  void checkAndSetFieldname (String& fieldname, const char* name);
00020 
00021   void   setFieldname (const char* name);
00022   String getFieldname () const              { return fieldname; }
00023   bool   hasFieldname () const;
00024 
00025   virtual bool     ok () const;
00026   virtual void minmax (NUMT& min, NUMT& max, GridWithPts* grid =NULL) const;
00027 
00028   virtual NUMT valuePt   (const Ptv(real)& x, real t = DUMMY);
00029   virtual NUMT valueFEM  (const FiniteElement& fe, real t = DUMMY);
00030   virtual NUMT valueNode (int node, real t = DUMMY) const;
00031 
00032   virtual NUMT divergencePt   (const Ptv(real)& x, real t = DUMMY);
00033   virtual NUMT divergenceFEM  (const FiniteElement& fe, real t = DUMMY);
00034   virtual NUMT divergenceNode (int node, real t = DUMMY);
00035 
00036   virtual Ptv(NUMT) derivativePt  (const Ptv(real)& x, real t = DUMMY);
00037   virtual void derivativeFEM  (Ptv(NUMT)& d, const FiniteElement& fe, 
00038                                real t = DUMMY);
00039   virtual void derivativeNode (Ptv(NUMT)& d, int node, real t = DUMMY);
00040 
00041   virtual void hessianPt (Ptv(NUMT)&, const Ptv(real)& x, real = DUMMY);
00042   virtual void hessianFEM (Ptv(NUMT)&, const FiniteElement& fe, real = DUMMY);
00043   virtual void hessianNode (Ptv(NUMT)&, int node, real = DUMMY);
00044 
00045   virtual void fill  (NUMT value);
00046   virtual void add   (NUMT value);
00047   virtual void mult  (NUMT value);
00048   virtual void apply (Func(NUMT) f);
00049   virtual void add   (Field& field, int power, NUMT front_factor);
00050 
00051   void attachScale (const SpaceTimeScale& xt_scale);
00052           ScalarScale& getFieldScale ();
00053   const   SpaceTimeScale& getSpaceTimeScale ();
00054   bool hasScaling ();  
00055   bool isScaled ()  { return field_scale.is_scaled; }
00056   virtual Field& scale ();
00057   virtual Field& unscale ();
00058 
00059 
00060   virtual void  print (Os os) const;
00061   
00062   virtual void  attach (Grid& grid);
00063   virtual Grid* getGridBase();
00064   virtual void  loadData (Is is);
00065   virtual void  unloadData (Os os) const;
00066 
00067   CLASS_INFO
00068 
00069   DEF_VIRTUAL_CAST(FieldPiWisConst)
00070   DEF_VIRTUAL_CAST(FieldWithPtValues)
00071   DEF_VIRTUAL_CAST(FieldConst)
00072   DEF_VIRTUAL_CAST(FieldFE)
00073   DEF_VIRTUAL_CAST(FieldFV)
00074   DEF_VIRTUAL_CAST(FieldLattice)
00075   DEF_VIRTUAL_CAST(FieldScatPt)
00076   DEF_VIRTUAL_CAST(FieldFunc)
00077   DEF_VIRTUAL_CAST(FieldSelector)
00078 };
00079 
00080 

Copyright © 2003 inuTech GmbH. All rights reserved.