/[escript]/trunk/escript/src/DataAbstract.cpp
ViewVC logotype

Diff of /trunk/escript/src/DataAbstract.cpp

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

revision 804 by gross, Thu Aug 10 01:12:16 2006 UTC revision 1796 by jfenwick, Wed Sep 17 01:45:46 2008 UTC
# Line 1  Line 1 
1  // $Id$  
2  /*  /* $Id$ */
3   ************************************************************  
4   *          Copyright 2006 by ACcESS MNRF                   *  /*******************************************************
5   *                                                          *   *
6   *              http://www.access.edu.au                    *   *           Copyright 2003-2007 by ACceSS MNRF
7   *       Primary Business: Queensland, Australia            *   *       Copyright 2007 by University of Queensland
8   *  Licensed under the Open Software License version 3.0    *   *
9   *     http://www.opensource.org/licenses/osl-3.0.php       *   *                http://esscc.uq.edu.au
10   *                                                          *   *        Primary Business: Queensland, Australia
11   ************************************************************   *  Licensed under the Open Software License version 3.0
12  */   *     http://www.opensource.org/licenses/osl-3.0.php
13     *
14     *******************************************************/
15    
16  #include "DataAbstract.h"  #include "DataAbstract.h"
17  #include "DataException.h"  #include "DataException.h"
# Line 18  using namespace std; Line 20  using namespace std;
20    
21  namespace escript {  namespace escript {
22    
23  DataAbstract::DataAbstract(const FunctionSpace& what):  // DataAbstract::DataAbstract(const FunctionSpace& what):
24    //     m_noDataPointsPerSample(what.getNumDPPSample()),
25    //     m_noSamples(what.getNumSamples()),
26    //     m_functionSpace(what),
27    //     m_rank(0)
28    // {
29    //  setShape(DataTypes::ShapeType());
30    // }
31    
32    
33    DataAbstract::DataAbstract(const FunctionSpace& what, const ShapeType& shape):
34      m_noDataPointsPerSample(what.getNumDPPSample()),      m_noDataPointsPerSample(what.getNumDPPSample()),
35      m_noSamples(what.getNumSamples()),      m_noSamples(what.getNumSamples()),
36      m_functionSpace(what)      m_functionSpace(what),
37  {      m_shape(shape),
38  }      m_rank(DataTypes::getRank(shape)),
39        m_novalues(DataTypes::noValues(shape))
40    
 DataAbstract::~DataAbstract()  
41  {  {
42  }  }
43    
44  void  DataAbstract::~DataAbstract()
 DataAbstract::setPointDataView(const DataArrayView& input)  
45  {  {
     m_pointDataView.reset(new DataArrayView(input.getData(),input.getShape(),input.getOffset()));  
46  }  }
47    
48  void  // void
49  DataAbstract::resetPointDataView()  // DataAbstract::setPointDataView(const DataArrayView& input)
50  {  // {
51      m_pointDataView.reset(new DataArrayView());  //     m_pointDataView.reset(new DataArrayView(input.getData(),input.getShape(),input.getOffset()));
52  }  //
53    //     // until we get rid of m_pointDataView, we need to keep m_shape in sync
54    //     setShape(input.getShape());
55    // }
56    
57    // perhaps this should be a constructor parameter
58    // void
59    // DataAbstract::setShape(const DataTypes::ShapeType& s)
60    // {
61    //    m_shape=s;
62    //    m_rank=DataTypes::getRank(s);
63    //    m_novalues=DataTypes::noValues(s);
64    // }
65    
66    
67    // void
68    // DataAbstract::resetPointDataView()
69    // {
70    //     m_pointDataView.reset(new DataArrayView());
71    //     m_shape.clear();
72    //     m_rank=0;
73    //     m_novalues=1;
74    // }
75    
76  void  void
77  DataAbstract::operandCheck(const DataAbstract& right) const  DataAbstract::operandCheck(const DataAbstract& right) const
# Line 61  DataAbstract::operandCheck(const DataAbs Line 93  DataAbstract::operandCheck(const DataAbs
93    
94      //      //
95      // Check the shape of the point data, a rank of 0(scalar) is okay      // Check the shape of the point data, a rank of 0(scalar) is okay
96      if (!((right.getPointDataView().getRank()==0) ||      if (!((right.getRank()==0) ||
97        (right.getPointDataView().getShape()==getPointDataView().getShape())))        (right.getShape()==getShape())))
98        {        {
99          stringstream temp;          stringstream temp;
100      temp << "Error - Right hand argument point data shape: "      temp << "Error - Right hand argument point data shape: "
101           << DataArrayView::shapeToString(right.getPointDataView().getShape())           << DataTypes::shapeToString(right.getShape())
102           << " doesn't match left: "           << " doesn't match left: "
103           << DataArrayView::shapeToString(getPointDataView().getShape());           << DataTypes::shapeToString(getShape());
104      throw DataException(temp.str());      throw DataException(temp.str());
105        }        }
106  }  }
107    
108    void
109    DataAbstract::dump(const std::string fileName) const
110    {
111        throw DataException("Error - DataAbstract:: dump: not implemented.");
112    }
113    
114    
115    
116  DataAbstract::ValueType::value_type*  DataAbstract::ValueType::value_type*
117  DataAbstract::getSampleDataByTag(int tag)  DataAbstract::getSampleDataByTag(int tag)
118  {  {
119      throw DataException("Error - DataAbstract::getSampleDataByTag: Data type does not have tag values.");      throw DataException("Error - DataAbstract::getSampleDataByTag: Data type does not have tag values.");
120  }  }
121    
122  void  // void
123    // DataAbstract::setTaggedValue(int tagKey,
124    //                              const DataArrayView& value)
125    // {
126    //     throw DataException("Error - DataAbstract::setTaggedValue: Data type does not have tag values.");
127    // }
128    
129    void  
130  DataAbstract::setTaggedValue(int tagKey,  DataAbstract::setTaggedValue(int tagKey,
131                               const DataArrayView& value)             const DataTypes::ShapeType& pointshape,
132                   const DataTypes::ValueType& value,
133               int dataOffset)
134  {  {
135      throw DataException("Error - DataAbstract::setTaggedValue: Data type does not have tag values.");      throw DataException("Error - DataAbstract::setTaggedValue: Data type does not have tag values.");
136  }  }
137    
138    
139  int  int
140  DataAbstract::getTagNumber(int dpno)  DataAbstract::getTagNumber(int dpno)
141  {  {
# Line 93  DataAbstract::getTagNumber(int dpno) Line 143  DataAbstract::getTagNumber(int dpno)
143      return (0);      return (0);
144  }  }
145    
 void  
 DataAbstract::setRefValue(int ref,  
                           const DataArray& value)  
 {  
     throw DataException("Error - DataAbstract::setRefValue: Data type cannot be accessed by reference values.");  
 }  
146    
 void  
 DataAbstract::getRefValue(int ref,  
                           DataArray& value)  
 {  
     throw DataException("Error - DataAbstract::getRefValue: Data type cannot be accessed by reference values.");  
 }  
147    
148  int  void
149  DataAbstract::archiveData(ofstream& archiveFile,  DataAbstract::copyAll(const boost::python::numeric::array& value)
                           const ValueType::size_type noValues) const  
150  {  {
151    return 0;      throw DataException("Error - DataAbstract::copying data from numarray objects is not supported.");
152  }  }
153    void
154  int  DataAbstract::copyToDataPoint(const int sampleNo, const int dataPointNo, const double value)
 DataAbstract::extractData(ifstream& archiveFile,  
                           const ValueType::size_type noValues)  
155  {  {
156    return 0;      throw DataException("Error - DataAbstract::copying data from double value to a single data point is not supported.");
157  }  }
   
158  void  void
159  DataAbstract::copyAll(const boost::python::numeric::array& value)  DataAbstract::copyToDataPoint(const int sampleNo, const int dataPointNo, const boost::python::numeric::array& value)
160  {  {
161      throw DataException("Error - DataAbstract::copying data from numarray objects is not supported.");      throw DataException("Error - DataAbstract::copying data from numarray objects to a single data point is not supported.");
162  }  }
163    
164  void  void
# Line 160  void Line 194  void
194  DataAbstract::eigenvalues(DataAbstract* ev)  DataAbstract::eigenvalues(DataAbstract* ev)
195  {  {
196      throw DataException("Error - DataAbstract::eigenvalues is not supported.");      throw DataException("Error - DataAbstract::eigenvalues is not supported.");
   
197  }  }
198  void  void
199  DataAbstract::eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol)  DataAbstract::eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol)
# Line 168  DataAbstract::eigenvalues_and_eigenvecto Line 201  DataAbstract::eigenvalues_and_eigenvecto
201      throw DataException("Error - DataAbstract::eigenvalues_and_eigenvectors is not supported.");      throw DataException("Error - DataAbstract::eigenvalues_and_eigenvectors is not supported.");
202    
203  }  }
204    void
205    DataAbstract::setToZero()
206    {
207        throw DataException("Error - DataAbstract:: cannot set values to zero.");
208    }
209    
210    void
211    DataAbstract::reorderByReferenceIDs(int *reference_ids)
212    {
213    }
214    
215    
216    DataTypes::ValueType&
217    DataAbstract::getVector()
218    {
219       throw DataException("Error - DataAbstract:: does not have a DataVector.");
220    }
221    
222    const DataTypes::ValueType&
223    DataAbstract::getVector() const
224    {
225       throw DataException("Error - DataAbstract:: does not have a DataVector.");
226    }
227    
228    
229    
230    

Legend:
Removed from v.804  
changed lines
  Added in v.1796

  ViewVC Help
Powered by ViewVC 1.1.26