/[escript]/trunk/ripley/src/Rectangle.h
ViewVC logotype

Diff of /trunk/ripley/src/Rectangle.h

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

revision 3748 by caltinay, Thu Dec 15 07:36:19 2011 UTC revision 3760 by caltinay, Mon Jan 9 05:21:18 2012 UTC
# Line 16  Line 16 
16    
17  #include <ripley/RipleyDomain.h>  #include <ripley/RipleyDomain.h>
18    
19  struct Paso_Pattern;  struct Paso_Connector;
20    
21  namespace ripley {  namespace ripley {
22    
# Line 109  public: Line 109  public:
109    
110      /**      /**
111         \brief         \brief
112           copies the size of samples into out. The actual function space to be
113           considered is defined by out. out has to be defined on this domain.
114        */
115        RIPLEY_DLL_API
116        virtual void setToSize(escript::Data& out) const;
117    
118        /**
119           \brief
120         returns the number of data points summed across all MPI processes         returns the number of data points summed across all MPI processes
121      */      */
122      RIPLEY_DLL_API      RIPLEY_DLL_API
# Line 163  protected: Line 171  protected:
171      virtual dim_t getNumNodes() const { return m_N0*m_N1; }      virtual dim_t getNumNodes() const { return m_N0*m_N1; }
172      virtual dim_t getNumElements() const { return m_NE0*m_NE1; }      virtual dim_t getNumElements() const { return m_NE0*m_NE1; }
173      virtual dim_t getNumFaceElements() const;      virtual dim_t getNumFaceElements() const;
174        virtual dim_t getNumDOF() const;
175        virtual dim_t insertNeighbourNodes(IndexVector& index, index_t node) const;
176      virtual void assembleCoordinates(escript::Data& arg) const;      virtual void assembleCoordinates(escript::Data& arg) const;
177      virtual void assemblePDESingle(Paso_SystemMatrix* mat, escript::Data& rhs,      virtual void assemblePDESingle(Paso_SystemMatrix* mat, escript::Data& rhs,
178              const escript::Data& A, const escript::Data& B,              const escript::Data& A, const escript::Data& B,
179              const escript::Data& C, const escript::Data& D,              const escript::Data& C, const escript::Data& D,
180              const escript::Data& X, const escript::Data& Y,              const escript::Data& X, const escript::Data& Y,
181              const escript::Data& d, const escript::Data& y) const;              const escript::Data& d, const escript::Data& y) const;
182      //virtual void assemblePDESystem(Paso_SystemMatrix* mat, escript::Data& rhs,      virtual void assemblePDESystem(Paso_SystemMatrix* mat, escript::Data& rhs,
183      //        const escript::Data& A, const escript::Data& B,              const escript::Data& A, const escript::Data& B,
184      //        const escript::Data& C, const escript::Data& D,              const escript::Data& C, const escript::Data& D,
185      //        const escript::Data& X, const escript::Data& Y,              const escript::Data& X, const escript::Data& Y,
186      //        const escript::Data& d, const escript::Data& y) const;              const escript::Data& d, const escript::Data& y) const;
187    
188      virtual Paso_SystemMatrixPattern* getPattern(bool reducedRowOrder, bool reducedColOrder) const;      virtual Paso_SystemMatrixPattern* getPattern(bool reducedRowOrder, bool reducedColOrder) const;
189      virtual void interpolateNodesOnElements(escript::Data& out,      virtual void interpolateNodesOnElements(escript::Data& out,
190                                         escript::Data& in, bool reduced) const;                                         escript::Data& in, bool reduced) const;
191      virtual void interpolateNodesOnFaces(escript::Data& out, escript::Data& in,      virtual void interpolateNodesOnFaces(escript::Data& out, escript::Data& in,
192                                           bool reduced) const;                                           bool reduced) const;
193        virtual void nodesToDOF(escript::Data& out, escript::Data& in) const;
194        virtual void dofToNodes(escript::Data& out, escript::Data& in) const;
195    
196  private:  private:
197      void populateSampleIds();      void populateSampleIds();
198      int insertNeighbours(IndexVector& index, index_t node) const;      void createPattern();
     void generateCouplePatterns(Paso_Pattern** colPattern,  
                                 Paso_Pattern** rowPattern) const;  
     void addToSystemMatrix(Paso_SystemMatrix* in, dim_t NN_Equa,  
             const IndexVector& Nodes_Equa, dim_t num_Equa, dim_t NN_Sol,  
             const IndexVector& Nodes_Sol, dim_t num_Sol,  
             const std::vector<double>& array) const;  
199    
200      /// total number of elements in each dimension      /// total number of elements in each dimension
201      dim_t m_gNE0, m_gNE1;      dim_t m_gNE0, m_gNE1;
# Line 214  private: Line 220  private:
220      IndexVector m_faceOffset;      IndexVector m_faceOffset;
221    
222      /// vector of sample reference identifiers      /// vector of sample reference identifiers
223        IndexVector m_dofId;
224      IndexVector m_nodeId;      IndexVector m_nodeId;
225      IndexVector m_elementId;      IndexVector m_elementId;
226      IndexVector m_faceId;      IndexVector m_faceId;
227    
228      // vector with first node id on each rank      // vector with first node id on each rank
229      IndexVector m_nodeDistribution;      IndexVector m_nodeDistribution;
230    
231        // vector that maps each node to a DOF index (used for the coupler)
232        IndexVector m_dofMap;
233    
234        // Paso connector used by the system matrix and to interpolate DOF to
235        // nodes
236        Paso_Connector* m_connector;
237    
238        // the Paso System Matrix pattern
239        Paso_SystemMatrixPattern* m_pattern;
240  };  };
241    
242  } // end of namespace ripley  } // end of namespace ripley

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

  ViewVC Help
Powered by ViewVC 1.1.26