FEI Version of the Day
Loading...
Searching...
No Matches
fei_LinearProblemManager.hpp
1/*--------------------------------------------------------------------*/
2/* Copyright 2006 Sandia Corporation. */
3/* Under the terms of Contract DE-AC04-94AL85000, there is a */
4/* non-exclusive license for use of this work by or on behalf */
5/* of the U.S. Government. Export of this program may require */
6/* a license from the United States Government. */
7/*--------------------------------------------------------------------*/
8
9#ifndef _fei_LinearProblemManager_hpp_
10#define _fei_LinearProblemManager_hpp_
11
12#include <fei_macros.hpp>
13#include <fei_SharedPtr.hpp>
14#include <fei_mpi.h>
15
16#include <vector>
17
18namespace fei {
19 class ParameterSet;
20 class SparseRowGraph;
21
25 public:
27
30
32
33
38 virtual void setRowDistribution(const std::vector<int>& ownedGlobalRows)=0;
39
44
46
47
50 virtual void setMatrixValues(double scalar)=0;
51
55 virtual int getLocalNumRows()=0;
56
60 virtual int getRowLength(int row)=0;
61
77 virtual int copyOutMatrixRow(int row,
78 int len,
79 double* coefs,
80 int* indices)=0;
81
89 virtual int insertMatrixValues(int numRows, const int* rows,
90 int numCols, const int* cols,
91 const double* const* values,
92 bool sum_into)=0;
93
95
96
104 virtual void setVectorValues(double scalar, bool soln_vector)=0;
105
131 virtual int insertVectorValues(int numValues,
132 const int* globalIndices,
133 const double* values,
134 bool sum_into,
135 bool soln_vector,
136 int vectorIndex=0)=0;
137
141 virtual int copyOutVectorValues(int numValues,
142 const int* globalIndices,
143 double* values,
144 bool soln_vector,
145 int vectorIndex=0) = 0;
146
152 virtual double* getLocalVectorValuesPtr(bool soln_vector,
153 int vectorIndex=0) = 0;
155
156
162 virtual int globalAssemble() = 0;
164 };//class LinearProblemManager
165
166}//namespace fei
167
168#endif // _fei_LinearProblemManager_hpp_
169
virtual void setMatrixGraph(fei::SharedPtr< fei::SparseRowGraph > matrixGraph)=0
virtual int copyOutMatrixRow(int row, int len, double *coefs, int *indices)=0
virtual void setMatrixValues(double scalar)=0
virtual double * getLocalVectorValuesPtr(bool soln_vector, int vectorIndex=0)=0
virtual void setRowDistribution(const std::vector< int > &ownedGlobalRows)=0
virtual int copyOutVectorValues(int numValues, const int *globalIndices, double *values, bool soln_vector, int vectorIndex=0)=0
virtual int insertMatrixValues(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, bool sum_into)=0
virtual int insertVectorValues(int numValues, const int *globalIndices, const double *values, bool sum_into, bool soln_vector, int vectorIndex=0)=0
virtual int globalAssemble()=0
virtual int getLocalNumRows()=0
virtual void setVectorValues(double scalar, bool soln_vector)=0
virtual int getRowLength(int row)=0