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_MultiContinuation_ExtendedMultiVector.H"
00043 #include "LOCA_MultiContinuation_ExtendedVector.H"
00044
00045 LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(
00046 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00047 const NOX::Abstract::Vector& xVec,
00048 int nColumns,
00049 int nScalarRows,
00050 NOX::CopyType type) :
00051 LOCA::Extended::MultiVector(global_data, nColumns, 1, nScalarRows)
00052 {
00053 Teuchos::RCP<NOX::Abstract::MultiVector> mv =
00054 xVec.createMultiVector(nColumns, type);
00055 LOCA::Extended::MultiVector::setMultiVectorPtr(0, mv);
00056 }
00057
00058 LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(
00059 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00060 const NOX::Abstract::MultiVector& xVec,
00061 int nScalarRows) :
00062 LOCA::Extended::MultiVector(global_data, xVec.numVectors(), 1, nScalarRows)
00063 {
00064 LOCA::Extended::MultiVector::setMultiVectorPtr(0, xVec.clone(NOX::DeepCopy));
00065 }
00066
00067 LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(
00068 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00069 const NOX::Abstract::MultiVector& xVec,
00070 const NOX::Abstract::MultiVector::DenseMatrix& params) :
00071 LOCA::Extended::MultiVector(global_data, xVec.numVectors(), 1,
00072 params.numRows())
00073 {
00074 LOCA::Extended::MultiVector::setMultiVectorPtr(0, xVec.clone(NOX::DeepCopy));
00075 LOCA::Extended::MultiVector::getScalars()->assign(params);
00076 }
00077
00078 LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(
00079 const LOCA::MultiContinuation::ExtendedMultiVector& source,
00080 NOX::CopyType type) :
00081 LOCA::Extended::MultiVector(source, type)
00082 {
00083 }
00084
00085 LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(
00086 const LOCA::MultiContinuation::ExtendedMultiVector& source,
00087 int nColumns) :
00088 LOCA::Extended::MultiVector(source, nColumns)
00089 {
00090 }
00091
00092 LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(
00093 const LOCA::MultiContinuation::ExtendedMultiVector& source,
00094 const vector<int>& index, bool view) :
00095 LOCA::Extended::MultiVector(source, index, view)
00096 {
00097 }
00098
00099 LOCA::MultiContinuation::ExtendedMultiVector::~ExtendedMultiVector()
00100 {
00101 }
00102
00103 LOCA::Extended::MultiVector&
00104 LOCA::MultiContinuation::ExtendedMultiVector::operator=(
00105 const LOCA::Extended::MultiVector& y)
00106 {
00107 operator=(dynamic_cast<const LOCA::MultiContinuation::ExtendedMultiVector&>(y));
00108 return *this;
00109 }
00110
00111 NOX::Abstract::MultiVector&
00112 LOCA::MultiContinuation::ExtendedMultiVector::operator=(
00113 const NOX::Abstract::MultiVector& y)
00114 {
00115 operator=(dynamic_cast<const LOCA::MultiContinuation::ExtendedMultiVector&>(y));
00116 return *this;
00117 }
00118
00119 LOCA::MultiContinuation::ExtendedMultiVector&
00120 LOCA::MultiContinuation::ExtendedMultiVector::operator=(const
00121 LOCA::MultiContinuation::ExtendedMultiVector& y)
00122 {
00123 LOCA::Extended::MultiVector::operator=(y);
00124 return *this;
00125 }
00126
00127 Teuchos::RCP<NOX::Abstract::MultiVector>
00128 LOCA::MultiContinuation::ExtendedMultiVector::clone(NOX::CopyType type) const
00129 {
00130 return
00131 Teuchos::rcp(new LOCA::MultiContinuation::ExtendedMultiVector(*this,
00132 type));
00133 }
00134
00135 Teuchos::RCP<NOX::Abstract::MultiVector>
00136 LOCA::MultiContinuation::ExtendedMultiVector::clone(int numvecs) const
00137 {
00138 return
00139 Teuchos::rcp(new LOCA::MultiContinuation::ExtendedMultiVector(*this,
00140 numvecs));
00141 }
00142
00143 Teuchos::RCP<NOX::Abstract::MultiVector>
00144 LOCA::MultiContinuation::ExtendedMultiVector::subCopy(
00145 const vector<int>& index) const
00146 {
00147 return
00148 Teuchos::rcp(new LOCA::MultiContinuation::ExtendedMultiVector(*this,
00149 index,
00150 false));
00151 }
00152
00153 Teuchos::RCP<NOX::Abstract::MultiVector>
00154 LOCA::MultiContinuation::ExtendedMultiVector::subView(
00155 const vector<int>& index) const
00156 {
00157 return
00158 Teuchos::rcp(new LOCA::MultiContinuation::ExtendedMultiVector(*this,
00159 index,
00160 true));
00161 }
00162
00163 Teuchos::RCP<const NOX::Abstract::MultiVector>
00164 LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec() const
00165 {
00166 return LOCA::Extended::MultiVector::getMultiVector(0);
00167 }
00168
00169 Teuchos::RCP<NOX::Abstract::MultiVector>
00170 LOCA::MultiContinuation::ExtendedMultiVector::getXMultiVec()
00171 {
00172 return LOCA::Extended::MultiVector::getMultiVector(0);
00173 }
00174
00175 LOCA::MultiContinuation::ExtendedMultiVector::ExtendedMultiVector(
00176 const Teuchos::RCP<LOCA::GlobalData>& global_data,
00177 int nColumns,
00178 int nScalarRows) :
00179 LOCA::Extended::MultiVector(global_data, nColumns, 1, nScalarRows)
00180 {
00181 }
00182
00183 Teuchos::RCP<LOCA::Extended::Vector>
00184 LOCA::MultiContinuation::ExtendedMultiVector::generateVector(
00185 int nVecs,
00186 int nScalarRows) const
00187 {
00188 return
00189 Teuchos::rcp(new LOCA::MultiContinuation::ExtendedVector(globalData,
00190 nScalarRows));
00191 }