Skip to content

Commit

Permalink
fix #2768 (#2769)
Browse files Browse the repository at this point in the history
* fix #2752

* clang-format

* fix

* minor

* clang-format

* rename alias

* more alias change

* clang-format

* minor

* minor fixes

* minor

* safer

* Update documentation to reflect API changes

* Minor fixes to Grid*::GetNumNodeDimensions()

* clang-format pre-push hook

Co-authored-by: Samuel Li <shaomeng@cisl-vapor>
Co-authored-by: John Clyne <clyne@ucar.edu>
  • Loading branch information
3 people authored Jul 2, 2021
1 parent 20af529 commit 8c01dce
Show file tree
Hide file tree
Showing 31 changed files with 429 additions and 398 deletions.
31 changes: 15 additions & 16 deletions include/vapor/ConstantGrid.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,16 @@ class VDF_API ConstantGrid : public Grid {
//
// The following four GetValue methods all return the constant value of this grid.
float GetConstantValue() const;
float GetValue(const DblArr3 &coords) const override;
float GetValueNearestNeighbor(const DblArr3 &coords) const override;
float GetValueLinear(const DblArr3 &coords) const override;
float GetValue(const CoordType &coords) const override;
float GetValueNearestNeighbor(const CoordType &coords) const override;
float GetValueLinear(const CoordType &coords) const override;

// This version of ConstantGrid is considered to have infinity extents,
// so the following method will return numerical mins and maxes.
// Note: other flavors of ConstantGrids may have specific user extents.
virtual void GetUserExtentsHelper(DblArr3 &minu, DblArr3 &maxu) const override;
virtual void GetUserExtentsHelper(CoordType &minu, CoordType &maxu) const override;
// Similarly, this will always return true.
virtual bool InsideGrid(const DblArr3 &coords) const override;
virtual bool InsideGrid(const CoordType &coords) const override;

std::string GetType() const override;

Expand All @@ -52,18 +52,19 @@ class VDF_API ConstantGrid : public Grid {
//
std::vector<size_t> GetCoordDimensions(size_t) const override;
size_t GetGeometryDim() const override;
const std::vector<size_t> &GetNodeDimensions() const override;
const DimsType GetNodeDimensions() const override;
const size_t GetNumNodeDimensions() const override;
const std::vector<size_t> &GetCellDimensions() const override;
void GetBoundingBox(const Size_tArr3 &min, const Size_tArr3 &max, DblArr3 &minu, DblArr3 &maxu) const override {}
bool GetEnclosingRegion(const DblArr3 &minu, const DblArr3 &maxu, Size_tArr3 &min, Size_tArr3 &max) const override { return (false); }
virtual void GetUserCoordinates(const Size_tArr3 &, DblArr3 &) const override {}
bool GetIndicesCell(const DblArr3 &coords, Size_tArr3 &indices) const override;
bool GetCellNodes(const Size_tArr3 &, std::vector<Size_tArr3> &) const override;
bool GetCellNeighbors(const Size_tArr3 &, std::vector<Size_tArr3> &) const override;
bool GetNodeCells(const Size_tArr3 &, std::vector<Size_tArr3> &) const override;
void GetBoundingBox(const DimsType &min, const DimsType &max, CoordType &minu, CoordType &maxu) const override {}
bool GetEnclosingRegion(const CoordType &minu, const CoordType &maxu, DimsType &min, DimsType &max) const override { return (false); }
virtual void GetUserCoordinates(const DimsType &, CoordType &) const override {}
bool GetIndicesCell(const CoordType &coords, DimsType &indices) const override;
bool GetCellNodes(const DimsType &, std::vector<DimsType> &) const override;
bool GetCellNeighbors(const DimsType &, std::vector<DimsType> &) const override;
bool GetNodeCells(const DimsType &, std::vector<DimsType> &) const override;
size_t GetMaxVertexPerFace() const override;
size_t GetMaxVertexPerCell() const override;
void ClampCoord(const DblArr3 &coords, DblArr3 &cCoords) const override { cCoords = coords; }
void ClampCoord(const CoordType &coords, CoordType &cCoords) const override { cCoords = coords; }
ConstCoordItr ConstCoordBegin() const override;
ConstCoordItr ConstCoordEnd() const override;

Expand All @@ -72,8 +73,6 @@ class VDF_API ConstantGrid : public Grid {
const size_t _topologyDim; // Not to be confused with _topologyDimension in
// the base Grid class, which is private to Grid.

// Duplicate data member that exists only because GetNodeDimensions() and GetCellDimensions()
// want to return a reference to a local object. And duplicates can be mutable :)
mutable std::vector<size_t> _duplicate;

}; // end ConstantGrid class
Expand Down
20 changes: 10 additions & 10 deletions include/vapor/CurvilinearGrid.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,19 +163,19 @@ class VDF_API CurvilinearGrid : public StructuredGrid {

// \copydoc GetGrid::GetBoundingBox()
//
virtual void GetBoundingBox(const Size_tArr3 &min, const Size_tArr3 &max, DblArr3 &minu, DblArr3 &maxu) const override;
virtual void GetBoundingBox(const DimsType &min, const DimsType &max, CoordType &minu, CoordType &maxu) const override;

// \copydoc GetGrid::GetUserCoordinates()
//
virtual void GetUserCoordinates(const Size_tArr3 &indices, DblArr3 &coords) const override;
virtual void GetUserCoordinates(const DimsType &indices, CoordType &coords) const override;

//! \copydoc Grid::GetIndicesCell
//!
virtual bool GetIndicesCell(const DblArr3 &coords, Size_tArr3 &indices) const override;
virtual bool GetIndicesCell(const CoordType &coords, DimsType &indices) const override;

// \copydoc GetGrid::InsideGrid()
//
virtual bool InsideGrid(const DblArr3 &coords) const override;
virtual bool InsideGrid(const CoordType &coords) const override;

//! Returns reference to RegularGrid instance containing X user coordinates
//!
Expand Down Expand Up @@ -234,18 +234,18 @@ class VDF_API CurvilinearGrid : public StructuredGrid {
virtual ConstCoordItr ConstCoordEnd() const override { return ConstCoordItr(std::unique_ptr<ConstCoordItrAbstract>(new ConstCoordItrCG(this, false))); }

protected:
virtual float GetValueNearestNeighbor(const DblArr3 &coords) const override;
virtual float GetValueNearestNeighbor(const CoordType &coords) const override;

virtual float GetValueLinear(const DblArr3 &coords) const override;
virtual float GetValueLinear(const CoordType &coords) const override;

// \copydoc GetGrid::GetUserExtents()
//
virtual void GetUserExtentsHelper(DblArr3 &minu, DblArr3 &maxu) const override;
virtual void GetUserExtentsHelper(CoordType &minu, CoordType &maxu) const override;

private:
std::vector<double> _zcoords;
DblArr3 _minu = {{0.0, 0.0, 0.0}};
DblArr3 _maxu = {{0.0, 0.0, 0.0}};
CoordType _minu = {{0.0, 0.0, 0.0}};
CoordType _maxu = {{0.0, 0.0, 0.0}};
RegularGrid _xrg;
RegularGrid _yrg;
RegularGrid _zrg;
Expand All @@ -254,7 +254,7 @@ class VDF_API CurvilinearGrid : public StructuredGrid {

void _curvilinearGrid(const RegularGrid &xrg, const RegularGrid &yrg, const RegularGrid &zrg, const std::vector<double> &zcoords, std::shared_ptr<const QuadTreeRectangleP> qtr);

bool _insideFace(const Size_tArr3 &face, double pt[2], double lambda[4], std::vector<Size_tArr3> &nodes) const;
bool _insideFace(const DimsType &face, double pt[2], double lambda[4], std::vector<DimsType> &nodes) const;

bool _insideGrid(double x, double y, double z, size_t &i, size_t &j, size_t &k, double lambda[4], double zwgt[2]) const;

Expand Down
Loading

0 comments on commit 8c01dce

Please sign in to comment.