Unify common storage types

The list defining the common storage types was defined in
DefaultTypes.h.in. The problem was that derived default types could not
just add their own type. They had to redefine the whole list.

Instead, move the list to StorageList.h. Also updated
DefaultTypesVTK.h.in to use this list when using XGC. This enables
ArrayHandleSOA for this case.
This commit is contained in:
Kenneth Moreland 2021-05-13 07:51:41 -06:00
parent c4117ede8a
commit e0abb39810
3 changed files with 16 additions and 35 deletions

@ -46,30 +46,8 @@
#endif //VTKM_DEFAULT_TYPE_LIST
#ifndef VTKM_DEFAULT_STORAGE_LIST
#include <vtkm/cont/ArrayHandleCartesianProduct.h>
#include <vtkm/cont/ArrayHandleUniformPointCoordinates.h>
#include <vtkm/cont/ArrayHandleSOA.h>
#include <vtkm/cont/StorageList.h>
namespace vtkm
{
namespace cont
{
namespace internal
{
using StorageListField = vtkm::ListAppend<
vtkm::cont::StorageListBasic,
vtkm::List<
vtkm::cont::StorageTagSOA,
vtkm::cont::StorageTagUniformPoints,
vtkm::cont::StorageTagCartesianProduct<vtkm::cont::StorageTagBasic,
vtkm::cont::StorageTagBasic,
vtkm::cont::StorageTagBasic>>>;
}
}
} // namespace vtkm::cont
#define VTKM_DEFAULT_STORAGE_LIST ::vtkm::cont::internal::StorageListField
#define VTKM_DEFAULT_STORAGE_LIST ::vtkm::cont::StorageListCommon
#endif // VTKM_FIELD_STORAGE_LIST
#ifndef VTKM_DEFAULT_CELL_SET_LIST_STRUCTURED

@ -13,7 +13,9 @@
#include <vtkm/List.h>
#include <vtkm/cont/ArrayHandleBasic.h>
#include <vtkm/cont/Storage.h>
#include <vtkm/cont/ArrayHandleCartesianProduct.h>
#include <vtkm/cont/ArrayHandleSOA.h>
#include <vtkm/cont/ArrayHandleUniformPointCoordinates.h>
namespace vtkm
{
@ -21,6 +23,15 @@ namespace cont
{
using StorageListBasic = vtkm::List<vtkm::cont::StorageTagBasic>;
using StorageListCommon =
vtkm::List<vtkm::cont::StorageTagBasic,
vtkm::cont::StorageTagSOA,
vtkm::cont::StorageTagUniformPoints,
vtkm::cont::StorageTagCartesianProduct<vtkm::cont::StorageTagBasic,
vtkm::cont::StorageTagBasic,
vtkm::cont::StorageTagBasic>>;
}
} // namespace vtkm::cont

@ -16,6 +16,7 @@
#include <vtkm/TypeList.h>
#include <vtkm/cont/CellSetList.h>
#include <vtkm/cont/StorageList.h>
#cmakedefine VTKM_ADD_XGC_DEFAULT_TYPES
@ -110,17 +111,8 @@ using CellListAllOutVTK = vtkm::ListAppend<CellListStructuredOutVTK, CellListUns
#ifdef VTKM_ADD_XGC_DEFAULT_TYPES
using StorageListField = vtkm::ListAppend<
vtkm::cont::StorageListBasic,
vtkm::List<
vtkm::cont::ArrayHandleUniformPointCoordinates::StorageTag,
vtkm::cont::ArrayHandleCartesianProduct<vtkm::cont::ArrayHandle<vtkm::Float32>,
vtkm::cont::ArrayHandle<vtkm::Float32>,
vtkm::cont::ArrayHandle<vtkm::Float32>>::StorageTag,
vtkm::cont::ArrayHandleCartesianProduct<vtkm::cont::ArrayHandle<vtkm::Float64>,
vtkm::cont::ArrayHandle<vtkm::Float64>,
vtkm::cont::ArrayHandle<vtkm::Float64>>::StorageTag,
vtkm::cont::StorageTagXGCCoordinates
>>;
vtkm::cont::StorageListCommon,
vtkm::List<vtkm::cont::StorageTagXGCCoordinates>>;
#endif
} // end namespace tovtkm