Skip to content
Snippets Groups Projects
FEDataStructures.h 871 B
Newer Older
  • Learn to ignore specific revisions
  • Lukáš Krupčík's avatar
    Lukáš Krupčík committed
    #ifndef FEDATASTRUCTURES_HEADER
    #define FEDATASTRUCTURES_HEADER
    
    #include <cstddef>
    #include <vector>
    
    class Grid
    {
    public:
      Grid();
      void Initialize(const unsigned int numPoints[3], const double spacing[3]);
      size_t GetNumberOfPoints();
      size_t GetNumberOfCells();
      double* GetPointsArray();
      double* GetPoint(size_t pointId);
      unsigned int* GetCellPoints(size_t cellId);
    
    private:
      std::vector<double> Points;
      std::vector<unsigned int> Cells;
    };
    
    class Attributes
    {
      // A class for generating and storing point and cell fields.
      // Velocity is stored at the points and pressure is stored
      // for the cells.
    
    public:
      Attributes();
      void Initialize(Grid* grid);
      void UpdateFields(double time);
      double* GetVelocityArray();
      float* GetPressureArray();
    
    private:
      std::vector<double> Velocity;
      std::vector<float> Pressure;
      Grid* GridPtr;
    };
    #endif