/[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 3711 by caltinay, Tue Dec 6 00:24:43 2011 UTC revision 3755 by caltinay, Thu Jan 5 06:51:31 2012 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,      virtual void interpolateNodesOnElements(escript::Data& out,
179                                         escript::Data& in, bool reduced) const;                                         escript::Data& in, bool reduced) const;
180      virtual void interpolateNodesOnFaces(escript::Data& out, escript::Data& in,      virtual void interpolateNodesOnFaces(escript::Data& out, escript::Data& in,
181                                           bool reduced) const;                                           bool reduced) const;
182        virtual void nodesToDOF(escript::Data& out, escript::Data& in) const;
183        virtual void dofToNodes(escript::Data& out, escript::Data& in) const;
184    
185  private:  private:
186      void populateSampleIds();      void populateSampleIds();
187      int insertNeighbours(IndexVector& index, index_t node) const;      int insertNeighbours(IndexVector& index, index_t node) const;
188      void generateCouplePatterns(Paso_Pattern** colPattern,      void addToSystemMatrix(Paso_SystemMatrix* in, const IndexVector& nodes_Eq,
189                                  Paso_Pattern** rowPattern) const;              dim_t num_Eq, const IndexVector& nodes_Sol, dim_t num_Sol,
190                const std::vector<double>& array) const;
191    
192      /// total number of elements in each dimension      /// total number of elements in each dimension
193      dim_t m_gNE0, m_gNE1;      dim_t m_gNE0, m_gNE1;
# Line 195  private: Line 212  private:
212      IndexVector m_faceOffset;      IndexVector m_faceOffset;
213    
214      /// vector of sample reference identifiers      /// vector of sample reference identifiers
215        IndexVector m_dofId;
216      IndexVector m_nodeId;      IndexVector m_nodeId;
217      IndexVector m_elementId;      IndexVector m_elementId;
218      IndexVector m_faceId;      IndexVector m_faceId;
219    
220      // vector with first node id on each rank      // vector with first node id on each rank
221      IndexVector m_nodeDistribution;      IndexVector m_nodeDistribution;
222    
223        // vector that maps each node to a DOF index for coupling
224        mutable IndexVector m_dofMap;
225  };  };
226    
227  } // end of namespace ripley  } // end of namespace ripley

Legend:
Removed from v.3711  
changed lines
  Added in v.3755

  ViewVC Help
Powered by ViewVC 1.1.26