88 std::vector<int>& fieldIDs = testdata->
fieldIDs;
89 std::vector<int>& idTypes = testdata->
idTypes;
90 std::vector<int>& ids = testdata->
ids;
105 CHK_ERR( vectorSpacePtr->initComplete() );
109 std::vector<int> globalOffsets;
123 std::vector<int> globalBlkOffsets;
135 int len = ids.size();
138 0, 0, globalIndex) );
141 int correctBlkIndex = globalBlkOffsets[
localProc_];
142 if (
localProc_ != 0) correctIndex -= 2*numDOFsPerID;
145 if (globalIndex != correctIndex) {
149 int globalBlkIndex = 0;
151 if (globalBlkIndex != correctBlkIndex) {
153 << globalBlkIndex <<
", correctBlkIndex: " << correctBlkIndex <<
FEI_ENDL;
158 0, 0, globalIndex) );
161 if (
localProc_ != 0) correctIndex -= 2*numDOFsPerID;
163 if (globalIndex != correctIndex) {
168 correctBlkIndex = globalBlkOffsets[
localProc_]+1;
171 if (globalBlkIndex != correctBlkIndex) {
173 << globalBlkIndex <<
", correctBlkIndex: " << correctBlkIndex <<
FEI_ENDL;
178 0, 0, globalIndex) );
179 correctIndex = globalOffsets[
localProc_] + 12;
180 if (
localProc_ != 0) correctIndex -= 2*numDOFsPerID;
182 if (globalIndex != correctIndex) {
187 0, 0, globalIndex) );
189 if (
localProc_ != 0) correctIndex -= 2*numDOFsPerID;
191 if (globalIndex != correctIndex) {
196 0, 0, globalIndex) );
198 if (
localProc_ != 0) correctIndex -= 2*numDOFsPerID;
200 if (globalIndex != correctIndex) {
205 0, 0, globalIndex) );
206 correctIndex = globalOffsets[
localProc_] + 13;
207 if (
localProc_ != 0) correctIndex -= 2*numDOFsPerID;
209 if (globalIndex != correctIndex) {
213 std::vector<int> globalIndices(ids.size()*numDOFsPerID);
217 idTypes[0], fieldIDs[0],
218 &globalIndices[0] ));
220 std::vector<int> idFieldIDs(ids.size(), fieldIDs[1]);
221 std::vector<int> idIDTypes(ids.size(), idTypes[0]);
225 idTypes[0], fieldIDs[0],
226 &globalIndices[0] ));
231 &globalIndices[0] ));
237 &globalIndices[0]) );
240 if (numFields != fieldIDs.size()) {
244 std::vector<int> testgetfields;
246 if (testgetfields.size() != numFields) {
250 if (fieldIDs != testgetfields) {
326 factory->createVectorSpace(
comm_,
"U3copy");
331 copy->setParameters(paramset);
334 CHK_ERR( copy->addVectorSpace(vectorSpacePtr.
get()) );
336 CHK_ERR( vectorSpacePtr->initComplete() );
338 CHK_ERR( copy->initComplete() );
340 std::vector<int> globalOffsets;
341 std::vector<int> globalOffsetsCopy;
343 vectorSpacePtr->getGlobalIndexOffsets(globalOffsets);
345 copy->getGlobalIndexOffsets(globalOffsetsCopy);
347 for(
size_t i=0; i<globalOffsets.size(); ++i) {
348 if (globalOffsets[i] != globalOffsetsCopy[i]) {
353 CHK_ERR( copy->initComplete() );
355 copy->getGlobalIndexOffsets(globalOffsetsCopy);
374 int localProc = 0, numProcs = 1;
376 MPI_Comm_rank(comm, &localProc);
377 MPI_Comm_size(comm, &numProcs);
380 testData test_data(localProc, numProcs);
385 false,
false, (
const char*)0, factory);
386 int err = vspace->initComplete();
389 throw std::runtime_error(
"test_Vector::vector_test1: ERROR, failed to create valid fei::VectorSpace.");
400 bool defineBothFields,
401 bool initSolnBothFields,
404 bool turnOnDebugOutput)
417 if (factory.
get() == NULL) {
421 vsptr = factory->createVectorSpace(comm, name);
426 std::vector<int>& fieldIDs = testdata->
fieldIDs;
427 std::vector<int>& fieldSizes = testdata->
fieldSizes;
428 std::vector<int>& idTypes = testdata->
idTypes;
429 std::vector<int>& ids = testdata->
ids;
430 std::vector<int>& sharedIDs = testdata->
sharedIDs;
432 std::vector<int>& sharingProcs = testdata->
sharingProcs;
436 paramset.
add(param1);
437 if (turnOnDebugOutput) {
439 paramset.
add(param2);
444 int numFields = defineBothFields ? 2 : 1;
452 vectorSpace.
addDOFs(fieldIDs[0],
457 if (initSolnBothFields) {
458 vectorSpace.
addDOFs(fieldIDs[1],
466 sharedIDs.size() ? &sharedIDs[0] : 0,
467 numSharingProcsPerID.size() ? &numSharingProcsPerID[0] : 0,
468 sharingProcs.size() ? &sharingProcs[0] : 0