allow requesting fields by name, and make test data set names more sensible.

This commit is contained in:
Jeremy Meredith 2015-05-20 11:46:04 -04:00
parent 21d31e6548
commit 019e30a263
4 changed files with 26 additions and 13 deletions

@ -30,6 +30,7 @@
#include <vtkm/cont/CellSet.h>
#include <vtkm/cont/CellSetExplicit.h>
#include <vtkm/cont/CellSetStructured.h>
#include <vtkm/cont/ErrorControlBadValue.h>
namespace vtkm {
namespace cont {
@ -50,13 +51,25 @@ public:
vtkm::cont::Field &GetField(int index)
{
VTKM_ASSERT_CONT(index >= 0 && index <= int(Fields.size()));
return Fields[index];
}
vtkm::cont::Field &GetField(const std::string &n)
{
for (unsigned int i=0; i<Fields.size(); ++i)
{
if (Fields[i].GetName() == n)
return Fields[i];
}
throw vtkm::cont::ErrorControlBadValue("No field with requested name");
}
vtkm::Id x_idx, y_idx, z_idx;
vtkm::cont::CellSet *GetCellSet(int index=0)
{
VTKM_ASSERT_CONT(index >= 0 && index <= int(CellSets.size()));
return CellSets[index];
}

@ -61,7 +61,7 @@ MakeTestDataSet::Make2DRegularDataSet0()
ds->AddField(Field("y", 1, vtkm::cont::Field::ASSOC_POINTS, yVals, nVerts));
//set node scalar.
ds->AddField(Field("v", 1, vtkm::cont::Field::ASSOC_POINTS, vars, nVerts));
ds->AddField(Field("nodevar", 1, vtkm::cont::Field::ASSOC_POINTS, vars, nVerts));
//create scalar.
vtkm::Float32 cellvar[2] = {100.1, 200.1};
@ -97,7 +97,7 @@ MakeTestDataSet::Make3DRegularDataSet0()
ds->AddField(Field("z", 1, vtkm::cont::Field::ASSOC_POINTS, zVals, nVerts));
//Set node scalar
ds->AddField(Field("v", 1, vtkm::cont::Field::ASSOC_POINTS, vars, nVerts));
ds->AddField(Field("nodevar", 1, vtkm::cont::Field::ASSOC_POINTS, vars, nVerts));
//Set cell scalar
vtkm::Float32 cellvar[4] = {100.1, 100.2, 100.3, 100.4};
@ -133,7 +133,7 @@ MakeTestDataSet::Make3DExplicitDataSet0()
ds->AddField(Field("z", 1, vtkm::cont::Field::ASSOC_POINTS, zVals, nVerts));
//Set node scalar
ds->AddField(Field("v", 1, vtkm::cont::Field::ASSOC_POINTS, vars, nVerts));
ds->AddField(Field("nodevar", 1, vtkm::cont::Field::ASSOC_POINTS, vars, nVerts));
//Set cell scalar
vtkm::Float32 cellvar[2] = {100.1, 100.2};
@ -190,7 +190,7 @@ MakeTestDataSet::Make3DExplicitDataSet1()
ds->AddField(Field("z", 1, vtkm::cont::Field::ASSOC_POINTS, zVals, nVerts));
//Set node scalar
ds->AddField(Field("v", 1, vtkm::cont::Field::ASSOC_POINTS, vars, nVerts));
ds->AddField(Field("nodevar", 1, vtkm::cont::Field::ASSOC_POINTS, vars, nVerts));
//Set cell scalar
vtkm::Float32 cellvar[2] = {100.1, 100.2};

@ -146,10 +146,10 @@ TestMaxNodeOrCell()
//a method that return the nodesOfCellsConnectivity / structure
//for that derived type. ( talk to robert for how dax did this )
vtkm::worklet::DispatcherMapTopology< ::test::MaxNodeOrCellValue > dispatcher;
dispatcher.Invoke(ds->GetField(4).GetData(),
ds->GetField(3).GetData(),
dispatcher.Invoke(ds->GetField("cellvar").GetData(),
ds->GetField("nodevar").GetData(),
cse->GetNodeToCellConnectivity(),
ds->GetField(5).GetData());
ds->GetField("outcellvar").GetData());
//Make sure we got the right answer.
vtkm::cont::ArrayHandle<vtkm::Float32> res;
@ -190,9 +190,9 @@ TestAvgNodeToCell()
VTKM_TEST_ASSERT(cse, "Expected an explicit cell set");
vtkm::worklet::DispatcherMapTopology< ::test::AvgNodeToCellValue > dispatcher;
dispatcher.Invoke(ds->GetField(4).GetData(),
dispatcher.Invoke(ds->GetField("nodevar").GetData(),
cse->GetNodeToCellConnectivity(),
ds->GetField(5).GetData());
ds->GetField("outcellvar").GetData());
std::cout<<__LINE__<<std::endl;
//make sure we got the right answer.

@ -145,8 +145,8 @@ TestMaxNodeOrCell()
//a method that return the nodesOfCellsConnectivity / structure
//for that derived type. ( talk to robert for how dax did this )
vtkm::worklet::DispatcherMapTopology< ::test::MaxNodeOrCellValue > dispatcher;
dispatcher.Invoke(ds->GetField(3).GetData(),
ds->GetField(2).GetData(),
dispatcher.Invoke(ds->GetField("cellvar").GetData(),
ds->GetField("nodevar").GetData(),
cs->GetNodeToCellConnectivity(),
ds->GetField(4).GetData());
@ -189,9 +189,9 @@ TestAvgNodeToCell()
//a method that return the nodesOfCellsConnectivity / structure
//for that derived type. ( talk to robert for how dax did this )
vtkm::worklet::DispatcherMapTopology< ::test::AvgNodeToCellValue > dispatcher;
dispatcher.Invoke(ds->GetField(2).GetData(),
dispatcher.Invoke(ds->GetField("nodevar").GetData(),
cs->GetNodeToCellConnectivity(),
ds->GetField(4).GetData());
ds->GetField("outcellvar").GetData());
//make sure we got the right answer.
vtkm::cont::ArrayHandle<vtkm::Float32> res;