From 65f4fd18dae90de0a1073e5464e5414eaaceb414 Mon Sep 17 00:00:00 2001 From: Burlen Loring Date: Thu, 19 May 2022 11:04:23 -0700 Subject: [PATCH 1/2] update the SENSEI in situ coupling for SENSEI v4.0.0 In this release, an install of VTK is no longer required. To compile AMReX w/ SENSEI use: ```cmake -DAMReX_SENSEI=ON -DSENSEI_DIR=//cmake ``` Note: may be `lib` or `lib64` or something else depending on your OS and is determined by CMake at configure time. See the CMake GNUInstallDirs documentation for more information. --- .github/workflows/sensei.yml | 6 +- .../source/Visualization.rst | 10 +- Src/Extern/SENSEI/AMReX_AmrDataAdaptor.H | 8 +- Src/Extern/SENSEI/AMReX_AmrDataAdaptor.cpp | 118 +++++++-------- Src/Extern/SENSEI/AMReX_AmrInSituBridge.cpp | 2 +- Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.H | 8 +- .../SENSEI/AMReX_AmrMeshDataAdaptor.cpp | 116 +++++++------- .../SENSEI/AMReX_AmrMeshInSituBridge.cpp | 2 +- .../SENSEI/AMReX_AmrMeshParticleDataAdaptor.H | 8 +- .../AMReX_AmrMeshParticleDataAdaptorI.H | 8 +- .../SENSEI/AMReX_AmrParticleDataAdaptor.H | 8 +- .../SENSEI/AMReX_AmrParticleDataAdaptorI.H | 8 +- Src/Extern/SENSEI/AMReX_InSituUtils.H | 20 +-- Src/Extern/SENSEI/AMReX_InSituUtils.cpp | 8 +- Src/Extern/SENSEI/AMReX_ParticleDataAdaptor.H | 24 +-- .../SENSEI/AMReX_ParticleDataAdaptorI.H | 142 +++++++++--------- Tools/CMake/AMReXThirdPartyLibraries.cmake | 2 +- 17 files changed, 250 insertions(+), 248 deletions(-) diff --git a/.github/workflows/sensei.yml b/.github/workflows/sensei.yml index 19121889d6b..f551f46bec0 100644 --- a/.github/workflows/sensei.yml +++ b/.github/workflows/sensei.yml @@ -17,9 +17,9 @@ jobs: CC: clang CXXFLAGS: "-Werror -Wshadow -Woverloaded-virtual -Wunreachable-code -fno-operator-names" CMAKE_GENERATOR: Ninja - CMAKE_PREFIX_PATH: /root/install/sensei/develop/lib/cmake + CMAKE_PREFIX_PATH: /root/install/sensei/v4.0.0/lib64/cmake container: - image: ryankrattiger/sensei:fedora33-vtk-mpi-20210616 + image: senseiinsitu/ci:fedora35-amrex-20220613 steps: - uses: actions/checkout@v2 - name: Setup @@ -27,7 +27,7 @@ jobs: - name: Configure run: | cd build - cmake .. \ + cmake .. \ -DCMAKE_BUILD_TYPE=Debug \ -DAMReX_ENABLE_TESTS=ON \ -DAMReX_FORTRAN=OFF \ diff --git a/Docs/sphinx_documentation/source/Visualization.rst b/Docs/sphinx_documentation/source/Visualization.rst index ea8b4ab8c0b..59f95f76090 100644 --- a/Docs/sphinx_documentation/source/Visualization.rst +++ b/Docs/sphinx_documentation/source/Visualization.rst @@ -873,9 +873,12 @@ and point to the CMake configuration installed with SENSEI. .. code-block:: bash - cmake -DAMReX_SENSEI=ON -DSENSEI_DIR=/lib/cmake .. + cmake -DAMReX_SENSEI=ON -DSENSEI_DIR=//cmake .. -When CMake generates the make files proceed as usual. +When CMake generates the make files proceed as usual. Note: may be +`lib` or `lib64` or something else depending on what CMake decided to use for +your particular OS. See the CMake GNUInstallDirs documentation for more +information. .. code-block:: bash @@ -952,8 +955,7 @@ dataset. Obtaining SENSEI ----------------- -SENSEI is hosted on Kitware's Gitlab site at https://gitlab.kitware.com/sensei/sensei -It's best to checkout the latest release rather than working on the master branch. +SENSEI is hosted on github at https://github.com/SENSEI-insitu/SENSEI.git To ease the burden of wrangling back end installs SENSEI provides two platforms with all dependencies pre-installed, a VirtualBox VM, and a NERSC Cori diff --git a/Src/Extern/SENSEI/AMReX_AmrDataAdaptor.H b/Src/Extern/SENSEI/AMReX_AmrDataAdaptor.H index 061ff14c301..602a6298126 100644 --- a/Src/Extern/SENSEI/AMReX_AmrDataAdaptor.H +++ b/Src/Extern/SENSEI/AMReX_AmrDataAdaptor.H @@ -30,10 +30,10 @@ public: int GetNumberOfArrays(const std::string &meshName, int association, unsigned int &numberOfArrays) override; int GetArrayName(const std::string &meshName, int association, unsigned int index, std::string &arrayName) override; #endif - int GetMesh(const std::string &meshName, bool structureOnly, vtkDataObject *&mesh) override; - int AddGhostNodesArray(vtkDataObject* mesh, const std::string &meshName) override; - int AddGhostCellsArray(vtkDataObject* mesh, const std::string &meshName) override; - int AddArray(vtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) override; + int GetMesh(const std::string &meshName, bool structureOnly, svtkDataObject *&mesh) override; + int AddGhostNodesArray(svtkDataObject* mesh, const std::string &meshName) override; + int AddGhostCellsArray(svtkDataObject* mesh, const std::string &meshName) override; + int AddArray(svtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) override; int ReleaseData() override; protected: diff --git a/Src/Extern/SENSEI/AMReX_AmrDataAdaptor.cpp b/Src/Extern/SENSEI/AMReX_AmrDataAdaptor.cpp index 135c21ef0e2..aa801eb0993 100644 --- a/Src/Extern/SENSEI/AMReX_AmrDataAdaptor.cpp +++ b/Src/Extern/SENSEI/AMReX_AmrDataAdaptor.cpp @@ -1,22 +1,22 @@ #include "AMReX_AmrDataAdaptor.H" +#include "senseiConfig.h" #include "MPIUtils.h" #include "STLUtils.h" -#include "VTKUtils.h" +#include "SVTKUtils.h" #include "Profiler.h" #include "Error.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -62,15 +62,15 @@ int DescriptorMap::Initialize(const DescriptorList &descriptors) if (itype.cellCentered()) { - this->Map[vtkDataObject::CELL][arrayName] = std::make_pair(i,j); + this->Map[svtkDataObject::CELL][arrayName] = std::make_pair(i,j); } else if (itype.nodeCentered()) { - this->Map[vtkDataObject::POINT][arrayName] = std::make_pair(i,j); + this->Map[svtkDataObject::POINT][arrayName] = std::make_pair(i,j); } else { - this->Map[vtkDataObject::FIELD][arrayName] = std::make_pair(i,j); + this->Map[svtkDataObject::FIELD][arrayName] = std::make_pair(i,j); } } } @@ -156,7 +156,7 @@ struct AmrDataAdaptor::InternalsType int PinMesh; amrex::InSituUtils::DescriptorMap SimMetadata; #if SENSEI_VERSION_MAJOR < 3 - std::vector ManagedObjects; + std::vector ManagedObjects; #endif std::vector> Masks; }; @@ -225,11 +225,11 @@ int AmrDataAdaptor::GetMeshMetadata(unsigned int id, metadata->GlobalView = true; metadata->MeshName = "mesh"; - metadata->MeshType = VTK_OVERLAPPING_AMR; - metadata->BlockType = VTK_UNIFORM_GRID; + metadata->MeshType = SVTK_OVERLAPPING_AMR; + metadata->BlockType = SVTK_UNIFORM_GRID; metadata->NumBlocks = 0; metadata->NumBlocksLocal = {-1}; - metadata->CoordinateType = InSituUtils::amrex_tt::vtk_type_enum(); + metadata->CoordinateType = InSituUtils::amrex_tt::svtk_type_enum(); metadata->StaticMesh = 0; // TODO @@ -318,14 +318,14 @@ int AmrDataAdaptor::GetMeshMetadata(unsigned int id, std::string arrayName = desc.name(j); metadata->ArrayName.push_back(arrayName); metadata->ArrayComponents.push_back(1); - metadata->ArrayType.push_back(InSituUtils::amrex_tt::vtk_type_enum()); + metadata->ArrayType.push_back(InSituUtils::amrex_tt::svtk_type_enum()); if (itype.cellCentered()) - metadata->ArrayCentering.push_back(vtkDataObject::CELL); + metadata->ArrayCentering.push_back(svtkDataObject::CELL); else if (itype.nodeCentered()) - metadata->ArrayCentering.push_back(vtkDataObject::POINT); + metadata->ArrayCentering.push_back(svtkDataObject::POINT); else - metadata->ArrayCentering.push_back(vtkDataObject::FIELD); + metadata->ArrayCentering.push_back(svtkDataObject::FIELD); } } @@ -557,8 +557,8 @@ int AmrDataAdaptor::GetNumberOfArrays(const std::string &meshName, return -1; } - if ((association != vtkDataObject::POINT) && - (association != vtkDataObject::CELL)) + if ((association != svtkDataObject::POINT) && + (association != svtkDataObject::CELL)) { SENSEI_ERROR("Invalid association " << association) return -1; @@ -590,7 +590,7 @@ int AmrDataAdaptor::GetArrayName(const std::string &meshName, if (this->Internals->SimMetadata.GetName(association, index, arrayName)) { SENSEI_ERROR("No array named \"" << arrayName << "\" in " - << sensei::VTKUtils::GetAttributesName(association) + << sensei::SVTKUtils::GetAttributesName(association) << " data") return -1; } @@ -603,7 +603,7 @@ int AmrDataAdaptor::GetArrayName(const std::string &meshName, //----------------------------------------------------------------------------- int AmrDataAdaptor::GetMesh(const std::string &meshName, - bool structureOnly, vtkDataObject *&mesh) + bool structureOnly, svtkDataObject *&mesh) { amrex::ignore_unused(structureOnly); @@ -626,8 +626,8 @@ int AmrDataAdaptor::GetMesh(const std::string &meshName, unsigned int nLevels = InSituUtils::NumActiveLevels(levels); - // initialize new vtk datasets - vtkOverlappingAMR *amrMesh = vtkOverlappingAMR::New(); + // initialize new svtk datasets + svtkOverlappingAMR *amrMesh = svtkOverlappingAMR::New(); #if SENSEI_VERSION_MAJOR < 3 Internals->ManagedObjects.push_back(amrMesh); #endif @@ -685,12 +685,12 @@ int AmrDataAdaptor::GetMesh(const std::string &meshName, int cboxLo[3] = {AMREX_ARLIM(cbox.loVect())}; int cboxHi[3] = {AMREX_ARLIM(cbox.hiVect())}; - // vtk's representation of box metadata - vtkAMRBox block(cboxLo, cboxHi); + // svtk's representation of box metadata + svtkAMRBox block(cboxLo, cboxHi); amrMesh->SetAMRBox(i, j, block); amrMesh->SetAMRBlockSourceIndex(i, j, gid++); - // skip building a vtk amrMesh for the non local boxes + // skip building a svtk amrMesh for the non local boxes if (dmap[j] != rank) continue; @@ -705,14 +705,14 @@ int AmrDataAdaptor::GetMesh(const std::string &meshName, int nboxLo[3] = {AMREX_ARLIM(nbox.loVect())}; int nboxHi[3] = {AMREX_ARLIM(nbox.hiVect())}; - // new vtk uniform amrMesh, node centered - vtkUniformGrid *ug = vtkUniformGrid::New(); + // new svtk uniform amrMesh, node centered + svtkUniformGrid *ug = svtkUniformGrid::New(); ug->SetOrigin(origin); ug->SetSpacing(spacing); ug->SetExtent(nboxLo[0], nboxHi[0], nboxLo[1], nboxHi[1], nboxLo[2], nboxHi[2]); - // pass the block into vtk + // pass the block into svtk amrMesh->SetDataSet(i, j, ug); ug->Delete(); } @@ -722,7 +722,7 @@ int AmrDataAdaptor::GetMesh(const std::string &meshName, } //----------------------------------------------------------------------------- -int AmrDataAdaptor::AddGhostCellsArray(vtkDataObject* mesh, +int AmrDataAdaptor::AddGhostCellsArray(svtkDataObject* mesh, const std::string &meshName) { sensei::TimeEvent<64> event("AmrDataAdaptor::AddGhostCellsArray"); @@ -733,7 +733,7 @@ int AmrDataAdaptor::AddGhostCellsArray(vtkDataObject* mesh, return -1; } - vtkOverlappingAMR *amrMesh = dynamic_cast(mesh); + svtkOverlappingAMR *amrMesh = dynamic_cast(mesh); if (!amrMesh) { SENSEI_ERROR("Invalid mesh type " @@ -780,7 +780,7 @@ int AmrDataAdaptor::AddGhostCellsArray(vtkDataObject* mesh, if (dMap[j] != rank) continue; - vtkUniformGrid *blockMesh = amrMesh->GetDataSet(i, j); + svtkUniformGrid *blockMesh = amrMesh->GetDataSet(i, j); if (!blockMesh) { @@ -790,24 +790,24 @@ int AmrDataAdaptor::AddGhostCellsArray(vtkDataObject* mesh, long nCells = blockMesh->GetNumberOfCells(); - // transfer mask array into vtk - vtkUnsignedCharArray *ga = vtkUnsignedCharArray::New(); - ga->SetName("vtkGhostType"); + // transfer mask array into svtk + svtkUnsignedCharArray *ga = svtkUnsignedCharArray::New(); + ga->SetName("svtkGhostType"); ga->SetArray(mask[j], nCells, 0); blockMesh->GetCellData()->AddArray(ga); ga->Delete(); // for debug can visualize the ghost cells // FIXME -- a bug in Catalyst ignores internal ghost zones - // when using the VTK writrer. Until that bug gets fixed, one + // when using the SVTK writrer. Until that bug gets fixed, one // can manually inject this copy using a PV Python filter - ga = vtkUnsignedCharArray::New(); + ga = svtkUnsignedCharArray::New(); ga->SetName("GhostType"); ga->SetArray(mask[j], nCells, 1); blockMesh->GetCellData()->AddArray(ga); ga->Delete(); - // because VTK takes ownership + // because SVTK takes ownership mask[j] = nullptr; } } @@ -816,7 +816,7 @@ int AmrDataAdaptor::AddGhostCellsArray(vtkDataObject* mesh, } //----------------------------------------------------------------------------- -int AmrDataAdaptor::AddGhostNodesArray(vtkDataObject *mesh, +int AmrDataAdaptor::AddGhostNodesArray(svtkDataObject *mesh, const std::string &meshName) { amrex::ignore_unused(mesh); @@ -834,7 +834,7 @@ int AmrDataAdaptor::AddGhostNodesArray(vtkDataObject *mesh, } //----------------------------------------------------------------------------- -int AmrDataAdaptor::AddArray(vtkDataObject* mesh, const std::string &meshName, +int AmrDataAdaptor::AddArray(svtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) { sensei::TimeEvent<64> event("AmrDataAdaptor::AddArray"); @@ -848,7 +848,7 @@ int AmrDataAdaptor::AddArray(vtkDataObject* mesh, const std::string &meshName, return -1; } - vtkOverlappingAMR *amrMesh = dynamic_cast(mesh); + svtkOverlappingAMR *amrMesh = dynamic_cast(mesh); if (!amrMesh) { SENSEI_ERROR("Invalid mesh type " @@ -861,8 +861,8 @@ int AmrDataAdaptor::AddArray(vtkDataObject* mesh, const std::string &meshName, return -1; } - if ((association != vtkDataObject::CELL) && - (association != vtkDataObject::POINT)) + if ((association != svtkDataObject::CELL) && + (association != svtkDataObject::POINT)) { SENSEI_ERROR("Invalid association " << association) return -1; @@ -878,7 +878,7 @@ int AmrDataAdaptor::AddArray(vtkDataObject* mesh, const std::string &meshName, if (this->Internals->SimMetadata.GetIndex(arrayName, association, fab, comp)) { SENSEI_ERROR("Failed to locate descriptor for " - << sensei::VTKUtils::GetAttributesName(association) + << sensei::SVTKUtils::GetAttributesName(association) << " data array \"" << arrayName << "\"") return -1; } @@ -894,8 +894,8 @@ int AmrDataAdaptor::AddArray(vtkDataObject* mesh, const std::string &meshName, amrex::MultiFab& state = levels[i]->get_new_data(fab); unsigned int ng = state.nGrow(); - if (!((association == vtkDataObject::CELL) && state.is_cell_centered()) && - !((association == vtkDataObject::POINT) && state.is_nodal())) + if (!((association == svtkDataObject::CELL) && state.is_cell_centered()) && + !((association == svtkDataObject::POINT) && state.is_nodal())) { SENSEI_ERROR("association does not match MultiFAB centering") return -1; @@ -926,7 +926,7 @@ int AmrDataAdaptor::AddArray(vtkDataObject* mesh, const std::string &meshName, int cboxLo[3] = {AMREX_ARLIM(cbox.loVect())}; int cboxHi[3] = {AMREX_ARLIM(cbox.hiVect())}; - // skip building a vtk mesh for the non local boxes + // skip building a svtk mesh for the non local boxes if (dmap[j] != rank) continue; @@ -938,7 +938,7 @@ int AmrDataAdaptor::AddArray(vtkDataObject* mesh, const std::string &meshName, int nboxHi[3] = {AMREX_ARLIM(nbox.hiVect())}; // get the block mesh - vtkUniformGrid *ug = amrMesh->GetDataSet(i, j); + svtkUniformGrid *ug = amrMesh->GetDataSet(i, j); // node centered size long nlen = 1; @@ -953,9 +953,9 @@ int AmrDataAdaptor::AddArray(vtkDataObject* mesh, const std::string &meshName, // pointer to the data amrex_real *pcd = state[j].dataPtr(comp); - // allocate vtk array - InSituUtils::amrex_tt::vtk_type *da = - InSituUtils::amrex_tt::vtk_type::New(); + // allocate svtk array + InSituUtils::amrex_tt::svtk_type *da = + InSituUtils::amrex_tt::svtk_type::New(); // set component name da->SetName(arrayName.c_str()); @@ -981,7 +981,7 @@ int AmrDataAdaptor::AddArray(vtkDataObject* mesh, const std::string &meshName, #if defined(SENSEI_DEBUG) // mark level id - vtkFloatArray *la = vtkFloatArray::New(); + svtkFloatArray *la = svtkFloatArray::New(); la->SetName("amrex_level_id"); la->SetNumberOfTuples(clen); la->Fill(i); @@ -989,7 +989,7 @@ int AmrDataAdaptor::AddArray(vtkDataObject* mesh, const std::string &meshName, la->Delete(); // mark mpi rank - vtkFloatArray *ra = vtkFloatArray::New(); + svtkFloatArray *ra = svtkFloatArray::New(); ra->SetName("amrex_mpi_rank"); ra->SetNumberOfTuples(clen); ra->Fill(rank); diff --git a/Src/Extern/SENSEI/AMReX_AmrInSituBridge.cpp b/Src/Extern/SENSEI/AMReX_AmrInSituBridge.cpp index 26f63d2a101..018669a4bfc 100644 --- a/Src/Extern/SENSEI/AMReX_AmrInSituBridge.cpp +++ b/Src/Extern/SENSEI/AMReX_AmrInSituBridge.cpp @@ -29,7 +29,7 @@ AmrInSituBridge::update(Amr *dataSource) data_adaptor->SetDataSource(dataSource); data_adaptor->SetDataTime(dataSource->cumTime()); data_adaptor->SetDataTimeStep(dataSource->levelSteps(0)); - ret = analysis_adaptor->Execute(data_adaptor) ? 0 : -1; + ret = analysis_adaptor->Execute(data_adaptor, nullptr) ? 0 : -1; data_adaptor->ReleaseData(); data_adaptor->Delete(); diff --git a/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.H b/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.H index 5a8a88552af..54277505bd4 100644 --- a/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.H +++ b/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.H @@ -34,10 +34,10 @@ public: int GetNumberOfArrays(const std::string &meshName, int association, unsigned int &numberOfArrays) override; int GetArrayName(const std::string &meshName, int association, unsigned int index, std::string &arrayName) override; #endif - int GetMesh(const std::string &meshName, bool structureOnly, vtkDataObject *&mesh) override; - int AddGhostNodesArray(vtkDataObject* mesh, const std::string &meshName) override; - int AddGhostCellsArray(vtkDataObject* mesh, const std::string &meshName) override; - int AddArray(vtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) override; + int GetMesh(const std::string &meshName, bool structureOnly, svtkDataObject *&mesh) override; + int AddGhostNodesArray(svtkDataObject* mesh, const std::string &meshName) override; + int AddGhostCellsArray(svtkDataObject* mesh, const std::string &meshName) override; + int AddArray(svtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) override; int ReleaseData() override; protected: diff --git a/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.cpp b/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.cpp index 2e4968cc8b2..3e7130b5322 100644 --- a/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.cpp +++ b/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.cpp @@ -2,18 +2,18 @@ #include "Profiler.h" #include "Error.h" -#include "VTKUtils.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "SVTKUtils.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include @@ -58,11 +58,11 @@ int MeshStateMap::Initialize( if (state.is_cell_centered()) { - this->Map[vtkDataObject::CELL][arrayName] = std::make_pair(i,j); + this->Map[svtkDataObject::CELL][arrayName] = std::make_pair(i,j); } else if (state.is_nodal()) { - this->Map[vtkDataObject::POINT][arrayName] = std::make_pair(i,j); + this->Map[svtkDataObject::POINT][arrayName] = std::make_pair(i,j); } } } @@ -83,7 +83,7 @@ struct AmrMeshDataAdaptor::InternalsType std::vector> Names; amrex::InSituUtils::MeshStateMap StateMetadata; #if SENSEI_VERSION_MAJOR < 3 - std::vector ManagedObjects; + std::vector ManagedObjects; #endif }; @@ -149,13 +149,13 @@ int AmrMeshDataAdaptor::GetMeshMetadata(unsigned int id, metadata->GlobalView = true; metadata->MeshName = "mesh"; - metadata->MeshType = VTK_OVERLAPPING_AMR; - metadata->BlockType = VTK_UNIFORM_GRID; + metadata->MeshType = SVTK_OVERLAPPING_AMR; + metadata->BlockType = SVTK_UNIFORM_GRID; metadata->NumBlocks = 0; metadata->NumCells = 0; metadata->NumPoints = 0; metadata->NumBlocksLocal = {-1}; - metadata->CoordinateType = InSituUtils::amrex_tt::vtk_type_enum(); + metadata->CoordinateType = InSituUtils::amrex_tt::svtk_type_enum(); metadata->StaticMesh = 0; // num levels @@ -224,7 +224,7 @@ int AmrMeshDataAdaptor::GetMeshMetadata(unsigned int id, {pdLo[0], pdHi[0], pdLo[1], pdHi[1], pdLo[2], pdHi[2]}); } - // global extent (note: VTK uses point centered indexing) + // global extent (note: SVTK uses point centered indexing) const amrex::Box& cdom = this->Internals->Mesh->Geom(0).Domain(); amrex::Box ndom = surroundingNodes(cdom); @@ -261,19 +261,19 @@ int AmrMeshDataAdaptor::GetMeshMetadata(unsigned int id, // scalar, vector, tensor metadata->ArrayComponents[j] = 1; // POD type - metadata->ArrayType[j] = InSituUtils::amrex_tt::vtk_type_enum(); + metadata->ArrayType[j] = InSituUtils::amrex_tt::svtk_type_enum(); // mesh centering if (state0.is_cell_centered()) { - metadata->ArrayCentering[j] = vtkDataObject::CELL; + metadata->ArrayCentering[j] = svtkDataObject::CELL; } else if (state0.is_nodal()) { - metadata->ArrayCentering[j] = vtkDataObject::POINT; + metadata->ArrayCentering[j] = svtkDataObject::POINT; } else { - metadata->ArrayCentering[j] = vtkDataObject::FIELD; + metadata->ArrayCentering[j] = svtkDataObject::FIELD; } } @@ -396,8 +396,8 @@ int AmrMeshDataAdaptor::GetNumberOfArrays(const std::string &meshName, return -1; } - if ((association != vtkDataObject::POINT) && - (association != vtkDataObject::CELL)) + if ((association != svtkDataObject::POINT) && + (association != svtkDataObject::CELL)) { SENSEI_ERROR("Invalid association " << association) return -1; @@ -427,7 +427,7 @@ int AmrMeshDataAdaptor::GetArrayName(const std::string &meshName, if (this->Internals->StateMetadata.GetName(association, index, arrayName)) { SENSEI_ERROR("No array named \"" << arrayName << "\" in " - << sensei::VTKUtils::GetAttributesName(association) + << sensei::SVTKUtils::GetAttributesName(association) << " data") return -1; } @@ -475,7 +475,7 @@ int AmrMeshDataAdaptor::GetMeshHasGhostCells(const std::string &meshName, int &n //----------------------------------------------------------------------------- int AmrMeshDataAdaptor::GetMesh(const std::string &meshName, - bool structureOnly, vtkDataObject *&mesh) + bool structureOnly, svtkDataObject *&mesh) { amrex::ignore_unused(structureOnly); @@ -498,8 +498,8 @@ int AmrMeshDataAdaptor::GetMesh(const std::string &meshName, int nLevels = this->Internals->Mesh->finestLevel() + 1; - // initialize new vtk datasets - vtkOverlappingAMR *amrMesh = vtkOverlappingAMR::New(); + // initialize new svtk datasets + svtkOverlappingAMR *amrMesh = svtkOverlappingAMR::New(); #if SENSEI_VERSION_MAJOR < 3 Internals->ManagedObjects.push_back(amrMesh); #endif @@ -560,12 +560,12 @@ int AmrMeshDataAdaptor::GetMesh(const std::string &meshName, int cboxLo[3] = {AMREX_ARLIM(cbox.loVect())}; int cboxHi[3] = {AMREX_ARLIM(cbox.hiVect())}; - // vtk's representation of box metadata - vtkAMRBox block(cboxLo, cboxHi); + // svtk's representation of box metadata + svtkAMRBox block(cboxLo, cboxHi); amrMesh->SetAMRBox(i, j, block); amrMesh->SetAMRBlockSourceIndex(i, j, gid++); - // skip building a vtk amrMesh for the non local boxes + // skip building a svtk amrMesh for the non local boxes if (dmap[j] != rank) continue; @@ -580,14 +580,14 @@ int AmrMeshDataAdaptor::GetMesh(const std::string &meshName, int nboxLo[3] = {AMREX_ARLIM(nbox.loVect())}; int nboxHi[3] = {AMREX_ARLIM(nbox.hiVect())}; - // new vtk uniform amrMesh, node centered - vtkUniformGrid *ug = vtkUniformGrid::New(); + // new svtk uniform amrMesh, node centered + svtkUniformGrid *ug = svtkUniformGrid::New(); ug->SetOrigin(origin); ug->SetSpacing(spacing); ug->SetExtent(nboxLo[0], nboxHi[0], nboxLo[1], nboxHi[1], nboxLo[2], nboxHi[2]); - // pass the block into vtk + // pass the block into svtk amrMesh->SetDataSet(i, j, ug); ug->Delete(); } @@ -597,7 +597,7 @@ int AmrMeshDataAdaptor::GetMesh(const std::string &meshName, } //----------------------------------------------------------------------------- -int AmrMeshDataAdaptor::AddGhostNodesArray(vtkDataObject *mesh, +int AmrMeshDataAdaptor::AddGhostNodesArray(svtkDataObject *mesh, const std::string &meshName) { amrex::ignore_unused(mesh); @@ -613,7 +613,7 @@ int AmrMeshDataAdaptor::AddGhostNodesArray(vtkDataObject *mesh, } //----------------------------------------------------------------------------- -int AmrMeshDataAdaptor::AddGhostCellsArray(vtkDataObject* mesh, +int AmrMeshDataAdaptor::AddGhostCellsArray(svtkDataObject* mesh, const std::string &meshName) { if (meshName != "mesh") @@ -622,7 +622,7 @@ int AmrMeshDataAdaptor::AddGhostCellsArray(vtkDataObject* mesh, return -1; } - vtkOverlappingAMR *amrMesh = dynamic_cast(mesh); + svtkOverlappingAMR *amrMesh = dynamic_cast(mesh); if (!amrMesh) { SENSEI_ERROR("Invalid mesh type " @@ -701,7 +701,7 @@ int AmrMeshDataAdaptor::AddGhostCellsArray(vtkDataObject* mesh, if (dmap[j] != rank) continue; - vtkUniformGrid *blockMesh = amrMesh->GetDataSet(i, j); + svtkUniformGrid *blockMesh = amrMesh->GetDataSet(i, j); if (!blockMesh) { @@ -711,18 +711,18 @@ int AmrMeshDataAdaptor::AddGhostCellsArray(vtkDataObject* mesh, long nCells = blockMesh->GetNumberOfCells(); - // transfer mask array into vtk - vtkUnsignedCharArray *ga = vtkUnsignedCharArray::New(); - ga->SetName("vtkGhostType"); + // transfer mask array into svtk + svtkUnsignedCharArray *ga = svtkUnsignedCharArray::New(); + ga->SetName("svtkGhostType"); ga->SetArray(mask[j], nCells, 0); blockMesh->GetCellData()->AddArray(ga); ga->Delete(); // for debug can visualize the ghost cells // FIXME -- a bug in Catalyst ignores internal ghost zones - // when using the VTK writrer. Until that bug gets fixed, one + // when using the SVTK writrer. Until that bug gets fixed, one // can manually inject this copy using a PV Python filter - ga = vtkUnsignedCharArray::New(); + ga = svtkUnsignedCharArray::New(); ga->SetName("GhostType"); ga->SetArray(mask[j], nCells, 1); blockMesh->GetCellData()->AddArray(ga); @@ -734,7 +734,7 @@ int AmrMeshDataAdaptor::AddGhostCellsArray(vtkDataObject* mesh, } //----------------------------------------------------------------------------- -int AmrMeshDataAdaptor::AddArray(vtkDataObject* mesh, +int AmrMeshDataAdaptor::AddArray(svtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) { @@ -747,7 +747,7 @@ int AmrMeshDataAdaptor::AddArray(vtkDataObject* mesh, return -1; } - vtkOverlappingAMR *amrMesh = dynamic_cast(mesh); + svtkOverlappingAMR *amrMesh = dynamic_cast(mesh); if (!amrMesh) { SENSEI_ERROR("Invalid mesh type " @@ -760,8 +760,8 @@ int AmrMeshDataAdaptor::AddArray(vtkDataObject* mesh, return -1; } - if ((association != vtkDataObject::CELL) && - (association != vtkDataObject::CELL)) + if ((association != svtkDataObject::CELL) && + (association != svtkDataObject::CELL)) { SENSEI_ERROR("Invalid association " << association) return -1; @@ -774,7 +774,7 @@ int AmrMeshDataAdaptor::AddArray(vtkDataObject* mesh, if (this->Internals->StateMetadata.GetIndex(arrayName, association, fab, comp)) { SENSEI_ERROR("Failed to locate descriptor for " - << sensei::VTKUtils::GetAttributesName(association) + << sensei::SVTKUtils::GetAttributesName(association) << " data array \"" << arrayName << "\"") return -1; } @@ -792,8 +792,8 @@ int AmrMeshDataAdaptor::AddArray(vtkDataObject* mesh, unsigned int ng = state.nGrow(); // check centering - if (!((association == vtkDataObject::CELL) && state.is_cell_centered()) && - !((association == vtkDataObject::POINT) && state.is_nodal())) + if (!((association == svtkDataObject::CELL) && state.is_cell_centered()) && + !((association == svtkDataObject::POINT) && state.is_nodal())) { SENSEI_ERROR("association does not match MultiFab centering") return -1; @@ -824,7 +824,7 @@ int AmrMeshDataAdaptor::AddArray(vtkDataObject* mesh, int cboxLo[3] = {AMREX_ARLIM(cbox.loVect())}; int cboxHi[3] = {AMREX_ARLIM(cbox.hiVect())}; - // skip building a vtk mesh for the non local boxes + // skip building a svtk mesh for the non local boxes if (dmap[j] != rank) continue; @@ -836,7 +836,7 @@ int AmrMeshDataAdaptor::AddArray(vtkDataObject* mesh, int nboxHi[3] = {AMREX_ARLIM(nbox.hiVect())}; // get the block mesh - vtkUniformGrid *ug = amrMesh->GetDataSet(i, j); + svtkUniformGrid *ug = amrMesh->GetDataSet(i, j); // node centered size long nlen = 1; @@ -851,9 +851,9 @@ int AmrMeshDataAdaptor::AddArray(vtkDataObject* mesh, // pointer to the data amrex_real *pcd = state[j].dataPtr(comp); - // allocate vtk array - InSituUtils::amrex_tt::vtk_type *da = - InSituUtils::amrex_tt::vtk_type::New(); + // allocate svtk array + InSituUtils::amrex_tt::svtk_type *da = + InSituUtils::amrex_tt::svtk_type::New(); // set component name da->SetName(arrayName.c_str()); @@ -879,7 +879,7 @@ int AmrMeshDataAdaptor::AddArray(vtkDataObject* mesh, #if defined(SENSEI_DEBUG) // mark level id - vtkFloatArray *la = vtkFloatArray::New(); + svtkFloatArray *la = svtkFloatArray::New(); la->SetName("amrex_level_id"); la->SetNumberOfTuples(clen); la->Fill(i); @@ -887,7 +887,7 @@ int AmrMeshDataAdaptor::AddArray(vtkDataObject* mesh, la->Delete(); // mark mpi rank - vtkFloatArray *ra = vtkFloatArray::New(); + svtkFloatArray *ra = svtkFloatArray::New(); ra->SetName("amrex_mpi_rank"); ra->SetNumberOfTuples(clen); ra->Fill(rank); diff --git a/Src/Extern/SENSEI/AMReX_AmrMeshInSituBridge.cpp b/Src/Extern/SENSEI/AMReX_AmrMeshInSituBridge.cpp index 55adb1b5c59..cd6b6794171 100644 --- a/Src/Extern/SENSEI/AMReX_AmrMeshInSituBridge.cpp +++ b/Src/Extern/SENSEI/AMReX_AmrMeshInSituBridge.cpp @@ -35,7 +35,7 @@ AmrMeshInSituBridge::update(unsigned int step, double time, data_adaptor->SetDataSource(mesh, states, names); data_adaptor->SetDataTime(time); data_adaptor->SetDataTimeStep(step); - ret = analysis_adaptor->Execute(data_adaptor) ? 0 : -1; + ret = analysis_adaptor->Execute(data_adaptor, nullptr) ? 0 : -1; data_adaptor->ReleaseData(); data_adaptor->Delete(); diff --git a/Src/Extern/SENSEI/AMReX_AmrMeshParticleDataAdaptor.H b/Src/Extern/SENSEI/AMReX_AmrMeshParticleDataAdaptor.H index 61e4d510745..fbd5227824f 100644 --- a/Src/Extern/SENSEI/AMReX_AmrMeshParticleDataAdaptor.H +++ b/Src/Extern/SENSEI/AMReX_AmrMeshParticleDataAdaptor.H @@ -45,10 +45,10 @@ public: int GetArrayName(const std::string &meshName, int association, unsigned int index, std::string &arrayName) override; #endif int GetNumberOfMeshes(unsigned int &numMeshes) override; - int GetMesh(const std::string &meshName, bool structureOnly, vtkDataObject *&mesh) override; - int AddGhostNodesArray(vtkDataObject* mesh, const std::string &meshName) override; - int AddGhostCellsArray(vtkDataObject* mesh, const std::string &meshName) override; - int AddArray(vtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) override; + int GetMesh(const std::string &meshName, bool structureOnly, svtkDataObject *&mesh) override; + int AddGhostNodesArray(svtkDataObject* mesh, const std::string &meshName) override; + int AddGhostCellsArray(svtkDataObject* mesh, const std::string &meshName) override; + int AddArray(svtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) override; int ReleaseData() override; protected: diff --git a/Src/Extern/SENSEI/AMReX_AmrMeshParticleDataAdaptorI.H b/Src/Extern/SENSEI/AMReX_AmrMeshParticleDataAdaptorI.H index a93357d5043..4cbb53203b6 100644 --- a/Src/Extern/SENSEI/AMReX_AmrMeshParticleDataAdaptorI.H +++ b/Src/Extern/SENSEI/AMReX_AmrMeshParticleDataAdaptorI.H @@ -148,7 +148,7 @@ template int AmrMeshParticleDataAdaptor::GetMesh( const std::string &meshName, bool structureOnly, - vtkDataObject *&mesh) + svtkDataObject *&mesh) { if(meshName == m_meshName) { @@ -164,7 +164,7 @@ int AmrMeshParticleDataAdaptor:: template int AmrMeshParticleDataAdaptor::AddGhostNodesArray( - vtkDataObject* mesh, + svtkDataObject* mesh, const std::string &meshName) { if(meshName == m_meshName) @@ -181,7 +181,7 @@ int AmrMeshParticleDataAdaptor:: template int AmrMeshParticleDataAdaptor::AddGhostCellsArray( - vtkDataObject* mesh, + svtkDataObject* mesh, const std::string &meshName) { if(meshName == m_meshName) @@ -198,7 +198,7 @@ int AmrMeshParticleDataAdaptor:: template int AmrMeshParticleDataAdaptor::AddArray( - vtkDataObject* mesh, + svtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) diff --git a/Src/Extern/SENSEI/AMReX_AmrParticleDataAdaptor.H b/Src/Extern/SENSEI/AMReX_AmrParticleDataAdaptor.H index 886a7df6d18..3f7a945e019 100644 --- a/Src/Extern/SENSEI/AMReX_AmrParticleDataAdaptor.H +++ b/Src/Extern/SENSEI/AMReX_AmrParticleDataAdaptor.H @@ -43,10 +43,10 @@ public: int GetArrayName(const std::string &meshName, int association, unsigned int index, std::string &arrayName) override; #endif int GetNumberOfMeshes(unsigned int &numMeshes) override; - int GetMesh(const std::string &meshName, bool structureOnly, vtkDataObject *&mesh) override; - int AddGhostNodesArray(vtkDataObject* mesh, const std::string &meshName) override; - int AddGhostCellsArray(vtkDataObject* mesh, const std::string &meshName) override; - int AddArray(vtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) override; + int GetMesh(const std::string &meshName, bool structureOnly, svtkDataObject *&mesh) override; + int AddGhostNodesArray(svtkDataObject* mesh, const std::string &meshName) override; + int AddGhostCellsArray(svtkDataObject* mesh, const std::string &meshName) override; + int AddArray(svtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) override; int ReleaseData() override; protected: diff --git a/Src/Extern/SENSEI/AMReX_AmrParticleDataAdaptorI.H b/Src/Extern/SENSEI/AMReX_AmrParticleDataAdaptorI.H index 813466fc0f8..9035cd0c39c 100644 --- a/Src/Extern/SENSEI/AMReX_AmrParticleDataAdaptorI.H +++ b/Src/Extern/SENSEI/AMReX_AmrParticleDataAdaptorI.H @@ -146,7 +146,7 @@ template int AmrParticleDataAdaptor::GetMesh( const std::string &meshName, bool structureOnly, - vtkDataObject *&mesh) + svtkDataObject *&mesh) { if(meshName == m_meshName) { @@ -162,7 +162,7 @@ int AmrParticleDataAdaptor::GetM template int AmrParticleDataAdaptor::AddGhostNodesArray( - vtkDataObject* mesh, + svtkDataObject* mesh, const std::string &meshName) { if(meshName == m_meshName) @@ -179,7 +179,7 @@ int AmrParticleDataAdaptor::AddG template int AmrParticleDataAdaptor::AddGhostCellsArray( - vtkDataObject* mesh, + svtkDataObject* mesh, const std::string &meshName) { if(meshName == m_meshName) @@ -196,7 +196,7 @@ int AmrParticleDataAdaptor::AddG template int AmrParticleDataAdaptor::AddArray( - vtkDataObject* mesh, + svtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) diff --git a/Src/Extern/SENSEI/AMReX_InSituUtils.H b/Src/Extern/SENSEI/AMReX_InSituUtils.H index e7c212d7b4e..2799e21b367 100644 --- a/Src/Extern/SENSEI/AMReX_InSituUtils.H +++ b/Src/Extern/SENSEI/AMReX_InSituUtils.H @@ -2,10 +2,10 @@ #define AMReX_InSituUtils_H #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include @@ -47,21 +47,21 @@ enum PointGhostTypes -// traits helper for mapping between amrex_real and vtkDataArray +// traits helper for mapping between amrex_real and svtkDataArray template struct amrex_tt {}; -#define amrex_tt_specialize(cpp_t, vtk_t, vtk_t_e) \ +#define amrex_tt_specialize(cpp_t, svtk_t, svtk_t_e) \ template <> \ struct amrex_tt \ { \ - using vtk_type = vtk_t; \ + using svtk_type = svtk_t; \ \ static \ - constexpr int vtk_type_enum() { return vtk_t_e; } \ + constexpr int svtk_type_enum() { return svtk_t_e; } \ }; -amrex_tt_specialize(float, vtkFloatArray, VTK_FLOAT) -amrex_tt_specialize(double, vtkDoubleArray, VTK_DOUBLE) +amrex_tt_specialize(float, svtkFloatArray, SVTK_FLOAT) +amrex_tt_specialize(double, svtkDoubleArray, SVTK_DOUBLE) // helpers to modify values diff --git a/Src/Extern/SENSEI/AMReX_InSituUtils.cpp b/Src/Extern/SENSEI/AMReX_InSituUtils.cpp index 64c429e8bb6..d13c8738aeb 100644 --- a/Src/Extern/SENSEI/AMReX_InSituUtils.cpp +++ b/Src/Extern/SENSEI/AMReX_InSituUtils.cpp @@ -1,7 +1,7 @@ #include "AMReX_InSituUtils.H" #include "Error.h" -#include "VTKUtils.h" +#include "SVTKUtils.h" namespace amrex { namespace InSituUtils { @@ -14,7 +14,7 @@ int StateMap::GetIndex(const std::string &name, int centering, if (cit == this->Map.end()) { - SENSEI_ERROR("No " << sensei::VTKUtils::GetAttributesName(centering) + SENSEI_ERROR("No " << sensei::SVTKUtils::GetAttributesName(centering) << " arrays") return -1; } @@ -23,7 +23,7 @@ int StateMap::GetIndex(const std::string &name, int centering, if (nit == cit->second.end()) { SENSEI_ERROR("No array named \"" << name << "\" in " - << sensei::VTKUtils::GetAttributesName(centering) + << sensei::SVTKUtils::GetAttributesName(centering) << " centered data") return -1; } @@ -41,7 +41,7 @@ int StateMap::GetName(int centering, int id, std::string &name) if (cit == this->Map.end()) { - SENSEI_ERROR("No " << sensei::VTKUtils::GetAttributesName(centering) + SENSEI_ERROR("No " << sensei::SVTKUtils::GetAttributesName(centering) << " arrays") return -1; } diff --git a/Src/Extern/SENSEI/AMReX_ParticleDataAdaptor.H b/Src/Extern/SENSEI/AMReX_ParticleDataAdaptor.H index 73ca142ec0b..f284b15831b 100644 --- a/Src/Extern/SENSEI/AMReX_ParticleDataAdaptor.H +++ b/Src/Extern/SENSEI/AMReX_ParticleDataAdaptor.H @@ -8,7 +8,7 @@ #include #include -class vtkPolyData; +class svtkPolyData; namespace amrex { @@ -40,22 +40,22 @@ public: void SetPinMesh(int val); // get particle id numbers - int AddParticlesIDArray(vtkDataObject* mesh); + int AddParticlesIDArray(svtkDataObject* mesh); // get particle cpu numbers (process each particle was generated on) - int AddParticlesCPUArray(vtkDataObject* mesh); + int AddParticlesCPUArray(svtkDataObject* mesh); // get particle integer arrays in Structs of Arrays format - int AddParticlesSOAIntArray(const std::string &arrayName, vtkDataObject* mesh); + int AddParticlesSOAIntArray(const std::string &arrayName, svtkDataObject* mesh); // get particle real arrays in Structs of Arrays format - int AddParticlesSOARealArray(const std::string &arrayName, vtkDataObject* mesh); + int AddParticlesSOARealArray(const std::string &arrayName, svtkDataObject* mesh); // get particle integer arrays in Array Of Structs format - int AddParticlesAOSIntArray(const std::string &arrayName, vtkDataObject* mesh); + int AddParticlesAOSIntArray(const std::string &arrayName, svtkDataObject* mesh); // get particle real arrays in Array Of Structs format - int AddParticlesAOSRealArray(const std::string &arrayName, vtkDataObject* mesh); + int AddParticlesAOSRealArray(const std::string &arrayName, svtkDataObject* mesh); // SENSEI API #if SENSEI_VERSION_MAJOR >= 3 @@ -68,10 +68,10 @@ public: int GetArrayName(const std::string &meshName, int association, unsigned int index, std::string &arrayName) override; #endif int GetNumberOfMeshes(unsigned int &numMeshes) override; - int GetMesh(const std::string &meshName, bool structureOnly, vtkDataObject *&mesh) override; - int AddGhostNodesArray(vtkDataObject* mesh, const std::string &meshName) override; - int AddGhostCellsArray(vtkDataObject* mesh, const std::string &meshName) override; - int AddArray(vtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) override; + int GetMesh(const std::string &meshName, bool structureOnly, svtkDataObject *&mesh) override; + int AddGhostNodesArray(svtkDataObject* mesh, const std::string &meshName) override; + int AddGhostCellsArray(svtkDataObject* mesh, const std::string &meshName) override; + int AddArray(svtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) override; int ReleaseData() override; protected: @@ -79,7 +79,7 @@ protected: ~ParticleDataAdaptor() = default; private: - vtkPolyData* BuildParticles(); + svtkPolyData* BuildParticles(); const std::string m_particlesName = "particles"; diff --git a/Src/Extern/SENSEI/AMReX_ParticleDataAdaptorI.H b/Src/Extern/SENSEI/AMReX_ParticleDataAdaptorI.H index 26174f83e1b..8a2d15562d3 100644 --- a/Src/Extern/SENSEI/AMReX_ParticleDataAdaptorI.H +++ b/Src/Extern/SENSEI/AMReX_ParticleDataAdaptorI.H @@ -1,13 +1,13 @@ #include "Profiler.h" #include "Error.h" -#include "VTKUtils.h" +#include "SVTKUtils.h" #include "MeshMetadata.h" -// vtk includes -#include -#include -#include -#include -#include +// svtk includes +#include +#include +#include +#include +#include @@ -194,7 +194,7 @@ int ParticleDataAdaptor::GetNumb unsigned int &numberOfArrays) { numberOfArrays = 0; - if(association == vtkDataObject::POINT) + if(association == svtkDataObject::POINT) { numberOfArrays = m_realStructs.size() + m_intStructs.size() @@ -213,7 +213,7 @@ int ParticleDataAdaptor::GetArra unsigned int index, std::string &arrayName) { - if(association == vtkDataObject::POINT) + if(association == svtkDataObject::POINT) { if(index < m_realStructs.size()) { @@ -253,7 +253,7 @@ template int ParticleDataAdaptor::GetMesh( const std::string &meshName, bool structureOnly, - vtkDataObject *&mesh) + svtkDataObject *&mesh) { mesh = nullptr; int nprocs = 1; @@ -266,7 +266,7 @@ int ParticleDataAdaptor::GetMesh SENSEI_ERROR("No mesh named \"" << meshName << "\"") return -1; } - vtkMultiBlockDataSet* mb = vtkMultiBlockDataSet::New(); + svtkMultiBlockDataSet* mb = svtkMultiBlockDataSet::New(); if (structureOnly) { @@ -275,7 +275,7 @@ int ParticleDataAdaptor::GetMesh } mb->SetNumberOfBlocks(nprocs); - vtkPolyData *pd = BuildParticles(); + svtkPolyData *pd = BuildParticles(); mb->SetBlock(rank, pd); pd->Delete(); mesh = mb; @@ -286,7 +286,7 @@ int ParticleDataAdaptor::GetMesh //----------------------------------------------------------------------------- template int ParticleDataAdaptor::AddGhostNodesArray( - vtkDataObject*, + svtkDataObject*, const std::string &meshName) { if (meshName != m_particlesName) @@ -300,7 +300,7 @@ int ParticleDataAdaptor::AddGhos //----------------------------------------------------------------------------- template int ParticleDataAdaptor::AddGhostCellsArray( - vtkDataObject*, + svtkDataObject*, const std::string &meshName) { if (meshName != m_particlesName) @@ -314,7 +314,7 @@ int ParticleDataAdaptor::AddGhos //----------------------------------------------------------------------------- template int ParticleDataAdaptor::AddArray( - vtkDataObject* mesh, + svtkDataObject* mesh, const std::string &meshName, int association, const std::string &arrayName) @@ -325,7 +325,7 @@ int ParticleDataAdaptor::AddArra return -1; } - if (association != vtkDataObject::POINT) + if (association != svtkDataObject::POINT) { SENSEI_ERROR("Invalid association " << association); return -1; @@ -393,10 +393,10 @@ int ParticleDataAdaptor::GetMesh metadata->MeshName = m_particlesName; // container mesh type (all) - metadata->MeshType = VTK_MULTIBLOCK_DATA_SET; + metadata->MeshType = SVTK_MULTIBLOCK_DATA_SET; // block mesh type (all) - metadata->BlockType = VTK_POLY_DATA; + metadata->BlockType = SVTK_POLY_DATA; // global number of blocks (all) metadata->NumBlocks = nprocs; @@ -412,9 +412,9 @@ int ParticleDataAdaptor::GetMesh // type enum of point data (unstructured, optional) #ifdef AMREX_SINGLE_PRECISION_PARTICLES - metadata->CoordinateType = VTK_FLOAT; + metadata->CoordinateType = SVTK_FLOAT; #else - metadata->CoordinateType = VTK_DOUBLE; + metadata->CoordinateType = SVTK_DOUBLE; #endif // total number of points in all blocks (all, optional) @@ -467,19 +467,19 @@ int ParticleDataAdaptor::GetMesh metadata->ArrayCentering = {}; for(auto s : m_realStructs) { - metadata->ArrayCentering.push_back(vtkDataObject::POINT); + metadata->ArrayCentering.push_back(svtkDataObject::POINT); } for(auto s : m_intStructs) { - metadata->ArrayCentering.push_back(vtkDataObject::POINT); + metadata->ArrayCentering.push_back(svtkDataObject::POINT); } for(auto s : m_realArrays) { - metadata->ArrayCentering.push_back(vtkDataObject::POINT); + metadata->ArrayCentering.push_back(svtkDataObject::POINT); } for(auto s : m_intArrays) { - metadata->ArrayCentering.push_back(vtkDataObject::POINT); + metadata->ArrayCentering.push_back(svtkDataObject::POINT); } // number of components of each array (all) @@ -506,26 +506,26 @@ int ParticleDataAdaptor::GetMesh for(auto s : m_realStructs) { #ifdef AMREX_SINGLE_PRECISION_PARTICLES - metadata->ArrayType.push_back(VTK_FLOAT); + metadata->ArrayType.push_back(SVTK_FLOAT); #else - metadata->ArrayType.push_back(VTK_DOUBLE); + metadata->ArrayType.push_back(SVTK_DOUBLE); #endif } for(auto s : m_intStructs) { - metadata->ArrayType.push_back(VTK_INT); + metadata->ArrayType.push_back(SVTK_INT); } for(auto s : m_realArrays) { #ifdef AMREX_SINGLE_PRECISION_PARTICLES - metadata->ArrayType.push_back(VTK_FLOAT); + metadata->ArrayType.push_back(SVTK_FLOAT); #else - metadata->ArrayType.push_back(VTK_DOUBLE); + metadata->ArrayType.push_back(SVTK_DOUBLE); #endif } for(auto s : m_intArrays) { - metadata->ArrayType.push_back(VTK_INT); + metadata->ArrayType.push_back(SVTK_INT); } // global min,max of each array (all, optional) @@ -646,19 +646,19 @@ int ParticleDataAdaptor::GetMesh //----------------------------------------------------------------------------- template -vtkPolyData* ParticleDataAdaptor::BuildParticles() +svtkPolyData* ParticleDataAdaptor::BuildParticles() { // return particle data pd - vtkPolyData* pd = vtkPolyData::New(); + svtkPolyData* pd = svtkPolyData::New(); const auto& particles = this->m_particles->GetParticles(); long long numParticles = this->m_particles->TotalNumberOfParticles(true, true); // allocate vertex storage for particles #ifdef AMREX_SINGLE_PRECISION_PARTICLES - vtkNew coords; + svtkNew coords; #else - vtkNew coords; + svtkNew coords; #endif coords->SetName("coords"); coords->SetNumberOfComponents(3); @@ -669,12 +669,12 @@ vtkPolyData* ParticleDataAdaptor double *pCoords = coords->GetPointer(0); #endif - // use this to index into the VTK array as we copy level by level and tile by + // use this to index into the SVTK array as we copy level by level and tile by // tile long long ptId = 0; // allocate connectivity array for particles - vtkNew vertex; + svtkNew vertex; vertex->AllocateExact(numParticles, 1); // points->SetNumberOfPoints(numParticles); @@ -717,8 +717,8 @@ vtkPolyData* ParticleDataAdaptor } } - // pass the particle coordinates into VTK's point data structure. - vtkNew points; + // pass the particle coordinates into SVTK's point data structure. + svtkNew points; points->SetData(coords); // add point and vertex data to output mesh @@ -731,14 +731,14 @@ vtkPolyData* ParticleDataAdaptor //----------------------------------------------------------------------------- template int ParticleDataAdaptor::AddParticlesIDArray( - vtkDataObject* mesh) + svtkDataObject* mesh) { - auto vtk_particles = dynamic_cast(mesh); + auto svtk_particles = dynamic_cast(mesh); const auto& particles = this->m_particles->GetParticles(); auto nptsOnProc = this->m_particles->TotalNumberOfParticles(true, true); - // allocate a VTK array for the data - vtkNew idArray; + // allocate a SVTK array for the data + svtkNew idArray; idArray->SetName("id"); idArray->SetNumberOfComponents(1); idArray->SetNumberOfValues(nptsOnProc); @@ -767,8 +767,8 @@ int ParticleDataAdaptor::AddPart } } - // the association for this array is vtkDataObject::POINT - vtk_particles->GetPointData()->AddArray(idArray); + // the association for this array is svtkDataObject::POINT + svtk_particles->GetPointData()->AddArray(idArray); return 0; } @@ -776,14 +776,14 @@ int ParticleDataAdaptor::AddPart //----------------------------------------------------------------------------- template int ParticleDataAdaptor::AddParticlesCPUArray( - vtkDataObject* mesh) + svtkDataObject* mesh) { - auto vtk_particles = dynamic_cast(mesh); + auto svtk_particles = dynamic_cast(mesh); const auto& particles = this->m_particles->GetParticles(); auto nptsOnProc = this->m_particles->TotalNumberOfParticles(true, true); - // allocate a VTK array for the data - vtkNew cpuArray; + // allocate a SVTK array for the data + svtkNew cpuArray; cpuArray->SetName("cpu"); cpuArray->SetNumberOfComponents(1); cpuArray->SetNumberOfValues(nptsOnProc); @@ -811,8 +811,8 @@ int ParticleDataAdaptor::AddPart } } - // the association for this array is vtkDataObject::POINT - vtk_particles->GetPointData()->AddArray(cpuArray); + // the association for this array is svtkDataObject::POINT + svtk_particles->GetPointData()->AddArray(cpuArray); return 0; } @@ -821,7 +821,7 @@ int ParticleDataAdaptor::AddPart template int ParticleDataAdaptor::AddParticlesSOARealArray( const std::string &arrayName, - vtkDataObject* mesh) + svtkDataObject* mesh) { const long nParticles = this->m_particles->TotalNumberOfParticles(true, true); @@ -847,11 +847,11 @@ int ParticleDataAdaptor::AddPart } } - // allocate the vtkArray + // allocate the svtkArray #ifdef AMREX_SINGLE_PRECISION_PARTICLES - vtkNew data; + svtkNew data; #else - vtkNew data; + svtkNew data; #endif data->SetName(arrayName.c_str()); data->SetNumberOfComponents(nComps); @@ -896,9 +896,9 @@ int ParticleDataAdaptor::AddPart int rank = 0; MPI_Comm_rank(this->GetCommunicator(), &rank); - auto blocks = dynamic_cast(mesh); + auto blocks = dynamic_cast(mesh); - auto block = dynamic_cast(blocks->GetBlock(rank)); + auto block = dynamic_cast(blocks->GetBlock(rank)); block->GetPointData()->AddArray(data); return 0; @@ -908,7 +908,7 @@ int ParticleDataAdaptor::AddPart template int ParticleDataAdaptor::AddParticlesSOAIntArray( const std::string &arrayName, - vtkDataObject* mesh) + svtkDataObject* mesh) { // get the particles from the particle container auto nptsOnProc = this->m_particles->TotalNumberOfParticles(true, true); @@ -931,7 +931,7 @@ int ParticleDataAdaptor::AddPart return -1; } - vtkNew data; + svtkNew data; data->SetName(arrayName.c_str()); data->SetNumberOfComponents(1); data->SetNumberOfValues(nptsOnProc); @@ -967,9 +967,9 @@ int ParticleDataAdaptor::AddPart int rank = 0; MPI_Comm_rank(this->GetCommunicator(), &rank); - auto blocks = dynamic_cast(mesh); + auto blocks = dynamic_cast(mesh); - auto block = dynamic_cast(blocks->GetBlock(rank)); + auto block = dynamic_cast(blocks->GetBlock(rank)); block->GetPointData()->AddArray(data); return 0; @@ -979,7 +979,7 @@ int ParticleDataAdaptor::AddPart template int ParticleDataAdaptor::AddParticlesAOSRealArray( const std::string &arrayName, - vtkDataObject* mesh) + svtkDataObject* mesh) { // get the particles from the particle container const auto& particles = this->m_particles->GetParticles(); @@ -1007,11 +1007,11 @@ int ParticleDataAdaptor::AddPart } } - // allocate the vtk array + // allocate the svtk array #ifdef AMREX_SINGLE_PRECISION_PARTICLES - vtkNew data; + svtkNew data; #else - vtkNew data; + svtkNew data; #endif data->SetName(arrayName.c_str()); @@ -1053,9 +1053,9 @@ int ParticleDataAdaptor::AddPart int rank = 0; MPI_Comm_rank(this->GetCommunicator(), &rank); - auto blocks = dynamic_cast(mesh); + auto blocks = dynamic_cast(mesh); - auto block = dynamic_cast(blocks->GetBlock(rank)); + auto block = dynamic_cast(blocks->GetBlock(rank)); block->GetPointData()->AddArray(data); return 0; @@ -1065,7 +1065,7 @@ int ParticleDataAdaptor::AddPart template int ParticleDataAdaptor::AddParticlesAOSIntArray( const std::string &arrayName, - vtkDataObject* mesh) + svtkDataObject* mesh) { // get the particles from the particle container const auto& particles = this->m_particles->GetParticles(); @@ -1090,8 +1090,8 @@ int ParticleDataAdaptor::AddPart return -1; } - // allocate vtkArray - vtkNew data; + // allocate svtkArray + svtkNew data; data->SetName(arrayName.c_str()); data->SetNumberOfComponents(1); data->SetNumberOfValues(nptsOnProc); @@ -1121,9 +1121,9 @@ int ParticleDataAdaptor::AddPart int rank = 0; MPI_Comm_rank(this->GetCommunicator(), &rank); - auto blocks = dynamic_cast(mesh); + auto blocks = dynamic_cast(mesh); - auto block = dynamic_cast(blocks->GetBlock(rank)); + auto block = dynamic_cast(blocks->GetBlock(rank)); block->GetPointData()->AddArray(data); diff --git a/Tools/CMake/AMReXThirdPartyLibraries.cmake b/Tools/CMake/AMReXThirdPartyLibraries.cmake index 1afbcac4ee2..2b0a90febe1 100644 --- a/Tools/CMake/AMReXThirdPartyLibraries.cmake +++ b/Tools/CMake/AMReXThirdPartyLibraries.cmake @@ -45,7 +45,7 @@ endif () # Sensei # if (AMReX_SENSEI) - find_package(SENSEI REQUIRED) + find_package( SENSEI 4.0.0 REQUIRED ) target_link_libraries( amrex PUBLIC sensei ) endif () From af327472fe86fc630b1470e2fc291c4e81fde9ca Mon Sep 17 00:00:00 2001 From: Weiqun Zhang Date: Tue, 28 Jun 2022 12:24:57 -0700 Subject: [PATCH 2/2] Update Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.cpp Co-authored-by: Axel Huebl --- Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.cpp b/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.cpp index 3e7130b5322..34b92c1d25d 100644 --- a/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.cpp +++ b/Src/Extern/SENSEI/AMReX_AmrMeshDataAdaptor.cpp @@ -720,7 +720,7 @@ int AmrMeshDataAdaptor::AddGhostCellsArray(svtkDataObject* mesh, // for debug can visualize the ghost cells // FIXME -- a bug in Catalyst ignores internal ghost zones - // when using the SVTK writrer. Until that bug gets fixed, one + // when using the SVTK writer. Until that bug gets fixed, one // can manually inject this copy using a PV Python filter ga = svtkUnsignedCharArray::New(); ga->SetName("GhostType");