/[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 3702 by caltinay, Fri Dec 2 06:12:32 2011 UTC revision 3750 by caltinay, Fri Dec 23 01:20:34 2011 UTC
# Line 16  Line 16 
16    
17  #include <ripley/RipleyDomain.h>  #include <ripley/RipleyDomain.h>
18    
 struct Paso_Pattern;  
   
19  namespace ripley {  namespace ripley {
20    
21  /**  /**
# Line 92  public: Line 90  public:
90    
91      /**      /**
92         \brief         \brief
93           copies the integrals of the function defined by arg into integrals.
94           arg has to be defined on this domain.
95        */
96        RIPLEY_DLL_API
97        virtual void setToIntegrals(std::vector<double>& integrals, const escript::Data& arg) const;
98    
99        /**
100           \brief
101           copies the surface normals at data points into out. The actual function
102           space to be considered is defined by out. out has to be defined on this
103           domain.
104        */
105        RIPLEY_DLL_API
106        virtual void setToNormal(escript::Data& out) const;
107    
108        /**
109           \brief
110         returns the number of data points summed across all MPI processes         returns the number of data points summed across all MPI processes
111      */      */
112      RIPLEY_DLL_API      RIPLEY_DLL_API
# Line 142  public: Line 157  public:
157      RIPLEY_DLL_API      RIPLEY_DLL_API
158      virtual std::pair<double,double> getFirstCoordAndSpacing(dim_t dim) const;      virtual std::pair<double,double> getFirstCoordAndSpacing(dim_t dim) const;
159    
     /**  
        \brief  
        adds a PDE onto the stiffness matrix mat and rhs  
     */  
     RIPLEY_DLL_API  
     virtual void addPDEToSystem(escript::AbstractSystemMatrix& mat,  
             escript::Data& rhs, const escript::Data& A, const escript::Data& B,  
             const escript::Data& C, const escript::Data& D,  
             const escript::Data& X, const escript::Data& Y,  
             const escript::Data& d, const escript::Data& y,  
             const escript::Data& d_contact, const escript::Data& y_contact,  
             const escript::Data& d_dirac, const escript::Data& y_dirac) const;  
   
160  protected:  protected:
161      virtual dim_t getNumNodes() const { return m_N0*m_N1; }      virtual dim_t getNumNodes() const { return m_N0*m_N1; }
162      virtual dim_t getNumElements() const { return m_NE0*m_NE1; }      virtual dim_t getNumElements() const { return m_NE0*m_NE1; }
163        virtual dim_t getNumDOF() const;
164      virtual dim_t getNumFaceElements() const;      virtual dim_t getNumFaceElements() const;
165      virtual void assembleCoordinates(escript::Data& arg) const;      virtual void assembleCoordinates(escript::Data& arg) const;
166        virtual void assemblePDESingle(Paso_SystemMatrix* mat, escript::Data& rhs,
167                const escript::Data& A, const escript::Data& B,
168                const escript::Data& C, const escript::Data& D,
169                const escript::Data& X, const escript::Data& Y,
170                const escript::Data& d, const escript::Data& y) const;
171        //virtual void assemblePDESystem(Paso_SystemMatrix* mat, escript::Data& rhs,
172        //        const escript::Data& A, const escript::Data& B,
173        //        const escript::Data& C, const escript::Data& D,
174        //        const escript::Data& X, const escript::Data& Y,
175        //        const escript::Data& d, const escript::Data& y) const;
176    
177      virtual Paso_SystemMatrixPattern* getPattern(bool reducedRowOrder, bool reducedColOrder) const;      virtual Paso_SystemMatrixPattern* getPattern(bool reducedRowOrder, bool reducedColOrder) const;
178      virtual void interpolateNodesOnElements(escript::Data& out, escript::Data& in) const;      virtual void interpolateNodesOnElements(escript::Data& out,
179      virtual void interpolateNodesOnFaces(escript::Data& out, escript::Data& in) const;                                         escript::Data& in, bool reduced) const;
180        virtual void interpolateNodesOnFaces(escript::Data& out, escript::Data& in,
181                                             bool reduced) const;
182        virtual void nodesToDOF(escript::Data& out, escript::Data& in) 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 addToSystemMatrix(Paso_SystemMatrix* in, const IndexVector& nodes_Eq,
188                                  Paso_Pattern** rowPattern) const;              dim_t num_Eq, const IndexVector& nodes_Sol, dim_t num_Sol,
189                const std::vector<double>& array) const;
190    
191      /// total number of elements in each dimension      /// total number of elements in each dimension
192      dim_t m_gNE0, m_gNE1;      dim_t m_gNE0, m_gNE1;
# Line 188  private: Line 206  private:
206      /// first node on this rank is at (offset0,offset1) in global mesh      /// first node on this rank is at (offset0,offset1) in global mesh
207      dim_t m_offset0, m_offset1;      dim_t m_offset0, m_offset1;
208    
209        /// faceOffset[i]=-1 if face i is not an external face, otherwise it is
210        /// the index of that face (where i: 0=left, 1=right, 2=bottom, 3=top)
211        IndexVector m_faceOffset;
212    
213      /// vector of sample reference identifiers      /// vector of sample reference identifiers
214        IndexVector m_dofId;
215      IndexVector m_nodeId;      IndexVector m_nodeId;
216      IndexVector m_elementId;      IndexVector m_elementId;
217      IndexVector m_faceId;      IndexVector m_faceId;

Legend:
Removed from v.3702  
changed lines
  Added in v.3750

  ViewVC Help
Powered by ViewVC 1.1.26