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 #include "LOCA_Pitchfork_MooreSpence_ExtendedMultiVector.H"
00043 #include "LOCA_Pitchfork_MooreSpence_ExtendedVector.H"
00044
00045 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(
00046 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00047 const NOX::Abstract::Vector& cloneVec,
00048 int nColumns) :
00049 LOCA::Extended::MultiVector(global_data, nColumns, 2, 2)
00050 {
00051 Teuchos::RCP<NOX::Abstract::MultiVector> mv1 =
00052 cloneVec.createMultiVector(nColumns, NOX::ShapeCopy);
00053 Teuchos::RCP<NOX::Abstract::MultiVector> mv2 =
00054 cloneVec.createMultiVector(nColumns, NOX::ShapeCopy);
00055 LOCA::Extended::MultiVector::setMultiVectorPtr(0, mv1);
00056 LOCA::Extended::MultiVector::setMultiVectorPtr(1, mv2);
00057 }
00058
00059 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(
00060 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00061 const NOX::Abstract::MultiVector& xVec,
00062 const NOX::Abstract::MultiVector& nullVec,
00063 const NOX::Abstract::MultiVector::DenseMatrix& slacks,
00064 const NOX::Abstract::MultiVector::DenseMatrix& bifParams) :
00065 LOCA::Extended::MultiVector(global_data, xVec.numVectors(), 2, 2)
00066 {
00067 LOCA::Extended::MultiVector::setMultiVectorPtr(0, xVec.clone(NOX::DeepCopy));
00068 LOCA::Extended::MultiVector::setMultiVectorPtr(1,
00069 nullVec.clone(NOX::DeepCopy));
00070
00071 LOCA::Extended::MultiVector::getScalarRows(1,0)->assign(slacks);
00072 LOCA::Extended::MultiVector::getScalarRows(1,1)->assign(bifParams);
00073 }
00074
00075 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(
00076 const LOCA::Pitchfork::MooreSpence::ExtendedMultiVector& source,
00077 NOX::CopyType type) :
00078 LOCA::Extended::MultiVector(source, type)
00079 {
00080 }
00081
00082 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(
00083 const LOCA::Pitchfork::MooreSpence::ExtendedMultiVector& source,
00084 int nColumns) :
00085 LOCA::Extended::MultiVector(source, nColumns)
00086 {
00087 }
00088
00089 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(
00090 const LOCA::Pitchfork::MooreSpence::ExtendedMultiVector& source,
00091 const vector<int>& index, bool view) :
00092 LOCA::Extended::MultiVector(source, index, view)
00093 {
00094 }
00095
00096 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::~ExtendedMultiVector()
00097 {
00098 }
00099
00100 LOCA::Extended::MultiVector&
00101 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::operator=(
00102 const LOCA::Extended::MultiVector& y)
00103 {
00104 operator=(dynamic_cast<const LOCA::Pitchfork::MooreSpence::ExtendedMultiVector&>(y));
00105 return *this;
00106 }
00107
00108 NOX::Abstract::MultiVector&
00109 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::operator=(
00110 const NOX::Abstract::MultiVector& y)
00111 {
00112 operator=(dynamic_cast<const LOCA::Pitchfork::MooreSpence::ExtendedMultiVector&>(y));
00113 return *this;
00114 }
00115
00116 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector&
00117 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::operator=(const
00118 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector& y)
00119 {
00120 LOCA::Extended::MultiVector::operator=(y);
00121 return *this;
00122 }
00123
00124 Teuchos::RCP<NOX::Abstract::MultiVector>
00125 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::clone(NOX::CopyType type) const
00126 {
00127 return
00128 Teuchos::rcp(new LOCA::Pitchfork::MooreSpence::ExtendedMultiVector(*this, type));
00129 }
00130
00131 Teuchos::RCP<NOX::Abstract::MultiVector>
00132 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::clone(int numvecs) const
00133 {
00134 return
00135 Teuchos::rcp(new LOCA::Pitchfork::MooreSpence::ExtendedMultiVector(*this, numvecs));
00136 }
00137
00138 Teuchos::RCP<NOX::Abstract::MultiVector>
00139 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::subCopy(
00140 const vector<int>& index) const
00141 {
00142 return
00143 Teuchos::rcp(new LOCA::Pitchfork::MooreSpence::ExtendedMultiVector(*this, index, false));
00144 }
00145
00146 Teuchos::RCP<NOX::Abstract::MultiVector>
00147 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::subView(
00148 const vector<int>& index) const
00149 {
00150 return
00151 Teuchos::rcp(new LOCA::Pitchfork::MooreSpence::ExtendedMultiVector(*this, index, true));
00152 }
00153
00154 Teuchos::RCP<const NOX::Abstract::MultiVector>
00155 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getXMultiVec() const
00156 {
00157 return LOCA::Extended::MultiVector::getMultiVector(0);
00158 }
00159
00160 Teuchos::RCP<NOX::Abstract::MultiVector>
00161 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getXMultiVec()
00162 {
00163 return LOCA::Extended::MultiVector::getMultiVector(0);
00164 }
00165
00166 Teuchos::RCP<const NOX::Abstract::MultiVector>
00167 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getNullMultiVec() const
00168 {
00169 return LOCA::Extended::MultiVector::getMultiVector(1);
00170 }
00171
00172 Teuchos::RCP<NOX::Abstract::MultiVector>
00173 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getNullMultiVec()
00174 {
00175 return LOCA::Extended::MultiVector::getMultiVector(1);
00176 }
00177
00178 Teuchos::RCP<const NOX::Abstract::MultiVector::DenseMatrix>
00179 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getSlacks() const
00180 {
00181 return LOCA::Extended::MultiVector::getScalarRows(1,0);
00182 }
00183
00184 Teuchos::RCP<NOX::Abstract::MultiVector::DenseMatrix>
00185 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getSlacks()
00186 {
00187 return LOCA::Extended::MultiVector::getScalarRows(1,0);
00188 }
00189
00190 Teuchos::RCP<const NOX::Abstract::MultiVector::DenseMatrix>
00191 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getBifParams() const
00192 {
00193 return LOCA::Extended::MultiVector::getScalarRows(1,1);
00194 }
00195
00196 Teuchos::RCP<NOX::Abstract::MultiVector::DenseMatrix>
00197 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getBifParams()
00198 {
00199 return LOCA::Extended::MultiVector::getScalarRows(1,1);
00200 }
00201
00202 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::ExtendedMultiVector(
00203 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00204 int nColumns) :
00205 LOCA::Extended::MultiVector(global_data, nColumns, 2, 2)
00206 {
00207 }
00208
00209 Teuchos::RCP<LOCA::Extended::Vector>
00210 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::generateVector(
00211 int nVecs,
00212 int nScalarRows) const
00213 {
00214 return
00215 Teuchos::rcp(new LOCA::Pitchfork::MooreSpence::ExtendedVector(
00216 globalData));
00217 }
00218
00219 Teuchos::RCP<LOCA::Pitchfork::MooreSpence::ExtendedVector>
00220 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getColumn(int i)
00221 {
00222 return Teuchos::rcp_dynamic_cast<LOCA::Pitchfork::MooreSpence::ExtendedVector>(getVector(i),true);
00223 }
00224
00225 Teuchos::RCP<const LOCA::Pitchfork::MooreSpence::ExtendedVector>
00226 LOCA::Pitchfork::MooreSpence::ExtendedMultiVector::getColumn(int i) const
00227 {
00228 return Teuchos::rcp_dynamic_cast<const LOCA::Pitchfork::MooreSpence::ExtendedVector>(getVector(i),true);
00229 }