/[escript]/trunk/escript/src/DataExpanded.h
ViewVC logotype

Diff of /trunk/escript/src/DataExpanded.h

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

trunk/esys2/escript/src/Data/DataExpanded.h revision 126 by jgs, Fri Jul 22 03:53:08 2005 UTC trunk/escript/src/DataExpanded.h revision 804 by gross, Thu Aug 10 01:12:16 2006 UTC
# Line 1  Line 1 
1  // $Id$  // $Id$
2  /*  /*
3   ******************************************************************************   ************************************************************
4   *                                                                            *   *          Copyright 2006 by ACcESS MNRF                   *
5   *       COPYRIGHT  ACcESS 2004 -  All Rights Reserved                        *   *                                                          *
6   *                                                                            *   *              http://www.access.edu.au                    *
7   * This software is the property of ACcESS. No part of this code              *   *       Primary Business: Queensland, Australia            *
8   * may be copied in any form or by any means without the expressed written    *   *  Licensed under the Open Software License version 3.0    *
9   * consent of ACcESS.  Copying, use or modification of this software          *   *     http://www.opensource.org/licenses/osl-3.0.php       *
10   * by any unauthorised person is illegal unless that person has a software    *   *                                                          *
11   * license agreement with ACcESS.                                             *   ************************************************************
  *                                                                            *  
  ******************************************************************************  
12  */  */
13                                                                              
14  #if !defined escript_DataExpanded_20040323_H  #if !defined escript_DataExpanded_20040323_H
15  #define escript_DataExpanded_20040323_H  #define escript_DataExpanded_20040323_H
16    #include "system_dep.h"
17    
18  #include "DataAbstract.h"  #include "DataAbstract.h"
19  #include "DataBlocks2D.h"  #include "DataBlocks2D.h"
20  #include "DataArrayView.h"  #include "DataArrayView.h"
21    
 #include <boost/scoped_ptr.hpp>  
22  #include <boost/python/numeric.hpp>  #include <boost/python/numeric.hpp>
23    
24  namespace escript {  namespace escript {
25    
26  //  //
27  // Forward declarations of other Data types.  // Forward declarations of other Data types.
 class DataEmpty;  
28  class DataConstant;  class DataConstant;
29  class DataTagged;  class DataTagged;
30    
# Line 61  class DataExpanded : public DataAbstract Line 58  class DataExpanded : public DataAbstract
58       \param value - Input - A single data value.       \param value - Input - A single data value.
59       \param what - Input - A description of what this data represents.       \param what - Input - A description of what this data represents.
60    */    */
61      ESCRIPT_DLL_API
62    DataExpanded(const boost::python::numeric::array& value,    DataExpanded(const boost::python::numeric::array& value,
63                 const FunctionSpace& what);                 const FunctionSpace& what);
64    
# Line 78  class DataExpanded : public DataAbstract Line 76  class DataExpanded : public DataAbstract
76       \param value - Input - A single data value.       \param value - Input - A single data value.
77       \param what - Input - A description of what this data represents.       \param what - Input - A description of what this data represents.
78    */    */
79      ESCRIPT_DLL_API
80    DataExpanded(const DataArrayView& value,    DataExpanded(const DataArrayView& value,
81                 const FunctionSpace& what);                 const FunctionSpace& what);
82    
# Line 89  class DataExpanded : public DataAbstract Line 88  class DataExpanded : public DataAbstract
88       \param other - Input - DataExpanded object to slice from.       \param other - Input - DataExpanded object to slice from.
89       \param region - Input - region to copy.       \param region - Input - region to copy.
90    */    */
91      ESCRIPT_DLL_API
92    DataExpanded(const DataExpanded& other,    DataExpanded(const DataExpanded& other,
93                 const DataArrayView::RegionType& region);                 const DataArrayView::RegionType& region);
94    
# Line 102  class DataExpanded : public DataAbstract Line 102  class DataExpanded : public DataAbstract
102       \param shape - Input - the shape of each data-point.       \param shape - Input - the shape of each data-point.
103       \param data - the array of data values for the data-points.       \param data - the array of data values for the data-points.
104    */    */
105      ESCRIPT_DLL_API
106    DataExpanded(const FunctionSpace& what,    DataExpanded(const FunctionSpace& what,
107                 const DataArrayView::ShapeType &shape,                 const DataArrayView::ShapeType &shape,
108                 const DataArrayView::ValueType &data);                 const DataArrayView::ValueType &data);
# Line 111  class DataExpanded : public DataAbstract Line 112  class DataExpanded : public DataAbstract
112       Copy constructor for DataExpanded.       Copy constructor for DataExpanded.
113       Performs a deep copy from another DataExpanded.       Performs a deep copy from another DataExpanded.
114    */    */
115      ESCRIPT_DLL_API
116    DataExpanded(const DataExpanded& other);    DataExpanded(const DataExpanded& other);
117    
118    /**    /**
# Line 118  class DataExpanded : public DataAbstract Line 120  class DataExpanded : public DataAbstract
120       Copy constructor for DataExpanded.       Copy constructor for DataExpanded.
121       Construct a DataExpanded from a DataConstant.       Construct a DataExpanded from a DataConstant.
122    */    */
123      ESCRIPT_DLL_API
124    DataExpanded(const DataConstant& other);    DataExpanded(const DataConstant& other);
125    
126    /**    /**
# Line 125  class DataExpanded : public DataAbstract Line 128  class DataExpanded : public DataAbstract
128       Copy constructor for DataExpanded.       Copy constructor for DataExpanded.
129       Construct a DataExpanded from a DataTagged.       Construct a DataExpanded from a DataTagged.
130    */    */
131      ESCRIPT_DLL_API
132    DataExpanded(const DataTagged& other);    DataExpanded(const DataTagged& other);
133    
134    /**    /**
135       \brief       \brief
136       Default destructor for DataExpanded.       Default destructor for DataExpanded.
137    */    */
138      ESCRIPT_DLL_API
139    virtual    virtual
140    ~DataExpanded();    ~DataExpanded();
141    
# Line 138  class DataExpanded : public DataAbstract Line 143  class DataExpanded : public DataAbstract
143       \brief       \brief
144       Return a textual representation of the data.       Return a textual representation of the data.
145    */    */
146      ESCRIPT_DLL_API
147    virtual    virtual
148    std::string    std::string
149    toString() const;    toString() const;
# Line 148  class DataExpanded : public DataAbstract Line 154  class DataExpanded : public DataAbstract
154       The original data point value is used for all values of the new       The original data point value is used for all values of the new
155       data point.       data point.
156    */    */
157      ESCRIPT_DLL_API
158    void    void
159    reshapeDataPoint(const DataArrayView::ShapeType& shape);    reshapeDataPoint(const DataArrayView::ShapeType& shape);
160    
# Line 160  class DataExpanded : public DataAbstract Line 167  class DataExpanded : public DataAbstract
167       \param sampleNo - Input - sample number.       \param sampleNo - Input - sample number.
168       \param dataPointNo - Input - data point number.       \param dataPointNo - Input - data point number.
169    */    */
170      ESCRIPT_DLL_API
171    virtual    virtual
172    DataArrayView::ValueType::size_type    DataArrayView::ValueType::size_type
173    getPointOffset(int sampleNo,    getPointOffset(int sampleNo,
# Line 176  class DataExpanded : public DataAbstract Line 184  class DataExpanded : public DataAbstract
184       \param dataPointNo - Input - data point number.       \param dataPointNo - Input - data point number.
185       \return DataArrayView for the data point.       \return DataArrayView for the data point.
186    */    */
187      ESCRIPT_DLL_API
188    DataArrayView    DataArrayView
189    getDataPoint(int sampleNo,    getDataPoint(int sampleNo,
190                 int dataPointNo);                 int dataPointNo);
# Line 184  class DataExpanded : public DataAbstract Line 193  class DataExpanded : public DataAbstract
193       \brief       \brief
194       Return the number of doubles stored for the Data.       Return the number of doubles stored for the Data.
195    */    */
196      ESCRIPT_DLL_API
197    virtual    virtual
198    ValueType::size_type    ValueType::size_type
199    getLength() const;    getLength() const;
# Line 195  class DataExpanded : public DataAbstract Line 205  class DataExpanded : public DataAbstract
205    
206       \param region - Input - Region to copy.       \param region - Input - Region to copy.
207    */    */
208      ESCRIPT_DLL_API
209    virtual    virtual
210    DataAbstract*    DataAbstract*
211    getSlice(const DataArrayView::RegionType& region) const;    getSlice(const DataArrayView::RegionType& region) const;
# Line 206  class DataExpanded : public DataAbstract Line 217  class DataExpanded : public DataAbstract
217       \param value - Input - Data object to copy from.       \param value - Input - Data object to copy from.
218       \param region - Input - Region to copy.       \param region - Input - Region to copy.
219    */    */
220      ESCRIPT_DLL_API
221    virtual    virtual
222    void    void
223    setSlice(const DataAbstract* value,    setSlice(const DataAbstract* value,
# Line 230  class DataExpanded : public DataAbstract Line 242  class DataExpanded : public DataAbstract
242       \param value - Input - Value to assign to data-point associated with       \param value - Input - Value to assign to data-point associated with
243                              the given reference number.                              the given reference number.
244    */    */
245      ESCRIPT_DLL_API
246    virtual    virtual
247    void    void
248    setRefValue(int ref,    setRefValue(int ref,
# Line 255  class DataExpanded : public DataAbstract Line 268  class DataExpanded : public DataAbstract
268       \param value - Output - Object to receive data-points associated with       \param value - Output - Object to receive data-points associated with
269                              the given reference number.                              the given reference number.
270    */    */
271      ESCRIPT_DLL_API
272    virtual    virtual
273    void    void
274    getRefValue(int ref,    getRefValue(int ref,
# Line 268  class DataExpanded : public DataAbstract Line 282  class DataExpanded : public DataAbstract
282    
283      The return value indicates success (0) or otherwise (1).      The return value indicates success (0) or otherwise (1).
284    */    */
285      ESCRIPT_DLL_API
286    int    int
287    archiveData(std::ofstream& archiveFile,    archiveData(std::ofstream& archiveFile,
288                const DataArrayView::ValueType::size_type noValues) const;                const DataArrayView::ValueType::size_type noValues) const;
# Line 279  class DataExpanded : public DataAbstract Line 294  class DataExpanded : public DataAbstract
294    
295      The return value indicates success (0) or otherwise (1).      The return value indicates success (0) or otherwise (1).
296    */    */
297      ESCRIPT_DLL_API
298    int    int
299    extractData(std::ifstream& archiveFile,    extractData(std::ifstream& archiveFile,
300                const DataArrayView::ValueType::size_type noValues);                const DataArrayView::ValueType::size_type noValues);
301    
302      /**
303         \brief
304         Computes a symmetric matrix (A + AT) / 2
305    
306         \param ev - Output - symmetric matrix
307    
308      */
309      ESCRIPT_DLL_API
310      virtual void
311      symmetric(DataAbstract* ev);
312    
313      /**
314         \brief
315         Computes a nonsymmetric matrix (A - AT) / 2
316    
317         \param ev - Output - nonsymmetric matrix
318    
319      */
320      ESCRIPT_DLL_API
321      virtual void
322      nonsymmetric(DataAbstract* ev);
323    
324      /**
325         \brief
326         Computes the trace of a matrix
327    
328         \param ev - Output - trace of your matrix
329    
330      */
331      ESCRIPT_DLL_API
332      virtual void
333      trace(DataAbstract* ev, int axis_offset);
334    
335      /**
336         \brief
337         Transpose each data point of this Data object around the given axis.
338    
339         \param ev - Output - transpose of your matrix
340    
341      */
342      ESCRIPT_DLL_API
343      virtual void
344      transpose(DataAbstract* ev, int axis_offset);
345    
346      /**
347         \brief
348         swaps components axis0 and axis1
349    
350         \param ev - Output - swapped components
351    
352      */
353      ESCRIPT_DLL_API
354      virtual void
355      swapaxes(DataAbstract* ev, int axis0, int axis1);
356    
357    
358      /**
359         \brief
360         solves the eigenvalue problem this*V=ev*V for the eigenvalues ev
361    
362         \param ev - Output - eigenvalues in increasing order at each data point
363    
364      */
365      ESCRIPT_DLL_API
366      virtual void
367      eigenvalues(DataAbstract* ev);
368    
369      /**
370         \brief
371         solves the eigenvalue problem this*V=ev*V for the eigenvalues ev and eigenvectors V
372    
373         \param ev - Output - eigenvalues in increasing order at each data point
374         \param V - Output - corresponding eigenvectors. They are normalized such that their length is one
375                             and the first nonzero component is positive.
376         \param tol - Input - eigenvalue with relative distance tol are treated as equal.
377    
378      */
379    
380      ESCRIPT_DLL_API
381      virtual void
382      eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol=1.e-13);
383    
384    
385   protected:   protected:
386    
387   private:   private:

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

  ViewVC Help
Powered by ViewVC 1.1.26