00001 00005 class StencilUnion : public Stencil 00006 00007 { 00008 protected: 00009 00010 VecSimplest(Handle(Stencil)) table; 00011 VecSimplest(NUMT) scaling_factors; 00012 VecSimple(NUMT) scaling_contrib; 00013 00014 00015 00016 Handle(Stencil_prm) spm; 00017 00018 int curr_it_stencil; 00019 int num_stencils; 00020 00021 virtual void specialStartIterator (); 00022 00023 public: 00024 StencilUnion (); 00025 StencilUnion (int nstencils); 00026 StencilUnion (const StencilUnion& s); 00027 ~StencilUnion (); 00028 00029 bool redim (int nstencils); 00030 00031 StencilUnion& operator= (const StencilUnion & p); 00032 00033 virtual int size (); 00034 virtual int maxoff () const; 00035 virtual void setNodeDof (int d); 00036 virtual void setDefaultNodeDof (int d); 00037 00038 Stencil& getStencil (int i); 00039 const Stencil& getStencil (int i) const; 00040 00041 void insert (const Stencil& stencil, bool allocate=true); 00042 void insert (const Stencil& stencil, NUMT scaling_factor, 00043 bool allocate=true); 00044 virtual NUMT apply (const Ptv(int)& index); 00045 NUMT getScalingFactor (int i) const { return scaling_factors(i); } 00046 int getNumStencils () const { return num_stencils; } 00047 virtual int getNodeDof () const; 00048 const VecSimple(NUMT)& getScalingContrib () const {return scaling_contrib;} 00049 00050 virtual void specialIterate (); 00051 00052 virtual void print (Os os) const; 00053 virtual void scan (Is is); 00054 00055 00056 00057 CLASS_INFO 00058 VIRTUAL_CAST(StencilUnion) 00059 00060 }; 00061 00062