Diffpack Documentation


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

Stencil.h

Go to the documentation of this file.
00001 
00005 class Stencil : public HandleId
00006 
00007 {
00008   friend class StencilUnion;
00009 
00010 protected:
00011 
00012   int  nsd;
00013   int  maxoffset; 
00014   int  node_dof;                    
00015   bool iteration_flag;              
00016 
00017   ArrayGenSimple(StencilWeight) pd; 
00018 
00019   StencilWeight*   wptr;            
00020   StencilWeight    dummy_weight;    
00021                                     
00022   Ptv(int)         itidx;           
00023   Handle(IndexSet) offset_idxset;   
00024                                     
00025 
00026   String info;                      
00027 
00028   
00029   Handle(FieldLattice) apply_field;
00030 
00031   virtual void specialStartIterator ();
00032   virtual void specialIterate ();
00033  
00034 public:
00035 
00036   
00037   Stencil ();
00038   Stencil (int nsd, int maxoffset);
00039   Stencil (const Stencil& p);
00040  ~Stencil () {}
00041 
00042   
00043   bool redim (int nsd, int maxoffset);
00044 
00045           int getNoSpaceDim () const { return nsd; }
00046   virtual int size ();    
00047   virtual int maxoff () const { return maxoffset; }
00048 
00049   
00050   Stencil& operator = (const Stencil & p);
00051 
00052   virtual void fill    (NUMT val);
00053   virtual void fill    (StencilWeightFunc&);
00054   virtual void fillAll (NUMT val);
00055   virtual void fillAll (StencilWeightFunc&);
00056 
00057   StencilWeight& operator () (int r);
00058   StencilWeight& operator () (int r, int s);
00059   StencilWeight& operator () (int r, int s, int t);
00060   StencilWeight& operator () (const Ptv(int)& i);
00061 
00062   const StencilWeight& operator () (int r) const;
00063   const StencilWeight& operator () (int r, int s) const;
00064   const StencilWeight& operator () (int r, int s, int t) const;
00065   const StencilWeight& operator () (const Ptv(int)& i) const;
00066 
00067 
00068 
00069 
00070           void startIterator (const StencilWeight& allocation);
00071 
00072           void stopIterator  ();
00073   virtual bool iterate ();
00074           bool isIterating () { return iteration_flag; }
00075 
00076 
00077 
00078 
00079   virtual void setNodeDof (int d) {node_dof = d;}
00080   virtual void setDefaultNodeDof (int d);
00081   virtual int  getNodeDof () const;
00082 
00083           void attach (const FieldLattice& f) { apply_field.rebind(f); }
00084   virtual NUMT apply  (const Ptv(int)& index);
00085 
00086           void   setDescription (const String& info_);
00087           String getDescription () const;
00088 
00089   virtual IndexSet& getOffset();
00090 
00091 
00092   bool ok () const;
00093   virtual void print (Os os) const;
00094 
00095   CLASS_INFO
00096   VIRTUAL_CAST(Stencil)
00097   
00098   DEF_VIRTUAL_CAST(StencilUnion)
00099 
00100 };
00101 
00102 

Copyright © 2003 inuTech GmbH. All rights reserved.