/[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 3713 by caltinay, Tue Dec 6 04:43:29 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         \brief
95         interpolates data given on source onto target where source and target         copies the integrals of the function defined by arg into integrals.
96         have to be given on the same domain         arg has to be defined on this domain.
97      */      */
98      RIPLEY_DLL_API      RIPLEY_DLL_API
99      virtual void interpolateOnDomain(escript::Data& target, const escript::Data& source) const;      virtual void setToIntegrals(std::vector<double>& integrals, const escript::Data& arg) const;
100    
101        /**
102           \brief
103           returns the number of data points summed across all MPI processes
104        */
105        RIPLEY_DLL_API
106        virtual int getNumDataPointsGlobal() const { return (m_gNE0+1)*(m_gNE1+1); }
107    
108      /**      /**
109         \brief         \brief
# Line 141  public: Line 150  public:
150      RIPLEY_DLL_API      RIPLEY_DLL_API
151      virtual std::pair<double,double> getFirstCoordAndSpacing(dim_t dim) const;      virtual std::pair<double,double> getFirstCoordAndSpacing(dim_t dim) const;
152    
153        /**
154           \brief
155           adds a PDE onto the stiffness matrix mat and rhs
156        */
157        RIPLEY_DLL_API
158        virtual void addPDEToSystem(escript::AbstractSystemMatrix& mat,
159                escript::Data& rhs, const escript::Data& A, const escript::Data& B,
160                const escript::Data& C, const escript::Data& D,
161                const escript::Data& X, const escript::Data& Y,
162                const escript::Data& d, const escript::Data& y,
163                const escript::Data& d_contact, const escript::Data& y_contact,
164                const escript::Data& d_dirac, const escript::Data& y_dirac) const;
165    
166  protected:  protected:
167      virtual dim_t getNumNodes() const { return m_N0*m_N1; }      virtual dim_t getNumNodes() const { return m_N0*m_N1; }
168      virtual dim_t getNumElements() const { return m_NE0*m_NE1; }      virtual dim_t getNumElements() const { return m_NE0*m_NE1; }
169      virtual dim_t getNumFaceElements() const;      virtual dim_t getNumFaceElements() const;
170      virtual void assembleCoordinates(escript::Data& arg) const;      virtual void assembleCoordinates(escript::Data& arg) const;
171      virtual Paso_SystemMatrixPattern* getPattern(bool reducedRowOrder, bool reducedColOrder) const;      virtual Paso_SystemMatrixPattern* getPattern(bool reducedRowOrder, bool reducedColOrder) const;
172        virtual void interpolateNodesOnElements(escript::Data& out,
173                                           escript::Data& in, bool reduced) const;
174        virtual void interpolateNodesOnFaces(escript::Data& out, escript::Data& in,
175                                             bool reduced) const;
176    
177  private:  private:
178      void populateSampleIds();      void populateSampleIds();
# Line 172  private: Line 198  private:
198      /// first node on this rank is at (offset0,offset1) in global mesh      /// first node on this rank is at (offset0,offset1) in global mesh
199      dim_t m_offset0, m_offset1;      dim_t m_offset0, m_offset1;
200    
201        /// faceOffset[i]=-1 if face i is not an external face, otherwise it is
202        /// the index of that face (where i: 0=left, 1=right, 2=bottom, 3=top)
203        IndexVector m_faceOffset;
204    
205      /// vector of sample reference identifiers      /// vector of sample reference identifiers
206      IndexVector m_nodeId;      IndexVector m_nodeId;
207      IndexVector m_elementId;      IndexVector m_elementId;

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

  ViewVC Help
Powered by ViewVC 1.1.26