Program Listing for File discretization.h

↰ Return to documentation for file (src/pcms/discretization/discretization.h)

#ifndef PCMS_DISCRETIZATION_DISCRETIZATION_H
#define PCMS_DISCRETIZATION_DISCRETIZATION_H

#include "pcms/utility/arrays.h"
#include "pcms/utility/entity_types.h"

namespace pcms
{

using ClassificationDimension = int8_t;
using ClassificationId = LO;

class Discretization
{
public:
  virtual bool SameEntities(const Discretization& other) const noexcept = 0;

  virtual int GetDimension() const = 0;

  virtual LO GetNumEntities(int entity_dim) const = 0;

  virtual Rank1View<const ClassificationDimension, DeviceMemorySpace>
  GetEntityClassificationDimensions(int entity_dim) const = 0;

  virtual Rank1View<const ClassificationId, DeviceMemorySpace>
  GetEntityClassificationIds(int entity_dim) const = 0;

  virtual ~Discretization() noexcept = default;
};

} // namespace pcms

#endif // PCMS_DISCRETIZATION_DISCRETIZATION_H