Validate the data format for the UniformGridEvaluate.

This commit is contained in:
Dave Pugmire 2017-07-12 12:02:04 -05:00
parent 69c1f946c5
commit 33150365eb
3 changed files with 15 additions and 11 deletions

@ -74,15 +74,14 @@ void RunTest(const std::string& fname,
vtkm::io::reader::BOVDataSetReader rdr(fname);
vtkm::cont::DataSet ds = rdr.ReadDataSet();
vtkm::worklet::particleadvection::RegularGridEvaluate<FieldPortalConstType, FieldType> eval(ds);
typedef vtkm::worklet::particleadvection::RegularGridEvaluate<FieldPortalConstType, FieldType>
typedef vtkm::worklet::particleadvection::UniformGridEvaluate<FieldPortalConstType, FieldType>
RGEvalType;
typedef vtkm::worklet::particleadvection::RK4Integrator<RGEvalType,
FieldType,
FieldPortalConstType>
RK4RGType;
RGEvalType eval(ds);
RK4RGType rk4(eval, stepSize);
std::vector<vtkm::Vec<FieldType, 3>> seeds;

@ -112,17 +112,23 @@ private:
vtkm::Bounds bounds;
};
//Regular Grid Evaluator
//Uniform Grid Evaluator
template <typename PortalType, typename FieldType>
class RegularGridEvaluate
class UniformGridEvaluate
{
public:
VTKM_CONT
RegularGridEvaluate() {}
UniformGridEvaluate() {}
VTKM_CONT
RegularGridEvaluate(const vtkm::cont::DataSet& ds)
UniformGridEvaluate(const vtkm::cont::DataSet& ds)
{
typedef vtkm::cont::ArrayHandleUniformPointCoordinates UniformType;
vtkm::cont::DynamicArrayHandleCoordinateSystem coordArray = ds.GetCoordinateSystem().GetData();
if (!coordArray.IsSameType(UniformType()))
throw vtkm::cont::ErrorInternal("Given dataset is was not uniform.");
bounds = ds.GetCoordinateSystem(0).GetBounds();
vtkm::cont::CellSetStructured<3> cells;
ds.GetCellSet(0).CopyTo(cells);
@ -234,7 +240,7 @@ private:
vtkm::Id rowSize;
vtkm::Vec<FieldType, 3> spacing;
vtkm::Vec<FieldType, 3> oldMin;
}; //RegularGridEvaluate
};

@ -126,15 +126,14 @@ void TestParticleAdvection()
}
vtkm::cont::DataSet ds = dataSetBuilder.Create(dims);
vtkm::worklet::particleadvection::RegularGridEvaluate<FieldPortalConstType, FieldType> eval(ds);
typedef vtkm::worklet::particleadvection::RegularGridEvaluate<FieldPortalConstType, FieldType>
typedef vtkm::worklet::particleadvection::UniformGridEvaluate<FieldPortalConstType, FieldType>
RGEvalType;
typedef vtkm::worklet::particleadvection::RK4Integrator<RGEvalType,
FieldType,
FieldPortalConstType>
RK4RGType;
RGEvalType eval(ds);
RK4RGType rk4(eval, stepSize);
std::vector<vtkm::Vec<FieldType, 3>> pts;