Add tests for all datasetypes for 3D

This commit is contained in:
Dave Pugmire 2020-11-02 17:23:42 -05:00
parent 699dbae5ca
commit fb72ab097b
2 changed files with 27 additions and 34 deletions

@ -20,11 +20,7 @@ namespace
std::vector<vtkm::cont::DataSet> MakeDataSets()
{
vtkm::Float64 xmin = 0, xmax = 10;
vtkm::Float64 ymin = 0, ymax = 10;
vtkm::Float64 zmin = 0, zmax = 10;
vtkm::Bounds bounds(xmin, xmax, ymin, ymax, zmin, zmax);
vtkm::Bounds bounds(0, 10, 0, 10, 0, 10);
const vtkm::Id3 dims(16, 16, 16);
auto dataSets = vtkm::worklet::testing::CreateAllDataSets(bounds, dims, false);

@ -11,8 +11,8 @@
#include <iostream>
#include <vtkm/cont/DataSetBuilderUniform.h>
#include <vtkm/cont/testing/Testing.h>
#include <vtkm/filter/LagrangianStructures.h>
#include <vtkm/worklet/testing/GenerateTestDataSets.h>
namespace auxiliary
{
@ -350,40 +350,37 @@ void Test2DLCS()
void Test3DLCS()
{
/*Construct dataset and vector field*/
vtkm::cont::DataSet inputData;
vtkm::Bounds bounds(0, 10, 0, 10, 0, 10);
vtkm::Id3 dims(5, 5, 5);
vtkm::Vec3f origin(0.0f, 0.0f, 0.0f);
vtkm::Vec3f spacing;
spacing[0] = 10.0f / static_cast<vtkm::FloatDefault>(dims[0] - 1);
spacing[1] = 10.0f / static_cast<vtkm::FloatDefault>(dims[1] - 1);
spacing[2] = 10.0f / static_cast<vtkm::FloatDefault>(dims[2] - 1);
vtkm::cont::DataSetBuilderUniform dataBuilder;
inputData = dataBuilder.Create(dims, origin, spacing);
std::vector<vtkm::FloatDefault> diffVec;
std::vector<vtkm::FloatDefault> visitVec;
std::vector<vtkm::Vec3f> fieldVec;
auto dataSets = vtkm::worklet::testing::CreateAllDataSets(bounds, dims, false);
for (auto& input : dataSets)
{
std::vector<vtkm::FloatDefault> diffVec;
std::vector<vtkm::FloatDefault> visitVec;
std::vector<vtkm::Vec3f> fieldVec;
auxiliary::PopulateData(fieldVec, visitVec, diffVec, auxiliary::Option::_3D);
auxiliary::PopulateData(fieldVec, visitVec, diffVec, auxiliary::Option::_3D);
vtkm::cont::ArrayHandle<vtkm::FloatDefault> diffHandle =
vtkm::cont::make_ArrayHandle(diffVec, vtkm::CopyFlag::On);
vtkm::cont::ArrayHandle<vtkm::FloatDefault> visitHandle =
vtkm::cont::make_ArrayHandle(visitVec, vtkm::CopyFlag::On);
vtkm::cont::ArrayHandle<vtkm::Vec3f> fieldHandle =
vtkm::cont::make_ArrayHandle(fieldVec, vtkm::CopyFlag::On);
inputData.AddPointField("velocity", fieldHandle);
vtkm::cont::ArrayHandle<vtkm::FloatDefault> diffHandle =
vtkm::cont::make_ArrayHandle(diffVec, vtkm::CopyFlag::On);
vtkm::cont::ArrayHandle<vtkm::FloatDefault> visitHandle =
vtkm::cont::make_ArrayHandle(visitVec, vtkm::CopyFlag::On);
vtkm::cont::ArrayHandle<vtkm::Vec3f> fieldHandle =
vtkm::cont::make_ArrayHandle(fieldVec, vtkm::CopyFlag::On);
input.AddPointField("velocity", fieldHandle);
vtkm::filter::LagrangianStructures lagrangianStructures;
lagrangianStructures.SetStepSize(0.01f);
lagrangianStructures.SetNumberOfSteps(500);
lagrangianStructures.SetAdvectionTime(0.01f * 500);
lagrangianStructures.SetActiveField("velocity");
vtkm::cont::DataSet outputData = lagrangianStructures.Execute(inputData);
vtkm::filter::LagrangianStructures lagrangianStructures;
lagrangianStructures.SetStepSize(0.01f);
lagrangianStructures.SetNumberOfSteps(500);
lagrangianStructures.SetAdvectionTime(0.01f * 500);
lagrangianStructures.SetActiveField("velocity");
vtkm::cont::DataSet outputData = lagrangianStructures.Execute(input);
vtkm::cont::ArrayHandle<vtkm::FloatDefault> FTLEField;
outputData.GetField("FTLE").GetData().CopyTo(FTLEField);
auxiliary::ValidateLCSFilterResult(FTLEField, visitHandle, diffHandle);
vtkm::cont::ArrayHandle<vtkm::FloatDefault> FTLEField;
outputData.GetField("FTLE").GetData().CopyTo(FTLEField);
auxiliary::ValidateLCSFilterResult(FTLEField, visitHandle, diffHandle);
}
}
void TestLagrangianStructures()