Program Listing for File point_cloud.h

Return to documentation for file (include/immersx/coupling/point_cloud.h)

// ---------------------------------------------------------------------
// Generic point-cloud input for zero-dimensional reduced domains.
// ---------------------------------------------------------------------

#ifndef immersx_point_cloud_h
#define immersx_point_cloud_h

#include <deal.II/base/point.h>

#include <immersx/core/reduced_field_catalog.h>

#include <vector>

namespace ImmersX
{
  enum class PointCloudDistribution
  {
    replicated,
    rank_local
  };

  template <int spacedim>
  struct PointCloud
  {
    std::vector<dealii::Point<spacedim>> points;
    std::vector<std::vector<double>>     properties;
    FieldCatalog                         catalog;
    std::vector<std::string>             property_names;
    PointCloudDistribution distribution = PointCloudDistribution::replicated;
  };

} // namespace ImmersX

#endif // immersx_point_cloud_h