From e7dc8d368cd7d5105ab8d7dfb493ed7fa0468f1f Mon Sep 17 00:00:00 2001 From: Kathleen Biagas Date: Mon, 4 Nov 2024 07:04:08 -0800 Subject: [PATCH 1/3] Fix avtUnstructuredDomainBoundaries::ExchangeScalars and ExchangeVectors (#19991) * Fix avtUnstructuredDomainBoundaries::ExchangeScalars and ExchangeVectors. Ensure all procs are calling the same Exchange function based on dataType that they get from an MPI_Allreduce. This fixes problems in parallel (segv/hang) when avtExtraGhostNodes/Zones are exchanged. Modified avtGenericDatabse to ensure all procs participate in the exchange of avtExtraGhostNodes/Zones. * Don't attempt to exchange extraGhost info is no process posesses the info. * Add consistency checks of datatypes for ExchangeScalar and ExchangeVector. * Update consistency test so that the Exception isn't thrown in a case where one proc doesn't have data (dataType == -1). * Tweaks to data-type consistency check to preven hang. --- .../Database/Database/avtGenericDatabase.C | 62 ++-- .../Ghost/avtStructuredDomainBoundaries.C | 190 +++++++----- .../Ghost/avtUnstructuredDomainBoundaries.C | 280 ++++++++++-------- 3 files changed, 309 insertions(+), 223 deletions(-) diff --git a/src/avt/Database/Database/avtGenericDatabase.C b/src/avt/Database/Database/avtGenericDatabase.C index 14aa41725e..846c1cf3a9 100644 --- a/src/avt/Database/Database/avtGenericDatabase.C +++ b/src/avt/Database/Database/avtGenericDatabase.C @@ -302,7 +302,7 @@ DebugDumpDatasetCollection(avtDatasetCollection &dsc, int ndoms, // // Purpose: // Merge generated ghost zones/nodes with extra ghost zones/nodes provided -// by the database in the form of avtExtraGhostZones and +// by the database in the form of avtExtraGhostZones and // avtExtraGhostNodes. // // Returns: void @@ -328,7 +328,7 @@ avtGenericDatabase::AugmentGhostData(avtDatasetCollection &ds, if (dataset != NULL) { // this lambda handles zone and node cases - auto combineGhosts = [this, spec, domain_id](vtkUnsignedCharArray* ghosts, + auto combineGhosts = [this, spec, domain_id](vtkUnsignedCharArray* ghosts, vtkUnsignedCharArray* extraGhosts, vtkDataSet* dataset, const std::string &arrayName, @@ -352,12 +352,12 @@ avtGenericDatabase::AugmentGhostData(avtDatasetCollection &ds, if (num_tuples != extraGhosts->GetNumberOfTuples()) { // we don't know what to do in the case that the original - // and extra ghost zone/node arrays do not have the same + // and extra ghost zone/node arrays do not have the same // number of tuples. EXCEPTION0(ImproperUseException); } - // create a new ghost zone/node array that will be the result + // create a new ghost zone/node array that will be the result // of merging the existing and extra. vtkUnsignedCharArray *newGhosts = vtkUnsignedCharArray::New(); newGhosts->SetName(arrayName.c_str()); @@ -419,8 +419,8 @@ avtGenericDatabase::AugmentGhostData(avtDatasetCollection &ds, newGhosts->Delete(); dataset->GetCellData()->CopyFieldOn(arrayName.c_str()); - // if we are cell centered then we need to perform some - // extra steps to tell the metadata that we now have + // if we are cell centered then we need to perform some + // extra steps to tell the metadata that we now have // ghost zones. const int ts = spec->GetTimestep(); avtDatabaseMetaData *md = GetMetaData(ts); @@ -439,10 +439,10 @@ avtGenericDatabase::AugmentGhostData(avtDatasetCollection &ds, }; // zones first - vtkUnsignedCharArray *ghostZones = + vtkUnsignedCharArray *ghostZones = static_cast( dataset->GetCellData()->GetArray("avtGhostZones")); - vtkUnsignedCharArray *extraGhostZones = + vtkUnsignedCharArray *extraGhostZones = static_cast( dataset->GetCellData()->GetArray("avtExtraGhostZones")); @@ -453,10 +453,10 @@ avtGenericDatabase::AugmentGhostData(avtDatasetCollection &ds, true /*cell centered is true*/); // nodes second - vtkUnsignedCharArray *ghostNodes = + vtkUnsignedCharArray *ghostNodes = static_cast( dataset->GetPointData()->GetArray("avtGhostNodes")); - vtkUnsignedCharArray *extraGhostNodes = + vtkUnsignedCharArray *extraGhostNodes = static_cast( dataset->GetPointData()->GetArray("avtExtraGhostNodes")); @@ -667,7 +667,7 @@ avtGenericDatabase::AugmentGhostData(avtDatasetCollection &ds, // // Alister Maguire, Tue Sep 24 10:04:42 MST 2019 // Added a call to GetQOTOutput when prompted. -// +// // Justin Privitera, Tue Oct 22 10:32:27 PDT 2024 // Call augment ghost data unconditionally. // @@ -3299,7 +3299,7 @@ avtGenericDatabase::GetLabelVariable(const char *varname, int ts, int domain, // // Kathleen Biagas, Thu Sep 11 09:10:42 PDT 2014 // Keep avtOriginalNodeNumbers if present. -// +// // Justin Privitera, Tue Oct 22 10:32:27 PDT 2024 // Keep extra ghost zone/node arrays if present. // @@ -6023,7 +6023,7 @@ avtGenericDatabase::EnumScalarSelect(avtDatasetCollection &dsc, // // Mark C. Miller, Wed Mar 4 18:00:38 PST 2009 // Adjusted for dbio-only build -// +// // Justin Privitera, Fri Sep 27 10:18:37 PDT 2024 // Relaxed restriction on input data only being floats. // **************************************************************************** @@ -7984,12 +7984,13 @@ avtGenericDatabase::CommunicateGhostZonesFromDomainBoundariesFromFile( // Modified to handle the case where a variable is defined on a subset // of the materials and a domain has mixed materials without the material // the variable was defined on. -// +// // Justin Privitera, Tue Oct 22 10:32:27 PDT 2024 // Exchange extra ghost zone/node arrays. -// -// Justin Privitera, Thu Oct 24 11:50:43 PDT 2024 -// Avoid segfault when exchanging extra ghost zone/node arrays. +// +// Kathleen Biagas, Thu Oct 31, 2024 +// Don't attempt to Exchange extra ghost zone/node arrays if no process +// has extra ghost information. // // **************************************************************************** @@ -8614,7 +8615,7 @@ avtGenericDatabase::CommunicateGhostZonesFromDomainBoundaries( // // Exchange ExtraGhostZone Arrays. // - // this logic was added to support the functionality in the + // this logic was added to support the functionality in the // AugmentGhostData() function. vector extraGhostZones; for (size_t j = 0 ; j < doms.size() ; j++) @@ -8629,11 +8630,17 @@ avtGenericDatabase::CommunicateGhostZonesFromDomainBoundaries( if (ds1->GetCellData()->GetArray("avtExtraGhostZones")) { extraGhostZones.push_back(ds1->GetCellData()->GetArray( - "avtExtraGhostZones")); + "avtExtraGhostZones")); } - } - if (extraGhostZones.size() > 0) + + int canDoExchange = (extraGhostZones.size() > 0); +#ifdef PARALLEL + int myCanDoExchange = canDoExchange; + MPI_Allreduce(&myCanDoExchange, &canDoExchange, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); +#endif + + if(canDoExchange) { vector extraGhostZonesOut; extraGhostZonesOut = dbi->ExchangeScalar(doms,false,extraGhostZones); @@ -8651,7 +8658,7 @@ avtGenericDatabase::CommunicateGhostZonesFromDomainBoundaries( // // Exchange ExtraGhostNode Arrays. // - // this logic was added to support the functionality in the + // this logic was added to support the functionality in the // AugmentGhostData() function. vector extraGhostNodes; for (size_t j = 0 ; j < doms.size() ; j++) @@ -8666,11 +8673,16 @@ avtGenericDatabase::CommunicateGhostZonesFromDomainBoundaries( if (ds1->GetPointData()->GetArray("avtExtraGhostNodes")) { extraGhostNodes.push_back(ds1->GetPointData()->GetArray( - "avtExtraGhostNodes")); + "avtExtraGhostNodes")); } - } - if (extraGhostNodes.size() > 0) + + canDoExchange = (extraGhostNodes.size() > 0); +#ifdef PARALLEL + myCanDoExchange = canDoExchange; + MPI_Allreduce(&myCanDoExchange, &canDoExchange, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); +#endif + if(canDoExchange) { vector extraGhostNodesOut; extraGhostNodesOut = dbi->ExchangeScalar(doms,true,extraGhostNodes); diff --git a/src/avt/Database/Ghost/avtStructuredDomainBoundaries.C b/src/avt/Database/Ghost/avtStructuredDomainBoundaries.C index 0e2742620a..a12d39f8d6 100644 --- a/src/avt/Database/Ghost/avtStructuredDomainBoundaries.C +++ b/src/avt/Database/Ghost/avtStructuredDomainBoundaries.C @@ -401,7 +401,7 @@ BoundaryHelperFunctions::FillRectilinearBoundaryData(int d1, // Programmer: Jeremy Meredith // Creation: November 21, 2001 // -// Note: bnddata, bndmixmat, and bndmixzone may each be NULL. +// Note: bnddata, bndmixmat, and bndmixzone may each be NULL. // olddata may be NULL as well as long as the mixlen is zero. // // Modifications: @@ -874,7 +874,7 @@ BoundaryHelperFunctions::CommunicateMixedBoundaryData(const vector &doma if (domain2proc[d1] != domain2proc[d2]) { - + if (domain2proc[d1] == rank) { if (bnddata) @@ -996,12 +996,12 @@ BoundaryHelperFunctions::CopyOldValues(int d1, // comp_num 0=X, 1=Y, 2=Z // // Programmer: Hank Childs -// Creation: November 11, 2003 +// Creation: November 11, 2003 // // **************************************************************************** template void -BoundaryHelperFunctions::CopyOldRectilinearValues(int d1, const T *olddata, +BoundaryHelperFunctions::CopyOldRectilinearValues(int d1, const T *olddata, T *newdata, int comp_num) { Boundary *bi = &sdb->boundary[d1]; @@ -1013,7 +1013,7 @@ BoundaryHelperFunctions::CopyOldRectilinearValues(int d1, const T *olddata, int nInew = newbiextents[1] - newbiextents[0] + 1; int nJnew = newbiextents[3] - newbiextents[2] + 1; int nKnew = newbiextents[5] - newbiextents[4] + 1; - + if (comp_num == 0) { // @@ -1030,7 +1030,7 @@ BoundaryHelperFunctions::CopyOldRectilinearValues(int d1, const T *olddata, int newindex = bi->NewPointIndex(i_ind, j_ind, k_ind); int oldI = oldindex % nIold; int newI = newindex % nInew; - newdata[newI] = olddata[oldI]; + newdata[newI] = olddata[oldI]; } } else if (comp_num == 1) @@ -1043,7 +1043,7 @@ BoundaryHelperFunctions::CopyOldRectilinearValues(int d1, const T *olddata, int newindex = bi->NewPointIndex(i_ind, j_ind, k_ind); int oldJ = (oldindex/nIold) % nJold; int newJ = (newindex/nInew) % nJnew; - newdata[newJ] = olddata[oldJ]; + newdata[newJ] = olddata[oldJ]; } } else if (comp_num == 2) @@ -1056,7 +1056,7 @@ BoundaryHelperFunctions::CopyOldRectilinearValues(int d1, const T *olddata, int newindex = bi->NewPointIndex(i_ind, j_ind, k_ind); int oldK = (oldindex/(nIold*nJold)) % nKold; int newK = (newindex/(nInew*nJnew)) % nKnew; - newdata[newK] = olddata[oldK]; + newdata[newK] = olddata[oldK]; } } } @@ -1154,7 +1154,7 @@ avtStructuredDomainBoundaries::SetExistence(int d1, { for (int i=n1extents[0]; i<=n1extents[1]; i++) { - int index = (isPointData ? + int index = (isPointData ? bi->NewPointIndexFromNeighbor(n1, i,j,k) : bi->NewCellIndexFromNeighbor(n1, i,j,k)); if (index >= 0) @@ -1171,7 +1171,7 @@ avtStructuredDomainBoundaries::SetExistence(int d1, // Method: BoundaryHelperFunctions::SetNewBoundaryData // // Purpose: -// Set the ghost values of the given domain using the temporary +// Set the ghost values of the given domain using the temporary // boundary data. // // Arguments: @@ -1253,7 +1253,7 @@ BoundaryHelperFunctions::SetNewBoundaryData(int d1, { for (int i=n1extents[0]; i<=n1extents[1]; i++) { - int newindex = (isPointData ? + int newindex = (isPointData ? bi->NewPointIndexFromNeighbor(n1, i,j,k) : bi->NewCellIndexFromNeighbor(n1, i,j,k)); if (newindex >= 0) @@ -1272,7 +1272,7 @@ BoundaryHelperFunctions::SetNewBoundaryData(int d1, // Method: BoundaryHelperFunctions::SetNewRectilinearBoundaryData // // Purpose: -// Set the ghost values of the given domain using the temporary +// Set the ghost values of the given domain using the temporary // boundary data. // // Arguments: @@ -1576,7 +1576,7 @@ BoundaryHelperFunctions::FakeNonexistentBoundaryData(int d1, } delete[] newexists; } - + // ---------------------------------------------------------------------------- // public methods @@ -1609,7 +1609,7 @@ avtStructuredDomainBoundaries::avtStructuredDomainBoundaries( bhf_float = new BoundaryHelperFunctions(this); bhf_double = new BoundaryHelperFunctions(this); bhf_uchar = new BoundaryHelperFunctions(this); - shouldComputeNeighborsFromExtents = canComputeNeighborsFromExtents; + shouldComputeNeighborsFromExtents = canComputeNeighborsFromExtents; haveCalculatedBoundaries = false; maxAMRLevel = 1; } @@ -1622,7 +1622,7 @@ avtStructuredDomainBoundaries::avtStructuredDomainBoundaries( // // Modifications: // Mark C. Miller, ed Mar 23 15:29:56 PST 2005 -// Added code to delete stuff new'd in constructor +// Added code to delete stuff new'd in constructor // // **************************************************************************** avtStructuredDomainBoundaries::~avtStructuredDomainBoundaries() @@ -1741,8 +1741,8 @@ avtStructuredDomainBoundaries::SetExtents(int domain, int e[6]) // // **************************************************************************** void -avtStructuredDomainBoundaries::AddNeighbor(int domain, int d, int mi, int o[3], - int e[6], RefinementRelationship rr, +avtStructuredDomainBoundaries::AddNeighbor(int domain, int d, int mi, int o[3], + int e[6], RefinementRelationship rr, const std::vector& ref_ratio, NeighborRelationship nr) { @@ -1807,6 +1807,9 @@ avtStructuredDomainBoundaries::Finish(int domain) // Brad Whitlock, Sun Apr 22 08:52:14 PDT 2012 // Double support. // +// Kathleen Biagas, Fri Nov 1, 2024 +// Added consistency check for dataTypes. +// // **************************************************************************** vector avtStructuredDomainBoundaries::ExchangeScalar(vector domainNum, @@ -1815,16 +1818,27 @@ avtStructuredDomainBoundaries::ExchangeScalar(vector domainNum, { int dataType = (scalars.empty() ? -1 : scalars[0]->GetDataType()); + int maxDataType = dataType; #ifdef PARALLEL // Let's get them all to agree on one data type. - int myDataType = dataType; - MPI_Allreduce(&myDataType, &dataType, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); + MPI_Allreduce(&dataType, &maxDataType, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); + + int hasDataTypeMismatch = ((dataType >= 0) && (dataType != maxDataType)); + int hasDataTypeMismatchMax = hasDataTypeMismatch; + MPI_Allreduce(&hasDataTypeMismatch, &hasDataTypeMismatchMax, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); + if(hasDataTypeMismatchMax) + { + // This should never happen, so throw the exception. + EXCEPTION1(VisItException, + "avtStructuredDomainBoundaries:ExchangeScalar " + "vtkDataArray data types do not match."); + } #endif - if (dataType < 0) + if (maxDataType < 0) return scalars; - switch (dataType) + switch (maxDataType) { case VTK_FLOAT: return ExchangeFloatScalar(domainNum, isPointData, scalars); @@ -1870,7 +1884,7 @@ avtStructuredDomainBoundaries::ExchangeScalar(vector domainNum, // Propagate variable names. // // Kathleen Bonnell, Fri Feb 8 11:03:49 PST 2002 -// vtkScalars has been deprecated in VTK 4.0, use vtkDataArray +// vtkScalars has been deprecated in VTK 4.0, use vtkDataArray // and vtkFloatArray instead. // // Jeremy Meredith, Fri Nov 7 15:13:56 PST 2003 @@ -1940,7 +1954,7 @@ avtStructuredDomainBoundaries::ExchangeFloatScalar(vector domainNum, Boundary *bi = &boundary[domainNum[d]]; // Create the new VTK objects - out[d] = vtkFloatArray::New(); + out[d] = vtkFloatArray::New(); out[d]->SetName(scalars[d]->GetName()); if (isPointData) out[d]->SetNumberOfTuples(bi->newnpts); @@ -2041,7 +2055,7 @@ avtStructuredDomainBoundaries::ExchangeDoubleScalar(vector domainNum, Boundary *bi = &boundary[domainNum[d]]; // Create the new VTK objects - out[d] = vtkDoubleArray::New(); + out[d] = vtkDoubleArray::New(); out[d]->SetName(scalars[d]->GetName()); if (isPointData) out[d]->SetNumberOfTuples(bi->newnpts); @@ -2150,7 +2164,7 @@ avtStructuredDomainBoundaries::ExchangeIntScalar(vector domainNum, Boundary *bi = &boundary[domainNum[d]]; // Create the new VTK objects - out[d] = vtkIntArray::New(); + out[d] = vtkIntArray::New(); out[d]->SetName(scalars[d]->GetName()); if (isPointData) out[d]->SetNumberOfTuples(bi->newnpts); @@ -2260,7 +2274,7 @@ avtStructuredDomainBoundaries::ExchangeUCharScalar(vector domainNum, Boundary *bi = &boundary[domainNum[d]]; // Create the new VTK objects - out[d] = vtkUnsignedCharArray::New(); + out[d] = vtkUnsignedCharArray::New(); out[d]->SetName(scalars[d]->GetName()); if (isPointData) out[d]->SetNumberOfTuples(bi->newnpts); @@ -2302,6 +2316,8 @@ avtStructuredDomainBoundaries::ExchangeUCharScalar(vector domainNum, // Creation: April 21, 2015 // // Modifications: +// Kathleen Biagas, Fri Nov 1, 2024 +// Added consistency check for dataTypes. // // **************************************************************************** vector @@ -2310,17 +2326,29 @@ avtStructuredDomainBoundaries::ExchangeVector(vector domainNum, vector vectors) { int dataType = (vectors.empty() ? -1 : vectors[0]->GetDataType()); - + + int maxDataType = dataType; #ifdef PARALLEL // Let's get them all to agree on one data type. - int myDataType = dataType; - MPI_Allreduce(&myDataType, &dataType, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); + MPI_Allreduce(&dataType, &maxDataType, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); + + // Now verify if there is a dataType mismatch. + int hasDataTypeMismatch = ((dataType >= 0) && (dataType != maxDataType)); + int hasDataTypeMismatchMax = hasDataTypeMismatch; + MPI_Allreduce(&hasDataTypeMismatch, &hasDataTypeMismatchMax, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); + if(hasDataTypeMismatchMax) + { + // This should never happen, so throw the exception. + EXCEPTION1(VisItException, + "avtStructuredDomainBoundaries:ExchangeVector " + "vtkDataArray data types do not match."); + } #endif - - if (dataType < 0) + + if (maxDataType < 0) return vectors; - - switch (dataType) + + switch (maxDataType) { case VTK_FLOAT: return ExchangeFloatVector(domainNum, isPointData, vectors); @@ -2363,13 +2391,13 @@ avtStructuredDomainBoundaries::ExchangeVector(vector domainNum, // Propagate variable names. // // Kathleen Bonnell, Fri Feb 8 11:03:49 PST 2002 -// vtkVectors has been deprecated in VTK 4.0, use vtkDataArray +// vtkVectors has been deprecated in VTK 4.0, use vtkDataArray // and vtkFloatArray instead. // -// Kathleen Bonnell, Mon May 20 13:33:03 PDT 2002 +// Kathleen Bonnell, Mon May 20 13:33:03 PDT 2002 // Change name to reflect underlying data type. Allow for arbitrary -// number of components in the array. -// +// number of components in the array. +// // Hank Childs, Fri Dec 6 14:56:20 PST 2002 // Do not assume that the number of vectors is > 0. // @@ -2438,7 +2466,7 @@ avtStructuredDomainBoundaries::ExchangeFloatVector(vector domainNum, { // Create the new VTK objects out[d] = vtkFloatArray::New(); - out[d]->SetNumberOfComponents(nComp); + out[d]->SetNumberOfComponents(nComp); out[d]->SetName(vectors[d]->GetName()); if (isPointData) out[d]->SetNumberOfTuples(boundary[domainNum[d]].newnpts); @@ -2538,8 +2566,8 @@ avtStructuredDomainBoundaries::ExchangeDoubleVector(vector domainNum, for (size_t d = 0; d < vectors.size(); d++) { // Create the new VTK objects - out[d] = vtkDoubleArray::New(); - out[d]->SetNumberOfComponents(nComp); + out[d] = vtkDoubleArray::New(); + out[d]->SetNumberOfComponents(nComp); out[d]->SetName(vectors[d]->GetName()); if (isPointData) out[d]->SetNumberOfTuples(boundary[domainNum[d]].newnpts); @@ -2580,19 +2608,19 @@ avtStructuredDomainBoundaries::ExchangeDoubleVector(vector domainNum, // Notes: // Taken from ExchangeFloatVector and modified for integer data types. // -// Programmer: Kathleen Bonnell -// Creation: May 20, 2002 +// Programmer: Kathleen Bonnell +// Creation: May 20, 2002 // // Modifications: // // Hank Childs, Fri Dec 6 14:56:20 PST 2002 // Do not assume that the number of vectors is > 0. // -// Kathleen Bonnell, Wed Dec 11 09:13:25 PST 2002 -// Preserver underlying data type: use MakeObject instead of New. +// Kathleen Bonnell, Wed Dec 11 09:13:25 PST 2002 +// Preserver underlying data type: use MakeObject instead of New. // -// Kathleen Bonnell, Fri Dec 13 14:07:15 PST 2002 -// Use NewInstance instead of MakeObject, new vtk api. +// Kathleen Bonnell, Fri Dec 13 14:07:15 PST 2002 +// Use NewInstance instead of MakeObject, new vtk api. // // Hank Childs, Wed Jun 29 15:24:35 PDT 2005 // Cache domain2proc. @@ -2658,8 +2686,8 @@ avtStructuredDomainBoundaries::ExchangeIntVector(vector domainNum, for (size_t d = 0; d < vectors.size(); d++) { // Create the new VTK objects - out[d] = vectors[d]->NewInstance(); - out[d]->SetNumberOfComponents(nComp); + out[d] = vectors[d]->NewInstance(); + out[d]->SetNumberOfComponents(nComp); out[d]->SetName(vectors[d]->GetName()); if (isPointData) out[d]->SetNumberOfTuples(boundary[domainNum[d]].newnpts); @@ -2844,7 +2872,7 @@ avtStructuredDomainBoundaries::ExchangeMaterial(vector domainNum, // Set the remaining unset ones (reduced connectivity, etc.) bhf_int->FakeNonexistentBoundaryData(domainNum[d], newmatlist, false); - out[d] = new avtMaterial(oldmat->GetNMaterials(), + out[d] = new avtMaterial(oldmat->GetNMaterials(), oldmat->GetMaterials(), boundary[domainNum[d]].newncells, newmatlist, @@ -3160,8 +3188,8 @@ avtStructuredDomainBoundaries::ConfirmMesh(vector domainNum, { debug1 << "Rejecting domain boundaries because of inconsistency " << "with domain " << domainNum[i] << endl; - debug1 << "File returned " << meshes[i]->GetNumberOfPoints() - << " points, but dbi object believed it should be " + debug1 << "File returned " << meshes[i]->GetNumberOfPoints() + << " points, but dbi object believed it should be " << b.oldnpts << endl; return false; } @@ -3169,8 +3197,8 @@ avtStructuredDomainBoundaries::ConfirmMesh(vector domainNum, { debug1 << "Rejecting domain boundaries because of inconsistency " << "with domain " << domainNum[i] << endl; - debug1 << "File returned " << meshes[i]->GetNumberOfCells() - << "cells, but dbi object believed it should be " + debug1 << "File returned " << meshes[i]->GetNumberOfCells() + << "cells, but dbi object believed it should be " << b.oldncells << endl; return false; } @@ -3238,7 +3266,7 @@ avtStructuredDomainBoundaries::ResetCachedMembers(void) void avtStructuredDomainBoundaries::CreateGhostZones(vtkDataSet *outMesh, vtkDataSet *inMesh, Boundary *bi, - bool haveCommunicatedGhosts, + bool haveCommunicatedGhosts, int domain, unsigned char ***ghosts) { vtkUnsignedCharArray *oldGhosts = (vtkUnsignedCharArray *) @@ -3255,11 +3283,11 @@ avtStructuredDomainBoundaries::CreateGhostZones(vtkDataSet *outMesh, { if (oldGhosts == NULL) EXCEPTION0(ImproperUseException); // we should never get to this point - bhf_uchar->CopyOldValues(domain, + bhf_uchar->CopyOldValues(domain, (unsigned char *) oldGhosts->GetVoidPointer(0), (unsigned char *) ghostCells->GetVoidPointer(0), false, 1); - bhf_uchar->SetNewBoundaryData(domain, ghosts, + bhf_uchar->SetNewBoundaryData(domain, ghosts, (unsigned char *) ghostCells->GetVoidPointer(0), false, 1); } @@ -3291,7 +3319,7 @@ avtStructuredDomainBoundaries::CreateGhostZones(vtkDataSet *outMesh, outMesh->GetCellData()->AddArray(ghostCells); ghostCells->Delete(); - outMesh->GetInformation()->Set(vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS(), 0); + outMesh->GetInformation()->Set(vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS(), 0); // // Create a field-data array indicating the extents of real zones. @@ -3330,7 +3358,7 @@ avtStructuredDomainBoundaries::CreateGhostZones(vtkDataSet *outMesh, // Made use of templatized functions. Added call to fake boundary // data when it is nonexistent. // -// Kathleen Bonnell, Wed Jul 10 16:02:56 PDT 2002 +// Kathleen Bonnell, Wed Jul 10 16:02:56 PDT 2002 // Create a field-data array indicating the extents of real zones. // Used during ghostzone removal. // @@ -3462,7 +3490,7 @@ avtCurvilinearDomainBoundaries::ExchangeMesh(Helper *bhf, int vtktype, Boundary *bi = &boundary[d1]; // Create the VTK objects - vtkStructuredGrid *outm = vtkStructuredGrid::New(); + vtkStructuredGrid *outm = vtkStructuredGrid::New(); vtkPoints *outp = vtkPoints::New(vtktype); outm->SetPoints(outp); outp->Delete(); @@ -3486,7 +3514,7 @@ avtCurvilinearDomainBoundaries::ExchangeMesh(Helper *bhf, int vtktype, out[d] = outm; } visitTimer->StopTimer(timer_UnpackData, "Ghost Zone Generation phase 4: Unpack Data (in curvmesh version)"); - + bhf->FreeBoundaryData(coord); } @@ -3621,7 +3649,7 @@ avtRectilinearDomainBoundaries::ExchangeMesh(vector domainNum, int d1 = domainNum[d]; Boundary *bi = &boundary[d1]; - vtkRectilinearGrid *outm = vtkRectilinearGrid::New(); + vtkRectilinearGrid *outm = vtkRectilinearGrid::New(); vtkDataArray *newx, *newy, *newz; if(oldx->GetDataType() == VTK_DOUBLE) { @@ -3645,7 +3673,7 @@ avtRectilinearDomainBoundaries::ExchangeMesh(vector domainNum, newx->SetNumberOfTuples(bi->newndims[0]); newy->SetNumberOfTuples(bi->newndims[1]); newz->SetNumberOfTuples(bi->newndims[2]); - + int i; for (i = 0 ; i < bi->newndims[0] ; i++) { @@ -3658,7 +3686,7 @@ avtRectilinearDomainBoundaries::ExchangeMesh(vector domainNum, } else if (id > bi->oldnextents[1]) { - double last_dist = (oldx->GetTuple1(bi->oldndims[0]-1) - + double last_dist = (oldx->GetTuple1(bi->oldndims[0]-1) - oldx->GetTuple1(bi->oldndims[0]-2)); int num_off = (id - bi->oldnextents[1]); newx->SetTuple1(i, oldx->GetTuple1(bi->oldndims[0]-1) + last_dist*num_off); @@ -3683,7 +3711,7 @@ avtRectilinearDomainBoundaries::ExchangeMesh(vector domainNum, } else if (id > bi->oldnextents[3]) { - double last_dist = (oldy->GetTuple1(bi->oldndims[1]-1) - + double last_dist = (oldy->GetTuple1(bi->oldndims[1]-1) - oldy->GetTuple1(bi->oldndims[1]-2)); int num_off = (id - bi->oldnextents[3]); newy->SetTuple1(i, oldy->GetTuple1(bi->oldndims[1]-1) + last_dist*num_off); @@ -3708,7 +3736,7 @@ avtRectilinearDomainBoundaries::ExchangeMesh(vector domainNum, } else if (id > bi->oldnextents[5]) { - double last_dist = (oldz->GetTuple1(bi->oldndims[2]-1) - + double last_dist = (oldz->GetTuple1(bi->oldndims[2]-1) - oldz->GetTuple1(bi->oldndims[2]-2)); int num_off = (id - bi->oldnextents[5]); newz->SetTuple1(i, oldz->GetTuple1(bi->oldndims[2]-1) + last_dist*num_off); @@ -3717,9 +3745,9 @@ avtRectilinearDomainBoundaries::ExchangeMesh(vector domainNum, { int oldindex = bi->OldPointIndex(0, 0, id); int newindex = bi->NewPointIndex(0, 0, id); - int oldK = (oldindex/(bi->oldndims[0]*bi->oldndims[1])) + int oldK = (oldindex/(bi->oldndims[0]*bi->oldndims[1])) % bi->oldndims[2]; - int newK = (newindex/(bi->newndims[0]*bi->newndims[1])) + int newK = (newindex/(bi->newndims[0]*bi->newndims[1])) % bi->newndims[2]; newz->SetTuple1(newK, oldz->GetTuple1(oldK)); } @@ -3789,7 +3817,7 @@ avtStructuredDomainBoundaries::CreateGhostNodes(vector domainNum, // If we are doing DLB, we want to mark nodes as ghost, even if their // neighboring domains are not being used on this iteration. Do this by // consulting the "allDomains" list. Note that we can only play this - // trick because the rest of the routine does not care which domains + // trick because the rest of the routine does not care which domains // are on which processors -- only that we are using them. // int ntotaldomains = (int)wholeBoundary.size(); @@ -3814,7 +3842,7 @@ avtStructuredDomainBoundaries::CreateGhostNodes(vector domainNum, gn->SetNumberOfTuples(npts); gn->SetName("avtGhostNodes"); unsigned char *gnp = gn->GetPointer(0); - + for (int j = 0 ; j < npts ; j++) gnp[j] = 0; @@ -3963,14 +3991,14 @@ avtStructuredDomainBoundaries::SetRefinementRatios(const std::vector &r) // // Kathleen Bonnell, Tue Jan 20 17:26:40 PST 2004 // Reversed order of Exceptions, per Mark Miller's request. -// +// // Hank Childs, Fri Nov 14 10:50:06 PST 2008 // Set data member for tracking maximum AMR level. // // **************************************************************************** void -avtStructuredDomainBoundaries::SetIndicesForAMRPatch(int domain, +avtStructuredDomainBoundaries::SetIndicesForAMRPatch(int domain, int level, int e[6]) { if (!shouldComputeNeighborsFromExtents) @@ -4039,7 +4067,7 @@ avtStructuredDomainBoundaries::SetIndicesForAMRPatch(int domain, // of levels. // // Hank Childs, Tue Jan 4 13:35:56 PST 2011 -// Add support for the types of ghost data needed to create crack-free +// Add support for the types of ghost data needed to create crack-free // isosurfaces with the AMR stitch operator. They are: // (1) values from the coarse patch when a fine patch is embedded in a // coarse patch. @@ -4053,7 +4081,7 @@ avtStructuredDomainBoundaries::SetIndicesForAMRPatch(int domain, // Add support for T-intersections. // // Gunther H. Weber, Thu Jan 19 14:35:59 PST 2012 -// Select new support for T-intersections by defining +// Select new support for T-intersections by defining // CREATE_GHOSTS_FOR_T_INTERSECTIONS // // Gunther H. Weber, Thu Jun 14 17:31:59 PDT 2012 @@ -4204,7 +4232,7 @@ avtStructuredDomainBoundaries::CalculateBoundaries(void) "computation of neighbors from index extents"); } - // + // // The logic for setting up boundaries across AMR levels and within an // AMR level are similar. So the code is combined into a single loop. // Also, the normal rectilinear case is the same as "within an AMR level". @@ -4382,9 +4410,9 @@ avtStructuredDomainBoundaries::CalculateBoundaries(void) // if the current boundary doesn't apply, skip it if ((axisOffset[0]==-1 && !minFace[0]) || - (axisOffset[0]==+1 && !maxFace[0]) || + (axisOffset[0]==+1 && !maxFace[0]) || (axisOffset[1]==-1 && !minFace[1]) || - (axisOffset[1]==+1 && !maxFace[1]) || + (axisOffset[1]==+1 && !maxFace[1]) || (axisOffset[2]==-1 && !minFace[2]) || (axisOffset[2]==+1 && !maxFace[2])) { @@ -4486,8 +4514,8 @@ avtStructuredDomainBoundaries::CalculateBoundaries(void) // domain the domain to get the extents of // e the extents // -// Programmer: Kathleen Bonnell -// Creation: February 8, 2005 +// Programmer: Kathleen Bonnell +// Creation: February 8, 2005 // // **************************************************************************** @@ -4495,7 +4523,7 @@ void avtStructuredDomainBoundaries::GetExtents(int domain, int e[6]) { int ntotaldomains = (int)wholeBoundary.size(); - + if (domain < 0 || ntotaldomains <= domain) { EXCEPTION2(BadIndexException, domain, ntotaldomains); @@ -4574,11 +4602,11 @@ avtStructuredDomainBoundaries::GetNeighborPresence(int domain, bool *b, // Creation: Dec 15, 2008 // // **************************************************************************** -vector +vector avtStructuredDomainBoundaries::GetNeighbors(int domain) { int ntotaldomains = (int)wholeBoundary.size(); - + if (domain < 0 || ntotaldomains <= domain) { EXCEPTION2(BadIndexException, domain, ntotaldomains); diff --git a/src/avt/Database/Ghost/avtUnstructuredDomainBoundaries.C b/src/avt/Database/Ghost/avtUnstructuredDomainBoundaries.C index 0cbbc28b9e..5a3dc519a6 100644 --- a/src/avt/Database/Ghost/avtUnstructuredDomainBoundaries.C +++ b/src/avt/Database/Ghost/avtUnstructuredDomainBoundaries.C @@ -225,9 +225,9 @@ avtUnstructuredDomainBoundaries::SetGivenCellsAndPoints(int fromDom, int toDom, else { int sIndex = GetGivenIndex(fromDom, toDom); - + map &smap = sharedPointsMap[sIndex]; - + // Go through and manually insert the points that are not shared. for (size_t i = 0; i < points.size(); ++i) @@ -299,7 +299,7 @@ CopyPointer(T *src, T *dest, int components, for (i = 1; i < nIter; ++i) *(++dest) = *(++src); } - + // **************************************************************************** // Method: avtUnstructuredDomainBoundaries::ExchangeMesh // @@ -408,9 +408,9 @@ avtUnstructuredDomainBoundaries::ExchangeMeshT(vector domainNum, int i; for (i = 0; i < nTotalDomains; ++i) nGivenPoints += nGainedPoints[i][recvDom]; - + // Create the VTK objects - vtkUnstructuredGrid *outm = vtkUnstructuredGrid::New(); + vtkUnstructuredGrid *outm = vtkUnstructuredGrid::New(); vtkPoints *outp = vtkPoints::New(mesh->GetPoints()->GetDataType()); outm->DeepCopy(meshes[d]); @@ -433,15 +433,15 @@ avtUnstructuredDomainBoundaries::ExchangeMeshT(vector domainNum, { if (sendDom == recvDom) continue; - + int nGivenPointsThisDomain = nGainedPoints[sendDom][recvDom]; if (nGivenPointsThisDomain == 0) continue; - + // We need to remember what the point id for this exchange // of points is. startingPoint[pair(sendDom, recvDom)] = newId; - + T *pts = gainedPoints[sendDom][recvDom]; int *origPointIdsThisDomain = origPointIds[sendDom][recvDom]; @@ -450,14 +450,14 @@ avtUnstructuredDomainBoundaries::ExchangeMeshT(vector domainNum, *(newcoord++) = *(pts++); *(newcoord++) = *(pts++); *(newcoord++) = *(pts++); - translatedPointsMap[sendDom][origPointIdsThisDomain[i]] = + translatedPointsMap[sendDom][origPointIdsThisDomain[i]] = newId++; } } - + int nOldCells = outm->GetNumberOfCells(); - + vtkIdList *idList = vtkIdList::New(); // Put in the new cells for (sendDom = 0; sendDom < nTotalDomains; ++sendDom) @@ -469,19 +469,19 @@ avtUnstructuredDomainBoundaries::ExchangeMeshT(vector domainNum, if (nGainedCellsThisDomain == 0) continue; - + // We're going to be be giving cells from sendDom to recvDom. // The id that the cells will be inserted at is // important, and we need to remember. startingCell[pair(sendDom, recvDom)] = outm-> GetNumberOfCells(); - + // We want the map that indexes the ptIds from sendDom into // the ptIds of recvDom. int index = GetGivenIndex(sendDom, recvDom); map &smap = sharedPointsMap[index]; map &tmap = translatedPointsMap[sendDom]; - + for (i = 0; i < nGainedCellsThisDomain; ++i) { int nPointsThisCell = nPointsPerCell[sendDom][recvDom][i]; @@ -493,7 +493,7 @@ avtUnstructuredDomainBoundaries::ExchangeMeshT(vector domainNum, if (smap.find(id) != smap.end()) idList->SetId(k, smap[id]); else - idList->SetId(k, tmap[id]); + idList->SetId(k, tmap[id]); } outm->InsertNextCell(cellTypes[sendDom][recvDom][i], idList); } @@ -518,7 +518,7 @@ avtUnstructuredDomainBoundaries::ExchangeMeshT(vector domainNum, } outm->GetCellData()->AddArray(ghostCells); ghostCells->Delete(); - outm->GetInformation()->Set(vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS(), 0); + outm->GetInformation()->Set(vtkStreamingDemandDrivenPipeline::UPDATE_NUMBER_OF_GHOST_LEVELS(), 0); // Rebuild the links now that we've added ghost cells. outm->BuildLinks(); @@ -560,7 +560,7 @@ avtUnstructuredDomainBoundaries::ExchangeMeshT(vector domainNum, delete [] nGainedCells[a]; delete [] nPointsPerCell[a]; } - + delete [] gainedPoints; delete [] cellTypes; delete [] cellPoints; @@ -600,6 +600,12 @@ avtUnstructuredDomainBoundaries::ExchangeMeshT(vector domainNum, // Eric Brugger, Fri Mar 13 15:20:08 PDT 2020 // Modify to handle NULL meshes. // +// Kathleen Biagas, Thu Oct 31, 2024 +// Ensure all procs are calling the same Exchange function. +// +// Kathleen Biagas, Fri Nov 1, 2024 +// Added consistency check for dataTypes. +/// // **************************************************************************** vector @@ -607,22 +613,39 @@ avtUnstructuredDomainBoundaries::ExchangeScalar(vector domainNum, bool isPointData, vector scalars) { - // We're in a bit of a sticky situation if we don't have any actual data. - // Without a valid vtkDataArray, we don't know which ExchangeData to - // call. But if there's no data, nothing will actually be exchanged - // aside from basic communications (eg: domain2proc, MPI_Barrier), - // so we'll choose to call one. - if (!scalars.size()) + int nonNullDomain = 0; + int dataType = -1; + if(!scalars.empty()) + { + while (nonNullDomain < domainNum.size() && scalars[nonNullDomain] == NULL) + nonNullDomain++; + dataType = scalars[nonNullDomain]->GetDataType(); + } + + int maxDataType = dataType; +#ifdef PARALLEL + // Let's get them all to agree on one data type. + MPI_Allreduce(&dataType, &maxDataType, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); + + int hasDataTypeMismatch = ((dataType >= 0) && (dataType != maxDataType)); + int hasDataTypeMismatchMax = hasDataTypeMismatch; + MPI_Allreduce(&hasDataTypeMismatch, &hasDataTypeMismatchMax, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); + if(hasDataTypeMismatchMax) { - return ExchangeData_float(domainNum, isPointData, scalars); + // This should never happen, so throw the exception. + EXCEPTION1(VisItException, + "avtUnstructuredDomainBoundaries:ExchangeScalar " + "vtkDataArray data types do not match."); } +#endif + + if (maxDataType < 0) + return scalars; + // This one's a little more complicated because there are different // types of scalars we might encounter. If more cases arise, // expand this function. - int nonNullDomain = 0; - while (nonNullDomain < domainNum.size() && scalars[nonNullDomain] == NULL) - nonNullDomain++; - switch (scalars[nonNullDomain]->GetDataType()) + switch (maxDataType) { case VTK_INT: return ExchangeData_int(domainNum, isPointData, scalars); @@ -665,27 +688,50 @@ avtUnstructuredDomainBoundaries::ExchangeScalar(vector domainNum, // Eric Brugger, Fri Mar 13 15:20:08 PDT 2020 // Modify to handle NULL meshes. // +// Kathleen Biagas, Thu Oct 31, 2024 +// Ensure all procs are calling the same Exchange function. +// +// Kathleen Biagas, Fri Nov 1, 2024 +// Added consistency check for dataTypes. +/// // **************************************************************************** vector avtUnstructuredDomainBoundaries::ExchangeVector(vector domainNum, bool isPointData, vector vectors) { - // We're in a bit of a sticky situation if we don't have any actual data. - // Without a valid vtkDataArray, we don't know which ExchangeData to - // call. But if there's no data, nothing will actually be exchanged - // aside from basic communications (eg: domain2proc, MPI_Barrier), - // so we'll choose to call one. - if (!vectors.size()) + int nonNullDomain = 0; + int dataType = -1; + if(!vectors.empty()) + { + while (nonNullDomain < domainNum.size() && vectors[nonNullDomain] == NULL) + nonNullDomain++; + dataType = vectors[nonNullDomain]->GetDataType(); + } + + int maxDataType = dataType; +#ifdef PARALLEL + // Let's get them all to agree on one data type. + MPI_Allreduce(&dataType, &maxDataType, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); + + int hasDataTypeMismatch = ((dataType >= 0) && (dataType != maxDataType)); + int hasDataTypeMismatchMax = hasDataTypeMismatch; + MPI_Allreduce(&hasDataTypeMismatch, &hasDataTypeMismatchMax, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); + if(hasDataTypeMismatchMax) { - return ExchangeFloatVector(domainNum, isPointData, vectors); + // This should never happen, so throw the exception. + EXCEPTION1(VisItException, + "avtUnstructuredDomainBoundaries:ExchangeVector " + "vtkDataArray data types do not match."); } +#endif + + if (maxDataType < 0) + return vectors; + // This one's a little more complicated because there are different // types of vectors we might encounter. If more cases arise, // expand this function. - int nonNullDomain = 0; - while (nonNullDomain < domainNum.size() && vectors[nonNullDomain] == NULL) - nonNullDomain++; - switch (vectors[nonNullDomain]->GetDataType()) + switch (maxDataType) { case VTK_FLOAT: return ExchangeFloatVector(domainNum, isPointData, vectors); @@ -803,7 +849,7 @@ avtUnstructuredDomainBoundaries::ExchangeIntVector(vector domainNum, // // Purpose: // Exchange the ghost zone information for some materials, -// returning the new ones. +// returning the new ones. // // Arguments: // domainNum an array of domain numbers for each mesh @@ -845,7 +891,7 @@ avtUnstructuredDomainBoundaries::ExchangeMaterial(vector domainNum, // // Purpose: // Exchange the ghost zone information for some materials, -// returning the new ones. +// returning the new ones. // // Arguments: // domainNum an array of domain numbers for each mesh @@ -888,10 +934,10 @@ avtUnstructuredDomainBoundaries::ExchangeMixedMaterials(vector domainNum, avtMaterial *oldMat = mats[i]; if (oldMat == NULL) continue; - + // // Estimate the sizes we will need for the new object. - // + // int oldNCells = oldMat->GetNZones(); int oldMixlen = oldMat->GetMixlen(); int newNCells = oldNCells; @@ -962,9 +1008,9 @@ avtUnstructuredDomainBoundaries::ExchangeMixedMaterials(vector domainNum, } } - out[i] = new avtMaterial(oldMat->GetNMaterials(), - oldMat->GetMaterials(), newNCells, - new_matlist, newMixlen, new_mix_mat, + out[i] = new avtMaterial(oldMat->GetNMaterials(), + oldMat->GetMaterials(), newNCells, + new_matlist, newMixlen, new_mix_mat, new_mix_next, new_mix_zone, new_mix_vf); delete [] new_matlist; @@ -973,7 +1019,7 @@ avtUnstructuredDomainBoundaries::ExchangeMixedMaterials(vector domainNum, delete [] new_mix_zone; delete [] new_mix_vf; } - + // Cleanup memory ... a bit of work. if (nGainedCells != NULL) { @@ -1035,7 +1081,7 @@ avtUnstructuredDomainBoundaries::ExchangeMixedMaterials(vector domainNum, // // Purpose: // Exchange the ghost zone information for some materials, -// returning the new ones. +// returning the new ones. // // Arguments: // domainNum an array of domain numbers for each mesh @@ -1072,7 +1118,7 @@ avtUnstructuredDomainBoundaries::ExchangeCleanMaterials(vector domainNum, { if (mats[i] == NULL) continue; - + // This should never happen, but it doesn't hurt to check. if (mats[i]->GetMixlen() != 0) { @@ -1102,11 +1148,11 @@ avtUnstructuredDomainBoundaries::ExchangeCleanMaterials(vector domainNum, { if (mats[i] == NULL) continue; - + int nMaterials = mats[i]->GetNMaterials(); int nZones = result[i]->GetNumberOfTuples(); int *matPtr = (int *)(result[i]->GetVoidPointer(0)); - + out[i] = new avtMaterial(nMaterials, mats[i]->GetMaterials(), nZones, matPtr, 0, NULL, NULL, NULL, NULL); @@ -1114,7 +1160,7 @@ avtUnstructuredDomainBoundaries::ExchangeCleanMaterials(vector domainNum, materialArrays[i]->Delete(); result[i]->Delete(); } - + return out; } @@ -1124,7 +1170,7 @@ avtUnstructuredDomainBoundaries::ExchangeCleanMaterials(vector domainNum, // // Purpose: // Exchange the ghost zone information for some mixvars, -// returning the new ones. +// returning the new ones. // // Arguments: // domainNum an array of domain numbers for each mesh @@ -1139,7 +1185,7 @@ avtUnstructuredDomainBoundaries::ExchangeCleanMaterials(vector domainNum, // Hank Childs, Tue Mar 4 13:29:48 PST 2008 // Account for domains that do not have mixed variables. // -// Kathleen Bonnell, Thu Apr 10 17:56:33 PDT 2008 +// Kathleen Bonnell, Thu Apr 10 17:56:33 PDT 2008 // Removed redefinition of 'i'. // // **************************************************************************** @@ -1232,10 +1278,10 @@ avtUnstructuredDomainBoundaries::ExchangeMixVar(vector domainNum, // for (int j = 0 ; j < nTotalDomains ; j++) { - memcpy(new_buff+mixlen_cnt, vals[j][domainNum[i]], + memcpy(new_buff+mixlen_cnt, vals[j][domainNum[i]], sizeof(float)*nGainedMixlen[j][domainNum[i]]); mixlen_cnt += nGainedMixlen[j][domainNum[i]]; - } + } out[i] = new avtMixedVariable(new_buff, newMixlen,mixvarname); delete [] new_buff; @@ -1349,19 +1395,19 @@ avtUnstructuredDomainBoundaries::ConfirmMesh(vector domainNum, meshes[j]->GetPoint(d2ptId, pt2); const double epsilon = 1e-12; - + // If these points are too dis-similar, it has to be // referring another mesh. if (fabs(pt1[0] - pt2[0]) + fabs(pt1[1] - pt2[1]) + fabs(pt1[2] - pt2[2]) > epsilon) return false; - + // If we reached this point, then we've tested this pair of // domains. break; } } - + return true; } @@ -1387,7 +1433,7 @@ avtUnstructuredDomainBoundaries::ConfirmMesh(vector domainNum, // Brad Whitlock, Thu Sep 16 12:58:27 PDT 2004 // I added conditionally compiled code to work around an apparent template // instantiation bug that in the MSVC6.0 compiler that prevented VisIt -// from building on Windows. I added an argument to contribute to the +// from building on Windows. I added an argument to contribute to the // method signature and the contents of CommunicateDataInformation, // which had to be inlined to get it to compile on Windows. // @@ -1434,7 +1480,7 @@ avtUnstructuredDomainBoundaries::ExchangeData(vector &domainNum, out[i]->DeepCopy(data[i]); out[i]->SetName(data[i]->GetName()); - + int sendDom; int nGivenTuples = 0; @@ -1445,7 +1491,7 @@ avtUnstructuredDomainBoundaries::ExchangeData(vector &domainNum, nGivenTuples += nGainedTuples[sendDom][recvDom]; } - + if (nGivenTuples > 0) { out[i]->Resize(nGivenTuples + out[i]->GetNumberOfTuples()); @@ -1628,7 +1674,7 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( nPointsPerCell = new int **[nTotalDomains]; vtkIdList *idList = vtkIdList::New(); - + for (int sendDom = 0; sendDom < nTotalDomains; ++sendDom) { gainedPoints[sendDom] = new T*[nTotalDomains]; @@ -1650,7 +1696,7 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( nGainedPoints[sendDom][recvDom] = 0; nGainedCells[sendDom][recvDom] = 0; - + // Cases where no computation is required. if (sendDom == recvDom) continue; @@ -1665,9 +1711,9 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( for (i = 0; i < domainNum.size(); ++i) if (domainNum[i] == sendDom) break; - + vtkUnstructuredGrid *givingUg = (vtkUnstructuredGrid*)meshes[i]; - + int index = GetGivenIndex(sendDom, recvDom); // If no domain boundary, then there's no work to do. @@ -1676,7 +1722,7 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( size_t nPts = givenPoints[index].size(); nGainedPoints[sendDom][recvDom] += (int) nPts; - + gainedPoints[sendDom][recvDom] = new T[nPts * 3]; origPointIds[sendDom][recvDom] = new int[nPts]; @@ -1687,7 +1733,7 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( for (i = 0; i < nPts; ++i) { *(origIdPtr++) = givenPoints[index][i]; - + T *ptPtr = fromPtr + 3 * givenPoints[index][i]; *(gainedPtr++) = *(ptPtr++); *(gainedPtr++) = *(ptPtr++); @@ -1702,8 +1748,8 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( nPointsPerCell[sendDom][recvDom] = new int[nCells]; int *cellPtr = cellTypes[sendDom][recvDom]; - int **cellPtsPtr = cellPoints[sendDom][recvDom]; - int *nPtsPerCellPtr = nPointsPerCell[sendDom][recvDom]; + int **cellPtsPtr = cellPoints[sendDom][recvDom]; + int *nPtsPerCellPtr = nPointsPerCell[sendDom][recvDom]; for (i = 0; i < nCells; ++i) { @@ -1734,7 +1780,7 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( if (nPts == 0) continue; - + nGainedPoints[sendDom][recvDom] += nPts; gainedPoints[sendDom][recvDom] = new T[nPts * 3]; origPointIds[sendDom][recvDom] = new int[nPts]; @@ -1751,9 +1797,9 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( int nCells; MPI_Recv(&nCells, 1, MPI_INT, fRank, mpiNumGivenCellsTag, VISIT_MPI_COMM, &stat); - + nGainedCells[sendDom][recvDom] += nCells; - + cellTypes[sendDom][recvDom] = new int[nCells]; cellPoints[sendDom][recvDom] = new int *[nCells]; nPointsPerCell[sendDom][recvDom] = new int[nCells]; @@ -1771,7 +1817,7 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( int pntArrSize = 0; for (k = 0; k < nCells; ++k) { - cellPoints[sendDom][recvDom][k] = + cellPoints[sendDom][recvDom][k] = new int [nPointsPerCell[sendDom][recvDom][k]]; pntArrSize += nPointsPerCell[sendDom][recvDom][k]; } @@ -1797,8 +1843,8 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( MPI_Datatype type = GetMPIDataType(); int tRank = domain2proc[recvDom]; - int index = GetGivenIndex(sendDom, recvDom); - + int index = GetGivenIndex(sendDom, recvDom); + // If no domain boundary, send 0 for nPts, and continue // Also continue if there are no given points. if (index < 0 || givenPoints[index].size() == 0) @@ -1830,7 +1876,7 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( for (k = 0; k < nPts; ++k) { *(origIdPtr++) = givenPoints[index][k]; - + T *ptPtr = fromPtr + 3 * givenPoints[index][k]; *(gainedPtr++) = *(ptPtr++); *(gainedPtr++) = *(ptPtr++); @@ -1838,21 +1884,21 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( } // Send the number of points given - MPI_Send(&nPts, 1, MPI_INT, tRank, mpiNPtsTag, VISIT_MPI_COMM); - + MPI_Send(&nPts, 1, MPI_INT, tRank, mpiNPtsTag, VISIT_MPI_COMM); + // Send the gained points - MPI_Send(gainedPtrStart, nPts * 3, type, tRank, + MPI_Send(gainedPtrStart, nPts * 3, type, tRank, mpiGainedPointsTag, VISIT_MPI_COMM); - + // Send the original ids for the gained points - MPI_Send(origIdPtrStart, nPts, MPI_INT, tRank, + MPI_Send(origIdPtrStart, nPts, MPI_INT, tRank, mpiOriginalIdsTag, VISIT_MPI_COMM); // Send the number of given cells int nCells = (int)givenCells[index].size(); - MPI_Send(&nCells, 1, MPI_INT, tRank, mpiNumGivenCellsTag, + MPI_Send(&nCells, 1, MPI_INT, tRank, mpiNumGivenCellsTag, VISIT_MPI_COMM); - + // Prepare for sending the cell info int *cellPtr = new int[nCells]; vector cellPtsVector; @@ -1869,8 +1915,8 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( for (int k = 0; k < nPts; ++k) cellPtsVector.push_back(idList->GetId(k)); } - - + + // Send the cell types MPI_Send(cellPtr, nCells, MPI_INT, tRank, mpiCellTypesTag, VISIT_MPI_COMM); @@ -1905,7 +1951,7 @@ avtUnstructuredDomainBoundaries::CommunicateMeshInformation( // Method: avtUnstructuredDomainBoundaries::CommunicateMixvarInformation // // Purpose: -// Send and collect information needed to exchange mixed variables. +// Send and collect information needed to exchange mixed variables. // // Notes: // Returned arguments should be passed in as uninitialized pointers. @@ -1979,7 +2025,7 @@ avtUnstructuredDomainBoundaries::CommunicateMixvarInformation( for (i = 0 ; i < domainNum.size() ; i++) if (domainNum[i] == sendDom) break; - + int index = GetGivenIndex(sendDom, recvDom); // If no domain boundary, then there's no work to do. @@ -1987,7 +2033,7 @@ avtUnstructuredDomainBoundaries::CommunicateMixvarInformation( continue; avtMixedVariable *givingVar = mixvars[i]; - + size_t nCells = givenCells[index].size(); // Assess the amount of mix in cells along the boundary. @@ -2017,7 +2063,7 @@ avtUnstructuredDomainBoundaries::CommunicateMixvarInformation( if (nmats >= 1000) { char str[1024]; - snprintf(str, 1024, + snprintf(str, 1024, "The mixed material entry for cell %d " "of domain %d appears to be invalid. Unable " "to proceed.", givenCells[index][i], sendDom); @@ -2063,7 +2109,7 @@ avtUnstructuredDomainBoundaries::CommunicateMixvarInformation( if (amt == 0) continue; - + mixGained[sendDom][recvDom] = amt; vals[sendDom][recvDom] = new float[amt]; // Get the gained materials @@ -2073,11 +2119,11 @@ avtUnstructuredDomainBoundaries::CommunicateMixvarInformation( // If this process owns the sending domain, we send information. else if (domain2proc[sendDom] == rank) { - + int tRank = domain2proc[recvDom]; - int index = GetGivenIndex(sendDom, recvDom); - + int index = GetGivenIndex(sendDom, recvDom); + // If no domain boundary, send 0 for nPts, and continue // Also continue if there are no given points. int amt = 0; @@ -2092,7 +2138,7 @@ avtUnstructuredDomainBoundaries::CommunicateMixvarInformation( break; avtMixedVariable *givingVar = mixvars[i]; - + size_t nCells = givenCells[index].size(); // Assess the amount of mix in cells along the boundary. @@ -2122,7 +2168,7 @@ avtUnstructuredDomainBoundaries::CommunicateMixvarInformation( if (nmats >= 1000) { char str[1024]; - snprintf(str, 1024, + snprintf(str, 1024, "The mixed material entry for cell %d " "of domain %d appears to be invalid. Unable " "to proceed.", givenCells[index][i], sendDom); @@ -2212,7 +2258,7 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( const vector &domainNum, const vector &mats, int **&nGainedCells, int **&nGainedMixlen, - int ***&gainedMatlist, int ***&gainedMixmat, + int ***&gainedMatlist, int ***&gainedMixmat, float ***&gainedMixvf) { // Get the processor rank @@ -2247,7 +2293,7 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( gainedMatlist[sendDom][recvDom] = NULL; gainedMixmat[sendDom][recvDom] = NULL; gainedMixvf[sendDom][recvDom] = NULL; - + nGainedCells[sendDom][recvDom] = 0; nGainedMixlen[sendDom][recvDom] = 0; @@ -2266,7 +2312,7 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( for (i = 0 ; i < domainNum.size() ; i++) if (domainNum[i] == sendDom) break; - + int index = GetGivenIndex(sendDom, recvDom); // If no domain boundary, then there's no work to do. @@ -2274,7 +2320,7 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( continue; avtMaterial *givingMat = mats[i]; - + size_t nCells = givenCells[index].size(); nGainedCells[sendDom][recvDom] = (int)nCells; @@ -2299,7 +2345,7 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( if (nmats >= 1000) { char str[1024]; - snprintf(str, 1024, + snprintf(str, 1024, "The mixed material entry for cell %d " "of domain %d appears to be invalid. Unable " "to proceed.", givenCells[index][i], sendDom); @@ -2307,7 +2353,7 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( } } nGainedMixlen[sendDom][recvDom] = nMixlen; - + gainedMatlist[sendDom][recvDom] = new int[nCells]; gainedMixmat[sendDom][recvDom] = new int[nMixlen]; gainedMixvf[sendDom][recvDom] = new float[nMixlen]; @@ -2362,7 +2408,7 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( if (amt[0] == 0 && amt[1] == 0) continue; - + nGainedCells[sendDom][recvDom] += amt[0]; nGainedMixlen[sendDom][recvDom] += amt[1]; @@ -2388,8 +2434,8 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( int tRank = domain2proc[recvDom]; - int index = GetGivenIndex(sendDom, recvDom); - + int index = GetGivenIndex(sendDom, recvDom); + // If no domain boundary, send 0 for nPts, and continue // Also continue if there are no given points. int amt[2] = { 0, 0 }; @@ -2398,15 +2444,15 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( MPI_Send(amt, 2, MPI_INT,tRank,mpiNDataTag,VISIT_MPI_COMM); continue; } - + int i = 0; - + for (i = 0; i < (int)domainNum.size(); ++i) if (domainNum[i] == sendDom) break; avtMaterial *givingMat = mats[i]; - + int nCells = (int)givenCells[index].size(); nGainedCells[sendDom][recvDom] = nCells; @@ -2431,7 +2477,7 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( if (nmats >= 1000) { char str[1024]; - snprintf(str, 1024, + snprintf(str, 1024, "The mixed material entry for cell %d " "of domain %d appears to be invalid. Unable " "to proceed.", givenCells[index][i], sendDom); @@ -2439,11 +2485,11 @@ avtUnstructuredDomainBoundaries::CommunicateMaterialInformation( } } nGainedMixlen[sendDom][recvDom] = nMixlen; - + amt[0] = nCells; amt[1] = nMixlen; MPI_Send(amt, 2, MPI_INT,tRank,mpiNDataTag,VISIT_MPI_COMM); - + int *givenMatlist = new int[nCells]; int *givenMixmat = new int[nMixlen]; float *givenMixvf = new float[nMixlen]; @@ -2599,7 +2645,7 @@ avtUnstructuredDomainBoundaries::CommunicateDataInformation( // calculation: no communication needed if (domain2proc[sendDom] == rank && domain2proc[recvDom] == rank) { - size_t i = 0; + size_t i = 0; for (i = 0; i < domainNum.size(); ++i) if (domainNum[i] == sendDom) break; @@ -2610,14 +2656,14 @@ avtUnstructuredDomainBoundaries::CommunicateDataInformation( if (index < 0) continue; - vector &mapRef = isPointData ? givenPoints[index] + vector &mapRef = isPointData ? givenPoints[index] : givenCells[index]; - + int nTuples =(int) mapRef.size(); nGainedTuples[sendDom][recvDom] = nTuples; gainedData[sendDom][recvDom] = new T[nTuples * nComponents]; - + T * origPtr = (T*)(data[i]->GetVoidPointer(0)); T * dataPtr = gainedData[sendDom][recvDom]; @@ -2645,7 +2691,7 @@ avtUnstructuredDomainBoundaries::CommunicateDataInformation( int nTup; MPI_Recv(&nTup, 1, MPI_INT, fRank, mpiNumTuplesTag, VISIT_MPI_COMM, &stat); - + if (nTup == 0) continue; @@ -2711,7 +2757,7 @@ avtUnstructuredDomainBoundaries::CommunicateDataInformation( delete [] dataArr; } -#endif +#endif } } From 98713c8f60eda30e2f0f80a3f3ebdd3238e04360 Mon Sep 17 00:00:00 2001 From: biagas Date: Mon, 4 Nov 2024 12:29:16 -0800 Subject: [PATCH 2/3] Add mesh meta data flag 'hasExtraGhostInfo' false by default. Mili plugin sets it to true when it will generate extraGhostInfo. Update avtGenericDatabase to test this flag before calling code that utilizes extra ghost information. --- src/avt/DBAtts/MetaData/avtMeshMetaData.C | 14 ++- src/avt/DBAtts/MetaData/avtMeshMetaData.h | 4 +- src/avt/DBAtts/MetaData/avtMeshMetaData.xml | 3 + .../Database/Database/avtGenericDatabase.C | 103 +++++++++--------- src/databases/Mili/avtMiliFileFormat.C | 30 ++--- src/java/avtMeshMetaData.java | 22 +++- src/visitpy/visitpy/PyavtMeshMetaData.C | 71 ++++++++++++ src/visitpy/visitpy/PyavtMeshMetaData.h | 2 +- 8 files changed, 178 insertions(+), 71 deletions(-) diff --git a/src/avt/DBAtts/MetaData/avtMeshMetaData.C b/src/avt/DBAtts/MetaData/avtMeshMetaData.C index 654964b55d..b8a18e77fb 100644 --- a/src/avt/DBAtts/MetaData/avtMeshMetaData.C +++ b/src/avt/DBAtts/MetaData/avtMeshMetaData.C @@ -97,6 +97,7 @@ void avtMeshMetaData::Init() LODs = 1; presentGhostZoneTypes = 0; zonesWereSplit = false; + hasExtraGhostInfo = false; avtMeshMetaData::SelectAll(); } @@ -187,6 +188,7 @@ void avtMeshMetaData::Copy(const avtMeshMetaData &obj) LODs = obj.LODs; presentGhostZoneTypes = obj.presentGhostZoneTypes; zonesWereSplit = obj.zonesWereSplit; + hasExtraGhostInfo = obj.hasExtraGhostInfo; avtMeshMetaData::SelectAll(); } @@ -425,7 +427,8 @@ avtMeshMetaData::operator == (const avtMeshMetaData &obj) const (hideFromGUI == obj.hideFromGUI) && (LODs == obj.LODs) && (presentGhostZoneTypes == obj.presentGhostZoneTypes) && - (zonesWereSplit == obj.zonesWereSplit)); + (zonesWereSplit == obj.zonesWereSplit) && + (hasExtraGhostInfo == obj.hasExtraGhostInfo)); } // **************************************************************************** @@ -621,6 +624,7 @@ avtMeshMetaData::SelectAll() Select(ID_LODs, (void *)&LODs); Select(ID_presentGhostZoneTypes, (void *)&presentGhostZoneTypes); Select(ID_zonesWereSplit, (void *)&zonesWereSplit); + Select(ID_hasExtraGhostInfo, (void *)&hasExtraGhostInfo); } /////////////////////////////////////////////////////////////////////////////// @@ -707,6 +711,7 @@ avtMeshMetaData::GetFieldName(int index) const case ID_LODs: return "LODs"; case ID_presentGhostZoneTypes: return "presentGhostZoneTypes"; case ID_zonesWereSplit: return "zonesWereSplit"; + case ID_hasExtraGhostInfo: return "hasExtraGhostInfo"; default: return "invalid index"; } } @@ -783,6 +788,7 @@ avtMeshMetaData::GetFieldType(int index) const case ID_LODs: return FieldType_int; case ID_presentGhostZoneTypes: return FieldType_int; case ID_zonesWereSplit: return FieldType_bool; + case ID_hasExtraGhostInfo: return FieldType_bool; default: return FieldType_unknown; } } @@ -859,6 +865,7 @@ avtMeshMetaData::GetFieldTypeName(int index) const case ID_LODs: return "int"; case ID_presentGhostZoneTypes: return "int"; case ID_zonesWereSplit: return "bool"; + case ID_hasExtraGhostInfo: return "bool"; default: return "invalid index"; } } @@ -1175,6 +1182,11 @@ avtMeshMetaData::FieldsEqual(int index_, const AttributeGroup *rhs) const retval = (zonesWereSplit == obj.zonesWereSplit); } break; + case ID_hasExtraGhostInfo: + { // new scope + retval = (hasExtraGhostInfo == obj.hasExtraGhostInfo); + } + break; default: retval = false; } diff --git a/src/avt/DBAtts/MetaData/avtMeshMetaData.h b/src/avt/DBAtts/MetaData/avtMeshMetaData.h index e6b0c7eb80..79409f07f2 100644 --- a/src/avt/DBAtts/MetaData/avtMeshMetaData.h +++ b/src/avt/DBAtts/MetaData/avtMeshMetaData.h @@ -128,6 +128,7 @@ class DBATTS_API avtMeshMetaData : public AttributeSubject ID_LODs, ID_presentGhostZoneTypes, ID_zonesWereSplit, + ID_hasExtraGhostInfo, ID__LAST }; @@ -184,12 +185,13 @@ class DBATTS_API avtMeshMetaData : public AttributeSubject int LODs; int presentGhostZoneTypes; bool zonesWereSplit; + bool hasExtraGhostInfo; private: // Static class format string for type map. static const char *TypeMapFormatString; static const private_tmfs_t TmfsStruct; }; -#define AVTMESHMETADATA_TMFS "ssbiiiibIbiissssssbDDiisss*aiisss*i*i*bibbbbibFFbDibbiib" +#define AVTMESHMETADATA_TMFS "ssbiiiibIbiissssssbDDiisss*aiisss*i*i*bibbbbibFFbDibbiibb" #endif diff --git a/src/avt/DBAtts/MetaData/avtMeshMetaData.xml b/src/avt/DBAtts/MetaData/avtMeshMetaData.xml index 89a81445fd..e511939668 100644 --- a/src/avt/DBAtts/MetaData/avtMeshMetaData.xml +++ b/src/avt/DBAtts/MetaData/avtMeshMetaData.xml @@ -178,6 +178,9 @@ false + + false + diff --git a/src/avt/Database/Database/avtGenericDatabase.C b/src/avt/Database/Database/avtGenericDatabase.C index 846c1cf3a9..3346609447 100644 --- a/src/avt/Database/Database/avtGenericDatabase.C +++ b/src/avt/Database/Database/avtGenericDatabase.C @@ -671,6 +671,9 @@ avtGenericDatabase::AugmentGhostData(avtDatasetCollection &ds, // Justin Privitera, Tue Oct 22 10:32:27 PDT 2024 // Call augment ghost data unconditionally. // +// Kathleen Biagas, Mon Nov 4, 2024 +// Only call AugmengGhostData if avtMeshMetaData:hasExtraGhostInfo is true. +// // **************************************************************************** avtDataTree_p @@ -1016,8 +1019,12 @@ avtGenericDatabase::GetOutput(avtDataRequest_p spec, spec, src, allDomains, canDoCollectiveCommunication); } - // unconditionally add ghost data if the database provided extra ghost information - AugmentGhostData(datasetCollection, spec, src); + + if (md->GetMesh(meshname) != NULL && md->GetMesh(meshname)->hasExtraGhostInfo) + { + // unconditionally add ghost data if the database provided extra ghost information + AugmentGhostData(datasetCollection, spec, src); + } // // Finally, do the material selection. @@ -7992,6 +7999,10 @@ avtGenericDatabase::CommunicateGhostZonesFromDomainBoundariesFromFile( // Don't attempt to Exchange extra ghost zone/node arrays if no process // has extra ghost information. // +// Kathleen Biagas, Mon Nov 4, 2024 +// Use avtMeshMetaData field 'hasExtraGhostInfo' to determine whether or +// not to handle extra ghost information. +// // **************************************************************************** bool @@ -8612,36 +8623,30 @@ avtGenericDatabase::CommunicateGhostZonesFromDomainBoundaries( } } - // - // Exchange ExtraGhostZone Arrays. - // - // this logic was added to support the functionality in the - // AugmentGhostData() function. - vector extraGhostZones; - for (size_t j = 0 ; j < doms.size() ; j++) + if(md->GetMesh(meshname)->hasExtraGhostInfo) { - vtkDataSet *ds1 = list[j]; - if (ds1 == NULL || - ds1->GetNumberOfPoints() == 0 || ds1->GetNumberOfCells() == 0) - { - extraGhostZones.push_back(NULL); - continue; - } - if (ds1->GetCellData()->GetArray("avtExtraGhostZones")) + // + // Exchange ExtraGhostZone Arrays. + // + // this logic was added to support the functionality in the + // AugmentGhostData() function. + vector extraGhostZones; + for (size_t j = 0 ; j < doms.size() ; j++) { - extraGhostZones.push_back(ds1->GetCellData()->GetArray( + vtkDataSet *ds1 = list[j]; + if (ds1 == NULL || + ds1->GetNumberOfPoints() == 0 || ds1->GetNumberOfCells() == 0) + { + extraGhostZones.push_back(NULL); + continue; + } + if (ds1->GetCellData()->GetArray("avtExtraGhostZones")) + { + extraGhostZones.push_back(ds1->GetCellData()->GetArray( "avtExtraGhostZones")); + } } - } - - int canDoExchange = (extraGhostZones.size() > 0); -#ifdef PARALLEL - int myCanDoExchange = canDoExchange; - MPI_Allreduce(&myCanDoExchange, &canDoExchange, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); -#endif - if(canDoExchange) - { vector extraGhostZonesOut; extraGhostZonesOut = dbi->ExchangeScalar(doms,false,extraGhostZones); for (int j = 0 ; j < (int)doms.size() ; j++) @@ -8653,37 +8658,29 @@ avtGenericDatabase::CommunicateGhostZonesFromDomainBoundaries( ds1->GetCellData()->AddArray(extraGhostZonesOut[j]); extraGhostZonesOut[j]->Delete(); } - } - // - // Exchange ExtraGhostNode Arrays. - // - // this logic was added to support the functionality in the - // AugmentGhostData() function. - vector extraGhostNodes; - for (size_t j = 0 ; j < doms.size() ; j++) - { - vtkDataSet *ds1 = list[j]; - if (ds1 == NULL || - ds1->GetNumberOfPoints() == 0 || ds1->GetNumberOfCells() == 0) - { - extraGhostNodes.push_back(NULL); - continue; - } - if (ds1->GetPointData()->GetArray("avtExtraGhostNodes")) + // + // Exchange ExtraGhostNode Arrays. + // + // this logic was added to support the functionality in the + // AugmentGhostData() function. + vector extraGhostNodes; + for (size_t j = 0 ; j < doms.size() ; j++) { - extraGhostNodes.push_back(ds1->GetPointData()->GetArray( + vtkDataSet *ds1 = list[j]; + if (ds1 == NULL || + ds1->GetNumberOfPoints() == 0 || ds1->GetNumberOfCells() == 0) + { + extraGhostNodes.push_back(NULL); + continue; + } + if (ds1->GetPointData()->GetArray("avtExtraGhostNodes")) + { + extraGhostNodes.push_back(ds1->GetPointData()->GetArray( "avtExtraGhostNodes")); + } } - } - canDoExchange = (extraGhostNodes.size() > 0); -#ifdef PARALLEL - myCanDoExchange = canDoExchange; - MPI_Allreduce(&myCanDoExchange, &canDoExchange, 1, MPI_INT, MPI_MAX, VISIT_MPI_COMM); -#endif - if(canDoExchange) - { vector extraGhostNodesOut; extraGhostNodesOut = dbi->ExchangeScalar(doms,true,extraGhostNodes); for (int j = 0 ; j < (int)doms.size() ; j++) diff --git a/src/databases/Mili/avtMiliFileFormat.C b/src/databases/Mili/avtMiliFileFormat.C index 8a9b826493..3caad28edc 100644 --- a/src/databases/Mili/avtMiliFileFormat.C +++ b/src/databases/Mili/avtMiliFileFormat.C @@ -219,7 +219,7 @@ ReadMiliResults(Famid &dbid, // Added DBOptionsAttribtues and added checks for setting the // globalIntegrationPoint value. Options are "Inner", "Middle", // and "Outer". -// +// // Justin Privitera, Tue Oct 22 10:32:27 PDT 2024 // Clear nodeLabelsExistForMesh vector. // @@ -390,9 +390,9 @@ avtMiliFileFormat::~avtMiliFileFormat() delete [] fampath; } - // + // // don't need to track the node label existence anymore - // + // nodeLabelsExistForMesh.clear(); } @@ -645,10 +645,10 @@ avtMiliFileFormat::GetNodePositions(int timestep, // // Alister Maguire, Fri Mar 6 10:55:34 PST 2020 // Adding ghost zones to aid the pick operator. -// +// // Justin Privitera, Wed Aug 28 14:57:42 PDT 2024 // Remove duplicated loop for ghost nodes. -// +// // Justin Privitera, Tue Oct 22 10:32:27 PDT 2024 // Make ghost zones and nodes "extra", which means they are handled later. // @@ -920,9 +920,9 @@ avtMiliFileFormat::ExtractMeshIdFromPath(const string &varPath) // Alister Maguire, Thu Aug 13 08:41:53 PDT 2020 // Fixed a bug preventing numClassesPerCellType to be adjusted // correctly. -// +// // Justin Privitera, Tue Jun 27 15:15:14 PDT 2023 -// Throw an exception to prevent crashing mysteriously when +// Throw an exception to prevent crashing mysteriously when // GetClassMDByShortName returns NULL. // // **************************************************************************** @@ -1033,7 +1033,7 @@ avtMiliFileFormat::ReadMesh(int dom) "missing from the top level mili file.", shortName); EXCEPTION1(ImproperUseException, msg); } - + offset += nCells; } numClassesPerCellType[i] = adjustedNumClassesPerCellType; @@ -2647,7 +2647,7 @@ avtMiliFileFormat::AddMiliVariableToMetaData(avtDatabaseMetaData *avtMD, // // Alister Maguire, Wed Apr 7 11:26:57 PDT 2021 // Only add pressure for stress. -// +// // Justin Privitera, Fri Sep 16 11:58:19 PDT 2022 // Added derived variables volumetric strain and relative volume. // @@ -2944,6 +2944,9 @@ avtMiliFileFormat::AddMiliDerivedVariables(avtDatabaseMetaData *md, // Eric Brugger, Fri May 7 15:54:32 PDT 2021 // Don't add any material colors if no material colors were specified. // +// Kathleen Biagas, Mon Nov 4, 2024 +// Set hasExtraGhostInfo to true for a mesh if ContainsSand is true. +// // **************************************************************************** void @@ -2977,6 +2980,7 @@ avtMiliFileFormat::PopulateDatabaseMetaData(avtDatabaseMetaData *md, mesh->blockTitle = "processors"; mesh->blockPieceName = "processor"; mesh->hasSpatialExtents = false; + mesh->hasExtraGhostInfo = miliMetaData[meshId]->ContainsSand(); md->Add(mesh); // @@ -3214,7 +3218,7 @@ avtMiliFileFormat::PopulateDatabaseMetaData(avtDatabaseMetaData *md, // Modifications // Justin Privitera, Tue Aug 27 11:40:54 PDT 2024 // Took quotes off of AUXILIARY_DATA_IDENTIFIERS. -// +// // Justin Privitera, Tue Oct 22 10:32:27 PDT 2024 // Support Global Node Ids. // @@ -3328,7 +3332,7 @@ avtMiliFileFormat::GetAuxiliaryData(const char *varName, EXCEPTION1(InvalidVariableException, mesh) } --meshId; - + if (!nodeLabelsExistForMesh[meshId]) { return NULL; @@ -3862,7 +3866,7 @@ avtMiliFileFormat::ExtractJsonClasses(rapidjson::Document &jDoc, // Eric Brugger, Fri May 7 15:54:32 PDT 2021 // Remove the code that assigns a random color to a material if no // material color is specified. -// +// // Justin Privitera, Tue Oct 22 10:32:27 PDT 2024 // Pad out nodeLabelsExistForMesh vector with all true. // @@ -4210,7 +4214,7 @@ avtMiliFileFormat::RetrieveZoneLabelInfo(const int meshId, // // Modifications: // Justin Privitera, Tue Oct 22 10:32:27 PDT 2024 -// Record that node labels do not exist and have a stricter check for +// Record that node labels do not exist and have a stricter check for // failure to read node labels. // // **************************************************************************** diff --git a/src/java/avtMeshMetaData.java b/src/java/avtMeshMetaData.java index 80292c11ce..7706ce425e 100644 --- a/src/java/avtMeshMetaData.java +++ b/src/java/avtMeshMetaData.java @@ -24,7 +24,7 @@ public class avtMeshMetaData extends AttributeSubject { - private static int avtMeshMetaData_numAdditionalAtts = 52; + private static int avtMeshMetaData_numAdditionalAtts = 53; public avtMeshMetaData() { @@ -119,6 +119,7 @@ public avtMeshMetaData() LODs = 1; presentGhostZoneTypes = 0; zonesWereSplit = false; + hasExtraGhostInfo = false; } public avtMeshMetaData(int nMoreFields) @@ -214,6 +215,7 @@ public avtMeshMetaData(int nMoreFields) LODs = 1; presentGhostZoneTypes = 0; zonesWereSplit = false; + hasExtraGhostInfo = false; } public avtMeshMetaData(avtMeshMetaData obj) @@ -312,6 +314,7 @@ public avtMeshMetaData(avtMeshMetaData obj) LODs = obj.LODs; presentGhostZoneTypes = obj.presentGhostZoneTypes; zonesWereSplit = obj.zonesWereSplit; + hasExtraGhostInfo = obj.hasExtraGhostInfo; SelectAll(); } @@ -448,7 +451,8 @@ public boolean equals(avtMeshMetaData obj) (hideFromGUI == obj.hideFromGUI) && (LODs == obj.LODs) && (presentGhostZoneTypes == obj.presentGhostZoneTypes) && - (zonesWereSplit == obj.zonesWereSplit)); + (zonesWereSplit == obj.zonesWereSplit) && + (hasExtraGhostInfo == obj.hasExtraGhostInfo)); } // Property setting methods @@ -806,6 +810,12 @@ public void SetZonesWereSplit(boolean zonesWereSplit_) Select(51); } + public void SetHasExtraGhostInfo(boolean hasExtraGhostInfo_) + { + hasExtraGhostInfo = hasExtraGhostInfo_; + Select(52); + } + // Property getting methods public String GetName() { return name; } public String GetOriginalName() { return originalName; } @@ -859,6 +869,7 @@ public void SetZonesWereSplit(boolean zonesWereSplit_) public int GetLODs() { return LODs; } public int GetPresentGhostZoneTypes() { return presentGhostZoneTypes; } public boolean GetZonesWereSplit() { return zonesWereSplit; } + public boolean GetHasExtraGhostInfo() { return hasExtraGhostInfo; } // Write and read methods. public void WriteAtts(CommunicationBuffer buf) @@ -967,6 +978,8 @@ public void WriteAtts(CommunicationBuffer buf) buf.WriteInt(presentGhostZoneTypes); if(WriteSelect(51, buf)) buf.WriteBool(zonesWereSplit); + if(WriteSelect(52, buf)) + buf.WriteBool(hasExtraGhostInfo); } public void ReadAtts(int index, CommunicationBuffer buf) @@ -1130,6 +1143,9 @@ public void ReadAtts(int index, CommunicationBuffer buf) case 51: SetZonesWereSplit(buf.ReadBool()); break; + case 52: + SetHasExtraGhostInfo(buf.ReadBool()); + break; } } @@ -1188,6 +1204,7 @@ public String toString(String indent) str = str + intToString("LODs", LODs, indent) + "\n"; str = str + intToString("presentGhostZoneTypes", presentGhostZoneTypes, indent) + "\n"; str = str + boolToString("zonesWereSplit", zonesWereSplit, indent) + "\n"; + str = str + boolToString("hasExtraGhostInfo", hasExtraGhostInfo, indent) + "\n"; return str; } @@ -1245,5 +1262,6 @@ public String toString(String indent) private int LODs; private int presentGhostZoneTypes; private boolean zonesWereSplit; + private boolean hasExtraGhostInfo; } diff --git a/src/visitpy/visitpy/PyavtMeshMetaData.C b/src/visitpy/visitpy/PyavtMeshMetaData.C index 4de4d7c473..9b11064054 100644 --- a/src/visitpy/visitpy/PyavtMeshMetaData.C +++ b/src/visitpy/visitpy/PyavtMeshMetaData.C @@ -445,6 +445,11 @@ PyavtMeshMetaData_ToString(const avtMeshMetaData *atts, const char *prefix, cons else snprintf(tmpStr, 1000, "%szonesWereSplit = 0\n", prefix); str += tmpStr; + if(atts->hasExtraGhostInfo) + snprintf(tmpStr, 1000, "%shasExtraGhostInfo = 1\n", prefix); + else + snprintf(tmpStr, 1000, "%shasExtraGhostInfo = 0\n", prefix); + str += tmpStr; return str; } @@ -3450,6 +3455,66 @@ avtMeshMetaData_GetZonesWereSplit(PyObject *self, PyObject *args) return retval; } +/*static*/ PyObject * +avtMeshMetaData_SetHasExtraGhostInfo(PyObject *self, PyObject *args) +{ + avtMeshMetaDataObject *obj = (avtMeshMetaDataObject *)self; + + PyObject *packaged_args = 0; + + // Handle args packaged into a tuple of size one + // if we think the unpackaged args matches our needs + if (PySequence_Check(args) && PySequence_Size(args) == 1) + { + packaged_args = PySequence_GetItem(args, 0); + if (PyNumber_Check(packaged_args)) + args = packaged_args; + } + + if (PySequence_Check(args)) + { + Py_XDECREF(packaged_args); + return PyErr_Format(PyExc_TypeError, "expecting a single number arg"); + } + + if (!PyNumber_Check(args)) + { + Py_XDECREF(packaged_args); + return PyErr_Format(PyExc_TypeError, "arg is not a number type"); + } + + long val = PyLong_AsLong(args); + bool cval = bool(val); + + if (val == -1 && PyErr_Occurred()) + { + Py_XDECREF(packaged_args); + PyErr_Clear(); + return PyErr_Format(PyExc_TypeError, "arg not interpretable as C++ bool"); + } + if (fabs(double(val))>1.5E-7 && fabs((double(long(cval))-double(val))/double(val))>1.5E-7) + { + Py_XDECREF(packaged_args); + return PyErr_Format(PyExc_ValueError, "arg not interpretable as C++ bool"); + } + + Py_XDECREF(packaged_args); + + // Set the hasExtraGhostInfo in the object. + obj->data->hasExtraGhostInfo = cval; + + Py_INCREF(Py_None); + return Py_None; +} + +/*static*/ PyObject * +avtMeshMetaData_GetHasExtraGhostInfo(PyObject *self, PyObject *args) +{ + avtMeshMetaDataObject *obj = (avtMeshMetaDataObject *)self; + PyObject *retval = PyInt_FromLong(obj->data->hasExtraGhostInfo?1L:0L); + return retval; +} + PyMethodDef PyavtMeshMetaData_methods[AVTMESHMETADATA_NMETH] = { @@ -3558,6 +3623,8 @@ PyMethodDef PyavtMeshMetaData_methods[AVTMESHMETADATA_NMETH] = { {"GetPresentGhostZoneTypes", avtMeshMetaData_GetPresentGhostZoneTypes, METH_VARARGS}, {"SetZonesWereSplit", avtMeshMetaData_SetZonesWereSplit, METH_VARARGS}, {"GetZonesWereSplit", avtMeshMetaData_GetZonesWereSplit, METH_VARARGS}, + {"SetHasExtraGhostInfo", avtMeshMetaData_SetHasExtraGhostInfo, METH_VARARGS}, + {"GetHasExtraGhostInfo", avtMeshMetaData_GetHasExtraGhostInfo, METH_VARARGS}, {NULL, NULL} }; @@ -3731,6 +3798,8 @@ PyavtMeshMetaData_getattr(PyObject *self, char *name) return avtMeshMetaData_GetPresentGhostZoneTypes(self, NULL); if(strcmp(name, "zonesWereSplit") == 0) return avtMeshMetaData_GetZonesWereSplit(self, NULL); + if(strcmp(name, "hasExtraGhostInfo") == 0) + return avtMeshMetaData_GetHasExtraGhostInfo(self, NULL); // Add a __dict__ answer so that dir() works @@ -3857,6 +3926,8 @@ PyavtMeshMetaData_setattr(PyObject *self, char *name, PyObject *args) obj = avtMeshMetaData_SetPresentGhostZoneTypes(self, args); else if(strcmp(name, "zonesWereSplit") == 0) obj = avtMeshMetaData_SetZonesWereSplit(self, args); + else if(strcmp(name, "hasExtraGhostInfo") == 0) + obj = avtMeshMetaData_SetHasExtraGhostInfo(self, args); if (obj != NULL && obj != &NULL_PY_OBJ) Py_DECREF(obj); diff --git a/src/visitpy/visitpy/PyavtMeshMetaData.h b/src/visitpy/visitpy/PyavtMeshMetaData.h index e0117d6e38..6c266a22ac 100644 --- a/src/visitpy/visitpy/PyavtMeshMetaData.h +++ b/src/visitpy/visitpy/PyavtMeshMetaData.h @@ -12,7 +12,7 @@ // // Functions exposed to the VisIt module. // -#define AVTMESHMETADATA_NMETH 106 +#define AVTMESHMETADATA_NMETH 108 void VISITPY_API PyavtMeshMetaData_StartUp(avtMeshMetaData *subj, void *data); void VISITPY_API PyavtMeshMetaData_CloseDown(); VISITPY_API PyMethodDef * PyavtMeshMetaData_GetMethodTable(int *nMethods); From 273241316e252a9d994b8bec95d968439d307051 Mon Sep 17 00:00:00 2001 From: biagas Date: Mon, 4 Nov 2024 12:30:51 -0800 Subject: [PATCH 3/3] Update all MeshMetaData baselines due to addition of new field. --- test/baseline/databases/FMS/FMS_0_1_00.txt | 3 +++ test/baseline/databases/FMS/FMS_0_2_00.txt | 3 +++ test/baseline/databases/FMS/FMS_0_3_00.txt | 3 +++ test/baseline/databases/FMS/FMS_10_00.txt | 3 +++ test/baseline/databases/FMS/FMS_11_00.txt | 3 +++ test/baseline/databases/FMS/FMS_12_00.txt | 3 +++ test/baseline/databases/FMS/FMS_13_00.txt | 2 ++ test/baseline/databases/FMS/FMS_14_00.txt | 3 +++ test/baseline/databases/FMS/FMS_15_00.txt | 3 +++ test/baseline/databases/FMS/FMS_16_00.txt | 3 +++ test/baseline/databases/FMS/FMS_17_00.txt | 3 +++ test/baseline/databases/FMS/FMS_18_00.txt | 3 +++ test/baseline/databases/FMS/FMS_19_00.txt | 3 +++ test/baseline/databases/FMS/FMS_1_1_00.txt | 3 +++ test/baseline/databases/FMS/FMS_1_2_00.txt | 3 +++ test/baseline/databases/FMS/FMS_1_3_00.txt | 3 +++ test/baseline/databases/FMS/FMS_2_1_00.txt | 3 +++ test/baseline/databases/FMS/FMS_2_2_00.txt | 3 +++ test/baseline/databases/FMS/FMS_2_3_00.txt | 3 +++ test/baseline/databases/FMS/FMS_3_1_00.txt | 3 +++ test/baseline/databases/FMS/FMS_3_2_00.txt | 3 +++ test/baseline/databases/FMS/FMS_3_3_00.txt | 3 +++ test/baseline/databases/FMS/FMS_4_1_00.txt | 3 +++ test/baseline/databases/FMS/FMS_4_2_00.txt | 3 +++ test/baseline/databases/FMS/FMS_4_3_00.txt | 3 +++ test/baseline/databases/FMS/FMS_5_1_00.txt | 3 +++ test/baseline/databases/FMS/FMS_5_2_00.txt | 3 +++ test/baseline/databases/FMS/FMS_5_3_00.txt | 3 +++ test/baseline/databases/FMS/FMS_6_1_00.txt | 3 +++ test/baseline/databases/FMS/FMS_6_2_00.txt | 3 +++ test/baseline/databases/FMS/FMS_6_3_00.txt | 3 +++ test/baseline/databases/FMS/FMS_6_4_00.txt | 3 +++ test/baseline/databases/FMS/FMS_6_5_00.txt | 3 +++ test/baseline/databases/FMS/FMS_7_1_00.txt | 3 +++ test/baseline/databases/FMS/FMS_7_2_00.txt | 3 +++ test/baseline/databases/FMS/FMS_7_3_00.txt | 3 +++ test/baseline/databases/FMS/FMS_7_4_00.txt | 3 +++ test/baseline/databases/FMS/FMS_7_5_00.txt | 3 +++ test/baseline/databases/FMS/FMS_8__00.txt | 3 +++ test/baseline/databases/FMS/FMS_9__00.txt | 3 +++ test/baseline/databases/PLOT3D/plot3d_timeseries_1.txt | 1 + test/baseline/databases/PLOT3D/plot3d_timeseries_2.txt | 1 + test/baseline/databases/Velodyne/Velodyne_0_00.txt | 2 ++ test/baseline/databases/metadata/metadata_0_00.txt | 3 +++ test/baseline/databases/metadata/metadata_0_01.txt | 1 + test/baseline/databases/metadata/metadata_0_02.txt | 1 + test/baseline/databases/metadata/metadata_0_03.txt | 1 + test/baseline/databases/metadata/metadata_0_04.txt | 1 + test/baseline/simulation/amr/amr01.txt | 1 + test/baseline/simulation/aresamr/aresamr01.txt | 1 + test/baseline/simulation/csg/csg01.txt | 1 + test/baseline/simulation/domainbounds/domainbounds01.txt | 1 + test/baseline/simulation/domainlist/domainlist01.txt | 3 +++ test/baseline/simulation/ghostcells/ghostcells01.txt | 6 ++++++ test/baseline/simulation/globalids/globalids01.txt | 3 +++ test/baseline/simulation/life/life01.txt | 1 + test/baseline/simulation/mandelbrot/mandelbrot01.txt | 1 + test/baseline/simulation/mandelbrot/mandelbrot04.txt | 1 + test/baseline/simulation/material/material01.txt | 2 ++ test/baseline/simulation/materialvar/materialvar01.txt | 1 + test/baseline/simulation/mesh/mesh01.txt | 2 ++ test/baseline/simulation/multiblock/multiblock01.txt | 1 + test/baseline/simulation/point/point01.txt | 1 + test/baseline/simulation/polyhedral/polyhedral01.txt | 1 + test/baseline/simulation/scalar/scalar01.txt | 2 ++ test/baseline/simulation/species/species01.txt | 1 + test/baseline/simulation/ucdcurve/ucdcurve01.txt | 1 + test/baseline/simulation/unstructured/unstructured01.txt | 1 + test/baseline/simulation/updateplots/updateplots01.txt | 1 + test/baseline/simulation/var/var01.txt | 2 ++ test/baseline/simulation/zerocopy/zerocopy01.txt | 6 ++++++ 71 files changed, 171 insertions(+) diff --git a/test/baseline/databases/FMS/FMS_0_1_00.txt b/test/baseline/databases/FMS/FMS_0_1_00.txt index b1e14f94a3..44b17c05b5 100644 --- a/test/baseline/databases/FMS/FMS_0_1_00.txt +++ b/test/baseline/databases/FMS/FMS_0_1_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_0_2_00.txt b/test/baseline/databases/FMS/FMS_0_2_00.txt index 36b57bf193..f7cfa74ece 100644 --- a/test/baseline/databases/FMS/FMS_0_2_00.txt +++ b/test/baseline/databases/FMS/FMS_0_2_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_0_3_00.txt b/test/baseline/databases/FMS/FMS_0_3_00.txt index 6def8e0ac1..cc8b3d0773 100644 --- a/test/baseline/databases/FMS/FMS_0_3_00.txt +++ b/test/baseline/databases/FMS/FMS_0_3_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_10_00.txt b/test/baseline/databases/FMS/FMS_10_00.txt index c20663aaf0..22a8b12cb2 100644 --- a/test/baseline/databases/FMS/FMS_10_00.txt +++ b/test/baseline/databases/FMS/FMS_10_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_11_00.txt b/test/baseline/databases/FMS/FMS_11_00.txt index 6ca2136188..f33ba4ec6e 100644 --- a/test/baseline/databases/FMS/FMS_11_00.txt +++ b/test/baseline/databases/FMS/FMS_11_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_12_00.txt b/test/baseline/databases/FMS/FMS_12_00.txt index 2588ed6a89..edadb33a9f 100644 --- a/test/baseline/databases/FMS/FMS_12_00.txt +++ b/test/baseline/databases/FMS/FMS_12_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_13_00.txt b/test/baseline/databases/FMS/FMS_13_00.txt index a3b9d6a92c..5dfafc4379 100644 --- a/test/baseline/databases/FMS/FMS_13_00.txt +++ b/test/baseline/databases/FMS/FMS_13_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "dofs" GetMeshes(1).originalName = "dofs" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 0 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_14_00.txt b/test/baseline/databases/FMS/FMS_14_00.txt index 80e354585d..e1d80f1012 100644 --- a/test/baseline/databases/FMS/FMS_14_00.txt +++ b/test/baseline/databases/FMS/FMS_14_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_15_00.txt b/test/baseline/databases/FMS/FMS_15_00.txt index d1f9d08c3d..6b7916aa68 100644 --- a/test/baseline/databases/FMS/FMS_15_00.txt +++ b/test/baseline/databases/FMS/FMS_15_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_16_00.txt b/test/baseline/databases/FMS/FMS_16_00.txt index 51eb78be70..946909f09b 100644 --- a/test/baseline/databases/FMS/FMS_16_00.txt +++ b/test/baseline/databases/FMS/FMS_16_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_17_00.txt b/test/baseline/databases/FMS/FMS_17_00.txt index 80b25cd9e0..0b7bc827bc 100644 --- a/test/baseline/databases/FMS/FMS_17_00.txt +++ b/test/baseline/databases/FMS/FMS_17_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_18_00.txt b/test/baseline/databases/FMS/FMS_18_00.txt index c51ef1acbd..2aa24beb84 100644 --- a/test/baseline/databases/FMS/FMS_18_00.txt +++ b/test/baseline/databases/FMS/FMS_18_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_19_00.txt b/test/baseline/databases/FMS/FMS_19_00.txt index be5f9ed2e1..9466b96bf9 100644 --- a/test/baseline/databases/FMS/FMS_19_00.txt +++ b/test/baseline/databases/FMS/FMS_19_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_1_1_00.txt b/test/baseline/databases/FMS/FMS_1_1_00.txt index 574ed0a103..3597fdbf9a 100644 --- a/test/baseline/databases/FMS/FMS_1_1_00.txt +++ b/test/baseline/databases/FMS/FMS_1_1_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_1_2_00.txt b/test/baseline/databases/FMS/FMS_1_2_00.txt index fd6ef57f60..8677442f4c 100644 --- a/test/baseline/databases/FMS/FMS_1_2_00.txt +++ b/test/baseline/databases/FMS/FMS_1_2_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_1_3_00.txt b/test/baseline/databases/FMS/FMS_1_3_00.txt index 0243b7fb6a..a411b01b6f 100644 --- a/test/baseline/databases/FMS/FMS_1_3_00.txt +++ b/test/baseline/databases/FMS/FMS_1_3_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_2_1_00.txt b/test/baseline/databases/FMS/FMS_2_1_00.txt index a69eb78d00..8435d3af4a 100644 --- a/test/baseline/databases/FMS/FMS_2_1_00.txt +++ b/test/baseline/databases/FMS/FMS_2_1_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_2_2_00.txt b/test/baseline/databases/FMS/FMS_2_2_00.txt index d94af14d34..1485c2c4f3 100644 --- a/test/baseline/databases/FMS/FMS_2_2_00.txt +++ b/test/baseline/databases/FMS/FMS_2_2_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_2_3_00.txt b/test/baseline/databases/FMS/FMS_2_3_00.txt index 81dc5362f5..f4967f3cb5 100644 --- a/test/baseline/databases/FMS/FMS_2_3_00.txt +++ b/test/baseline/databases/FMS/FMS_2_3_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_3_1_00.txt b/test/baseline/databases/FMS/FMS_3_1_00.txt index aa64489b31..39cdd046e4 100644 --- a/test/baseline/databases/FMS/FMS_3_1_00.txt +++ b/test/baseline/databases/FMS/FMS_3_1_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_3_2_00.txt b/test/baseline/databases/FMS/FMS_3_2_00.txt index 9bee1ade0c..6446836ba1 100644 --- a/test/baseline/databases/FMS/FMS_3_2_00.txt +++ b/test/baseline/databases/FMS/FMS_3_2_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_3_3_00.txt b/test/baseline/databases/FMS/FMS_3_3_00.txt index b25a193630..8fbf6701e1 100644 --- a/test/baseline/databases/FMS/FMS_3_3_00.txt +++ b/test/baseline/databases/FMS/FMS_3_3_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_4_1_00.txt b/test/baseline/databases/FMS/FMS_4_1_00.txt index 83220197d6..dd8f51639c 100644 --- a/test/baseline/databases/FMS/FMS_4_1_00.txt +++ b/test/baseline/databases/FMS/FMS_4_1_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_4_2_00.txt b/test/baseline/databases/FMS/FMS_4_2_00.txt index 31726ae0dc..cce0465e71 100644 --- a/test/baseline/databases/FMS/FMS_4_2_00.txt +++ b/test/baseline/databases/FMS/FMS_4_2_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_4_3_00.txt b/test/baseline/databases/FMS/FMS_4_3_00.txt index fc75b8e077..af6ce808bf 100644 --- a/test/baseline/databases/FMS/FMS_4_3_00.txt +++ b/test/baseline/databases/FMS/FMS_4_3_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_5_1_00.txt b/test/baseline/databases/FMS/FMS_5_1_00.txt index 180741ae95..f1f03f7a7c 100644 --- a/test/baseline/databases/FMS/FMS_5_1_00.txt +++ b/test/baseline/databases/FMS/FMS_5_1_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_5_2_00.txt b/test/baseline/databases/FMS/FMS_5_2_00.txt index 48e2189ba2..1ef59f0fbf 100644 --- a/test/baseline/databases/FMS/FMS_5_2_00.txt +++ b/test/baseline/databases/FMS/FMS_5_2_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_5_3_00.txt b/test/baseline/databases/FMS/FMS_5_3_00.txt index bd47c31863..2479a33bc7 100644 --- a/test/baseline/databases/FMS/FMS_5_3_00.txt +++ b/test/baseline/databases/FMS/FMS_5_3_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_6_1_00.txt b/test/baseline/databases/FMS/FMS_6_1_00.txt index 0b1c1f790c..1404e0c1b3 100644 --- a/test/baseline/databases/FMS/FMS_6_1_00.txt +++ b/test/baseline/databases/FMS/FMS_6_1_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_6_2_00.txt b/test/baseline/databases/FMS/FMS_6_2_00.txt index 96179839d6..209caab055 100644 --- a/test/baseline/databases/FMS/FMS_6_2_00.txt +++ b/test/baseline/databases/FMS/FMS_6_2_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_6_3_00.txt b/test/baseline/databases/FMS/FMS_6_3_00.txt index 18ff20b3de..ccf46aa5f5 100644 --- a/test/baseline/databases/FMS/FMS_6_3_00.txt +++ b/test/baseline/databases/FMS/FMS_6_3_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_6_4_00.txt b/test/baseline/databases/FMS/FMS_6_4_00.txt index b8d56d3174..d53c43ede7 100644 --- a/test/baseline/databases/FMS/FMS_6_4_00.txt +++ b/test/baseline/databases/FMS/FMS_6_4_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_6_5_00.txt b/test/baseline/databases/FMS/FMS_6_5_00.txt index da1a5b953b..349ed91d94 100644 --- a/test/baseline/databases/FMS/FMS_6_5_00.txt +++ b/test/baseline/databases/FMS/FMS_6_5_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_7_1_00.txt b/test/baseline/databases/FMS/FMS_7_1_00.txt index 8ac2385803..5d8ba9d57d 100644 --- a/test/baseline/databases/FMS/FMS_7_1_00.txt +++ b/test/baseline/databases/FMS/FMS_7_1_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_7_2_00.txt b/test/baseline/databases/FMS/FMS_7_2_00.txt index d4cbbaf7ea..9f06bf3689 100644 --- a/test/baseline/databases/FMS/FMS_7_2_00.txt +++ b/test/baseline/databases/FMS/FMS_7_2_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_7_3_00.txt b/test/baseline/databases/FMS/FMS_7_3_00.txt index 9d7b65c2bb..56f36d8795 100644 --- a/test/baseline/databases/FMS/FMS_7_3_00.txt +++ b/test/baseline/databases/FMS/FMS_7_3_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_7_4_00.txt b/test/baseline/databases/FMS/FMS_7_4_00.txt index 5d62270df1..4c0a501d71 100644 --- a/test/baseline/databases/FMS/FMS_7_4_00.txt +++ b/test/baseline/databases/FMS/FMS_7_4_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_7_5_00.txt b/test/baseline/databases/FMS/FMS_7_5_00.txt index 765cc7c5c5..34825e6cd9 100644 --- a/test/baseline/databases/FMS/FMS_7_5_00.txt +++ b/test/baseline/databases/FMS/FMS_7_5_00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_8__00.txt b/test/baseline/databases/FMS/FMS_8__00.txt index 5859807c0a..3d82afc2a8 100644 --- a/test/baseline/databases/FMS/FMS_8__00.txt +++ b/test/baseline/databases/FMS/FMS_8__00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/FMS/FMS_9__00.txt b/test/baseline/databases/FMS/FMS_9__00.txt index b6f0912588..4034e58936 100644 --- a/test/baseline/databases/FMS/FMS_9__00.txt +++ b/test/baseline/databases/FMS/FMS_9__00.txt @@ -64,6 +64,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 100 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "boundary" GetMeshes(1).originalName = "boundary" GetMeshes(1).validVariable = 1 @@ -111,6 +112,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 50 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "dofs" GetMeshes(2).originalName = "dofs" GetMeshes(2).validVariable = 1 @@ -158,6 +160,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 0 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "element_attribute" GetScalars(0).originalName = "element_attribute" diff --git a/test/baseline/databases/PLOT3D/plot3d_timeseries_1.txt b/test/baseline/databases/PLOT3D/plot3d_timeseries_1.txt index 7dbace99d9..ce7907ecd9 100644 --- a/test/baseline/databases/PLOT3D/plot3d_timeseries_1.txt +++ b/test/baseline/databases/PLOT3D/plot3d_timeseries_1.txt @@ -165,6 +165,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "Density" GetScalars(0).originalName = "Density" diff --git a/test/baseline/databases/PLOT3D/plot3d_timeseries_2.txt b/test/baseline/databases/PLOT3D/plot3d_timeseries_2.txt index 97be3bc372..655823fab0 100644 --- a/test/baseline/databases/PLOT3D/plot3d_timeseries_2.txt +++ b/test/baseline/databases/PLOT3D/plot3d_timeseries_2.txt @@ -165,6 +165,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "Density" GetScalars(0).originalName = "Density" diff --git a/test/baseline/databases/Velodyne/Velodyne_0_00.txt b/test/baseline/databases/Velodyne/Velodyne_0_00.txt index ea6680979c..c4b321212f 100644 --- a/test/baseline/databases/Velodyne/Velodyne_0_00.txt +++ b/test/baseline/databases/Velodyne/Velodyne_0_00.txt @@ -1215,6 +1215,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "Surface" GetMeshes(1).originalName = "Surface" GetMeshes(1).validVariable = 1 @@ -1273,6 +1274,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 1 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "Solid/EffectiveStrain" GetScalars(0).originalName = "Solid/EffectiveStrain" diff --git a/test/baseline/databases/metadata/metadata_0_00.txt b/test/baseline/databases/metadata/metadata_0_00.txt index fd389a411a..73231607e7 100644 --- a/test/baseline/databases/metadata/metadata_0_00.txt +++ b/test/baseline/databases/metadata/metadata_0_00.txt @@ -115,6 +115,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "Mesh2D" GetMeshes(1).originalName = "Mesh2D" GetMeshes(1).validVariable = 1 @@ -173,6 +174,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 1 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "PointMesh" GetMeshes(2).originalName = "PointMesh" GetMeshes(2).validVariable = 1 @@ -231,6 +233,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 1 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "airVf" GetScalars(0).originalName = "airVf" diff --git a/test/baseline/databases/metadata/metadata_0_01.txt b/test/baseline/databases/metadata/metadata_0_01.txt index c420c6744e..6b0ca3f4b9 100644 --- a/test/baseline/databases/metadata/metadata_0_01.txt +++ b/test/baseline/databases/metadata/metadata_0_01.txt @@ -525,6 +525,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "ints" GetScalars(0).originalName = "ints" diff --git a/test/baseline/databases/metadata/metadata_0_02.txt b/test/baseline/databases/metadata/metadata_0_02.txt index ab402a65b4..6fc4816b23 100644 --- a/test/baseline/databases/metadata/metadata_0_02.txt +++ b/test/baseline/databases/metadata/metadata_0_02.txt @@ -505,6 +505,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "pressure" GetScalars(0).originalName = "pressure" diff --git a/test/baseline/databases/metadata/metadata_0_03.txt b/test/baseline/databases/metadata/metadata_0_03.txt index 9b5d5f043a..f9e18caf22 100644 --- a/test/baseline/databases/metadata/metadata_0_03.txt +++ b/test/baseline/databases/metadata/metadata_0_03.txt @@ -185,6 +185,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "Density" GetScalars(0).originalName = "Density" diff --git a/test/baseline/databases/metadata/metadata_0_04.txt b/test/baseline/databases/metadata/metadata_0_04.txt index a441b278a9..3dc9ebb4df 100644 --- a/test/baseline/databases/metadata/metadata_0_04.txt +++ b/test/baseline/databases/metadata/metadata_0_04.txt @@ -95,6 +95,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "TLID" GetScalars(0).originalName = "TLID" diff --git a/test/baseline/simulation/amr/amr01.txt b/test/baseline/simulation/amr/amr01.txt index d373828b6c..ebe0c0a0c0 100644 --- a/test/baseline/simulation/amr/amr01.txt +++ b/test/baseline/simulation/amr/amr01.txt @@ -76,6 +76,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. #scalars does not contain any avtScalarMetaData objects. #vectors does not contain any avtVectorMetaData objects. diff --git a/test/baseline/simulation/aresamr/aresamr01.txt b/test/baseline/simulation/aresamr/aresamr01.txt index 7606d8b04b..68d7a5afaf 100644 --- a/test/baseline/simulation/aresamr/aresamr01.txt +++ b/test/baseline/simulation/aresamr/aresamr01.txt @@ -76,6 +76,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "zonal_scalar" GetScalars(0).originalName = "zonal_scalar" diff --git a/test/baseline/simulation/csg/csg01.txt b/test/baseline/simulation/csg/csg01.txt index 9c03bc7b73..858cdb20a2 100644 --- a/test/baseline/simulation/csg/csg01.txt +++ b/test/baseline/simulation/csg/csg01.txt @@ -76,6 +76,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. #scalars does not contain any avtScalarMetaData objects. #vectors does not contain any avtVectorMetaData objects. diff --git a/test/baseline/simulation/domainbounds/domainbounds01.txt b/test/baseline/simulation/domainbounds/domainbounds01.txt index 9b9fd633b8..8d4cb7c888 100644 --- a/test/baseline/simulation/domainbounds/domainbounds01.txt +++ b/test/baseline/simulation/domainbounds/domainbounds01.txt @@ -76,6 +76,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "zonal" GetScalars(0).originalName = "zonal" diff --git a/test/baseline/simulation/domainlist/domainlist01.txt b/test/baseline/simulation/domainlist/domainlist01.txt index 573754f1ab..5092c4240a 100644 --- a/test/baseline/simulation/domainlist/domainlist01.txt +++ b/test/baseline/simulation/domainlist/domainlist01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "tetmesh" GetMeshes(1).originalName = "tetmesh" GetMeshes(1).validVariable = 1 @@ -133,6 +134,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 1 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "surface" GetMeshes(2).originalName = "surface" GetMeshes(2).validVariable = 1 @@ -191,6 +193,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 1 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "radial" GetScalars(0).originalName = "radial" diff --git a/test/baseline/simulation/ghostcells/ghostcells01.txt b/test/baseline/simulation/ghostcells/ghostcells01.txt index 2697b29dc2..d28b1be6e9 100644 --- a/test/baseline/simulation/ghostcells/ghostcells01.txt +++ b/test/baseline/simulation/ghostcells/ghostcells01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "curv_blank" GetMeshes(1).originalName = "curv_blank" GetMeshes(1).validVariable = 1 @@ -133,6 +134,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 1 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "ucd_blank" GetMeshes(2).originalName = "ucd_blank" GetMeshes(2).validVariable = 1 @@ -191,6 +193,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 1 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 GetMeshes(3).name = "multi_domain_index" GetMeshes(3).originalName = "multi_domain_index" GetMeshes(3).validVariable = 1 @@ -249,6 +252,7 @@ GetMeshes(3).hideFromGUI = 0 GetMeshes(3).LODs = 1 GetMeshes(3).presentGhostZoneTypes = 0 GetMeshes(3).zonesWereSplit = 0 +GetMeshes(3).hasExtraGhostInfo = 0 GetMeshes(4).name = "multi_domain" GetMeshes(4).originalName = "multi_domain" GetMeshes(4).validVariable = 1 @@ -307,6 +311,7 @@ GetMeshes(4).hideFromGUI = 0 GetMeshes(4).LODs = 1 GetMeshes(4).presentGhostZoneTypes = 0 GetMeshes(4).zonesWereSplit = 0 +GetMeshes(4).hasExtraGhostInfo = 0 GetMeshes(5).name = "multi_types" GetMeshes(5).originalName = "multi_types" GetMeshes(5).validVariable = 1 @@ -365,6 +370,7 @@ GetMeshes(5).hideFromGUI = 0 GetMeshes(5).LODs = 1 GetMeshes(5).presentGhostZoneTypes = 0 GetMeshes(5).zonesWereSplit = 0 +GetMeshes(5).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "rect_var" GetScalars(0).originalName = "rect_var" diff --git a/test/baseline/simulation/globalids/globalids01.txt b/test/baseline/simulation/globalids/globalids01.txt index f23a603cd2..b4d757c694 100644 --- a/test/baseline/simulation/globalids/globalids01.txt +++ b/test/baseline/simulation/globalids/globalids01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "tetmesh" GetMeshes(1).originalName = "tetmesh" GetMeshes(1).validVariable = 1 @@ -133,6 +134,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 1 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "surface" GetMeshes(2).originalName = "surface" GetMeshes(2).validVariable = 1 @@ -191,6 +193,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 1 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "radial" GetScalars(0).originalName = "radial" diff --git a/test/baseline/simulation/life/life01.txt b/test/baseline/simulation/life/life01.txt index 3ef780d05e..be1319ee4e 100644 --- a/test/baseline/simulation/life/life01.txt +++ b/test/baseline/simulation/life/life01.txt @@ -76,6 +76,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "life" GetScalars(0).originalName = "life" diff --git a/test/baseline/simulation/mandelbrot/mandelbrot01.txt b/test/baseline/simulation/mandelbrot/mandelbrot01.txt index 3e61b823ea..a9e88e99c5 100644 --- a/test/baseline/simulation/mandelbrot/mandelbrot01.txt +++ b/test/baseline/simulation/mandelbrot/mandelbrot01.txt @@ -76,6 +76,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "mandelbrot" GetScalars(0).originalName = "mandelbrot" diff --git a/test/baseline/simulation/mandelbrot/mandelbrot04.txt b/test/baseline/simulation/mandelbrot/mandelbrot04.txt index a6c26e39b7..a63f4dd6a0 100644 --- a/test/baseline/simulation/mandelbrot/mandelbrot04.txt +++ b/test/baseline/simulation/mandelbrot/mandelbrot04.txt @@ -76,6 +76,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "mandelbrot" GetScalars(0).originalName = "mandelbrot" diff --git a/test/baseline/simulation/material/material01.txt b/test/baseline/simulation/material/material01.txt index a960d852a9..0cbd0a3153 100644 --- a/test/baseline/simulation/material/material01.txt +++ b/test/baseline/simulation/material/material01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "ucdmesh" GetMeshes(1).originalName = "ucdmesh" GetMeshes(1).validVariable = 1 @@ -133,6 +134,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 1 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "scalar" GetScalars(0).originalName = "scalar" diff --git a/test/baseline/simulation/materialvar/materialvar01.txt b/test/baseline/simulation/materialvar/materialvar01.txt index 4cbb54e4eb..5e0439d159 100644 --- a/test/baseline/simulation/materialvar/materialvar01.txt +++ b/test/baseline/simulation/materialvar/materialvar01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "scalar" GetScalars(0).originalName = "scalar" diff --git a/test/baseline/simulation/mesh/mesh01.txt b/test/baseline/simulation/mesh/mesh01.txt index c6f3274994..813f2beb88 100644 --- a/test/baseline/simulation/mesh/mesh01.txt +++ b/test/baseline/simulation/mesh/mesh01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "mesh3d" GetMeshes(1).originalName = "mesh3d" GetMeshes(1).validVariable = 1 @@ -133,6 +134,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 1 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. #scalars does not contain any avtScalarMetaData objects. #vectors does not contain any avtVectorMetaData objects. diff --git a/test/baseline/simulation/multiblock/multiblock01.txt b/test/baseline/simulation/multiblock/multiblock01.txt index 481e9e1dbe..0322bc77db 100644 --- a/test/baseline/simulation/multiblock/multiblock01.txt +++ b/test/baseline/simulation/multiblock/multiblock01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "domainID" GetScalars(0).originalName = "domainID" diff --git a/test/baseline/simulation/point/point01.txt b/test/baseline/simulation/point/point01.txt index 1934bd3736..cffd3444be 100644 --- a/test/baseline/simulation/point/point01.txt +++ b/test/baseline/simulation/point/point01.txt @@ -76,6 +76,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "pointvar" GetScalars(0).originalName = "pointvar" diff --git a/test/baseline/simulation/polyhedral/polyhedral01.txt b/test/baseline/simulation/polyhedral/polyhedral01.txt index 6e7ef4a61a..a40564bc2d 100644 --- a/test/baseline/simulation/polyhedral/polyhedral01.txt +++ b/test/baseline/simulation/polyhedral/polyhedral01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "zonal" GetScalars(0).originalName = "zonal" diff --git a/test/baseline/simulation/scalar/scalar01.txt b/test/baseline/simulation/scalar/scalar01.txt index 1e21ea932a..1caf4c240c 100644 --- a/test/baseline/simulation/scalar/scalar01.txt +++ b/test/baseline/simulation/scalar/scalar01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "mesh3d" GetMeshes(1).originalName = "mesh3d" GetMeshes(1).validVariable = 1 @@ -133,6 +134,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 1 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "zonal" GetScalars(0).originalName = "zonal" diff --git a/test/baseline/simulation/species/species01.txt b/test/baseline/simulation/species/species01.txt index 080e57f93f..8a04745a3c 100644 --- a/test/baseline/simulation/species/species01.txt +++ b/test/baseline/simulation/species/species01.txt @@ -76,6 +76,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "scalar" GetScalars(0).originalName = "scalar" diff --git a/test/baseline/simulation/ucdcurve/ucdcurve01.txt b/test/baseline/simulation/ucdcurve/ucdcurve01.txt index b5e67deb97..19cbd0bb0d 100644 --- a/test/baseline/simulation/ucdcurve/ucdcurve01.txt +++ b/test/baseline/simulation/ucdcurve/ucdcurve01.txt @@ -76,6 +76,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "zonal" GetScalars(0).originalName = "zonal" diff --git a/test/baseline/simulation/unstructured/unstructured01.txt b/test/baseline/simulation/unstructured/unstructured01.txt index ef020d7548..dfe1ff3e57 100644 --- a/test/baseline/simulation/unstructured/unstructured01.txt +++ b/test/baseline/simulation/unstructured/unstructured01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. #scalars does not contain any avtScalarMetaData objects. #vectors does not contain any avtVectorMetaData objects. diff --git a/test/baseline/simulation/updateplots/updateplots01.txt b/test/baseline/simulation/updateplots/updateplots01.txt index f0df5f97e5..966fcb42ea 100644 --- a/test/baseline/simulation/updateplots/updateplots01.txt +++ b/test/baseline/simulation/updateplots/updateplots01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "zonal" GetScalars(0).originalName = "zonal" diff --git a/test/baseline/simulation/var/var01.txt b/test/baseline/simulation/var/var01.txt index d1e2bc386a..7cac483b84 100644 --- a/test/baseline/simulation/var/var01.txt +++ b/test/baseline/simulation/var/var01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "mesh3d" GetMeshes(1).originalName = "mesh3d" GetMeshes(1).validVariable = 1 @@ -133,6 +134,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 1 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "zonal_scalar" GetScalars(0).originalName = "zonal_scalar" diff --git a/test/baseline/simulation/zerocopy/zerocopy01.txt b/test/baseline/simulation/zerocopy/zerocopy01.txt index a68d61e157..dff2fbff35 100644 --- a/test/baseline/simulation/zerocopy/zerocopy01.txt +++ b/test/baseline/simulation/zerocopy/zerocopy01.txt @@ -75,6 +75,7 @@ GetMeshes(0).hideFromGUI = 0 GetMeshes(0).LODs = 1 GetMeshes(0).presentGhostZoneTypes = 0 GetMeshes(0).zonesWereSplit = 0 +GetMeshes(0).hasExtraGhostInfo = 0 GetMeshes(1).name = "soa_m" GetMeshes(1).originalName = "soa_m" GetMeshes(1).validVariable = 1 @@ -133,6 +134,7 @@ GetMeshes(1).hideFromGUI = 0 GetMeshes(1).LODs = 1 GetMeshes(1).presentGhostZoneTypes = 0 GetMeshes(1).zonesWereSplit = 0 +GetMeshes(1).hasExtraGhostInfo = 0 GetMeshes(2).name = "soa_i" GetMeshes(2).originalName = "soa_i" GetMeshes(2).validVariable = 1 @@ -191,6 +193,7 @@ GetMeshes(2).hideFromGUI = 0 GetMeshes(2).LODs = 1 GetMeshes(2).presentGhostZoneTypes = 0 GetMeshes(2).zonesWereSplit = 0 +GetMeshes(2).hasExtraGhostInfo = 0 GetMeshes(3).name = "aos_s" GetMeshes(3).originalName = "aos_s" GetMeshes(3).validVariable = 1 @@ -249,6 +252,7 @@ GetMeshes(3).hideFromGUI = 0 GetMeshes(3).LODs = 1 GetMeshes(3).presentGhostZoneTypes = 0 GetMeshes(3).zonesWereSplit = 0 +GetMeshes(3).hasExtraGhostInfo = 0 GetMeshes(4).name = "aos_m" GetMeshes(4).originalName = "aos_m" GetMeshes(4).validVariable = 1 @@ -307,6 +311,7 @@ GetMeshes(4).hideFromGUI = 0 GetMeshes(4).LODs = 1 GetMeshes(4).presentGhostZoneTypes = 0 GetMeshes(4).zonesWereSplit = 0 +GetMeshes(4).hasExtraGhostInfo = 0 GetMeshes(5).name = "aos_c" GetMeshes(5).originalName = "aos_c" GetMeshes(5).validVariable = 1 @@ -365,6 +370,7 @@ GetMeshes(5).hideFromGUI = 0 GetMeshes(5).LODs = 1 GetMeshes(5).presentGhostZoneTypes = 0 GetMeshes(5).zonesWereSplit = 0 +GetMeshes(5).hasExtraGhostInfo = 0 #subsets does not contain any avtSubsetsMetaData objects. GetScalars(0).name = "soa_s/temperature" GetScalars(0).originalName = "soa_s/temperature"