//============================================================================ // Copyright (c) Kitware, Inc. // All rights reserved. // See LICENSE.txt 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. //============================================================================ #ifndef vtk_m_filter_AmrArrays_h #define vtk_m_filter_AmrArrays_h #include namespace vtkm { namespace filter { class AmrArrays : public vtkm::filter::FilterDataSet { public: using SupportedTypes = vtkm::List; VTKM_CONT AmrArrays(); template vtkm::cont::PartitionedDataSet PrepareForExecution( const vtkm::cont::PartitionedDataSet& input, const vtkm::filter::PolicyBase&); template VTKM_CONT bool MapFieldOntoOutput(vtkm::cont::DataSet& result, const vtkm::cont::Field& field, const vtkm::filter::PolicyBase&) { result.AddField(field); return true; } private: /// the list of ids contains all amrIds of the level above/below that have an overlap VTKM_CONT void GenerateParentChildInformation(); /// the corresponding template function based on the dimension of this dataset VTKM_CONT template void ComputeGenerateParentChildInformation(); /// generate the vtkGhostType array based on the overlap analogously to vtk /// blanked cells: 8 normal cells: 0 VTKM_CONT void GenerateGhostType(); /// the corresponding template function based on the dimension of this dataset VTKM_CONT template void ComputeGenerateGhostType(); /// Add helper arrays like in ParaView VTKM_CONT void GenerateIndexArrays(); /// the input partitioned dataset vtkm::cont::PartitionedDataSet AmrDataSet; /// per level /// contains the index where the PartitionIds start for each level std::vector> PartitionIds; /// per partitionId /// contains all PartitonIds of the level above that have an overlap std::vector> ParentsIdsVector; /// per partitionId /// contains all PartitonIds of the level below that have an overlap std::vector> ChildrenIdsVector; }; } } // namespace vtkm::filter #include #endif //vtk_m_filter_AmrArrays_h