00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef LOCA_TURNINGPOINT_MOORESPENCE_EXTENDEDMULTIVECTOR_H
00043 #define LOCA_TURNINGPOINT_MOORESPENCE_EXTENDEDMULTIVECTOR_H
00044
00045 #include "LOCA_Extended_MultiVector.H"
00046
00047
00048 namespace LOCA {
00049 namespace TurningPoint {
00050 namespace MooreSpence {
00051 class ExtendedVector;
00052 }
00053 }
00054 }
00055
00056 namespace LOCA {
00057
00058 namespace TurningPoint {
00059
00060 namespace MooreSpence {
00061
00072 class ExtendedMultiVector : public LOCA::Extended::MultiVector {
00073
00078 friend class ExtendedVector;
00079
00080 public:
00081
00083
00086 ExtendedMultiVector(
00087 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00088 const NOX::Abstract::Vector& cloneVec,
00089 int nColumns);
00090
00092
00096 ExtendedMultiVector(
00097 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00098 const NOX::Abstract::MultiVector& xVec,
00099 const NOX::Abstract::MultiVector& nullVec,
00100 const NOX::Abstract::MultiVector::DenseMatrix& bifParams);
00101
00103 ExtendedMultiVector(const ExtendedMultiVector& source,
00104 NOX::CopyType type = NOX::DeepCopy);
00105
00110 ExtendedMultiVector(const ExtendedMultiVector& source, int nColumns);
00111
00116 ExtendedMultiVector(const ExtendedMultiVector& source,
00117 const vector<int>& index, bool view);
00118
00120 virtual ~ExtendedMultiVector();
00121
00123 virtual ExtendedMultiVector&
00124 operator=(const ExtendedMultiVector& y);
00125
00127 virtual LOCA::Extended::MultiVector&
00128 operator=(const LOCA::Extended::MultiVector& y);
00129
00131 virtual NOX::Abstract::MultiVector&
00132 operator=(const NOX::Abstract::MultiVector& y);
00133
00138 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00139 clone(NOX::CopyType type = NOX::DeepCopy) const;
00140
00142 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00143 clone(int numvecs) const;
00144
00149 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00150 subCopy(const vector<int>& index) const;
00151
00156 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00157 subView(const vector<int>& index) const;
00158
00160 virtual Teuchos::RCP<const NOX::Abstract::MultiVector>
00161 getXMultiVec() const;
00162
00164 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00165 getXMultiVec();
00166
00168 virtual Teuchos::RCP<const NOX::Abstract::MultiVector>
00169 getNullMultiVec() const;
00170
00172 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00173 getNullMultiVec();
00174
00176 virtual
00177 Teuchos::RCP<LOCA::TurningPoint::MooreSpence::ExtendedVector>
00178 getColumn(int i);
00179
00181 virtual
00182 Teuchos::RCP<const LOCA::TurningPoint::MooreSpence::ExtendedVector>
00183 getColumn(int i) const;
00184
00185 protected:
00186
00188
00191 ExtendedMultiVector(
00192 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00193 int nColumns);
00194
00196
00200 virtual Teuchos::RCP<LOCA::Extended::Vector>
00201 generateVector(int nVecs, int nScalarRows) const;
00202
00203 };
00204 }
00205 }
00206 }
00207
00208 #endif