/[escript]/branches/trilinos_from_5897/escriptcore/src/DataConstant.h
ViewVC logotype

Diff of /branches/trilinos_from_5897/escriptcore/src/DataConstant.h

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

revision 1388 by trankine, Fri Jan 11 07:45:58 2008 UTC revision 2271 by jfenwick, Mon Feb 16 05:08:29 2009 UTC
# Line 1  Line 1 
1    
 /* $Id$ */  
   
2  /*******************************************************  /*******************************************************
3   *  *
4   *           Copyright 2003-2007 by ACceSS MNRF  * Copyright (c) 2003-2008 by University of Queensland
5   *       Copyright 2007 by University of Queensland  * Earth Systems Science Computational Center (ESSCC)
6   *  * http://www.uq.edu.au/esscc
7   *                http://esscc.uq.edu.au  *
8   *        Primary Business: Queensland, Australia  * Primary Business: Queensland, Australia
9   *  Licensed under the Open Software License version 3.0  * Licensed under the Open Software License version 3.0
10   *     http://www.opensource.org/licenses/osl-3.0.php  * http://www.opensource.org/licenses/osl-3.0.php
11   *  *
12   *******************************************************/  *******************************************************/
13    
14    
15  #if !defined escript_DataConstant_20040323_H  #if !defined escript_DataConstant_20040323_H
16  #define escript_DataConstant_20040323_H  #define escript_DataConstant_20040323_H
17  #include "system_dep.h"  #include "system_dep.h"
18    
19  #include "DataAbstract.h"  #include "DataReady.h"
20  #include "DataArrayView.h"  #include "WrappedArray.h"
21    
22  #include <boost/python/numeric.hpp>  #include <boost/python/numeric.hpp>
23    
# Line 33  namespace escript { Line 32  namespace escript {
32     DataConstant stores a single data point which represents the entire     DataConstant stores a single data point which represents the entire
33     function space.     function space.
34  */  */
35  class DataConstant : public DataAbstract  {  class DataConstant : public DataReady  {
36    typedef DataReady parent;
37   public:   public:
38    
39    /**    /**
# Line 48  class DataConstant : public DataAbstract Line 47  class DataConstant : public DataAbstract
47       \param what - Input - A description of what this data object represents.       \param what - Input - A description of what this data object represents.
48    */    */
49    ESCRIPT_DLL_API    ESCRIPT_DLL_API
50    DataConstant(const boost::python::numeric::array& value,    DataConstant(const WrappedArray& value,
51                 const FunctionSpace& what);                 const FunctionSpace& what);
52    
53    
54    /**    /**
55       \brief       \brief
56       Copy constructor. Performs a deep copy.       Copy constructor. Performs a deep copy.
# Line 58  class DataConstant : public DataAbstract Line 58  class DataConstant : public DataAbstract
58    ESCRIPT_DLL_API    ESCRIPT_DLL_API
59    DataConstant(const DataConstant& other);    DataConstant(const DataConstant& other);
60    
   /**  
      \brief  
      Alternative constructor for DataConstant objects.  
   
      Description:  
      Alternative Constructor for DataConstant objects.  
      \param value - Input - Data value for a single point.  
      \param what - Input - A description of what this data object represents.  
   */  
   ESCRIPT_DLL_API  
   DataConstant(const DataArrayView& value,  
                const FunctionSpace& what);  
61    
62    /**    /**
63       \brief       \brief
# Line 82  class DataConstant : public DataAbstract Line 70  class DataConstant : public DataAbstract
70    */    */
71    ESCRIPT_DLL_API    ESCRIPT_DLL_API
72    DataConstant(const DataConstant& other,    DataConstant(const DataConstant& other,
73                 const DataArrayView::RegionType& region);                 const DataTypes::RegionType& region);
74    
75    /**    /**
76       \brief       \brief
# Line 96  class DataConstant : public DataAbstract Line 84  class DataConstant : public DataAbstract
84    */    */
85    ESCRIPT_DLL_API    ESCRIPT_DLL_API
86    DataConstant(const FunctionSpace& what,    DataConstant(const FunctionSpace& what,
87                 const DataArrayView::ShapeType &shape,                 const DataTypes::ShapeType &shape,
88                 const DataArrayView::ValueType &data);                 const DataTypes::ValueType &data);
89    
90    
91      ESCRIPT_DLL_API
92      bool
93      isConstant() const
94      {
95        return true;
96      };
97    
98    
99    /**    /**
100       \brief       \brief
# Line 106  class DataConstant : public DataAbstract Line 103  class DataConstant : public DataAbstract
103    ESCRIPT_DLL_API    ESCRIPT_DLL_API
104    std::string    std::string
105    toString() const;    toString() const;
106    
107      /**
108         \brief Return a deep copy of the current object.
109      */
110      ESCRIPT_DLL_API
111      virtual
112      DataAbstract*
113      deepCopy();
114    
115    
116   /**   /**
117       \brief       \brief
118       dumps the object into a netCDF file       dumps the object into a netCDF file
# Line 135  class DataConstant : public DataAbstract Line 142  class DataConstant : public DataAbstract
142     */     */
143    ESCRIPT_DLL_API    ESCRIPT_DLL_API
144    virtual    virtual
145    DataArrayView::ValueType::size_type    DataTypes::ValueType::size_type
146    getPointOffset(int sampleNo,    getPointOffset(int sampleNo,
147                   int dataPointNo) const;                   int dataPointNo) const;
148    
   /**  
      \brief  
      Return a view into the data for the data point specified.  
      \param sampleNo - Input - sample number.  
      \param dataPointNo - Input - data point number for the sample.  
   */  
149    ESCRIPT_DLL_API    ESCRIPT_DLL_API
150    virtual    virtual
151    DataArrayView    DataTypes::ValueType::size_type
152    getDataPoint(int sampleNo,    getPointOffset(int sampleNo,
153                 int dataPointNo);                   int dataPointNo);
154    
155    /**    /**
156       \brief       \brief
# Line 157  class DataConstant : public DataAbstract Line 158  class DataConstant : public DataAbstract
158    */    */
159    ESCRIPT_DLL_API    ESCRIPT_DLL_API
160    virtual    virtual
161    DataArrayView::ValueType::size_type    DataTypes::ValueType::size_type
162    getLength() const;    getLength() const;
163    
164    /**    /**
# Line 170  class DataConstant : public DataAbstract Line 171  class DataConstant : public DataAbstract
171    ESCRIPT_DLL_API    ESCRIPT_DLL_API
172    virtual    virtual
173    DataAbstract*    DataAbstract*
174    getSlice(const DataArrayView::RegionType& region) const;    getSlice(const DataTypes::RegionType& region) const;
175    
176    /**    /**
177       \brief       \brief
# Line 182  class DataConstant : public DataAbstract Line 183  class DataConstant : public DataAbstract
183    virtual    virtual
184    void    void
185    setSlice(const DataAbstract* value,    setSlice(const DataAbstract* value,
186             const DataArrayView::RegionType& region);             const DataTypes::RegionType& region);
   
   /**  
     \brief  
     Archive the underlying data values to the file referenced  
     by ofstream. A count of the number of values expected to be written  
     is provided as a cross-check.  
187    
     The return value indicates success (0) or otherwise (1).  
   */  
   ESCRIPT_DLL_API  
   int  
   archiveData(std::ofstream& archiveFile,  
               const DataArrayView::ValueType::size_type noValues) const;  
   
   /**  
     \brief  
     Extract the number of values specified by noValues from the file  
     referenced by ifstream to the underlying data structure.  
   
     The return value indicates success (0) or otherwise (1).  
   */  
   ESCRIPT_DLL_API  
   int  
   extractData(std::ifstream& archiveFile,  
               const DataArrayView::ValueType::size_type noValues);  
188    
189    /**    /**
190       \brief       \brief
# Line 292  class DataConstant : public DataAbstract Line 269  class DataConstant : public DataAbstract
269    eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol=1.e-13);    eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol=1.e-13);
270    
271    
272      /**
273         \brief
274         Return a reference to the underlying DataVector.
275      */
276      ESCRIPT_DLL_API
277      DataTypes::ValueType&
278      getVectorRW();
279    
280    
281      ESCRIPT_DLL_API
282      const DataTypes::ValueType&
283      getVectorRO() const;
284    
285   protected:   protected:
286    
287   private:   private:
288    //    //
289    // the actual data    // the actual data
290    DataArrayView::ValueType m_data;    DataTypes::ValueType m_data;
291    
292  };  };
293    

Legend:
Removed from v.1388  
changed lines
  Added in v.2271

  ViewVC Help
Powered by ViewVC 1.1.26