Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 48147c6a authored by Mathieu Westphal's avatar Mathieu Westphal Committed by Mark Olesen
Browse files

Adding openfoam test(s)

parent 3b94d445
No related branches found
No related tags found
No related merge requests found
Showing
with 142 additions and 0 deletions
...@@ -33,6 +33,18 @@ vtk_module_test_data( ...@@ -33,6 +33,18 @@ vtk_module_test_data(
Data/OpenFOAM/regex/constant/,REGEX:.* Data/OpenFOAM/regex/constant/,REGEX:.*
Data/OpenFOAM/regex/constant/polyMesh/,REGEX:.* Data/OpenFOAM/regex/constant/polyMesh/,REGEX:.*
Data/OpenFOAM/regex/system/,REGEX:.* Data/OpenFOAM/regex/system/,REGEX:.*
Data/OpenFOAM/simplifiedSiwek-serial/constant/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/constant/polyMesh/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/0.01/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/0.01/lagrangian/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/0.01/lagrangian/coalCloud1/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/0.01/lagrangian/limestoneCloud1/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/system/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/0.005/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/0.005/lagrangian/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/0.005/lagrangian/coalCloud1/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/0.005/lagrangian/limestoneCloud1/,REGEX:.*$
Data/OpenFOAM/simplifiedSiwek-serial/0/,REGEX:.*$
Data/TecPlot/,REGEX:.* Data/TecPlot/,REGEX:.*
Data/Viewpoint/cow.obj Data/Viewpoint/cow.obj
Data/absolute_indices.obj Data/absolute_indices.obj
......
...@@ -14,6 +14,7 @@ vtk_add_test_cxx(vtkIOGeometryCxxTests tests ...@@ -14,6 +14,7 @@ vtk_add_test_cxx(vtkIOGeometryCxxTests tests
TestOBJReaderSingleTexture.cxx,NO_VALID TestOBJReaderSingleTexture.cxx,NO_VALID
TestOpenFOAMReader.cxx TestOpenFOAMReader.cxx
TestOpenFOAMReaderDimensionedFields.cxx,NO_VALID TestOpenFOAMReaderDimensionedFields.cxx,NO_VALID
TestOpenFOAMReaderLagrangianSerial.cxx,NO_VALID
TestOpenFOAMReaderPrecision.cxx TestOpenFOAMReaderPrecision.cxx
TestOpenFOAMReaderRegEx.cxx,NO_VALID TestOpenFOAMReaderRegEx.cxx,NO_VALID
TestProStarReader.cxx TestProStarReader.cxx
......
/*=========================================================================
Program: Visualization Toolkit
Module: TestSimplePointsReaderWriter.cxx
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#include <vtkCellData.h>
#include <vtkCompositeDataSet.h>
#include <vtkDataSetMapper.h>
#include <vtkInformation.h>
#include <vtkMultiBlockDataSet.h>
#include <vtkOpenFOAMReader.h>
#include <vtkPointData.h>
#include <vtkPolyData.h>
#include <vtkSmartPointer.h>
#include <vtkTestUtilities.h>
#include <vtkUnstructuredGrid.h>
namespace
{
// Get named block
template <class Type>
static Type* findBlock(vtkMultiBlockDataSet* mb, const char* blockName)
{
const unsigned int nblocks = mb->GetNumberOfBlocks();
for (unsigned int blocki = 0; blocki < nblocks; ++blocki)
{
if (strcmp(mb->GetMetaData(blocki)->Get(vtkCompositeDataSet::NAME()), blockName) == 0)
{
return Type::SafeDownCast(mb->GetBlock(blocki));
}
}
return nullptr;
}
} // End anonymous namespace
int TestOpenFOAMReaderLagrangianSerial(int argc, char* argv[])
{
// Read file name.
char* filename = vtkTestUtilities::ExpandDataFileName(
argc, argv, "Data/OpenFOAM/simplifiedSiwek-serial/simplifiedSiwek-serial.foam");
// Read the file
vtkNew<vtkOpenFOAMReader> reader;
reader->SetFileName(filename);
delete[] filename;
reader->Update();
reader->SetTimeValue(0.01);
// reader->CreateCellToPointOn();
// reader->ReadZonesOn();
// Re-read with everything selected
reader->EnableAllPatchArrays();
reader->Update();
reader->Print(std::cout);
reader->GetOutput()->Print(std::cout);
// reader->GetOutput()->GetBlock(0)->Print(std::cout);
auto* allBlocks = vtkMultiBlockDataSet::SafeDownCast(reader->GetOutput());
auto* lagrangianBlocks = findBlock<vtkMultiBlockDataSet>(allBlocks, "lagrangian");
if (!lagrangianBlocks)
{
std::cout << "No lagrangian blocks!\n";
return 1;
}
vtkIdType nClouds = 0;
vtkIdType nParticles = 0;
const int nLagrangianFields = reader->GetNumberOfLagrangianArrays();
std::cout << "----- Have " << nLagrangianFields << " Lagrangian fields" << std::endl;
// Bad name, but it is what we have
for (int i = 0; i < reader->GetNumberOfPatchArrays(); ++i)
{
std::string displayName(reader->GetPatchArrayName(i));
auto slash = displayName.rfind('/');
if (displayName.compare(0, slash, "lagrangian") == 0 && slash != std::string::npos)
{
++slash;
std::string cloudName(displayName.substr(slash));
std::cout << " Display " << displayName << " = Cloud <" << cloudName << ">" << std::endl;
auto* cloudData = findBlock<vtkPolyData>(lagrangianBlocks, cloudName.c_str());
if (cloudData)
{
++nClouds;
nParticles += cloudData->GetNumberOfPoints();
}
}
}
std::cout << " Read " << nParticles << " particles from " << nClouds << " clouds" << std::endl;
int retVal = (nParticles != 0);
return !retVal;
}
98386a7ee606e9a04184131f1530b353f832c4b167bc599456cb90f4ad9dcdf97478cf2192731fe8871f5dc68210710e84fe39f05064babd2c367bd610db3529
efb914d852fef74290806d1fadca64ca6cee4253bf469e5baeef70c1a006ba762625a08b88d2143c55568d4f927b6d83cf9bdd246cb80991f1c3925dc79b174c
2ac111ea8e217f8f180a54714df459664ee89acb07d9f7e0df5887bfe6c2d9f2a22c915973b94c6109ba44d4d7774b109a6ed5e7198d7b94404446ec9b41483a
4fe16fa83cf0dd946dfe910c1e04caf44338f5c25983af7fa4ad471fd36d97f8aa9b259647e0ec9aded318581d98e5f36610b6be33556cad0161f35c988e57c3
ddf81a2244a341d03ef440fa09e1991fe0ca9b0f6a4aad672e76eb189f3124cf252042429233c9043d6da19f4c496595f26f2b3477baf61799d95b78b57901d5
5d076abf64b44ed60d3d22d27e8a27a3596159237c7f4e3b991e2f6b4b46d0d1d4dfd2423c0a086aa9004327d943e0f73f34461698b1b41fef41bf0d8394b52c
c102b06287b9ca91ee335ae6db86b8f024896e19323c8a206eca914ab25d33fadcc9e59bea716ec33aa83c4a4360a868a34bb7887e116ddbac8c05a49eab017e
2438e1d8b3f244e12a581bbce96bd81c42a68098f929c36141c2a0e6bb1b44cd6fdd9fa74a7bd02e2e075382b198d29ad6cd1a4eb7585b7a3403c1e71252995a
a96c726c5881502ee1ac62f5c9ab4e3ba9714e099bfe6754996e49c284875d08e7171c141b8692d275b0572b28ce5ac1a7165affa23d9302b73ce4aad77b1550
dab12ff9c2f9e717a682d7807f4071d773d96e111877660b5b6de22a022b3a3835794c1234845582d7d3160bbe56ff40a1cc8f587b9efe14212b4032005e0747
004e7952160b9f253ef795ba2c1e6531f9c94b59ef2e851db85b4b208672190e9bd1ca7951713e335a1705fcd3f5f08be18f6ae09d06b806b6e019be9ceea14a
575d06a7bdc648c33b65ab4f28a58a68113df650cc328947ed13ded29a94e0bf7050c0dd735507ba3f124956ee287b3489f489f9ca4a651fa1d36b8119da4890
cae1d6207a83bb0a6caac99c921de88a8f0e089b6f86ed45dd930d25b4023e8657f19ec7d4b895a9e438a331b22457b38be25ccd4b6697ce54c0da2f3e76588d
97bbd490cffa78081737af2cc4d4c9e66f743589915149e5b88bb98fe1967c58638a06a68d47fa5d9fff3bf6ecbccfc4dff361935e9fe6377aeb4269ec20580c
7a3c14fd08d47c6677e5c639154997b90ecd6aa395e6facea05cba8f4a30247eccf93f46a65824623c17952728aff1097b968db31926132b04de665ca69c35d9
c3859531600c5c308db4a2682e1d4485868802e345609db5016eff18931bb4d9ba17ff9b3db44e15472a28dc3436c85e38be6a6687d4b224976a5d51ca4234c3
4791b62362e1a632677f24c34075ee4ad2ddc9da0b53671d373fbae9b0f0ec943f5521032c2b005a4f47f95f06a55e25885635c931ceab0f164d06111648fb77
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment