diff --git a/src/gpu/GridGenerator/grid/Grid.h b/src/gpu/GridGenerator/grid/Grid.h index db8b883eefc7d896bdb7fcfe0ac654fccb12a544..b77d3de8c657be404bf0e64f5f0ce7c19ddc129d 100644 --- a/src/gpu/GridGenerator/grid/Grid.h +++ b/src/gpu/GridGenerator/grid/Grid.h @@ -101,7 +101,7 @@ public: virtual uint *getFC_offset() const = 0; virtual real *getDistribution() const = 0; - virtual int* getDirection() const = 0; + virtual const std::vector<int> &getDirection() const = 0; virtual int getStartDirection() const = 0; virtual int getEndDirection() const = 0; diff --git a/src/gpu/GridGenerator/grid/GridImp.cpp b/src/gpu/GridGenerator/grid/GridImp.cpp index 3ca1427508d6bb8aad817eb2089b2516406e904e..cec996774447e55978be66a6b6bdfe763a4d9981 100644 --- a/src/gpu/GridGenerator/grid/GridImp.cpp +++ b/src/gpu/GridGenerator/grid/GridImp.cpp @@ -36,6 +36,7 @@ #include <sstream> # include <algorithm> #include <cmath> +#include <vector> #include "global.h" @@ -1762,7 +1763,7 @@ real* GridImp::getDistribution() const return this->distribution.f; } -int* GridImp::getDirection() const +const std::vector<int>& GridImp::getDirection() const { return this->distribution.dirs; } diff --git a/src/gpu/GridGenerator/grid/GridImp.h b/src/gpu/GridGenerator/grid/GridImp.h index b88e994488e8a56c05d6cf47854867fcd00839d0..54ea74850dde6c6fddd3d7cf60f2a911f79423af 100644 --- a/src/gpu/GridGenerator/grid/GridImp.h +++ b/src/gpu/GridGenerator/grid/GridImp.h @@ -243,7 +243,7 @@ public: uint getSparseSize() const override; int getSparseIndex(uint matrixIndex) const override; real* getDistribution() const override; - int* getDirection() const override; + const std::vector<int>& getDirection() const override; int getStartDirection() const override; int getEndDirection() const override; diff --git a/src/gpu/GridGenerator/grid/distributions/Distribution.cpp b/src/gpu/GridGenerator/grid/distributions/Distribution.cpp index a6e11ac909186618d765596f15263035b3b6401a..31d2e2f8a927e7141d80a55f4164dfcb0f52a8e0 100644 --- a/src/gpu/GridGenerator/grid/distributions/Distribution.cpp +++ b/src/gpu/GridGenerator/grid/distributions/Distribution.cpp @@ -46,9 +46,9 @@ Distribution DistributionHelper::getDistribution27() d27.dir_start = STARTDIR; d27.dir_end = ENDDIR; - d27.dirs = new int[(ENDDIR + 1) * DIMENSION]; + d27.dirs.resize((ENDDIR + 1) * DIMENSION); - d27.directions = new Direction[ENDDIR + 1]; + d27.directions.resize(ENDDIR + 1); d27.directions[DIR_P00] = Direction(DIR_27_E_X, DIR_27_E_Y, DIR_27_E_Z); d27.directions[DIR_M00] = Direction(DIR_27_W_X, DIR_27_W_Y, DIR_27_W_Z); d27.directions[DIR_0P0] = Direction(DIR_27_N_X, DIR_27_N_Y, DIR_27_N_Z); diff --git a/src/gpu/GridGenerator/grid/distributions/Distribution.h b/src/gpu/GridGenerator/grid/distributions/Distribution.h index 7982abc235b020003526b10c885f4936bf661936..39cea3747e71a5c26bfd9172267366284dbc94ff 100644 --- a/src/gpu/GridGenerator/grid/distributions/Distribution.h +++ b/src/gpu/GridGenerator/grid/distributions/Distribution.h @@ -73,8 +73,8 @@ struct Distribution typedef const Direction* const_iterator; real* f; - int *dirs; - Direction* directions; + std::vector<int> dirs; + std::vector<Direction> directions; int dir_start; int dir_end; const char* name;