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

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

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

temp/escript/src/AbstractSystemMatrix.cpp revision 1387 by trankine, Fri Jan 11 07:45:26 2008 UTC trunk/escript/src/AbstractSystemMatrix.cpp revision 1872 by jfenwick, Mon Oct 13 00:18:55 2008 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  #include "AbstractSystemMatrix.h"  #include "AbstractSystemMatrix.h"
16  #include "DataException.h"  #include "DataException.h"
 #include "DataArrayView.h"  
17  #include "Data.h"  #include "Data.h"
18    #include "DataTypes.h"
19    
20  namespace escript {  namespace escript {
21    
# Line 29  AbstractSystemMatrix::AbstractSystemMatr Line 28  AbstractSystemMatrix::AbstractSystemMatr
28                                             const FunctionSpace& row_functionspace,                                             const FunctionSpace& row_functionspace,
29                                             const int column_blocksize,                                             const int column_blocksize,
30                                             const FunctionSpace& column_functionspace)                                             const FunctionSpace& column_functionspace)
31    :m_row_functionspace(row_functionspace),
32    m_column_functionspace(column_functionspace)
33  {  {
34    if (row_blocksize<=0)    if (row_blocksize<=0)
35       throw DataException("Error - negative row block size of system matrix.");       throw DataException("Error - negative row block size of system matrix.");
# Line 38  AbstractSystemMatrix::AbstractSystemMatr Line 39  AbstractSystemMatrix::AbstractSystemMatr
39     m_empty=0;     m_empty=0;
40     m_row_blocksize=row_blocksize;     m_row_blocksize=row_blocksize;
41     m_column_blocksize=column_blocksize;     m_column_blocksize=column_blocksize;
42     m_row_functionspace=row_functionspace;  //    m_row_functionspace=row_functionspace;
43     m_column_functionspace=column_functionspace;  //    m_column_functionspace=column_functionspace;
44  }  }
45    
46  AbstractSystemMatrix::~AbstractSystemMatrix() {  AbstractSystemMatrix::~AbstractSystemMatrix() {
# Line 61  Data AbstractSystemMatrix::vectorMultipl Line 62  Data AbstractSystemMatrix::vectorMultipl
62            throw SystemMatrixException("Error - Matrix is empty.");            throw SystemMatrixException("Error - Matrix is empty.");
63       if (right.getDataPointSize()!=getColumnBlockSize())       if (right.getDataPointSize()!=getColumnBlockSize())
64            throw SystemMatrixException("Error - column block size and input data size do not match.");            throw SystemMatrixException("Error - column block size and input data size do not match.");
65       DataArrayView::ShapeType shape;       DataTypes::ShapeType shape;
66       if (getRowBlockSize()>1) shape.push_back(getRowBlockSize());       if (getRowBlockSize()>1) shape.push_back(getRowBlockSize());
67    
68       Data out=Data(0.,shape,getRowFunctionSpace(),true);       Data out=Data(0.,shape,getRowFunctionSpace(),true);
# Line 83  Data AbstractSystemMatrix::solve(Data& i Line 84  Data AbstractSystemMatrix::solve(Data& i
84            throw SystemMatrixException("Error - row function space and function space of right hand side do not match.");            throw SystemMatrixException("Error - row function space and function space of right hand side do not match.");
85       if (in.getDataPointSize()!=getRowBlockSize())       if (in.getDataPointSize()!=getRowBlockSize())
86            throw SystemMatrixException("Error - row block size and right hand side size do not match.");            throw SystemMatrixException("Error - row block size and right hand side size do not match.");
87       DataArrayView::ShapeType shape;       DataTypes::ShapeType shape;
88       if (getRowBlockSize()>1) shape.push_back(getColumnBlockSize());       if (getRowBlockSize()>1) shape.push_back(getColumnBlockSize());
89       Data out=Data(0.,shape,getColumnFunctionSpace(),true);       Data out=Data(0.,shape,getColumnFunctionSpace(),true);
90       setToSolution(out,in,options);       setToSolution(out,in,options);

Legend:
Removed from v.1387  
changed lines
  Added in v.1872

  ViewVC Help
Powered by ViewVC 1.1.26