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_PITCHFORK_MOORESPENCE_EXTENDEDMULTIVECTOR_H
00043 #define LOCA_PITCHFORK_MOORESPENCE_EXTENDEDMULTIVECTOR_H
00044
00045 #include "LOCA_Extended_MultiVector.H"
00046
00047
00048 namespace LOCA {
00049 namespace Pitchfork {
00050 namespace MooreSpence {
00051 class ExtendedVector;
00052 }
00053 }
00054 }
00055
00056 namespace LOCA {
00057
00058 namespace Pitchfork {
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& slacks,
00101 const NOX::Abstract::MultiVector::DenseMatrix& bifParams);
00102
00104 ExtendedMultiVector(const ExtendedMultiVector& source,
00105 NOX::CopyType type = NOX::DeepCopy);
00106
00111 ExtendedMultiVector(const ExtendedMultiVector& source, int nColumns);
00112
00117 ExtendedMultiVector(const ExtendedMultiVector& source,
00118 const vector<int>& index, bool view);
00119
00121 virtual ~ExtendedMultiVector();
00122
00124 virtual ExtendedMultiVector&
00125 operator=(const ExtendedMultiVector& y);
00126
00128 virtual LOCA::Extended::MultiVector&
00129 operator=(const LOCA::Extended::MultiVector& y);
00130
00132 virtual NOX::Abstract::MultiVector&
00133 operator=(const NOX::Abstract::MultiVector& y);
00134
00139 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00140 clone(NOX::CopyType type = NOX::DeepCopy) const;
00141
00143 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00144 clone(int numvecs) const;
00145
00150 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00151 subCopy(const vector<int>& index) const;
00152
00157 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00158 subView(const vector<int>& index) const;
00159
00161 virtual Teuchos::RCP<const NOX::Abstract::MultiVector>
00162 getXMultiVec() const;
00163
00165 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00166 getXMultiVec();
00167
00169 virtual Teuchos::RCP<const NOX::Abstract::MultiVector>
00170 getNullMultiVec() const;
00171
00173 virtual Teuchos::RCP<NOX::Abstract::MultiVector>
00174 getNullMultiVec();
00175
00177 virtual
00178 Teuchos::RCP<const NOX::Abstract::MultiVector::DenseMatrix>
00179 getSlacks() const;
00180
00182 virtual
00183 Teuchos::RCP<NOX::Abstract::MultiVector::DenseMatrix>
00184 getSlacks();
00185
00187 virtual
00188 Teuchos::RCP<const NOX::Abstract::MultiVector::DenseMatrix>
00189 getBifParams() const;
00190
00192 virtual
00193 Teuchos::RCP<NOX::Abstract::MultiVector::DenseMatrix>
00194 getBifParams();
00195
00197 virtual
00198 Teuchos::RCP<LOCA::Pitchfork::MooreSpence::ExtendedVector>
00199 getColumn(int i);
00200
00202 virtual
00203 Teuchos::RCP<const LOCA::Pitchfork::MooreSpence::ExtendedVector>
00204 getColumn(int i) const;
00205
00206 protected:
00207
00209
00212 ExtendedMultiVector(
00213 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00214 int nColumns);
00215
00217
00221 virtual Teuchos::RCP<LOCA::Extended::Vector>
00222 generateVector(int nVecs, int nScalarRows) const;
00223
00224 };
00225 }
00226 }
00227 }
00228
00229 #endif