/[escript]/branches/ripleygmg_from_3668/ripley/src/Rectangle.h
ViewVC logotype

Diff of /branches/ripleygmg_from_3668/ripley/src/Rectangle.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3699 by caltinay, Thu Dec 1 22:59:42 2011 UTC revision 3748 by caltinay, Thu Dec 15 07:36:19 2011 UTC
# Line 83  public: Line 83  public:
83    
84      /**      /**
85         \brief         \brief
86         returns the number of data points summed across all MPI processes         copies the gradient of 'in' into 'out'. The actual function space to be
87           considered for the gradient is defined by 'in'. Both arguments have to
88           be defined on this domain.
89      */      */
90      RIPLEY_DLL_API      RIPLEY_DLL_API
91      virtual int getNumDataPointsGlobal() const { return (m_gNE0+1)*(m_gNE1+1); }      virtual void setToGradient(escript::Data& out, const escript::Data& in) const;
92    
93        /**
94           \brief
95           copies the integrals of the function defined by arg into integrals.
96           arg has to be defined on this domain.
97        */
98        RIPLEY_DLL_API
99        virtual void setToIntegrals(std::vector<double>& integrals, const escript::Data& arg) const;
100    
101        /**
102           \brief
103           copies the surface normals at data points into out. The actual function
104           space to be considered is defined by out. out has to be defined on this
105           domain.
106        */
107        RIPLEY_DLL_API
108        virtual void setToNormal(escript::Data& out) const;
109    
110      /**      /**
111         \brief         \brief
112         interpolates data given on source onto target where source and target         returns the number of data points summed across all MPI processes
        have to be given on the same domain  
113      */      */
114      RIPLEY_DLL_API      RIPLEY_DLL_API
115      virtual void interpolateOnDomain(escript::Data& target, const escript::Data& source) const;      virtual int getNumDataPointsGlobal() const { return (m_gNE0+1)*(m_gNE1+1); }
116    
117      /**      /**
118         \brief         \brief
# Line 146  protected: Line 164  protected:
164      virtual dim_t getNumElements() const { return m_NE0*m_NE1; }      virtual dim_t getNumElements() const { return m_NE0*m_NE1; }
165      virtual dim_t getNumFaceElements() const;      virtual dim_t getNumFaceElements() const;
166      virtual void assembleCoordinates(escript::Data& arg) const;      virtual void assembleCoordinates(escript::Data& arg) const;
167        virtual void assemblePDESingle(Paso_SystemMatrix* mat, escript::Data& rhs,
168                const escript::Data& A, const escript::Data& B,
169                const escript::Data& C, const escript::Data& D,
170                const escript::Data& X, const escript::Data& Y,
171                const escript::Data& d, const escript::Data& y) const;
172        //virtual void assemblePDESystem(Paso_SystemMatrix* mat, escript::Data& rhs,
173        //        const escript::Data& A, const escript::Data& B,
174        //        const escript::Data& C, const escript::Data& D,
175        //        const escript::Data& X, const escript::Data& Y,
176        //        const escript::Data& d, const escript::Data& y) const;
177    
178      virtual Paso_SystemMatrixPattern* getPattern(bool reducedRowOrder, bool reducedColOrder) const;      virtual Paso_SystemMatrixPattern* getPattern(bool reducedRowOrder, bool reducedColOrder) const;
179        virtual void interpolateNodesOnElements(escript::Data& out,
180                                           escript::Data& in, bool reduced) const;
181        virtual void interpolateNodesOnFaces(escript::Data& out, escript::Data& in,
182                                             bool reduced) const;
183    
184  private:  private:
185      void populateSampleIds();      void populateSampleIds();
186      int insertNeighbours(IndexVector& index, index_t node) const;      int insertNeighbours(IndexVector& index, index_t node) const;
187      void generateCouplePatterns(Paso_Pattern** colPattern,      void generateCouplePatterns(Paso_Pattern** colPattern,
188                                  Paso_Pattern** rowPattern) const;                                  Paso_Pattern** rowPattern) const;
189        void addToSystemMatrix(Paso_SystemMatrix* in, dim_t NN_Equa,
190                const IndexVector& Nodes_Equa, dim_t num_Equa, dim_t NN_Sol,
191                const IndexVector& Nodes_Sol, dim_t num_Sol,
192                const std::vector<double>& array) const;
193    
194      /// total number of elements in each dimension      /// total number of elements in each dimension
195      dim_t m_gNE0, m_gNE1;      dim_t m_gNE0, m_gNE1;
# Line 172  private: Line 209  private:
209      /// first node on this rank is at (offset0,offset1) in global mesh      /// first node on this rank is at (offset0,offset1) in global mesh
210      dim_t m_offset0, m_offset1;      dim_t m_offset0, m_offset1;
211    
212        /// faceOffset[i]=-1 if face i is not an external face, otherwise it is
213        /// the index of that face (where i: 0=left, 1=right, 2=bottom, 3=top)
214        IndexVector m_faceOffset;
215    
216      /// vector of sample reference identifiers      /// vector of sample reference identifiers
217      IndexVector m_nodeId;      IndexVector m_nodeId;
218      IndexVector m_elementId;      IndexVector m_elementId;

Legend:
Removed from v.3699  
changed lines
  Added in v.3748

  ViewVC Help
Powered by ViewVC 1.1.26