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

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

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

trunk/esys2/escript/src/Data/AbstractSystemMatrix.cpp revision 123 by jgs, Fri Jul 8 04:08:13 2005 UTC trunk/escript/src/AbstractSystemMatrix.cpp revision 615 by elspeth, Wed Mar 22 02:12:00 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  #include "escript/Data/AbstractSystemMatrix.h"  #include "AbstractSystemMatrix.h"
15  #include "escript/Data/FunctionSpace.h"  #include "DataException.h"
16  #include "escript/Data/DataException.h"  #include "DataArrayView.h"
17  #include "escript/Data/DataArrayView.h"  #include "Data.h"
18    
19  namespace escript {  namespace escript {
20    
# Line 49  int AbstractSystemMatrix::isEmpty() cons Line 47  int AbstractSystemMatrix::isEmpty() cons
47     return m_empty;     return m_empty;
48  }  }
49    
50  Data operator*(const AbstractSystemMatrix& left, const Data& right)  Data operator*(const AbstractSystemMatrix& left,const Data& right)
51  {  {
52        return left.vectorMultiply(right);        Data tmp=(Data) right;
53          return left.vectorMultiply(tmp);
54  }  }
55    
56  Data AbstractSystemMatrix::vectorMultiply(const Data& right) const  Data AbstractSystemMatrix::vectorMultiply(Data& right) const
57  {  {
58       if (isEmpty())       if (isEmpty())
59            throw SystemMatrixException("Error - Matrix is empty.");            throw SystemMatrixException("Error - Matrix is empty.");
# Line 64  Data AbstractSystemMatrix::vectorMultipl Line 63  Data AbstractSystemMatrix::vectorMultipl
63       if (getRowBlockSize()>1) shape.push_back(getRowBlockSize());       if (getRowBlockSize()>1) shape.push_back(getRowBlockSize());
64    
65       Data out=Data(0.,shape,getRowFunctionSpace(),true);       Data out=Data(0.,shape,getRowFunctionSpace(),true);
66       ypAx(out,Data(right,getColumnFunctionSpace()));       Data in=Data(right,getColumnFunctionSpace());
67         ypAx(out,in);
68       return out;       return out;
69  }  }
70    
71  void AbstractSystemMatrix::ypAx(Data& y,const Data& x) const  void AbstractSystemMatrix::ypAx(Data& y,Data& x) const
72  {  {
73      throw SystemMatrixException("Error - ypAx not available");      throw SystemMatrixException("Error - ypAx not available");
74  }  }
75    
76  Data AbstractSystemMatrix::solve(const Data& in,const boost::python::dict& options) const  Data AbstractSystemMatrix::solve(Data& in,const boost::python::dict& options) const
77  {  {
78       if (isEmpty())       if (isEmpty())
79            throw SystemMatrixException("Error - Matrix is empty.");            throw SystemMatrixException("Error - Matrix is empty.");
# Line 87  Data AbstractSystemMatrix::solve(const D Line 87  Data AbstractSystemMatrix::solve(const D
87       setToSolution(out,in,options);       setToSolution(out,in,options);
88       return out;       return out;
89  }  }
90  void AbstractSystemMatrix::setToSolution(Data& out,const Data& in,const boost::python::dict& options) const  void AbstractSystemMatrix::setToSolution(Data& out,Data& in,const boost::python::dict& options) const
91  {  {
92      throw SystemMatrixException("Error - setToSolution not available");      throw SystemMatrixException("Error - setToSolution not available");
93  }  }
# Line 99  void AbstractSystemMatrix::saveHB(const Line 99  void AbstractSystemMatrix::saveHB(const
99  {  {
100      throw SystemMatrixException("Error - Harwell-Boeing interface not available.");      throw SystemMatrixException("Error - Harwell-Boeing interface not available.");
101  }  }
102  void AbstractSystemMatrix::setValue(const double value) const  void AbstractSystemMatrix::resetValues() const
103  {  {
104      throw SystemMatrixException("Error - setValue is not implemented.");      throw SystemMatrixException("Error - setValue is not implemented.");
105  }  }
 void AbstractSystemMatrix::resetSolver() const  
 {  
     throw SystemMatrixException("Error - resetSolver not implemented.");  
 }  
106    
107  }  // end of namespace  }  // end of namespace

Legend:
Removed from v.123  
changed lines
  Added in v.615

  ViewVC Help
Powered by ViewVC 1.1.26