Skip to content

Commit

Permalink
add const cell field helper, move mpi rank to output cell centered
Browse files Browse the repository at this point in the history
  • Loading branch information
cyrush committed Feb 1, 2025
1 parent d8cd47b commit 8af7d0d
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1425,7 +1425,7 @@ VTKHAddRanks::execute()

vtkh::DataSet &data = collection->dataset_by_topology(topo_name);
VTKHCollection *new_coll = collection->copy_without_topology(topo_name);
data.AddConstantPointField(rank,output_field);
data.AddConstantCellField(rank,output_field);
new_coll->add(data, topo_name);

// re wrap in data object
Expand Down
19 changes: 17 additions & 2 deletions src/libs/vtkh/DataSet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -677,6 +677,21 @@ bool DataSet::HasDomainId(const vtkm::Id &domain_id) const
return false;
}

void
DataSet::AddConstantCellField(const vtkm::Float32 value, const std::string fieldname)
{
const size_t size = m_domain_ids.size();

for(size_t i = 0; i < size; ++i)
{
vtkm::Id num_cells = m_domains[i].GetNumberOfCells();
vtkm::cont::ArrayHandle<vtkm::Float32> array;
detail::MemSet(array, value, num_cells);
vtkm::cont::Field field(fieldname, vtkm::cont::Field::Association::Cells, array);
m_domains[i].AddField(field);
}
}

void
DataSet::AddConstantPointField(const vtkm::Float32 value, const std::string fieldname)
{
Expand Down Expand Up @@ -717,9 +732,9 @@ DataSet::AddDomainIdField(const std::string fieldname)
for(size_t i = 0; i < size; ++i)
{
vtkm::Id domain_id = m_domain_ids[i];
vtkm::Id num_points = m_domains[i].GetNumberOfCells();
vtkm::Id num_cells = m_domains[i].GetNumberOfCells();
vtkm::cont::ArrayHandle<vtkm::Float32> array;
detail::MemSet(array, (vtkm::Float32)domain_id, num_points);
detail::MemSet(array, (vtkm::Float32)domain_id, num_cells);
vtkm::cont::Field field(fieldname, vtkm::cont::Field::Association::Cells, array);
m_domains[i].AddField(field);
}
Expand Down
1 change: 1 addition & 0 deletions src/libs/vtkh/DataSet.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ class VTKH_API DataSet
std::vector<vtkm::Id> GetDomainIds() const;

// add a scalar field to this data set with a constant value
void AddConstantCellField(const vtkm::Float32 value, const std::string fieldname);
void AddConstantPointField(const vtkm::Float32 value, const std::string fieldname);
void AddLinearPointField(const vtkm::Float32 value, const std::string fieldname);
void AddDomainIdField(const std::string fieldname);
Expand Down

0 comments on commit 8af7d0d

Please sign in to comment.