diff --git a/vtkm/filter/ParticleAdvection2.hxx b/vtkm/filter/ParticleAdvection2.hxx index e5600343e..35e1db782 100644 --- a/vtkm/filter/ParticleAdvection2.hxx +++ b/vtkm/filter/ParticleAdvection2.hxx @@ -38,8 +38,9 @@ inline VTKM_CONT vtkm::cont::PartitionedDataSet ParticleAdvection2::PrepareForEx const vtkm::cont::PartitionedDataSet& input, const vtkm::filter::PolicyBase&) { - // using AlgorithmType = vtkm::filter::particleadvection::ParticleAdvectionAlgorithm; - // using ThreadedAlgorithmType = vtkm::filter::particleadvection::ParticleAdvectionThreadedAlgorithm; + // return input; + +#if 1 using DSIType = vtkm::filter::particleadvection::DSI; this->ValidateOptions(); @@ -62,35 +63,9 @@ inline VTKM_CONT vtkm::cont::PartitionedDataSet ParticleAdvection2::PrepareForEx } this->SeedArray = this->Seeds; - vtkm::filter::particleadvection::PAV pav( - boundsMap, - dsi, - this->UseThreadedAlgorithm, - vtkm::filter::particleadvection::ParticleAdvectionResultType::PARTICLE_ADVECT_TYPE); + vtkm::filter::particleadvection::PAV pav( + boundsMap, dsi, this->UseThreadedAlgorithm, this->ResultType); return pav.Execute(this->NumberOfSteps, this->StepSize, this->SeedArray); - -#if 0 - //std::vector ddsi; - /* - vtkm::filter::particleadvection::RunAlgo( - boundsMap, ddsi, this->NumberOfSteps, this->StepSize, this->Seeds); - */ - - vtkm::cont::PartitionedDataSet output; - return output; - - /* - //using DSIType = vtkm::filter::particleadvection::DataSetIntegrator; - //std::vector dsi; - auto dsi = this->CreateDataSetIntegrators(input, boundsMap); - - if (this->GetUseThreadedAlgorithm()) - return vtkm::filter::particleadvection::RunAlgo( - boundsMap, dsi, this->NumberOfSteps, this->StepSize, this->Seeds); - else - return vtkm::filter::particleadvection::RunAlgo( - boundsMap, dsi, this->NumberOfSteps, this->StepSize, this->Seeds); - */ #endif } diff --git a/vtkm/filter/PathParticle2.h b/vtkm/filter/PathParticle2.h index c9d8020de..c9056ee78 100644 --- a/vtkm/filter/PathParticle2.h +++ b/vtkm/filter/PathParticle2.h @@ -37,6 +37,15 @@ public: const vtkm::filter::PolicyBase& policy); vtkm::cont::UnknownArrayHandle SeedArray; + + void SetPreviousTime(vtkm::FloatDefault t1) { this->Time1 = t1; } + void SetNextTime(vtkm::FloatDefault t2) { this->Time2 = t2; } + void SetNextDataSet(const vtkm::cont::DataSet& ds) { this->DataSet2 = { ds }; } + void SetNextDataSet(const vtkm::cont::PartitionedDataSet& pds) { this->DataSet2 = pds; } + + vtkm::cont::PartitionedDataSet DataSet2; + vtkm::FloatDefault Time1; + vtkm::FloatDefault Time2; }; class PathParticle3 : public vtkm::filter::NewFilterField diff --git a/vtkm/filter/PathParticle2.hxx b/vtkm/filter/PathParticle2.hxx index 7bb200aa6..20cee1f1f 100644 --- a/vtkm/filter/PathParticle2.hxx +++ b/vtkm/filter/PathParticle2.hxx @@ -38,8 +38,6 @@ inline VTKM_CONT vtkm::cont::PartitionedDataSet PathParticle2::PrepareForExecuti const vtkm::cont::PartitionedDataSet& input, const vtkm::filter::PolicyBase&) { - // using AlgorithmType = vtkm::filter::particleadvection::ParticleAdvectionAlgorithm; - // using ThreadedAlgorithmType = vtkm::filter::particleadvection::ParticleAdvectionThreadedAlgorithm; using DSIType = vtkm::filter::particleadvection::DSI; this->ValidateOptions(); @@ -53,42 +51,27 @@ inline VTKM_CONT vtkm::cont::PartitionedDataSet PathParticle2::PrepareForExecuti for (vtkm::Id i = 0; i < input.GetNumberOfPartitions(); i++) { vtkm::Id blockId = boundsMap.GetLocalBlockId(i); - auto ds = input.GetPartition(i); - if (!ds.HasPointField(activeField) && !ds.HasCellField(activeField)) + auto ds1 = input.GetPartition(i); + auto ds2 = this->DataSet2.GetPartition(i); + if ((!ds1.HasPointField(activeField) && !ds1.HasCellField(activeField)) || + (!ds2.HasPointField(activeField) && !ds2.HasCellField(activeField))) throw vtkm::cont::ErrorFilterExecution("Unsupported field assocation"); - dsi.push_back(new DSIType( - ds, blockId, activeField, this->SolverType, this->VecFieldType, this->ResultType)); + dsi.push_back(new DSIType(ds1, + ds2, + this->Time1, + this->Time2, + blockId, + activeField, + this->SolverType, + this->VecFieldType, + this->ResultType)); } this->SeedArray = this->Seeds; - vtkm::filter::particleadvection::PAV pav( + vtkm::filter::particleadvection::PAV pav( boundsMap, dsi, this->UseThreadedAlgorithm, this->ResultType); return pav.Execute(this->NumberOfSteps, this->StepSize, this->SeedArray); - -#if 0 - //std::vector ddsi; - /* - vtkm::filter::particleadvection::RunAlgo( - boundsMap, ddsi, this->NumberOfSteps, this->StepSize, this->Seeds); - */ - - vtkm::cont::PartitionedDataSet output; - return output; - - /* - //using DSIType = vtkm::filter::particleadvection::DataSetIntegrator; - //std::vector dsi; - auto dsi = this->CreateDataSetIntegrators(input, boundsMap); - - if (this->GetUseThreadedAlgorithm()) - return vtkm::filter::particleadvection::RunAlgo( - boundsMap, dsi, this->NumberOfSteps, this->StepSize, this->Seeds); - else - return vtkm::filter::particleadvection::RunAlgo( - boundsMap, dsi, this->NumberOfSteps, this->StepSize, this->Seeds); - */ -#endif } VTKM_CONT vtkm::cont::DataSet PathParticle3::DoExecute(const vtkm::cont::DataSet& inData) diff --git a/vtkm/filter/Pathline2.h b/vtkm/filter/Pathline2.h index 3aff0f46b..35f49799d 100644 --- a/vtkm/filter/Pathline2.h +++ b/vtkm/filter/Pathline2.h @@ -36,6 +36,15 @@ public: const vtkm::filter::PolicyBase& policy); vtkm::cont::UnknownArrayHandle SeedArray; + + void SetPreviousTime(vtkm::FloatDefault t1) { this->Time1 = t1; } + void SetNextTime(vtkm::FloatDefault t2) { this->Time2 = t2; } + void SetNextDataSet(const vtkm::cont::DataSet& ds) { this->DataSet2 = { ds }; } + void SetNextDataSet(const vtkm::cont::PartitionedDataSet& pds) { this->DataSet2 = pds; } + + vtkm::cont::PartitionedDataSet DataSet2; + vtkm::FloatDefault Time1; + vtkm::FloatDefault Time2; }; class Pathline3 : public vtkm::filter::NewFilterField diff --git a/vtkm/filter/Pathline2.hxx b/vtkm/filter/Pathline2.hxx index 70a38b18e..5fde0be99 100644 --- a/vtkm/filter/Pathline2.hxx +++ b/vtkm/filter/Pathline2.hxx @@ -38,8 +38,6 @@ inline VTKM_CONT vtkm::cont::PartitionedDataSet Pathline2::PrepareForExecution( const vtkm::cont::PartitionedDataSet& input, const vtkm::filter::PolicyBase&) { - // using AlgorithmType = vtkm::filter::particleadvection::ParticleAdvectionAlgorithm; - // using ThreadedAlgorithmType = vtkm::filter::particleadvection::ParticleAdvectionThreadedAlgorithm; using DSIType = vtkm::filter::particleadvection::DSI; this->ValidateOptions(); @@ -53,42 +51,27 @@ inline VTKM_CONT vtkm::cont::PartitionedDataSet Pathline2::PrepareForExecution( for (vtkm::Id i = 0; i < input.GetNumberOfPartitions(); i++) { vtkm::Id blockId = boundsMap.GetLocalBlockId(i); - auto ds = input.GetPartition(i); - if (!ds.HasPointField(activeField) && !ds.HasCellField(activeField)) + auto ds1 = input.GetPartition(i); + auto ds2 = this->DataSet2.GetPartition(i); + if ((!ds1.HasPointField(activeField) && !ds1.HasCellField(activeField)) || + (!ds2.HasPointField(activeField) && !ds2.HasCellField(activeField))) throw vtkm::cont::ErrorFilterExecution("Unsupported field assocation"); - dsi.push_back(new DSIType( - ds, blockId, activeField, this->SolverType, this->VecFieldType, this->ResultType)); + dsi.push_back(new DSIType(ds1, + ds2, + this->Time1, + this->Time2, + blockId, + activeField, + this->SolverType, + this->VecFieldType, + this->ResultType)); } this->SeedArray = this->Seeds; - vtkm::filter::particleadvection::PAV pav( + vtkm::filter::particleadvection::PAV pav( boundsMap, dsi, this->UseThreadedAlgorithm, this->ResultType); return pav.Execute(this->NumberOfSteps, this->StepSize, this->SeedArray); - -#if 0 - //std::vector ddsi; - /* - vtkm::filter::particleadvection::RunAlgo( - boundsMap, ddsi, this->NumberOfSteps, this->StepSize, this->Seeds); - */ - - vtkm::cont::PartitionedDataSet output; - return output; - - /* - //using DSIType = vtkm::filter::particleadvection::DataSetIntegrator; - //std::vector dsi; - auto dsi = this->CreateDataSetIntegrators(input, boundsMap); - - if (this->GetUseThreadedAlgorithm()) - return vtkm::filter::particleadvection::RunAlgo( - boundsMap, dsi, this->NumberOfSteps, this->StepSize, this->Seeds); - else - return vtkm::filter::particleadvection::RunAlgo( - boundsMap, dsi, this->NumberOfSteps, this->StepSize, this->Seeds); - */ -#endif } VTKM_CONT vtkm::cont::DataSet Pathline3::DoExecute(const vtkm::cont::DataSet& inData) diff --git a/vtkm/filter/Streamline2.hxx b/vtkm/filter/Streamline2.hxx index 001b20e7b..ec560ee57 100644 --- a/vtkm/filter/Streamline2.hxx +++ b/vtkm/filter/Streamline2.hxx @@ -38,8 +38,9 @@ inline VTKM_CONT vtkm::cont::PartitionedDataSet Streamline2::PrepareForExecution const vtkm::cont::PartitionedDataSet& input, const vtkm::filter::PolicyBase&) { - // using AlgorithmType = vtkm::filter::particleadvection::StreamlineAlgorithm; - // using ThreadedAlgorithmType = vtkm::filter::particleadvection::StreamlineThreadedAlgorithm; + // return input; + +#if 1 using DSIType = vtkm::filter::particleadvection::DSI; this->ValidateOptions(); @@ -62,32 +63,9 @@ inline VTKM_CONT vtkm::cont::PartitionedDataSet Streamline2::PrepareForExecution } this->SeedArray = this->Seeds; - vtkm::filter::particleadvection::PAV pav( + vtkm::filter::particleadvection::PAV pav( boundsMap, dsi, this->UseThreadedAlgorithm, this->ResultType); return pav.Execute(this->NumberOfSteps, this->StepSize, this->SeedArray); - -#if 0 - //std::vector ddsi; - /* - vtkm::filter::particleadvection::RunAlgo( - boundsMap, ddsi, this->NumberOfSteps, this->StepSize, this->Seeds); - */ - - vtkm::cont::PartitionedDataSet output; - return output; - - /* - //using DSIType = vtkm::filter::particleadvection::DataSetIntegrator; - //std::vector dsi; - auto dsi = this->CreateDataSetIntegrators(input, boundsMap); - - if (this->GetUseThreadedAlgorithm()) - return vtkm::filter::particleadvection::RunAlgo( - boundsMap, dsi, this->NumberOfSteps, this->StepSize, this->Seeds); - else - return vtkm::filter::particleadvection::RunAlgo( - boundsMap, dsi, this->NumberOfSteps, this->StepSize, this->Seeds); - */ #endif } diff --git a/vtkm/filter/particleadvection/ABA.h b/vtkm/filter/particleadvection/ABA.h index 839b98a13..de96df0d1 100644 --- a/vtkm/filter/particleadvection/ABA.h +++ b/vtkm/filter/particleadvection/ABA.h @@ -24,11 +24,11 @@ namespace filter namespace particleadvection { -template