#ifndef FEDATASTRUCTURES_HEADER #define FEDATASTRUCTURES_HEADER #include #include class Grid { public: Grid(); void Initialize(const unsigned int numPoints[3], const double spacing[3]); size_t GetNumberOfPoints(); size_t GetNumberOfCells(); double* GetPointsArray(); bool GetPoint(size_t pointId, double coord[3]); unsigned int* GetCellPoints(size_t cellId); private: std::vector Points; std::vector 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. The current velocity profile is for a // shearing flow with U(y,t) = y*t, V = 0 and W = 0. // Pressure is constant through the domain. public: Attributes(); void Initialize(Grid* grid); void UpdateFields(double time); double* GetVelocityArray(); float* GetPressureArray(); private: std::vector Velocity; std::vector Pressure; Grid* GridPtr; }; #endif