diff --git a/libs/MeshKernel/include/MeshKernel/CurvilinearGrid/CurvilinearGrid.hpp b/libs/MeshKernel/include/MeshKernel/CurvilinearGrid/CurvilinearGrid.hpp index 513598f86..a56b6857e 100644 --- a/libs/MeshKernel/include/MeshKernel/CurvilinearGrid/CurvilinearGrid.hpp +++ b/libs/MeshKernel/include/MeshKernel/CurvilinearGrid/CurvilinearGrid.hpp @@ -81,11 +81,13 @@ namespace meshkernel explicit CurvilinearGrid(Projection projection); /// @brief Lvalue constructor. Creates a new curvilinear grid from a given set of points + /// @details The matrix row index corresponds to the CurvilinearGrid m index, the matrix column index corresponds to the CurvilinearGrid n index /// @param[in] grid The input grid points /// @param[in] projection The projection to use CurvilinearGrid(lin_alg::Matrix const& grid, Projection projection); /// @brief Set the grid nodes of a curvilinear grid instance + /// @details The matrix row index corresponds to the CurvilinearGrid m index, the matrix column index corresponds to the CurvilinearGrid n index /// @param[in] gridNodes The input grid points void SetGridNodes(const lin_alg::Matrix& gridNodes); @@ -99,21 +101,30 @@ namespace meshkernel [[nodiscard]] bool IsValid() const; /// @brief Converting a curvilinear mesh to a set of nodes, edges and returns the original mapping (gridtonet) + /// @details Nodes and grid indices from the matrix are serialized in row-major order (n runs fastest). + /// Edges are serialized as follows: first all m-oriented edges ((m,n)-(m+1,n)) in row-major order, then all + /// n-oriented edges ((m,n)-(m,n+1)), in row-major order. + /// @note Also invalid nodes are serialized to points, edges and grid indices /// @returns The nodes, the edges, and the original mapping (m and n indices for each node) [[nodiscard]] std::tuple, std::vector, std::vector> ConvertCurvilinearToNodesAndEdges() const; /// @brief Set internal flat copies of nodes and edges, so the pointer to the first entry is communicated with the front-end + /// @details The Mesh nodes and edges arrays, and the grid node indices array are populated by the result of ConvertCurvilinearToNodesAndEdges. void SetFlatCopies(); /// @brief Get the m and n indices of the node closest to the point /// @param[in] point The input grid points [[nodiscard]] CurvilinearGridNodeIndices GetNodeIndices(Point point); - /// @brief Gets a constant reference to the grid node at the (i,j) location - [[nodiscard]] meshkernel::Point& GetNode(const UInt i, const UInt j) { return m_gridNodes(i, j); } + /// @brief Gets a reference to the grid node at the (m,n) location + /// @param[in] m The m-dimension index + /// @param[in] n The n-dimension index + [[nodiscard]] meshkernel::Point& GetNode(const UInt m, const UInt n) { return m_gridNodes(m, n); } - /// @brief Gets a reference to the grid node at the (i,j) location - [[nodiscard]] meshkernel::Point const& GetNode(const UInt i, const UInt j) const { return m_gridNodes(i, j); } + /// @brief Gets a constant reference to the grid node at the (m,n) location + /// @param[in] m The m-dimension index + /// @param[in] n The n-dimension index + [[nodiscard]] meshkernel::Point const& GetNode(const UInt m, const UInt n) const { return m_gridNodes(m, n); } /// @brief Gets a reference to the grid node at the location specified by the index. /// @note Exception will be raised for a non-valid index @@ -147,12 +158,24 @@ namespace meshkernel /// @brief Computes the grid nodes types and the faces masks void ComputeGridNodeTypes(); - /// @brief Determines if a face is valid. + /// @brief Determines the grid node type + /// @param[in] m The m-dimension index + /// @param[in] n The n-dimension index + /// @return the node type + NodeType GetNodeType(UInt m, UInt n) const { return m_gridNodesTypes(m, n); } + + /// @brief Determines if all nodes of a face are valid. /// A face is valid if all its nodes are valid. - /// @param[in] m The m coordinate - /// @param[in] n The n coordinate + /// @param[in] m The m-dimension index + /// @param[in] n The n-dimension index /// @return True if the face is valid, false otherwise - [[nodiscard]] bool IsValidFace(UInt m, UInt n) const; + [[nodiscard]] bool AreFaceNodesValid(UInt m, UInt n) const; + + /// @brief Determines if the face mask is true (valid face) or false (invalid face) + /// @param[in] m The m-dimension index + /// @param[in] n The n-dimension index + /// @return the face mask value (true/false) + [[nodiscard]] bool IsFaceMaskValid(UInt m, UInt n) const { return m_gridFacesMask(m, n); } /// @brief Inserts a new face. The new face will be inserted on top of the closest edge. /// @param[in] point The point used for finding the closest edge. @@ -219,12 +242,32 @@ namespace meshkernel /// @brief Get the mesh bounding box. BoundingBox GetBoundingBox() const; - UInt m_numM = 0; ///< The number of m coordinates (vertical lines) - UInt m_numN = 0; ///< The number of n coordinates (horizontal lines) - lin_alg::Matrix m_gridNodes; ///< Member variable storing the grid - lin_alg::Matrix m_gridFacesMask; ///< The mask of the grid faces (true/false) - lin_alg::Matrix m_gridNodesTypes; ///< The grid node types - std::vector m_gridIndices; ///< The original mapping of the flatten nodes in the curvilinear grid + /// @brief The number of nodes M in the m dimension + /// @return A number >= 2 for a valid curvilinear grid + UInt NumM() const { return static_cast(m_gridNodes.rows()); } + + /// @brief The number of nodes N in the n dimension + /// @return A number >= 2 for a valid curvilinear grid + UInt NumN() const { return static_cast(m_gridNodes.cols()); } + + /// @brief Is the node matrix empty + /// @return true iff the node matrix is empty + bool IsEmpty() const { return lin_alg::MatrixIsEmpty(m_gridNodes); } + + /// @brief Get a copy of the nodes matrix + /// @note:the m dimension is the first (or row) index, the n dimension is the second (or column) index + /// @return a copy of the matrix + lin_alg::Matrix GetNodes() const { return m_gridNodes; } + + /// @brief Get the array of nodes at an m-dimension index + /// @param [in] m the m-dimension index + /// @return a vector of N nodes + std::vector GetNodeVectorAtM(UInt m) const { return lin_alg::MatrixRowToSTLVector(m_gridNodes, m); } + + /// @brief Get the array of nodes at an n-dimension index + /// @param [in] n the n-dimension index + /// @return a vector of M nodes + std::vector GetNodeVectorAtN(UInt n) const { return lin_alg::MatrixColToSTLVector(m_gridNodes, n); } private: /// @brief Remove invalid nodes. @@ -243,5 +286,10 @@ namespace meshkernel /// @param[in] secondNode The indices of the second new node in the modified grid. void AddEdge(CurvilinearGridNodeIndices const& firstNode, CurvilinearGridNodeIndices const& secondNode); + + lin_alg::Matrix m_gridNodes; ///< Member variable storing the grid + lin_alg::Matrix m_gridFacesMask; ///< The mask of the grid faces (true/false) + lin_alg::Matrix m_gridNodesTypes; ///< The grid node types + std::vector m_gridIndices; ///< The original mapping of the flatten nodes in the curvilinear grid }; } // namespace meshkernel diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGrid.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGrid.cpp index 495dc2c49..bb9b88013 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGrid.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGrid.cpp @@ -35,8 +35,6 @@ using meshkernel::CurvilinearGrid; using meshkernel::CurvilinearGridNodeIndices; CurvilinearGrid::CurvilinearGrid(const CurvilinearGrid& grid) : Mesh(grid.m_edges, grid.m_nodes, grid.m_projection), - m_numM(grid.m_numM), - m_numN(grid.m_numN), m_gridNodes(grid.m_gridNodes), m_gridFacesMask(grid.m_gridFacesMask), m_gridNodesTypes(grid.m_gridNodesTypes), @@ -60,9 +58,6 @@ void CurvilinearGrid::SetGridNodes(const lin_alg::Matrix& gridNodes) throw std::invalid_argument("CurvilinearGrid::CurvilinearGrid: Invalid curvilinear grid"); } - m_numM = static_cast(m_gridNodes.rows()); - m_numN = static_cast(m_gridNodes.cols()); - m_nodesRTreeRequiresUpdate = true; m_edgesRTreeRequiresUpdate = true; m_facesRTreeRequiresUpdate = true; @@ -84,8 +79,8 @@ void CurvilinearGrid::Delete(std::shared_ptr polygons, UInt polygonInd return; } - const auto numN = static_cast(m_gridNodes.rows()); - const auto numM = static_cast(m_gridNodes.cols()); + const auto numN = static_cast(NumM()); + const auto numM = static_cast(NumN()); lin_alg::Matrix nodeBasedMask(numN, numM); nodeBasedMask.fill(false); @@ -158,8 +153,6 @@ void CurvilinearGrid::SetFlatCopies() return; } - m_numM = static_cast(m_gridNodes.rows()); - m_numN = static_cast(m_gridNodes.cols()); const auto [nodes, edges, gridIndices] = ConvertCurvilinearToNodesAndEdges(); m_nodes = nodes; m_edges = edges; @@ -176,19 +169,19 @@ CurvilinearGrid::ConvertCurvilinearToNodesAndEdges() const throw std::invalid_argument("CurvilinearGrid::ConvertCurvilinearToNodesAndEdges: Invalid curvilinear grid "); } - std::vector nodes(m_gridNodes.rows() * m_gridNodes.cols()); - std::vector edges(m_gridNodes.rows() * (m_gridNodes.cols() - 1) + - (m_gridNodes.rows() - 1) * m_gridNodes.cols()); - lin_alg::Matrix nodeIndices(m_gridNodes.rows(), m_gridNodes.cols()); + std::vector nodes(NumM() * NumN()); + std::vector edges(NumM() * (NumN() - 1) + + (NumM() - 1) * NumN()); + lin_alg::Matrix nodeIndices(NumM(), NumN()); nodeIndices.setConstant(constants::missing::uintValue); std::vector gridIndices(nodes.size(), CurvilinearGridNodeIndices{constants::missing::uintValue, constants::missing::uintValue}); UInt ind = 0; - for (UInt m = 0; m < m_gridNodes.rows(); m++) + for (UInt m = 0; m < NumM(); m++) { - for (UInt n = 0; n < m_gridNodes.cols(); n++) + for (UInt n = 0; n < NumN(); n++) { nodes[ind] = m_gridNodes(m, n); nodeIndices(m, n) = ind; @@ -198,31 +191,23 @@ CurvilinearGrid::ConvertCurvilinearToNodesAndEdges() const } ind = 0; - for (UInt m = 0; m < m_gridNodes.rows() - 1; m++) + for (UInt m = 0; m < NumM() - 1; m++) { - for (UInt n = 0; n < m_gridNodes.cols(); n++) + for (UInt n = 0; n < NumN(); n++) { - if (nodeIndices(m, n) != constants::missing::uintValue && - nodeIndices(m + 1, n) != constants::missing::uintValue) - { - edges[ind].first = nodeIndices(m, n); - edges[ind].second = nodeIndices(m + 1, n); - ind++; - } + edges[ind].first = nodeIndices(m, n); + edges[ind].second = nodeIndices(m + 1, n); + ind++; } } - for (UInt m = 0; m < m_gridNodes.rows(); m++) + for (UInt m = 0; m < NumM(); m++) { - for (UInt n = 0; n < m_gridNodes.cols() - 1; n++) + for (UInt n = 0; n < NumN() - 1; n++) { - if (nodeIndices(m, n) != constants::missing::uintValue && - nodeIndices(m, n + 1) != constants::missing::uintValue) - { - edges[ind].first = nodeIndices(m, n); - edges[ind].second = nodeIndices(m, n + 1); - ind++; - } + edges[ind].first = nodeIndices(m, n); + edges[ind].second = nodeIndices(m, n + 1); + ind++; } } edges.resize(ind); @@ -236,11 +221,11 @@ bool CurvilinearGrid::IsValid() const { return false; } - if (m_gridNodes.rows() < 2) + if (NumM() < 2) { return false; } - if (m_gridNodes.cols() < 2) + if (NumN() < 2) { return false; } @@ -277,7 +262,7 @@ std::tuple CurvilinearGr return {m_gridIndices[firstNode], m_gridIndices[secondNode]}; } -bool CurvilinearGrid::IsValidFace(UInt m, UInt n) const +bool CurvilinearGrid::AreFaceNodesValid(UInt m, UInt n) const { return m_gridNodes(m, n).IsValid() && m_gridNodes(m + 1, n).IsValid() && @@ -306,14 +291,14 @@ CurvilinearGrid::ComputeBlockFromCornerPoints(const CurvilinearGridNodeIndices& throw ConstraintError("Invalid index: first index - {{{}, {}}}, second index - {{{}, {}}}", lowerLeft.m_m, lowerLeft.m_n, upperRight.m_m, upperRight.m_n); } - if (lowerLeft.m_m >= m_numM || lowerLeft.m_n >= m_numN) + if (lowerLeft.m_m >= NumM() || lowerLeft.m_n >= NumN()) { - throw ConstraintError("Invalid index: first index {{{}, {}}} not in mesh limits {{{}, {}}}", lowerLeft.m_m, lowerLeft.m_n, m_numM, m_numN); + throw ConstraintError("Invalid index: first index {{{}, {}}} not in mesh limits {{{}, {}}}", lowerLeft.m_m, lowerLeft.m_n, NumM(), NumN()); } - if (upperRight.m_m >= m_numM || upperRight.m_n >= m_numN) + if (upperRight.m_m >= NumM() || upperRight.m_n >= NumN()) { - throw ConstraintError("Invalid index: second index {{{}, {}}} not in mesh limits {{{}, {}}}", upperRight.m_m, upperRight.m_n, m_numM, m_numN); + throw ConstraintError("Invalid index: second index {{{}, {}}} not in mesh limits {{{}, {}}}", upperRight.m_m, upperRight.m_n, NumM(), NumN()); } return {lowerLeft, upperRight}; @@ -322,13 +307,13 @@ CurvilinearGrid::ComputeBlockFromCornerPoints(const CurvilinearGridNodeIndices& void CurvilinearGrid::ComputeGridFacesMask() { // Flag valid faces - lin_alg::ResizeAndFillMatrix(m_gridFacesMask, m_numM - 1, m_numN - 1, false, false); - for (UInt m = 0; m < m_numM - 1; ++m) + lin_alg::ResizeAndFillMatrix(m_gridFacesMask, NumM() - 1, NumN() - 1, false, false); + for (UInt m = 0; m < NumM() - 1; ++m) { - for (UInt n = 0; n < m_numN - 1; ++n) + for (UInt n = 0; n < NumN() - 1; ++n) { // Only if all grid nodes of the face are valid, the face is valid - if (!IsValidFace(m, n)) + if (!AreFaceNodesValid(m, n)) { continue; } @@ -350,9 +335,9 @@ void CurvilinearGrid::RemoveInvalidNodes(bool invalidNodesToRemove) invalidNodesToRemove = false; // Flag nodes not connected to valid faces - for (UInt m = 1; m < m_numM - 1; ++m) + for (UInt m = 1; m < NumM() - 1; ++m) { - for (UInt n = 1; n < m_numN - 1; ++n) + for (UInt n = 1; n < NumN() - 1; ++n) { if (m_gridNodes(m, n).IsValid() && !m_gridFacesMask(m, n) && @@ -366,7 +351,7 @@ void CurvilinearGrid::RemoveInvalidNodes(bool invalidNodesToRemove) } } - for (UInt m = 1; m < m_numM - 1; ++m) + for (UInt m = 1; m < NumM() - 1; ++m) { if (m_gridNodes(m, 0).IsValid() && !m_gridFacesMask(m - 1, 0) && @@ -376,7 +361,7 @@ void CurvilinearGrid::RemoveInvalidNodes(bool invalidNodesToRemove) } } - for (UInt n = 1; n < m_numN - 1; ++n) + for (UInt n = 1; n < NumN() - 1; ++n) { if (m_gridNodes(0, n).IsValid() && !m_gridFacesMask(0, n - 1) && @@ -397,12 +382,12 @@ void CurvilinearGrid::RemoveInvalidNodes(bool invalidNodesToRemove) void CurvilinearGrid::ComputeGridNodeTypes() { RemoveInvalidNodes(true); - lin_alg::ResizeAndFillMatrix(m_gridNodesTypes, m_numM, m_numN, false, NodeType::Invalid); + lin_alg::ResizeAndFillMatrix(m_gridNodesTypes, NumM(), NumN(), false, NodeType::Invalid); // Flag faces based on boundaries - for (UInt m = 0; m < m_numM; ++m) + for (UInt m = 0; m < NumM(); ++m) { - for (UInt n = 0; n < m_numN; ++n) + for (UInt n = 0; n < NumN(); ++n) { if (!m_gridNodes(m, n).IsValid()) @@ -416,7 +401,7 @@ void CurvilinearGrid::ComputeGridNodeTypes() m_gridNodesTypes(m, n) = NodeType::BottomLeft; continue; } - if (m == 0 && n == m_numN - 1) + if (m == 0 && n == NumN() - 1) { m_gridNodesTypes(m, n) = NodeType::UpperLeft; continue; @@ -437,27 +422,27 @@ void CurvilinearGrid::ComputeGridNodeTypes() continue; } // Right side - if (m == m_numM - 1 && n == 0) + if (m == NumM() - 1 && n == 0) { m_gridNodesTypes(m, n) = NodeType::BottomRight; continue; } - if (m == m_numM - 1 && n == m_numN - 1) + if (m == NumM() - 1 && n == NumN() - 1) { m_gridNodesTypes(m, n) = NodeType::UpperRight; continue; } - if (m == m_numM - 1 && !m_gridNodes(m, n - 1).IsValid()) + if (m == NumM() - 1 && !m_gridNodes(m, n - 1).IsValid()) { m_gridNodesTypes(m, n) = NodeType::BottomRight; continue; } - if (m == m_numM - 1 && !m_gridNodes(m, n + 1).IsValid()) + if (m == NumM() - 1 && !m_gridNodes(m, n + 1).IsValid()) { m_gridNodesTypes(m, n) = NodeType::UpperRight; continue; } - if (m == m_numM - 1) + if (m == NumM() - 1) { m_gridNodesTypes(m, n) = NodeType::Right; continue; @@ -479,17 +464,17 @@ void CurvilinearGrid::ComputeGridNodeTypes() continue; } // Upper side - if (n == m_numN - 1 && !m_gridNodes(m - 1, n).IsValid()) + if (n == NumN() - 1 && !m_gridNodes(m - 1, n).IsValid()) { m_gridNodesTypes(m, n) = NodeType::UpperLeft; continue; } - if (n == m_numN - 1 && !m_gridNodes(m + 1, n).IsValid()) + if (n == NumN() - 1 && !m_gridNodes(m + 1, n).IsValid()) { m_gridNodesTypes(m, n) = NodeType::UpperRight; continue; } - if (n == m_numN - 1) + if (n == NumN() - 1) { m_gridNodesTypes(m, n) = NodeType::Up; continue; @@ -657,28 +642,28 @@ bool CurvilinearGrid::AddGridLineAtBoundary(CurvilinearGridNodeIndices const& fi if (gridLineType == BoundaryGridLineType::Left) { lin_alg::InsertRow(m_gridNodes, - lin_alg::RowVector(m_gridNodes.cols()), + lin_alg::RowVector(NumN()), 0); gridSizeChanged = true; } if (gridLineType == BoundaryGridLineType::Right) { lin_alg::InsertRow(m_gridNodes, - lin_alg::RowVector(m_gridNodes.cols()), - m_gridNodes.rows()); + lin_alg::RowVector(NumN()), + NumM()); gridSizeChanged = true; } if (gridLineType == BoundaryGridLineType::Up) { lin_alg::InsertCol(m_gridNodes, - lin_alg::ColVector(m_gridNodes.rows()), - m_gridNodes.cols()); + lin_alg::ColVector(NumM()), + NumN()); gridSizeChanged = true; } if (gridLineType == BoundaryGridLineType::Bottom) { lin_alg::InsertCol(m_gridNodes, - lin_alg::ColVector(m_gridNodes.rows()), + lin_alg::ColVector(NumM()), 0); gridSizeChanged = true; } @@ -812,7 +797,7 @@ CurvilinearGrid::ComputeDirectionalSmoothingFactors(CurvilinearGridNodeIndices c double CurvilinearGrid::ComputeAverageNodalDistance(CurvilinearGridNodeIndices const& index, CurvilinearGridLine::GridLineDirection direction) { - if (index.m_m > m_gridNodes.rows() || index.m_n > m_gridNodes.cols()) + if (index.m_m > NumM() || index.m_n > NumN()) { throw std::invalid_argument("CurvilinearGrid::ComputeAverageNodalDistance: invalid index coordinates"); } @@ -831,7 +816,7 @@ double CurvilinearGrid::ComputeAverageNodalDistance(CurvilinearGridNodeIndices c leftDistance = ComputeDistance(m_gridNodes(index.m_m, index.m_n), m_gridNodes(index.m_m - 1, index.m_n), m_projection); numEdges += 1; } - if (index.m_m + 1 < m_gridNodes.rows() && m_gridNodes(index.m_m + 1, index.m_n).IsValid()) + if (index.m_m + 1 < NumM() && m_gridNodes(index.m_m + 1, index.m_n).IsValid()) { rightDistance = ComputeDistance(m_gridNodes(index.m_m, index.m_n), m_gridNodes(index.m_m + 1, index.m_n), m_projection); numEdges += 1; @@ -848,7 +833,7 @@ double CurvilinearGrid::ComputeAverageNodalDistance(CurvilinearGridNodeIndices c bottomDistance = ComputeDistance(m_gridNodes(index.m_m, index.m_n), m_gridNodes(index.m_m, index.m_n - 1), m_projection); numEdges += 1; } - if (index.m_n + 1 < m_gridNodes.cols() && m_gridNodes(index.m_m, index.m_n + 1).IsValid()) + if (index.m_n + 1 < NumN() && m_gridNodes(index.m_m, index.m_n + 1).IsValid()) { upDistance = ComputeDistance(m_gridNodes(index.m_m, index.m_n), m_gridNodes(index.m_m, index.m_n + 1), m_projection); numEdges += 1; @@ -863,7 +848,7 @@ meshkernel::Point CurvilinearGrid::TransformDisplacement(Point const& displaceme { Point left = m_gridNodes(node.m_m, node.m_n); Point right = left; - if (node.m_m < m_numM - 1 && m_gridNodes(node.m_m + 1, node.m_n).IsValid()) + if (node.m_m < NumM() - 1 && m_gridNodes(node.m_m + 1, node.m_n).IsValid()) { right = m_gridNodes(node.m_m + 1, node.m_n); } @@ -924,12 +909,12 @@ meshkernel::BoundingBox CurvilinearGrid::GetBoundingBox() const Point lowerLeft(std::numeric_limits::max(), std::numeric_limits::max()); Point upperRight(-std::numeric_limits::max(), -std::numeric_limits::max()); - size_t last = m_gridNodes.rows() - 1; + size_t last = NumM() - 1; // Only need to loop over boundary nodes // First loop over lower boundary (i,0) - for (Eigen::Index i = 0; i < m_gridNodes.rows(); ++i) + for (Eigen::Index i = 0; i < NumM(); ++i) { lowerLeft.x = std::min(lowerLeft.x, m_gridNodes(i, 0).x); lowerLeft.y = std::min(lowerLeft.y, m_gridNodes(i, 0).y); @@ -938,7 +923,7 @@ meshkernel::BoundingBox CurvilinearGrid::GetBoundingBox() const } // First loop over right boundary (last,i) - for (Eigen::Index i = 0; i < m_gridNodes.cols(); ++i) + for (Eigen::Index i = 0; i < NumN(); ++i) { lowerLeft.x = std::min(lowerLeft.x, m_gridNodes(last, i).x); lowerLeft.y = std::min(lowerLeft.y, m_gridNodes(last, i).y); @@ -947,10 +932,10 @@ meshkernel::BoundingBox CurvilinearGrid::GetBoundingBox() const } // This assumes that each column has the same number of points - last = m_gridNodes.cols() - 1; + last = NumN() - 1; // First loop over upper boundary (i,last) - for (Eigen::Index i = 0; i < m_gridNodes.rows(); ++i) + for (Eigen::Index i = 0; i < NumM(); ++i) { lowerLeft.x = std::min(lowerLeft.x, m_gridNodes(i, last).x); lowerLeft.y = std::min(lowerLeft.y, m_gridNodes(i, last).y); @@ -959,7 +944,7 @@ meshkernel::BoundingBox CurvilinearGrid::GetBoundingBox() const } // First loop over left boundary (0,i) - for (Eigen::Index i = 0; i < m_gridNodes.cols(); ++i) + for (Eigen::Index i = 0; i < NumN(); ++i) { lowerLeft.x = std::min(lowerLeft.x, m_gridNodes(0, i).x); lowerLeft.y = std::min(lowerLeft.y, m_gridNodes(0, i).y); diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridCurvature.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridCurvature.cpp index 3afa3395f..473e78b62 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridCurvature.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridCurvature.cpp @@ -35,25 +35,25 @@ void meshkernel::CurvilinearGridCurvature::Compute(const CurvilinearGrid& grid, const CurvilinearDirection direction, lin_alg::Matrix& curvature) { - lin_alg::ResizeAndFillMatrix(curvature, grid.m_numM, grid.m_numN, false, constants::missing::doubleValue); + lin_alg::ResizeAndFillMatrix(curvature, grid.NumM(), grid.NumN(), false, constants::missing::doubleValue); if (direction == CurvilinearDirection::M) { - for (UInt i = 1; i < grid.m_numM - 1; ++i) + for (UInt i = 1; i < grid.NumM() - 1; ++i) { - for (UInt j = 0; j < grid.m_numN; ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - curvature(i, j) = ComputeNodeCurvature(grid.m_gridNodes(i - 1, j), grid.m_gridNodes(i, j), grid.m_gridNodes(i + 1, j)); + curvature(i, j) = ComputeNodeCurvature(grid.GetNode(i - 1, j), grid.GetNode(i, j), grid.GetNode(i + 1, j)); } } } else if (direction == CurvilinearDirection::N) { - for (UInt i = 0; i < grid.m_numM; ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (UInt j = 1; j < grid.m_numN - 1; ++j) + for (UInt j = 1; j < grid.NumN() - 1; ++j) { - curvature(i, j) = ComputeNodeCurvature(grid.m_gridNodes(i, j - 1), grid.m_gridNodes(i, j), grid.m_gridNodes(i, j + 1)); + curvature(i, j) = ComputeNodeCurvature(grid.GetNode(i, j - 1), grid.GetNode(i, j), grid.GetNode(i, j + 1)); } } } diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeRefinement.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeRefinement.cpp index 8013c2f64..18dc84a59 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeRefinement.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeRefinement.cpp @@ -49,10 +49,10 @@ void CurvilinearGridDeRefinement::Compute() // the de-refined grid std::vector> deRefinedGrid; - deRefinedGrid.reserve(m_grid.m_numM); + deRefinedGrid.reserve(m_grid.NumM()); UInt mIndexOriginalGrid = 0; - while (mIndexOriginalGrid < m_grid.m_numM) + while (mIndexOriginalGrid < m_grid.NumM()) { UInt localMDeRefinement = 1; if (mIndexOriginalGrid >= m_lowerLeft.m_m && mIndexOriginalGrid < m_upperRight.m_m) @@ -60,17 +60,17 @@ void CurvilinearGridDeRefinement::Compute() localMDeRefinement = numMToDeRefine; } deRefinedGrid.emplace_back(std::vector()); - deRefinedGrid.back().reserve(m_grid.m_numN); + deRefinedGrid.back().reserve(m_grid.NumN()); UInt nIndexOriginalGrid = 0; - while (nIndexOriginalGrid < m_grid.m_numN) + while (nIndexOriginalGrid < m_grid.NumN()) { UInt localNDeRefinement = 1; if (nIndexOriginalGrid >= m_lowerLeft.m_n && nIndexOriginalGrid < m_upperRight.m_n) { localNDeRefinement = numNToDeRefine; } - deRefinedGrid.back().emplace_back(m_grid.m_gridNodes(mIndexOriginalGrid, nIndexOriginalGrid)); + deRefinedGrid.back().emplace_back(m_grid.GetNode(mIndexOriginalGrid, nIndexOriginalGrid)); nIndexOriginalGrid += localNDeRefinement; } mIndexOriginalGrid += localMDeRefinement; diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeleteExterior.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeleteExterior.cpp index 0b378b88d..2afe14bbf 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeleteExterior.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeleteExterior.cpp @@ -50,11 +50,11 @@ void meshkernel::CurvilinearGridDeleteExterior::Compute() // Split into 4 regions, setting the nodes in each region to invalid // // First region: all nodes "south" the designated box - for (UInt n = 0; n < m_grid.m_numN; ++n) + for (UInt n = 0; n < m_grid.NumN(); ++n) { for (UInt m = 0; m < lowerLimitJ; ++m) { - m_grid.m_gridNodes(n, m).SetInvalid(); + m_grid.GetNode(n, m).SetInvalid(); } } @@ -63,25 +63,25 @@ void meshkernel::CurvilinearGridDeleteExterior::Compute() { for (UInt m = lowerLimitJ; m <= upperLimitJ; ++m) { - m_grid.m_gridNodes(n, m).SetInvalid(); + m_grid.GetNode(n, m).SetInvalid(); } } // Third region: all nodes "directly east of" the designated box - for (UInt n = upperLimitI + 1; n < m_grid.m_numN; ++n) + for (UInt n = upperLimitI + 1; n < m_grid.NumN(); ++n) { for (UInt m = lowerLimitJ; m <= upperLimitJ; ++m) { - m_grid.m_gridNodes(n, m).SetInvalid(); + m_grid.GetNode(n, m).SetInvalid(); } } // Fourth region: all nodes "north" the designated box - for (UInt n = 0; n < m_grid.m_numN; ++n) + for (UInt n = 0; n < m_grid.NumN(); ++n) { - for (UInt m = upperLimitJ + 1; m < m_grid.m_numM; ++m) + for (UInt m = upperLimitJ + 1; m < m_grid.NumM(); ++m) { - m_grid.m_gridNodes(n, m).SetInvalid(); + m_grid.GetNode(n, m).SetInvalid(); } } } diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeleteInterior.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeleteInterior.cpp index d50252438..ce01e8921 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeleteInterior.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridDeleteInterior.cpp @@ -50,7 +50,7 @@ void meshkernel::CurvilinearGridDeleteInterior::Compute() { for (UInt m = lowerLimitJ + 1; m < upperLimitJ; ++m) { - m_grid.m_gridNodes(n, m).SetInvalid(); + m_grid.GetNode(n, m).SetInvalid(); } } } diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineAttractionRepulsion.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineAttractionRepulsion.cpp index faf25de10..d743f550f 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineAttractionRepulsion.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineAttractionRepulsion.cpp @@ -44,7 +44,7 @@ CurvilinearGridLineAttractionRepulsion::CurvilinearGridLineAttractionRepulsion(C void CurvilinearGridLineAttractionRepulsion::Compute() { - if (lin_alg::MatrixIsEmpty(m_grid.m_gridNodes)) + if (m_grid.IsEmpty()) { throw std::invalid_argument("CurvilinearGridLineAttractionRepulsion::Compute Empty grid"); } @@ -71,7 +71,7 @@ void CurvilinearGridLineAttractionRepulsion::Compute() for (auto n = startN; n <= endN; ++n) { // Not a valid grid node - if (!m_originalGrid.m_gridNodes(m, n).IsValid()) + if (!m_originalGrid.GetNode(m, n).IsValid()) { continue; } @@ -104,7 +104,7 @@ void CurvilinearGridLineAttractionRepulsion::Compute() displacement = m_originalGrid.TransformDisplacement(displacement, nodeIndex, false); // adjust nodes - m_grid.m_gridNodes(m, n) += displacement; + m_grid.GetNode(m, n) += displacement; } } } diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineMirror.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineMirror.cpp index 3431e1078..c8cdd791a 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineMirror.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineMirror.cpp @@ -68,25 +68,25 @@ void CurvilinearGridLineMirror::Compute() { if (gridLineType == CurvilinearGrid::BoundaryGridLineType::Left) { - m_grid.m_gridNodes.row(0)[i] = m_grid.m_gridNodes(1, i) * a + - m_grid.m_gridNodes(2, i) * b; + m_grid.GetNode(0, i) = m_grid.GetNode(1, i) * a + + m_grid.GetNode(2, i) * b; } if (gridLineType == CurvilinearGrid::BoundaryGridLineType::Right) { - auto const last_row = m_grid.m_gridNodes.rows() - 1; - m_grid.m_gridNodes.row(last_row)[i] = m_grid.m_gridNodes(m_grid.m_numM - 1, i) * a + - m_grid.m_gridNodes(m_grid.m_numM - 2, i) * b; + auto const last_row = (UInt)m_grid.NumM() - 1; + m_grid.GetNode(last_row, i) = m_grid.GetNode(last_row - 1, i) * a + + m_grid.GetNode(last_row - 2, i) * b; } if (gridLineType == CurvilinearGrid::BoundaryGridLineType::Up) { - auto const last_col = m_grid.m_gridNodes.cols() - 1; - m_grid.m_gridNodes.col(last_col)[i] = m_grid.m_gridNodes(i, m_grid.m_numN - 1) * a + - m_grid.m_gridNodes(i, m_grid.m_numN - 2) * b; + auto const last_col = (UInt)m_grid.NumN() - 1; + m_grid.GetNode(i, last_col) = m_grid.GetNode(i, last_col - 1) * a + + m_grid.GetNode(i, last_col - 2) * b; } if (gridLineType == CurvilinearGrid::BoundaryGridLineType::Bottom) { - m_grid.m_gridNodes.col(0)[i] = m_grid.m_gridNodes(i, 1) * a + - m_grid.m_gridNodes(i, 2) * b; + m_grid.GetNode(i, 0) = m_grid.GetNode(i, 1) * a + + m_grid.GetNode(i, 2) * b; } } diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineShift.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineShift.cpp index eac1676db..df3cbccb1 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineShift.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridLineShift.cpp @@ -50,8 +50,8 @@ void CurvilinearGridLineShift::Compute() /// The first delta auto const previousNodeIndex = m_lines[0].m_startNode; - auto previousDelta = m_grid.m_gridNodes(previousNodeIndex.m_m, previousNodeIndex.m_n) - - m_originalGrid.m_gridNodes(previousNodeIndex.m_m, previousNodeIndex.m_n); + auto previousDelta = m_grid.GetNode(previousNodeIndex.m_m, previousNodeIndex.m_n) - + m_originalGrid.GetNode(previousNodeIndex.m_m, previousNodeIndex.m_n); const double eps = 1e-5; auto previousCoordinate = m_lines[0].m_startCoordinate; @@ -59,8 +59,8 @@ void CurvilinearGridLineShift::Compute() { auto const currentNodeIndex = m_lines[0].GetNodeIndexFromCoordinate(i); - auto const currentDelta = m_grid.m_gridNodes(currentNodeIndex.m_m, currentNodeIndex.m_n) - - m_originalGrid.m_gridNodes(currentNodeIndex.m_m, currentNodeIndex.m_n); + auto const currentDelta = m_grid.GetNode(currentNodeIndex.m_m, currentNodeIndex.m_n) - + m_originalGrid.GetNode(currentNodeIndex.m_m, currentNodeIndex.m_n); if (std::abs(currentDelta.x) < eps && std::abs(currentDelta.y) < eps && i != m_lines[0].m_endCoordinate) { @@ -79,8 +79,8 @@ void CurvilinearGridLineShift::Compute() auto const secondFactor = 1.0 - firstFactor; // Now distribute the shifting - m_grid.m_gridNodes(nodeIndex.m_m, nodeIndex.m_n) = m_originalGrid.m_gridNodes(nodeIndex.m_m, nodeIndex.m_n) + - previousDelta * secondFactor + currentDelta * firstFactor; + m_grid.GetNode(nodeIndex.m_m, nodeIndex.m_n) = m_originalGrid.GetNode(nodeIndex.m_m, nodeIndex.m_n) + + previousDelta * secondFactor + currentDelta * firstFactor; // Field transformation on the influence area TransformGrid(nodeIndex); } @@ -91,7 +91,7 @@ void CurvilinearGridLineShift::Compute() void CurvilinearGridLineShift::TransformGrid(CurvilinearGridNodeIndices const& node) { - auto delta = m_grid.m_gridNodes(node.m_m, node.m_n) - m_originalGrid.m_gridNodes(node.m_m, node.m_n); + auto delta = m_grid.GetNode(node.m_m, node.m_n) - m_originalGrid.GetNode(node.m_m, node.m_n); delta = m_originalGrid.TransformDisplacement(delta, node, true); auto const start = m_lines[0].IsMGridLine() ? m_lowerLeft.m_n : m_lowerLeft.m_m; @@ -102,7 +102,7 @@ void CurvilinearGridLineShift::TransformGrid(CurvilinearGridNodeIndices const& n CurvilinearGridNodeIndices currentNode{m_lines[0].IsMGridLine() ? node.m_m : i, m_lines[0].IsMGridLine() ? i : node.m_n}; - if (!m_originalGrid.m_gridNodes(currentNode.m_m, currentNode.m_n).IsValid()) + if (!m_originalGrid.GetNode(currentNode.m_m, currentNode.m_n).IsValid()) { continue; } @@ -119,7 +119,7 @@ void CurvilinearGridLineShift::TransformGrid(CurvilinearGridNodeIndices const& n } currentDelta = m_originalGrid.TransformDisplacement(currentDelta, currentNode, false); - m_grid.m_gridNodes(currentNode.m_m, currentNode.m_n) = m_originalGrid.m_gridNodes(currentNode.m_m, currentNode.m_n) + currentDelta; + m_grid.GetNode(currentNode.m_m, currentNode.m_n) = m_originalGrid.GetNode(currentNode.m_m, currentNode.m_n) + currentDelta; } } diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridOrthogonalization.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridOrthogonalization.cpp index ee9acaf3e..f594e6c55 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridOrthogonalization.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridOrthogonalization.cpp @@ -39,8 +39,8 @@ using meshkernel::CurvilinearGridOrthogonalization; CurvilinearGridOrthogonalization::CurvilinearGridOrthogonalization(CurvilinearGrid& grid, const OrthogonalizationParameters& orthogonalizationParameters) : CurvilinearGridAlgorithm(grid), - m_orthoEqTerms(m_grid.m_numM, m_grid.m_numN), - m_isGridNodeFrozen(m_grid.m_numM, m_grid.m_numN), + m_orthoEqTerms(m_grid.NumM(), m_grid.NumN()), + m_isGridNodeFrozen(m_grid.NumM(), m_grid.NumN()), m_splines(Splines(m_grid)) { CheckOrthogonalizationParameters(orthogonalizationParameters); @@ -91,13 +91,13 @@ void CurvilinearGridOrthogonalization::Compute() void CurvilinearGridOrthogonalization::ProjectHorizontalBoundaryGridNodes() { // m grid lines (horizontal) - for (UInt n = 0; n < m_grid.m_numN; ++n) + for (UInt n = 0; n < m_grid.NumN(); ++n) { UInt startM = constants::missing::uintValue; int nextVertical = 0; - for (UInt m = 0; m < m_grid.m_numM; ++m) + for (UInt m = 0; m < m_grid.NumM(); ++m) { - const auto nodeType = m_grid.m_gridNodesTypes(m, n); + const auto nodeType = m_grid.GetNodeType(m, n); if (nodeType == CurvilinearGrid::NodeType::BottomLeft || nodeType == CurvilinearGrid::NodeType::UpperLeft) { startM = m; @@ -127,14 +127,14 @@ void CurvilinearGridOrthogonalization::ProjectHorizontalBoundaryGridNodes() { continue; } - if (m_grid.m_gridNodesTypes(mm, n) == CurvilinearGrid::NodeType::Invalid) + if (m_grid.GetNodeType(mm, n) == CurvilinearGrid::NodeType::Invalid) { continue; } - const auto leftNode = m_grid.m_gridNodes(mm - 1, n); - const auto verticalNode = m_grid.m_gridNodes(mm, n + nextVertical); - const auto rightNode = m_grid.m_gridNodes(mm + 1, n); + const auto leftNode = m_grid.GetNode(mm - 1, n); + const auto verticalNode = m_grid.GetNode(mm, n + nextVertical); + const auto rightNode = m_grid.GetNode(mm + 1, n); Point boundaryNode; if (nextVertical == 1) @@ -157,10 +157,10 @@ void CurvilinearGridOrthogonalization::ProjectHorizontalBoundaryGridNodes() boundaryNode.y = (leftNode.y * qb + verticalNode.y * qbc + rightNode.y * qc + rightNode.x - leftNode.x) / rn; } - m_grid.m_gridNodes(mm, n) = m_splines.ComputeClosestPointOnSplineSegment(n, - static_cast(startM), - static_cast(m), - boundaryNode); + m_grid.GetNode(mm, n) = m_splines.ComputeClosestPointOnSplineSegment(n, + static_cast(startM), + static_cast(m), + boundaryNode); } } } @@ -170,13 +170,13 @@ void CurvilinearGridOrthogonalization::ProjectHorizontalBoundaryGridNodes() void CurvilinearGridOrthogonalization::ProjectVerticalBoundariesGridNodes() { // m gridlines (vertical) - for (UInt m = 0; m < m_grid.m_numM; ++m) + for (UInt m = 0; m < m_grid.NumM(); ++m) { UInt startN = constants::missing::uintValue; int nextHorizontal = 0; - for (UInt n = 0; n < m_grid.m_numN; ++n) + for (UInt n = 0; n < m_grid.NumN(); ++n) { - const auto nodeType = m_grid.m_gridNodesTypes(m, n); + const auto nodeType = m_grid.GetNodeType(m, n); if (nodeType == CurvilinearGrid::NodeType::BottomLeft || nodeType == CurvilinearGrid::NodeType::BottomRight) { startN = n; @@ -206,13 +206,13 @@ void CurvilinearGridOrthogonalization::ProjectVerticalBoundariesGridNodes() { continue; } - if (m_grid.m_gridNodesTypes(m, nn) == CurvilinearGrid::NodeType::Invalid) + if (m_grid.GetNodeType(m, nn) == CurvilinearGrid::NodeType::Invalid) { continue; } - const auto bottomNode = m_grid.m_gridNodes(m, nn - 1); - const auto horizontalNode = m_grid.m_gridNodes(m + nextHorizontal, nn); - const auto upperNode = m_grid.m_gridNodes(m, nn + 1); + const auto bottomNode = m_grid.GetNode(m, nn - 1); + const auto horizontalNode = m_grid.GetNode(m + nextHorizontal, nn); + const auto upperNode = m_grid.GetNode(m, nn + 1); Point boundaryNode; if (nextHorizontal == 1) @@ -236,11 +236,11 @@ void CurvilinearGridOrthogonalization::ProjectVerticalBoundariesGridNodes() } // Vertical spline index - const auto splineIndex = m_grid.m_numN + m; - m_grid.m_gridNodes(m, nn) = m_splines.ComputeClosestPointOnSplineSegment(splineIndex, - static_cast(startN), - static_cast(n), - boundaryNode); + const auto splineIndex = m_grid.NumN() + m; + m_grid.GetNode(m, nn) = m_splines.ComputeClosestPointOnSplineSegment(splineIndex, + static_cast(startN), + static_cast(n), + boundaryNode); } } } @@ -257,8 +257,8 @@ void CurvilinearGridOrthogonalization::Solve() const auto minMInternal = std::max(static_cast(1), m_lowerLeft.m_m); const auto minNInternal = std::max(static_cast(1), m_lowerLeft.m_n); - const auto maxMInternal = std::min(m_upperRight.m_m, m_grid.m_numM - 1); - const auto maxNInternal = std::min(m_upperRight.m_n, m_grid.m_numN - 1); + const auto maxMInternal = std::min(m_upperRight.m_m, m_grid.NumM() - 1); + const auto maxNInternal = std::min(m_upperRight.m_n, m_grid.NumN() - 1); for (auto innerIterations = 0; innerIterations < m_orthogonalizationParameters.inner_iterations; ++innerIterations) { @@ -266,7 +266,7 @@ void CurvilinearGridOrthogonalization::Solve() { for (auto n = minNInternal; n < maxNInternal; ++n) { - if (m_grid.m_gridNodesTypes(m, n) != CurvilinearGrid::NodeType::InternalValid) + if (m_grid.GetNodeType(m, n) != CurvilinearGrid::NodeType::InternalValid) { continue; } @@ -277,13 +277,13 @@ void CurvilinearGridOrthogonalization::Solve() } const auto residual = - m_grid.m_gridNodes(m + 1, n) * m_orthoEqTerms.a(m, n) + - m_grid.m_gridNodes(m - 1, n) * m_orthoEqTerms.b(m, n) + - m_grid.m_gridNodes(m, n + 1) * m_orthoEqTerms.c(m, n) + - m_grid.m_gridNodes(m, n - 1) * m_orthoEqTerms.d(m, n) + - m_grid.m_gridNodes(m, n) * m_orthoEqTerms.e(m, n); + m_grid.GetNode(m + 1, n) * m_orthoEqTerms.a(m, n) + + m_grid.GetNode(m - 1, n) * m_orthoEqTerms.b(m, n) + + m_grid.GetNode(m, n + 1) * m_orthoEqTerms.c(m, n) + + m_grid.GetNode(m, n - 1) * m_orthoEqTerms.d(m, n) + + m_grid.GetNode(m, n) * m_orthoEqTerms.e(m, n); - m_grid.m_gridNodes(m, n) = m_grid.m_gridNodes(m, n) - residual / m_orthoEqTerms.e(m, n) * omega; + m_grid.GetNode(m, n) = m_grid.GetNode(m, n) - residual / m_orthoEqTerms.e(m, n) * omega; } } @@ -312,15 +312,15 @@ void CurvilinearGridOrthogonalization::ComputeCoefficients() { for (auto n = m_lowerLeft.m_n; n < m_upperRight.m_n; ++n) { - if (!m_grid.m_gridFacesMask(m, n)) + if (!m_grid.IsFaceMaskValid(m, n)) { continue; } - const auto bottom = ComputeDistance(m_grid.m_gridNodes(m, n), m_grid.m_gridNodes(m + 1, n), Projection::cartesian); - const auto upper = ComputeDistance(m_grid.m_gridNodes(m, n + 1), m_grid.m_gridNodes(m + 1, n + 1), Projection::cartesian); - const auto left = ComputeDistance(m_grid.m_gridNodes(m, n), m_grid.m_gridNodes(m, n + 1), Projection::cartesian); - const auto right = ComputeDistance(m_grid.m_gridNodes(m + 1, n), m_grid.m_gridNodes(m + 1, n + 1), Projection::cartesian); + const auto bottom = ComputeDistance(m_grid.GetNode(m, n), m_grid.GetNode(m + 1, n), Projection::cartesian); + const auto upper = ComputeDistance(m_grid.GetNode(m, n + 1), m_grid.GetNode(m + 1, n + 1), Projection::cartesian); + const auto left = ComputeDistance(m_grid.GetNode(m, n), m_grid.GetNode(m, n + 1), Projection::cartesian); + const auto right = ComputeDistance(m_grid.GetNode(m + 1, n), m_grid.GetNode(m + 1, n + 1), Projection::cartesian); m_orthoEqTerms.a(m, n) = (bottom + upper) * 0.5; m_orthoEqTerms.b(m, n) = (left + right) * 0.5; @@ -342,7 +342,7 @@ void CurvilinearGridOrthogonalization::ComputeCoefficients() { for (auto n = m_lowerLeft.m_n; n < m_upperRight.m_n; ++n) { - if (!m_grid.m_gridFacesMask(m, n)) + if (!m_grid.IsFaceMaskValid(m, n)) { continue; } @@ -361,7 +361,7 @@ void CurvilinearGridOrthogonalization::ComputeCoefficients() { for (auto n = m_lowerLeft.m_n; n < m_upperRight.m_n; ++n) { - if (!m_grid.m_gridFacesMask(m, n)) + if (!m_grid.IsFaceMaskValid(m, n)) { m_orthoEqTerms.atp(m, n) = constants::missing::doubleValue; continue; @@ -381,7 +381,7 @@ void CurvilinearGridOrthogonalization::ComputeCoefficients() { for (auto n = m_lowerLeft.m_n + 1; n < m_upperRight.m_n; ++n) { - if (m_grid.m_gridNodesTypes(m, n) != CurvilinearGrid::NodeType::InternalValid) + if (m_grid.GetNodeType(m, n) != CurvilinearGrid::NodeType::InternalValid) { continue; } @@ -399,7 +399,7 @@ void CurvilinearGridOrthogonalization::ComputeVerticalCoefficients() { const auto invalidBoundaryNodes = ComputeInvalidVerticalBoundaryNodes(); // Store the counter - lin_alg::Matrix counter(m_grid.m_numM, m_grid.m_numN); + lin_alg::Matrix counter(m_grid.NumM(), m_grid.NumN()); counter.fill(0); // Perform left sum @@ -408,7 +408,7 @@ void CurvilinearGridOrthogonalization::ComputeVerticalCoefficients() for (auto m = m_lowerLeft.m_m + 1; m < m_upperRight.m_m; ++m) { - if (m_grid.IsValidFace(m, n) && + if (m_grid.AreFaceNodesValid(m, n) && !IsEqual(m_orthoEqTerms.a(m, n), constants::missing::doubleValue) && !IsEqual(m_orthoEqTerms.a(m - 1, n), constants::missing::doubleValue) && !invalidBoundaryNodes(m, n)) @@ -425,7 +425,7 @@ void CurvilinearGridOrthogonalization::ComputeVerticalCoefficients() { for (auto m = int(m_upperRight.m_m) - 1; m >= int(m_lowerLeft.m_m); --m) { - if (m_grid.IsValidFace(m, n) && + if (m_grid.AreFaceNodesValid(m, n) && !IsEqual(m_orthoEqTerms.a(m, n), constants::missing::doubleValue) && !IsEqual(m_orthoEqTerms.a(m + 1, n), constants::missing::doubleValue) && !invalidBoundaryNodes(m + 1, n)) @@ -441,7 +441,7 @@ void CurvilinearGridOrthogonalization::ComputeVerticalCoefficients() { for (auto n = m_lowerLeft.m_n; n < m_upperRight.m_n; ++n) { - if (m_grid.IsValidFace(m, n)) + if (m_grid.AreFaceNodesValid(m, n)) { double const inv = 1.0 / static_cast(counter(m, n) + 1); m_orthoEqTerms.a(m, n) *= inv; @@ -454,7 +454,7 @@ void CurvilinearGridOrthogonalization::ComputeVerticalCoefficients() void CurvilinearGridOrthogonalization::ComputeHorizontalCoefficients() { const auto invalidBoundaryNodes = ComputeInvalidHorizontalBoundaryNodes(); - lin_alg::Matrix counter(m_grid.m_numM, m_grid.m_numN); + lin_alg::Matrix counter(m_grid.NumM(), m_grid.NumN()); counter.fill(0); // Perform bottom sum @@ -462,7 +462,7 @@ void CurvilinearGridOrthogonalization::ComputeHorizontalCoefficients() { for (auto n = m_lowerLeft.m_n + 1; n < m_upperRight.m_n; ++n) { - if (m_grid.IsValidFace(m, n) && + if (m_grid.AreFaceNodesValid(m, n) && !IsEqual(m_orthoEqTerms.b(m, n), constants::missing::doubleValue) && !IsEqual(m_orthoEqTerms.b(m, n - 1), constants::missing::doubleValue) && !invalidBoundaryNodes(m, n)) @@ -479,7 +479,7 @@ void CurvilinearGridOrthogonalization::ComputeHorizontalCoefficients() { for (auto n = static_cast(m_upperRight.m_n) - 1; n >= static_cast(m_lowerLeft.m_n); --n) { - if (m_grid.IsValidFace(m, n) && + if (m_grid.AreFaceNodesValid(m, n) && !IsEqual(m_orthoEqTerms.b(m, n), constants::missing::doubleValue) && !IsEqual(m_orthoEqTerms.b(m, n + 1), constants::missing::doubleValue) && !invalidBoundaryNodes(m, n + 1)) @@ -496,7 +496,7 @@ void CurvilinearGridOrthogonalization::ComputeHorizontalCoefficients() { for (auto n = m_lowerLeft.m_n; n < m_upperRight.m_n; ++n) { - if (m_grid.IsValidFace(m, n)) + if (m_grid.AreFaceNodesValid(m, n)) { double const inv = 1.0 / static_cast(counter(m, n) + 1); m_orthoEqTerms.b(m, n) *= inv; @@ -508,7 +508,7 @@ void CurvilinearGridOrthogonalization::ComputeHorizontalCoefficients() lin_alg::Matrix CurvilinearGridOrthogonalization::ComputeInvalidHorizontalBoundaryNodes() const { - lin_alg::Matrix invalidBoundaryNodes(m_grid.m_numM, m_grid.m_numN); + lin_alg::Matrix invalidBoundaryNodes(m_grid.NumM(), m_grid.NumN()); invalidBoundaryNodes.fill(false); for (auto m = m_lowerLeft.m_m + 1; m < m_upperRight.m_m; ++m) @@ -516,19 +516,19 @@ lin_alg::Matrix CurvilinearGridOrthogonalization::ComputeInvalidHorizontal for (auto n = m_lowerLeft.m_n + 1; n < m_upperRight.m_n; ++n) { int step = 0; - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::BottomLeft) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::BottomLeft) { step = -1; } - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::BottomRight) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::BottomRight) { step = 1; } - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::UpperRight) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::UpperRight) { step = 1; } - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::UpperLeft) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::UpperLeft) { step = -1; } @@ -539,8 +539,8 @@ lin_alg::Matrix CurvilinearGridOrthogonalization::ComputeInvalidHorizontal auto lastValidM = m + step; while (lastValidM > 0 && - lastValidM < m_grid.m_numM && - m_grid.m_gridNodesTypes(lastValidM, n) == CurvilinearGrid::NodeType::InternalValid) + lastValidM < m_grid.NumM() && + m_grid.GetNodeType(lastValidM, n) == CurvilinearGrid::NodeType::InternalValid) { lastValidM += step; } @@ -558,7 +558,7 @@ lin_alg::Matrix CurvilinearGridOrthogonalization::ComputeInvalidHorizontal lin_alg::Matrix CurvilinearGridOrthogonalization::ComputeInvalidVerticalBoundaryNodes() const { - lin_alg::Matrix invalidBoundaryNodes(m_grid.m_numM, m_grid.m_numN); + lin_alg::Matrix invalidBoundaryNodes(m_grid.NumM(), m_grid.NumN()); invalidBoundaryNodes.fill(false); for (auto m = m_lowerLeft.m_m + 1; m < m_upperRight.m_m; ++m) @@ -566,19 +566,19 @@ lin_alg::Matrix CurvilinearGridOrthogonalization::ComputeInvalidVerticalBo for (auto n = m_lowerLeft.m_n + 1; n < m_upperRight.m_n; ++n) { int step = 0; - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::BottomLeft) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::BottomLeft) { step = -1; } - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::BottomRight) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::BottomRight) { step = -1; } - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::UpperRight) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::UpperRight) { step = 1; } - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::UpperLeft) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::UpperLeft) { step = 1; } @@ -588,8 +588,8 @@ lin_alg::Matrix CurvilinearGridOrthogonalization::ComputeInvalidVerticalBo } auto lastValidN = n + step; while (lastValidN > 0 && - lastValidN < m_grid.m_numN && - m_grid.m_gridNodesTypes(m, lastValidN) == CurvilinearGrid::NodeType::InternalValid) + lastValidN < m_grid.NumN() && + m_grid.GetNodeType(m, lastValidN) == CurvilinearGrid::NodeType::InternalValid) { lastValidN += step; } diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridRefinement.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridRefinement.cpp index c7fd2f1f5..1d4e219dc 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridRefinement.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridRefinement.cpp @@ -58,8 +58,8 @@ void CurvilinearGridRefinement::Compute() // Estimate the dimension of the refined grid const auto numMToRefine = m_upperRight.m_m - m_lowerLeft.m_m; const auto numNToRefine = m_upperRight.m_n - m_lowerLeft.m_n; - const UInt maxM = m_grid.m_numM + numMToRefine * (m_refinement - 1); - const UInt maxN = m_grid.m_numN + numNToRefine * (m_refinement - 1); + const UInt maxM = m_grid.NumM() + numMToRefine * (m_refinement - 1); + const UInt maxN = m_grid.NumN() + numNToRefine * (m_refinement - 1); // Local vector for each curvilinear grid face std::vector bottomRefinement(m_refinement); @@ -71,7 +71,7 @@ void CurvilinearGridRefinement::Compute() lin_alg::Matrix refinedGrid(maxM, maxN); UInt refinedM = 0; - for (UInt currentM = 0; currentM < m_grid.m_numM - 1; ++currentM) + for (UInt currentM = 0; currentM < m_grid.NumM() - 1; ++currentM) { UInt localMRefinement = 1; if (currentM >= m_lowerLeft.m_m && currentM < m_upperRight.m_m) @@ -80,7 +80,7 @@ void CurvilinearGridRefinement::Compute() } UInt refinedN = 0; - for (UInt currentN = 0; currentN < m_grid.m_numN - 1; ++currentN) + for (UInt currentN = 0; currentN < m_grid.NumN() - 1; ++currentN) { UInt localNRefinement = 1; @@ -90,10 +90,10 @@ void CurvilinearGridRefinement::Compute() } // Only if all grid nodes of the face are valid, perform transfinite interpolation - if (m_grid.m_gridNodes(currentM, currentN).IsValid() && - m_grid.m_gridNodes(currentM + 1, currentN).IsValid() && - m_grid.m_gridNodes(currentM, currentN + 1).IsValid() && - m_grid.m_gridNodes(currentM + 1, currentN + 1).IsValid()) + if (m_grid.GetNode(currentM, currentN).IsValid() && + m_grid.GetNode(currentM + 1, currentN).IsValid() && + m_grid.GetNode(currentM, currentN + 1).IsValid() && + m_grid.GetNode(currentM + 1, currentN + 1).IsValid()) { // Calculate m-direction spline points bottomRefinement.clear(); @@ -111,7 +111,7 @@ void CurvilinearGridRefinement::Compute() rightRefinement.clear(); for (UInt n = 0; n < localNRefinement + 1; ++n) { - const auto splineIndex = m_grid.m_numN + currentM; + const auto splineIndex = m_grid.NumN() + currentM; const auto interpolationPoint = static_cast(currentN) + static_cast(n) / static_cast(localNRefinement); leftRefinement.emplace_back(ComputePointOnSplineAtAdimensionalDistance(m_splines.m_splineNodes[splineIndex], m_splines.m_splineDerivatives[splineIndex], interpolationPoint)); rightRefinement.emplace_back(ComputePointOnSplineAtAdimensionalDistance(m_splines.m_splineNodes[splineIndex + 1], m_splines.m_splineDerivatives[splineIndex + 1], interpolationPoint)); diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSmoothing.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSmoothing.cpp index d5f355cb0..a6bee33fa 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSmoothing.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSmoothing.cpp @@ -39,7 +39,7 @@ CurvilinearGridSmoothing::CurvilinearGridSmoothing(CurvilinearGrid& grid, UInt s { // Allocate cache for storing grid nodes values // ResizeAndFill2DVector(m_gridNodesCache, static_cast(m_grid.m_gridNodes.size()), static_cast(m_grid.m_gridNodes[0].size())); - lin_alg::ResizeAndFillMatrix(m_gridNodesCache, m_grid.m_gridNodes.rows(), m_grid.m_gridNodes.cols(), true); + lin_alg::ResizeAndFillMatrix(m_gridNodesCache, m_grid.NumM(), m_grid.NumN(), true); // Compute the grid node types m_grid.ComputeGridNodeTypes(); @@ -97,20 +97,20 @@ void CurvilinearGridSmoothing::SolveDirectional() { // assign current nodal values to the m_gridNodesCache - m_gridNodesCache = m_grid.m_gridNodes; + m_gridNodesCache = m_grid.GetNodes(); auto isInvalidValidNode = [this](auto const& m, auto const& n) { if (m_lines[0].IsMGridLine()) { - return m_grid.m_gridNodesTypes(m, n) != CurvilinearGrid::NodeType::InternalValid && - m_grid.m_gridNodesTypes(m, n) != CurvilinearGrid::NodeType::Bottom && - m_grid.m_gridNodesTypes(m, n) != CurvilinearGrid::NodeType::Up; + return m_grid.GetNodeType(m, n) != CurvilinearGrid::NodeType::InternalValid && + m_grid.GetNodeType(m, n) != CurvilinearGrid::NodeType::Bottom && + m_grid.GetNodeType(m, n) != CurvilinearGrid::NodeType::Up; } - return m_grid.m_gridNodesTypes(m, n) != CurvilinearGrid::NodeType::InternalValid && - m_grid.m_gridNodesTypes(m, n) != CurvilinearGrid::NodeType::Left && - m_grid.m_gridNodesTypes(m, n) != CurvilinearGrid::NodeType::Right; + return m_grid.GetNodeType(m, n) != CurvilinearGrid::NodeType::InternalValid && + m_grid.GetNodeType(m, n) != CurvilinearGrid::NodeType::Left && + m_grid.GetNodeType(m, n) != CurvilinearGrid::NodeType::Right; }; // Apply smoothing @@ -149,15 +149,15 @@ void CurvilinearGridSmoothing::SolveDirectional() { // smooth along vertical const auto a = maxlength < 1e-8 ? 0.5 : nSmoothing * smoothingFactor * characteristicLength / maxlength; - const auto maxDelta = firstLengthSquared > secondLengthSquared ? m_gridNodesCache(m - 1, n) - m_grid.m_gridNodes(m, n) : m_gridNodesCache(m + 1, n) - m_grid.m_gridNodes(m, n); - m_grid.m_gridNodes(m, n) = m_gridNodesCache(m, n) + maxDelta * a; + const auto maxDelta = firstLengthSquared > secondLengthSquared ? m_gridNodesCache(m - 1, n) - m_grid.GetNode(m, n) : m_gridNodesCache(m + 1, n) - m_grid.GetNode(m, n); + m_grid.GetNode(m, n) = m_gridNodesCache(m, n) + maxDelta * a; } else { // smooth along horizontal const auto a = maxlength < 1e-8 ? 0.5 : mSmoothing * smoothingFactor * characteristicLength / maxlength; - const auto maxDelta = firstLengthSquared > secondLengthSquared ? m_gridNodesCache(m, n - 1) - m_grid.m_gridNodes(m, n) : m_gridNodesCache(m, n + 1) - m_grid.m_gridNodes(m, n); - m_grid.m_gridNodes(m, n) = m_gridNodesCache(m, n) + maxDelta * a; + const auto maxDelta = firstLengthSquared > secondLengthSquared ? m_gridNodesCache(m, n - 1) - m_grid.GetNode(m, n) : m_gridNodesCache(m, n + 1) - m_grid.GetNode(m, n); + m_grid.GetNode(m, n) = m_gridNodesCache(m, n) + maxDelta * a; } } } @@ -169,7 +169,7 @@ void CurvilinearGridSmoothing::Solve() double const b = 1.0 - a; // assign current nodal values to the m_gridNodesCache - m_gridNodesCache = m_grid.m_gridNodes; + m_gridNodesCache = m_grid.GetNodes(); // Apply smoothing for (auto m = m_lowerLeft.m_m; m <= m_upperRight.m_m; ++m) @@ -178,38 +178,38 @@ void CurvilinearGridSmoothing::Solve() { // It is invalid or a corner point, skip smoothing - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::Invalid || - m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::BottomLeft || - m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::UpperLeft || - m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::BottomRight || - m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::UpperRight) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::Invalid || + m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::BottomLeft || + m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::UpperLeft || + m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::BottomRight || + m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::UpperRight) { continue; } // Compute new position based on a smoothing operator - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::InternalValid) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::InternalValid) { - m_grid.m_gridNodes(m, n) = m_gridNodesCache(m, n) * a + (m_gridNodesCache(m - 1, n) + m_gridNodesCache(m + 1, n)) * 0.25 * b + - (m_gridNodesCache(m, n - 1) + m_gridNodesCache(m, n + 1)) * 0.25 * b; + m_grid.GetNode(m, n) = m_gridNodesCache(m, n) * a + (m_gridNodesCache(m - 1, n) + m_gridNodesCache(m + 1, n)) * 0.25 * b + + (m_gridNodesCache(m, n - 1) + m_gridNodesCache(m, n + 1)) * 0.25 * b; continue; } // For the point on the boundaries first computed the new position Point newNodePosition; - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::Bottom) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::Bottom) { newNodePosition = m_gridNodesCache(m, n) * a + (m_gridNodesCache(m - 1, n) + m_gridNodesCache(m + 1, n) + m_gridNodesCache(m, n + 1)) * constants::numeric::oneThird * b; } - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::Up) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::Up) { newNodePosition = m_gridNodesCache(m, n) * a + (m_gridNodesCache(m - 1, n) + m_gridNodesCache(m + 1, n) + m_gridNodesCache(m, n - 1)) * constants::numeric::oneThird * b; } - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::Right) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::Right) { newNodePosition = m_gridNodesCache(m, n) * a + (m_gridNodesCache(m, n - 1) + m_gridNodesCache(m, n + 1) + m_gridNodesCache(m - 1, n)) * constants::numeric::oneThird * b; } - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::Left) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::Left) { newNodePosition = m_gridNodesCache(m, n) * a + (m_gridNodesCache(m, n - 1) + m_gridNodesCache(m, n + 1) + m_gridNodesCache(m + 1, n)) * constants::numeric::oneThird * b; } @@ -224,12 +224,12 @@ void CurvilinearGridSmoothing::ProjectPointOnClosestGridBoundary(Point const& po // Project the new position on the original boundary segment Point previousNode; Point nextNode; - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::Bottom || m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::Up) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::Bottom || m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::Up) { previousNode = m_gridNodesCache(m - 1, n); nextNode = m_gridNodesCache(m + 1, n); } - if (m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::Right || m_grid.m_gridNodesTypes(m, n) == CurvilinearGrid::NodeType::Left) + if (m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::Right || m_grid.GetNodeType(m, n) == CurvilinearGrid::NodeType::Left) { previousNode = m_gridNodesCache(m, n - 1); nextNode = m_gridNodesCache(m, n + 1); @@ -240,24 +240,24 @@ void CurvilinearGridSmoothing::ProjectPointOnClosestGridBoundary(Point const& po if (firstProjectedPointOnSegment && secondProjectedPointOnSegment && secondRatio > firstRatio) { - m_grid.m_gridNodes(m, n) = secondProjectedPoint; + m_grid.GetNode(m, n) = secondProjectedPoint; return; } if (firstProjectedPointOnSegment && secondProjectedPointOnSegment && secondRatio <= firstRatio) { - m_grid.m_gridNodes(m, n) = firstProjectedPoint; + m_grid.GetNode(m, n) = firstProjectedPoint; return; } if (firstProjectedPointOnSegment) { - m_grid.m_gridNodes(m, n) = firstProjectedPoint; + m_grid.GetNode(m, n) = firstProjectedPoint; return; } if (secondProjectedPointOnSegment) { - m_grid.m_gridNodes(m, n) = secondProjectedPoint; + m_grid.GetNode(m, n) = secondProjectedPoint; return; } - m_grid.m_gridNodes(m, n) = (firstProjectedPoint + secondProjectedPoint) * 0.5; + m_grid.GetNode(m, n) = (firstProjectedPoint + secondProjectedPoint) * 0.5; } diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSmoothness.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSmoothness.cpp index 0202dba4b..35f5136f3 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSmoothness.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSmoothness.cpp @@ -37,25 +37,25 @@ void meshkernel::CurvilinearGridSmoothness::Compute(const CurvilinearGrid& grid, const CurvilinearDirection direction, lin_alg::Matrix& smoothness) { - lin_alg::ResizeAndFillMatrix(smoothness, grid.m_numM, grid.m_numN, false, constants::missing::doubleValue); + lin_alg::ResizeAndFillMatrix(smoothness, grid.NumM(), grid.NumN(), false, constants::missing::doubleValue); if (direction == CurvilinearDirection::M) { - for (UInt i = 1; i < grid.m_numM - 1; ++i) + for (UInt i = 1; i < grid.NumM() - 1; ++i) { - for (UInt j = 0; j < grid.m_numN; ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - smoothness(i, j) = ComputeNodeSmoothness(grid.m_gridNodes(i - 1, j), grid.m_gridNodes(i, j), grid.m_gridNodes(i + 1, j)); + smoothness(i, j) = ComputeNodeSmoothness(grid.GetNode(i - 1, j), grid.GetNode(i, j), grid.GetNode(i + 1, j)); } } } else if (direction == CurvilinearDirection::N) { - for (UInt i = 0; i < grid.m_numM; ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (UInt j = 1; j < grid.m_numN - 1; ++j) + for (UInt j = 1; j < grid.NumN() - 1; ++j) { - smoothness(i, j) = ComputeNodeSmoothness(grid.m_gridNodes(i, j - 1), grid.m_gridNodes(i, j), grid.m_gridNodes(i, j + 1)); + smoothness(i, j) = ComputeNodeSmoothness(grid.GetNode(i, j - 1), grid.GetNode(i, j), grid.GetNode(i, j + 1)); } } } diff --git a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSnapping.cpp b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSnapping.cpp index a37f54636..ecd009cbd 100644 --- a/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSnapping.cpp +++ b/libs/MeshKernel/src/CurvilinearGrid/CurvilinearGridSnapping.cpp @@ -141,9 +141,9 @@ meshkernel::CurvilinearGridSnapping::ComputeLoopBounds(const CurvilinearGridNode if (m_points.size() == 2) { const auto m1 = static_cast(std::max(1, snappedNodeIndex.m_m + 1 - predefinedSmootingRegionFactor * m_smoothingRegionIndicator.m_m) - 1); - const auto m2 = static_cast(std::min(m_grid.m_numM, snappedNodeIndex.m_m + 1 + predefinedSmootingRegionFactor * m_smoothingRegionIndicator.m_m) - 1); + const auto m2 = static_cast(std::min(m_grid.NumM(), snappedNodeIndex.m_m + 1 + predefinedSmootingRegionFactor * m_smoothingRegionIndicator.m_m) - 1); const auto n1 = static_cast(std::max(1, snappedNodeIndex.m_n + 1 - predefinedSmootingRegionFactor * m_smoothingRegionIndicator.m_n) - 1); - const auto n2 = static_cast(std::min(m_grid.m_numN, snappedNodeIndex.m_n + 1 + predefinedSmootingRegionFactor * m_smoothingRegionIndicator.m_n) - 1); + const auto n2 = static_cast(std::min(m_grid.NumN(), snappedNodeIndex.m_n + 1 + predefinedSmootingRegionFactor * m_smoothingRegionIndicator.m_n) - 1); return {CurvilinearGridNodeIndices(m1, n1), CurvilinearGridNodeIndices(m2, n2)}; } diff --git a/libs/MeshKernel/src/Splines.cpp b/libs/MeshKernel/src/Splines.cpp index f6ef9449e..ced60d7d6 100644 --- a/libs/MeshKernel/src/Splines.cpp +++ b/libs/MeshKernel/src/Splines.cpp @@ -43,20 +43,15 @@ Splines::Splines(Projection projection) : m_projection(projection) {} Splines::Splines(CurvilinearGrid const& grid) { // first the m_n m_m-gridlines - lin_alg::Matrix mGridLines(grid.m_numN, grid.m_numM); - for (UInt n = 0; n < grid.m_numN; ++n) + for (UInt n = 0; n < grid.NumN(); ++n) { - for (UInt m = 0; m < grid.m_numM; ++m) - { - mGridLines(n, m) = grid.m_gridNodes(m, n); - } - AddSpline(lin_alg::MatrixRowToSTLVector(mGridLines, n)); + AddSpline(grid.GetNodeVectorAtN(n)); } // then the m_m m_n-gridlines - for (UInt m = 0; m < grid.m_numM; ++m) + for (UInt m = 0; m < grid.NumM(); ++m) { - AddSpline(lin_alg::MatrixRowToSTLVector(grid.m_gridNodes, m)); + AddSpline(grid.GetNodeVectorAtM(m)); } m_projection = grid.m_projection; diff --git a/libs/MeshKernel/tests/src/CurvilinearGridDeRefinementTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridDeRefinementTests.cpp index 66dfdab03..60e2104c0 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridDeRefinementTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridDeRefinementTests.cpp @@ -24,8 +24,8 @@ TEST(CurvilinearGridDeRefinement, Compute_OnCurvilinearGrid_ShouldDeRefineVertic curvilinearGridDeRefinement.Compute(); // Assert (the vertical line at x=15 is removed) - ASSERT_EQ(4, curvilinearGrid.m_numM); - ASSERT_EQ(4, curvilinearGrid.m_numN); + ASSERT_EQ(4, curvilinearGrid.NumM()); + ASSERT_EQ(4, curvilinearGrid.NumN()); } TEST(CurvilinearGridDeRefinement, Compute_OnCurvilinearGridWithMissingFaces_ShouldDeRefineVerticalGridLines) @@ -50,8 +50,8 @@ TEST(CurvilinearGridDeRefinement, Compute_OnCurvilinearGridWithMissingFaces_Shou curvilinearGridDeRefinement.Compute(); // Assert - ASSERT_EQ(6, curvilinearGrid.m_numM); - ASSERT_EQ(4, curvilinearGrid.m_numN); + ASSERT_EQ(6, curvilinearGrid.NumM()); + ASSERT_EQ(4, curvilinearGrid.NumN()); } TEST(CurvilinearGridDeRefinement, Compute_OnCurvilinearGrid_ShouldDeRefineHorizontalGridLines) @@ -71,6 +71,6 @@ TEST(CurvilinearGridDeRefinement, Compute_OnCurvilinearGrid_ShouldDeRefineHorizo curvilinearGridDeRefinement.Compute(); // Assert (the vertical line at x=15 is removed) - ASSERT_EQ(4, curvilinearGrid.m_numM); - ASSERT_EQ(4, curvilinearGrid.m_numN); + ASSERT_EQ(4, curvilinearGrid.NumM()); + ASSERT_EQ(4, curvilinearGrid.NumN()); } diff --git a/libs/MeshKernel/tests/src/CurvilinearGridFromPolygonTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridFromPolygonTests.cpp index fe3a9018c..e93739184 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridFromPolygonTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridFromPolygonTests.cpp @@ -28,21 +28,21 @@ TEST(CurvilinearGridFromPolygon, ComputeGridInPolygonWithFourthSide) // check the values constexpr double tolerance = 1e-6; - ASSERT_NEAR(273.50231900000000, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(305.00253300000003, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(507.50378400000000, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); + ASSERT_NEAR(273.50231900000000, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(305.00253300000003, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(507.50378400000000, curvilinearGrid->GetNode(0, 2).x, tolerance); - ASSERT_NEAR(478.88043199999998, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(493.13061499999998, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(494.63061499999998, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); + ASSERT_NEAR(478.88043199999998, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(493.13061499999998, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(494.63061499999998, curvilinearGrid->GetNode(0, 2).y, tolerance); - ASSERT_NEAR(274.25231900000000, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(410.51616175207897, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(741.50524900000005, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); + ASSERT_NEAR(274.25231900000000, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(410.51616175207897, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(741.50524900000005, curvilinearGrid->GetNode(1, 2).x, tolerance); - ASSERT_NEAR(325.12890599999997, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(314.33420290273324, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(328.12893700000001, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); + ASSERT_NEAR(325.12890599999997, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(314.33420290273324, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(328.12893700000001, curvilinearGrid->GetNode(1, 2).y, tolerance); } TEST(CurvilinearGridFromPolygon, ComputeGridInPolygonWithoutFourthSide) @@ -67,21 +67,21 @@ TEST(CurvilinearGridFromPolygon, ComputeGridInPolygonWithoutFourthSide) // check the values constexpr double tolerance = 1e-6; - ASSERT_NEAR(273.50231900000000, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(492.12869250000006, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(710.75506600000006, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); + ASSERT_NEAR(273.50231900000000, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(492.12869250000006, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(710.75506600000006, curvilinearGrid->GetNode(0, 2).x, tolerance); - ASSERT_NEAR(478.88043199999998, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(484.88049300000000, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(490.88055400000002, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); + ASSERT_NEAR(478.88043199999998, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(484.88049300000000, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(490.88055400000002, curvilinearGrid->GetNode(0, 2).y, tolerance); - ASSERT_NEAR(274.25231900000000, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(481.37408996173241, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(741.50524900000005, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); + ASSERT_NEAR(274.25231900000000, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(481.37408996173241, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(741.50524900000005, curvilinearGrid->GetNode(1, 2).x, tolerance); - ASSERT_NEAR(325.12890599999997, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(322.93773596204318, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(328.12893700000001, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); + ASSERT_NEAR(325.12890599999997, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(322.93773596204318, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(328.12893700000001, curvilinearGrid->GetNode(1, 2).y, tolerance); } TEST(CurvilinearGridFromPolygon, ComputeGridTriangle) @@ -107,27 +107,27 @@ TEST(CurvilinearGridFromPolygon, ComputeGridTriangle) // check the values constexpr double tolerance = 1e-6; - ASSERT_NEAR(444.50479100000001, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(444.09570300000001, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(526.73339799999997, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(558.64300500000002, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(593.41625999999997, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - - ASSERT_NEAR(437.15594499999997, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(436.74685699999998, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(377.83657799999997, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(324.65368699999999, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(266.56158399999998, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - - ASSERT_NEAR(427.73178100000001, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(455.85723540740742, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(483.98268981481488, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(506.38081040740741, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(528.77893099999994, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - - ASSERT_NEAR(382.74575800000002, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(362.14685592592593, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(341.54795385185184, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(302.41837092592596, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(263.28878800000001, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); + ASSERT_NEAR(444.50479100000001, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(444.09570300000001, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(526.73339799999997, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(558.64300500000002, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(593.41625999999997, curvilinearGrid->GetNode(0, 4).x, tolerance); + + ASSERT_NEAR(437.15594499999997, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(436.74685699999998, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(377.83657799999997, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(324.65368699999999, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(266.56158399999998, curvilinearGrid->GetNode(0, 4).y, tolerance); + + ASSERT_NEAR(427.73178100000001, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(455.85723540740742, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(483.98268981481488, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(506.38081040740741, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(528.77893099999994, curvilinearGrid->GetNode(1, 4).x, tolerance); + + ASSERT_NEAR(382.74575800000002, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(362.14685592592593, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(341.54795385185184, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(302.41837092592596, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(263.28878800000001, curvilinearGrid->GetNode(1, 4).y, tolerance); } diff --git a/libs/MeshKernel/tests/src/CurvilinearGridFromSplinesTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridFromSplinesTests.cpp index 4b7a4964e..6472c8625 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridFromSplinesTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridFromSplinesTests.cpp @@ -156,37 +156,37 @@ TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingCurvatureAd auto curviGrid = curvilinearGridFromSplines.Compute(); const double tolerance = 1e-6; - ASSERT_NEAR(588.14274314862507, curviGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(469.41412484972938, curviGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(366.68736858428133, curviGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(277.80579475635676, curviGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(200.90339412262884, curviGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(134.36565217535070, curviGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(76.795653489238660, curviGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(26.984754415671301, curviGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(-22.826144657896062, curviGrid->m_gridNodes(0, 8).x, tolerance); - ASSERT_NEAR(-78.994845354601750, curviGrid->m_gridNodes(0, 9).x, tolerance); - ASSERT_NEAR(-142.33284961942132, curviGrid->m_gridNodes(0, 10).x, tolerance); - ASSERT_NEAR(-213.75523850308639, curviGrid->m_gridNodes(0, 11).x, tolerance); - ASSERT_NEAR(-294.29389287118539, curviGrid->m_gridNodes(0, 12).x, tolerance); - ASSERT_NEAR(-385.11240158824154, curviGrid->m_gridNodes(0, 13).x, tolerance); - ASSERT_NEAR(-487.52287256398955, curviGrid->m_gridNodes(0, 14).x, tolerance); - - ASSERT_NEAR(278.61331701020396, curviGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(288.96871619915311, curviGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(297.92844792816703, curviGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(305.68061577714451, curviGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(312.38797132933286, curviGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(318.19133103205218, curviGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(323.21253254389961, curviGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(327.55699263496803, curviGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(331.90145272603644, curviGrid->m_gridNodes(0, 8).y, tolerance); - ASSERT_NEAR(336.80043433613747, curviGrid->m_gridNodes(0, 9).y, tolerance); - ASSERT_NEAR(342.32471590692433, curviGrid->m_gridNodes(0, 10).y, tolerance); - ASSERT_NEAR(348.55410995290555, curviGrid->m_gridNodes(0, 11).y, tolerance); - ASSERT_NEAR(355.57861615934416, curviGrid->m_gridNodes(0, 12).y, tolerance); - ASSERT_NEAR(363.49972166014766, curviGrid->m_gridNodes(0, 13).y, tolerance); - ASSERT_NEAR(372.43186728162192, curviGrid->m_gridNodes(0, 14).y, tolerance); + ASSERT_NEAR(588.14274314862507, curviGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(469.41412484972938, curviGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(366.68736858428133, curviGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(277.80579475635676, curviGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(200.90339412262884, curviGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(134.36565217535070, curviGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(76.795653489238660, curviGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(26.984754415671301, curviGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(-22.826144657896062, curviGrid->GetNode(0, 8).x, tolerance); + ASSERT_NEAR(-78.994845354601750, curviGrid->GetNode(0, 9).x, tolerance); + ASSERT_NEAR(-142.33284961942132, curviGrid->GetNode(0, 10).x, tolerance); + ASSERT_NEAR(-213.75523850308639, curviGrid->GetNode(0, 11).x, tolerance); + ASSERT_NEAR(-294.29389287118539, curviGrid->GetNode(0, 12).x, tolerance); + ASSERT_NEAR(-385.11240158824154, curviGrid->GetNode(0, 13).x, tolerance); + ASSERT_NEAR(-487.52287256398955, curviGrid->GetNode(0, 14).x, tolerance); + + ASSERT_NEAR(278.61331701020396, curviGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(288.96871619915311, curviGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(297.92844792816703, curviGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(305.68061577714451, curviGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(312.38797132933286, curviGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(318.19133103205218, curviGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(323.21253254389961, curviGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(327.55699263496803, curviGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(331.90145272603644, curviGrid->GetNode(0, 8).y, tolerance); + ASSERT_NEAR(336.80043433613747, curviGrid->GetNode(0, 9).y, tolerance); + ASSERT_NEAR(342.32471590692433, curviGrid->GetNode(0, 10).y, tolerance); + ASSERT_NEAR(348.55410995290555, curviGrid->GetNode(0, 11).y, tolerance); + ASSERT_NEAR(355.57861615934416, curviGrid->GetNode(0, 12).y, tolerance); + ASSERT_NEAR(363.49972166014766, curviGrid->GetNode(0, 13).y, tolerance); + ASSERT_NEAR(372.43186728162192, curviGrid->GetNode(0, 14).y, tolerance); } TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingCurvatureNotAdapted) @@ -222,37 +222,37 @@ TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingCurvatureNo const auto curviGrid = curvilinearGridFromSplines.Compute(); const double tolerance = 1e-6; - ASSERT_NEAR(548.64105210377159, curviGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(438.27011790167523, curviGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(342.77462390017541, curviGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(260.14970602195672, curviGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(188.66070933405891, curviGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(126.80677012682224, curviGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(73.289306283324080, curviGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(26.984754415671301, curviGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(-19.319797451981476, curviGrid->m_gridNodes(0, 8).x, tolerance); - ASSERT_NEAR(-71.534605117026189, curviGrid->m_gridNodes(0, 9).x, tolerance); - ASSERT_NEAR(-130.41404632812231, curviGrid->m_gridNodes(0, 10).x, tolerance); - ASSERT_NEAR(-196.80878667783674, curviGrid->m_gridNodes(0, 11).x, tolerance); - ASSERT_NEAR(-271.67806966408966, curviGrid->m_gridNodes(0, 12).x, tolerance); - ASSERT_NEAR(-356.10357543986055, curviGrid->m_gridNodes(0, 13).x, tolerance); - ASSERT_NEAR(-451.30504847658597, curviGrid->m_gridNodes(0, 14).x, tolerance); - - ASSERT_NEAR(115.02822097141149, curviGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(159.99460818323763, curviGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(198.90057007709373, curviGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(232.56291132224692, curviGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(261.68835027673492, curviGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(286.88835606699604, curviGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(308.69198597353653, curviGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(327.55699263496803, curviGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(346.42199929639952, curviGrid->m_gridNodes(0, 8).y, tolerance); - ASSERT_NEAR(367.69491210293836, curviGrid->m_gridNodes(0, 9).y, tolerance); - ASSERT_NEAR(391.68307322030449, curviGrid->m_gridNodes(0, 10).y, tolerance); - ASSERT_NEAR(418.73305358857078, curviGrid->m_gridNodes(0, 11).y, tolerance); - ASSERT_NEAR(449.23566003445961, curviGrid->m_gridNodes(0, 12).y, tolerance); - ASSERT_NEAR(483.63158148526736, curviGrid->m_gridNodes(0, 13).y, tolerance); - ASSERT_NEAR(522.41775585855908, curviGrid->m_gridNodes(0, 14).y, tolerance); + ASSERT_NEAR(548.64105210377159, curviGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(438.27011790167523, curviGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(342.77462390017541, curviGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(260.14970602195672, curviGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(188.66070933405891, curviGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(126.80677012682224, curviGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(73.289306283324080, curviGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(26.984754415671301, curviGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(-19.319797451981476, curviGrid->GetNode(0, 8).x, tolerance); + ASSERT_NEAR(-71.534605117026189, curviGrid->GetNode(0, 9).x, tolerance); + ASSERT_NEAR(-130.41404632812231, curviGrid->GetNode(0, 10).x, tolerance); + ASSERT_NEAR(-196.80878667783674, curviGrid->GetNode(0, 11).x, tolerance); + ASSERT_NEAR(-271.67806966408966, curviGrid->GetNode(0, 12).x, tolerance); + ASSERT_NEAR(-356.10357543986055, curviGrid->GetNode(0, 13).x, tolerance); + ASSERT_NEAR(-451.30504847658597, curviGrid->GetNode(0, 14).x, tolerance); + + ASSERT_NEAR(115.02822097141149, curviGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(159.99460818323763, curviGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(198.90057007709373, curviGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(232.56291132224692, curviGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(261.68835027673492, curviGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(286.88835606699604, curviGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(308.69198597353653, curviGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(327.55699263496803, curviGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(346.42199929639952, curviGrid->GetNode(0, 8).y, tolerance); + ASSERT_NEAR(367.69491210293836, curviGrid->GetNode(0, 9).y, tolerance); + ASSERT_NEAR(391.68307322030449, curviGrid->GetNode(0, 10).y, tolerance); + ASSERT_NEAR(418.73305358857078, curviGrid->GetNode(0, 11).y, tolerance); + ASSERT_NEAR(449.23566003445961, curviGrid->GetNode(0, 12).y, tolerance); + ASSERT_NEAR(483.63158148526736, curviGrid->GetNode(0, 13).y, tolerance); + ASSERT_NEAR(522.41775585855908, curviGrid->GetNode(0, 14).y, tolerance); } TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingCurvatureAdaptedLargeMRefinement) @@ -290,69 +290,69 @@ TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingCurvatureAd const auto curviGrid = curvilinearGridFromSplines.Compute(); const double tolerance = 1e-6; - ASSERT_NEAR(588.14274314862507, curviGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(469.41412484972938, curviGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(366.68736858428133, curviGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(277.80579475635676, curviGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(200.90339412262884, curviGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(134.36565217535070, curviGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(76.795653489238660, curviGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(26.984754415671301, curviGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(-22.826144657896062, curviGrid->m_gridNodes(0, 8).x, tolerance); - ASSERT_NEAR(-78.994845354601750, curviGrid->m_gridNodes(0, 9).x, tolerance); - ASSERT_NEAR(-142.33284961942132, curviGrid->m_gridNodes(0, 10).x, tolerance); - ASSERT_NEAR(-213.75523850308639, curviGrid->m_gridNodes(0, 11).x, tolerance); - ASSERT_NEAR(-294.29389287118539, curviGrid->m_gridNodes(0, 12).x, tolerance); - ASSERT_NEAR(-385.11240158824154, curviGrid->m_gridNodes(0, 13).x, tolerance); - ASSERT_NEAR(-487.52287256398955, curviGrid->m_gridNodes(0, 14).x, tolerance); - - ASSERT_NEAR(278.61331701020396, curviGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(288.96871619915311, curviGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(297.92844792816703, curviGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(305.68061577714451, curviGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(312.38797132933286, curviGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(318.19133103205218, curviGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(323.21253254389961, curviGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(327.55699263496803, curviGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(331.90145272603644, curviGrid->m_gridNodes(0, 8).y, tolerance); - ASSERT_NEAR(336.80043433613747, curviGrid->m_gridNodes(0, 9).y, tolerance); - ASSERT_NEAR(342.32471590692433, curviGrid->m_gridNodes(0, 10).y, tolerance); - ASSERT_NEAR(348.55410995290555, curviGrid->m_gridNodes(0, 11).y, tolerance); - ASSERT_NEAR(355.57861615934416, curviGrid->m_gridNodes(0, 12).y, tolerance); - ASSERT_NEAR(363.49972166014766, curviGrid->m_gridNodes(0, 13).y, tolerance); - ASSERT_NEAR(372.43186728162192, curviGrid->m_gridNodes(0, 14).y, tolerance); - - ASSERT_NEAR(589.75167441442306, curviGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(475.48540012613313, curviGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(375.29368253913503, curviGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(288.60548301452314, curviGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(213.60084073664558, curviGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(148.70508336617249, curviGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(92.555767846678634, curviGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(43.974076823189009, curviGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(-4.6076142003006169, curviGrid->m_gridNodes(1, 8).x, tolerance); - ASSERT_NEAR(-59.390212249936532, curviGrid->m_gridNodes(1, 9).x, tolerance); - ASSERT_NEAR(-121.16519343815622, curviGrid->m_gridNodes(1, 10).x, tolerance); - ASSERT_NEAR(-190.82505691062727, curviGrid->m_gridNodes(1, 11).x, tolerance); - ASSERT_NEAR(-269.37621930140858, curviGrid->m_gridNodes(1, 12).x, tolerance); - ASSERT_NEAR(-357.95355502043907, curviGrid->m_gridNodes(1, 13).x, tolerance); - ASSERT_NEAR(-457.83679244535881, curviGrid->m_gridNodes(1, 14).x, tolerance); - - ASSERT_NEAR(297.06033026778510, curviGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(358.57821282279917, curviGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(396.60313403748916, curviGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(429.50317843791038, curviGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(457.96906046928518, curviGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(482.59840230123029, curviGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(503.90828050581950, curviGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(522.34608173465415, curviGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(540.78388296348885, curviGrid->m_gridNodes(1, 8).y, tolerance); - ASSERT_NEAR(561.57506236376855, curviGrid->m_gridNodes(1, 9).y, tolerance); - ASSERT_NEAR(585.02000221801700, curviGrid->m_gridNodes(1, 10).y, tolerance); - ASSERT_NEAR(611.45742523221747, curviGrid->m_gridNodes(1, 11).y, tolerance); - ASSERT_NEAR(641.26928826009907, curviGrid->m_gridNodes(1, 12).y, tolerance); - ASSERT_NEAR(674.88630065634504, curviGrid->m_gridNodes(1, 13).y, tolerance); - ASSERT_NEAR(712.79414698558730, curviGrid->m_gridNodes(1, 14).y, tolerance); + ASSERT_NEAR(588.14274314862507, curviGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(469.41412484972938, curviGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(366.68736858428133, curviGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(277.80579475635676, curviGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(200.90339412262884, curviGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(134.36565217535070, curviGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(76.795653489238660, curviGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(26.984754415671301, curviGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(-22.826144657896062, curviGrid->GetNode(0, 8).x, tolerance); + ASSERT_NEAR(-78.994845354601750, curviGrid->GetNode(0, 9).x, tolerance); + ASSERT_NEAR(-142.33284961942132, curviGrid->GetNode(0, 10).x, tolerance); + ASSERT_NEAR(-213.75523850308639, curviGrid->GetNode(0, 11).x, tolerance); + ASSERT_NEAR(-294.29389287118539, curviGrid->GetNode(0, 12).x, tolerance); + ASSERT_NEAR(-385.11240158824154, curviGrid->GetNode(0, 13).x, tolerance); + ASSERT_NEAR(-487.52287256398955, curviGrid->GetNode(0, 14).x, tolerance); + + ASSERT_NEAR(278.61331701020396, curviGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(288.96871619915311, curviGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(297.92844792816703, curviGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(305.68061577714451, curviGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(312.38797132933286, curviGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(318.19133103205218, curviGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(323.21253254389961, curviGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(327.55699263496803, curviGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(331.90145272603644, curviGrid->GetNode(0, 8).y, tolerance); + ASSERT_NEAR(336.80043433613747, curviGrid->GetNode(0, 9).y, tolerance); + ASSERT_NEAR(342.32471590692433, curviGrid->GetNode(0, 10).y, tolerance); + ASSERT_NEAR(348.55410995290555, curviGrid->GetNode(0, 11).y, tolerance); + ASSERT_NEAR(355.57861615934416, curviGrid->GetNode(0, 12).y, tolerance); + ASSERT_NEAR(363.49972166014766, curviGrid->GetNode(0, 13).y, tolerance); + ASSERT_NEAR(372.43186728162192, curviGrid->GetNode(0, 14).y, tolerance); + + ASSERT_NEAR(589.75167441442306, curviGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(475.48540012613313, curviGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(375.29368253913503, curviGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(288.60548301452314, curviGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(213.60084073664558, curviGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(148.70508336617249, curviGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(92.555767846678634, curviGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(43.974076823189009, curviGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(-4.6076142003006169, curviGrid->GetNode(1, 8).x, tolerance); + ASSERT_NEAR(-59.390212249936532, curviGrid->GetNode(1, 9).x, tolerance); + ASSERT_NEAR(-121.16519343815622, curviGrid->GetNode(1, 10).x, tolerance); + ASSERT_NEAR(-190.82505691062727, curviGrid->GetNode(1, 11).x, tolerance); + ASSERT_NEAR(-269.37621930140858, curviGrid->GetNode(1, 12).x, tolerance); + ASSERT_NEAR(-357.95355502043907, curviGrid->GetNode(1, 13).x, tolerance); + ASSERT_NEAR(-457.83679244535881, curviGrid->GetNode(1, 14).x, tolerance); + + ASSERT_NEAR(297.06033026778510, curviGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(358.57821282279917, curviGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(396.60313403748916, curviGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(429.50317843791038, curviGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(457.96906046928518, curviGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(482.59840230123029, curviGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(503.90828050581950, curviGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(522.34608173465415, curviGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(540.78388296348885, curviGrid->GetNode(1, 8).y, tolerance); + ASSERT_NEAR(561.57506236376855, curviGrid->GetNode(1, 9).y, tolerance); + ASSERT_NEAR(585.02000221801700, curviGrid->GetNode(1, 10).y, tolerance); + ASSERT_NEAR(611.45742523221747, curviGrid->GetNode(1, 11).y, tolerance); + ASSERT_NEAR(641.26928826009907, curviGrid->GetNode(1, 12).y, tolerance); + ASSERT_NEAR(674.88630065634504, curviGrid->GetNode(1, 13).y, tolerance); + ASSERT_NEAR(712.79414698558730, curviGrid->GetNode(1, 14).y, tolerance); } TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshFourSplineCrossingFront) @@ -401,59 +401,59 @@ TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshFourSplineCrossingFron const auto curviGrid = curvilinearGridFromSplines.Compute(); const double tolerance = 1e-6; - ASSERT_NEAR(100.52954683251164, curviGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(53.257591250608634, curviGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(5.1909985476910663, curviGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(-43.683589051402279, curviGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(-93.379753864774997, curviGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(-143.07591867814773, curviGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(-199.56653306317651, curviGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(-263.78053278694000, curviGrid->m_gridNodes(0, 7).x, tolerance); - - ASSERT_NEAR(210.24345077714435, curviGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(215.47871920476678, curviGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(220.80199200157290, curviGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(226.21474851271995, curviGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(231.71849295101799, curviGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(237.22223738931604, curviGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(243.47845265069932, curviGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(250.59001639344984, curviGrid->m_gridNodes(0, 7).y, tolerance); - - ASSERT_NEAR(125.95663927357324, curviGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(87.191079979748508, curviGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(46.912312421706382, curviGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(-0.21122329512429161, curviGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(-47.914454551477142, curviGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(-95.617685807829986, curviGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(-149.56437809547685, curviGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(-210.56103370149361, curviGrid->m_gridNodes(1, 7).x, tolerance); - - ASSERT_NEAR(439.83786433363935, curviGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(521.88179941347357, curviGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(597.52538709342150, curviGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(618.74929979346371, curviGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(642.24827559144808, curviGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(665.74725138943245, curviGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(694.97385948812678, curviGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(731.13649297609936, curviGrid->m_gridNodes(1, 7).y, tolerance); - - ASSERT_NEAR(125.95663927357324, curviGrid->m_gridNodes(2, 0).x, tolerance); - ASSERT_NEAR(87.191079979748508, curviGrid->m_gridNodes(2, 1).x, tolerance); - ASSERT_NEAR(53.136666853719120, curviGrid->m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(48.869442121499411, curviGrid->m_gridNodes(2, 3).x, tolerance); - ASSERT_NEAR(44.963973598369989, curviGrid->m_gridNodes(2, 4).x, tolerance); - ASSERT_NEAR(41.058505075240568, curviGrid->m_gridNodes(2, 5).x, tolerance); - ASSERT_NEAR(37.375052143743041, curviGrid->m_gridNodes(2, 6).x, tolerance); - ASSERT_NEAR(34.121747416893278, curviGrid->m_gridNodes(2, 7).x, tolerance); - - ASSERT_NEAR(439.83786433363935, curviGrid->m_gridNodes(2, 0).y, tolerance); - ASSERT_NEAR(521.88179941347357, curviGrid->m_gridNodes(2, 1).y, tolerance); - ASSERT_NEAR(603.50877899861121, curviGrid->m_gridNodes(2, 2).y, tolerance); - ASSERT_NEAR(665.92991255625338, curviGrid->m_gridNodes(2, 3).y, tolerance); - ASSERT_NEAR(731.53111467598717, curviGrid->m_gridNodes(2, 4).y, tolerance); - ASSERT_NEAR(797.13231679572095, curviGrid->m_gridNodes(2, 5).y, tolerance); - ASSERT_NEAR(874.67633078399956, curviGrid->m_gridNodes(2, 6).y, tolerance); - ASSERT_NEAR(966.34690521633274, curviGrid->m_gridNodes(2, 7).y, tolerance); + ASSERT_NEAR(100.52954683251164, curviGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(53.257591250608634, curviGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(5.1909985476910663, curviGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(-43.683589051402279, curviGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(-93.379753864774997, curviGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(-143.07591867814773, curviGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(-199.56653306317651, curviGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(-263.78053278694000, curviGrid->GetNode(0, 7).x, tolerance); + + ASSERT_NEAR(210.24345077714435, curviGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(215.47871920476678, curviGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(220.80199200157290, curviGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(226.21474851271995, curviGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(231.71849295101799, curviGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(237.22223738931604, curviGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(243.47845265069932, curviGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(250.59001639344984, curviGrid->GetNode(0, 7).y, tolerance); + + ASSERT_NEAR(125.95663927357324, curviGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(87.191079979748508, curviGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(46.912312421706382, curviGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(-0.21122329512429161, curviGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(-47.914454551477142, curviGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(-95.617685807829986, curviGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(-149.56437809547685, curviGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(-210.56103370149361, curviGrid->GetNode(1, 7).x, tolerance); + + ASSERT_NEAR(439.83786433363935, curviGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(521.88179941347357, curviGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(597.52538709342150, curviGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(618.74929979346371, curviGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(642.24827559144808, curviGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(665.74725138943245, curviGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(694.97385948812678, curviGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(731.13649297609936, curviGrid->GetNode(1, 7).y, tolerance); + + ASSERT_NEAR(125.95663927357324, curviGrid->GetNode(2, 0).x, tolerance); + ASSERT_NEAR(87.191079979748508, curviGrid->GetNode(2, 1).x, tolerance); + ASSERT_NEAR(53.136666853719120, curviGrid->GetNode(2, 2).x, tolerance); + ASSERT_NEAR(48.869442121499411, curviGrid->GetNode(2, 3).x, tolerance); + ASSERT_NEAR(44.963973598369989, curviGrid->GetNode(2, 4).x, tolerance); + ASSERT_NEAR(41.058505075240568, curviGrid->GetNode(2, 5).x, tolerance); + ASSERT_NEAR(37.375052143743041, curviGrid->GetNode(2, 6).x, tolerance); + ASSERT_NEAR(34.121747416893278, curviGrid->GetNode(2, 7).x, tolerance); + + ASSERT_NEAR(439.83786433363935, curviGrid->GetNode(2, 0).y, tolerance); + ASSERT_NEAR(521.88179941347357, curviGrid->GetNode(2, 1).y, tolerance); + ASSERT_NEAR(603.50877899861121, curviGrid->GetNode(2, 2).y, tolerance); + ASSERT_NEAR(665.92991255625338, curviGrid->GetNode(2, 3).y, tolerance); + ASSERT_NEAR(731.53111467598717, curviGrid->GetNode(2, 4).y, tolerance); + ASSERT_NEAR(797.13231679572095, curviGrid->GetNode(2, 5).y, tolerance); + ASSERT_NEAR(874.67633078399956, curviGrid->GetNode(2, 6).y, tolerance); + ASSERT_NEAR(966.34690521633274, curviGrid->GetNode(2, 7).y, tolerance); } TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearGridFromSplineWithSevenSplies) { @@ -518,99 +518,99 @@ TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearGridFromSplineWithSevenSpl const auto curviGrid = curvilinearGridFromSplines.Compute(); const double tolerance = 1e-6; - ASSERT_NEAR(318.51231173935355, curviGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(299.48353221639496, curviGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(282.44733906260205, curviGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(267.19252754998109, curviGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(253.53063723900343, curviGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(241.29345538457824, curviGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(230.33080196895105, curviGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(220.50856220652270, curviGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(211.70693763972625, curviGrid->m_gridNodes(0, 8).x, tolerance); - ASSERT_NEAR(203.81889090380005, curviGrid->m_gridNodes(0, 9).x, tolerance); - ASSERT_NEAR(196.74876236149268, curviGrid->m_gridNodes(0, 10).x, tolerance); - ASSERT_NEAR(190.41103939285921, curviGrid->m_gridNodes(0, 11).x, tolerance); - ASSERT_NEAR(184.72926128776140, curviGrid->m_gridNodes(0, 12).x, tolerance); - ASSERT_NEAR(179.63504461179019, curviGrid->m_gridNodes(0, 13).x, tolerance); - ASSERT_NEAR(174.54663336028344, curviGrid->m_gridNodes(0, 14).x, tolerance); - ASSERT_NEAR(169.46405577607990, curviGrid->m_gridNodes(0, 15).x, tolerance); - ASSERT_NEAR(164.38733961009973, curviGrid->m_gridNodes(0, 16).x, tolerance); - ASSERT_NEAR(159.31651210847537, curviGrid->m_gridNodes(0, 17).x, tolerance); - ASSERT_NEAR(154.25160000000000, curviGrid->m_gridNodes(0, 18).x, tolerance); - ASSERT_NEAR(149.31711800582937, curviGrid->m_gridNodes(0, 19).x, tolerance); - ASSERT_NEAR(144.38562161142110, curviGrid->m_gridNodes(0, 20).x, tolerance); - ASSERT_NEAR(139.45710784084523, curviGrid->m_gridNodes(0, 21).x, tolerance); - ASSERT_NEAR(134.53157358568254, curviGrid->m_gridNodes(0, 22).x, tolerance); - ASSERT_NEAR(129.60901561173370, curviGrid->m_gridNodes(0, 23).x, tolerance); - ASSERT_NEAR(124.68943056574528, curviGrid->m_gridNodes(0, 24).x, tolerance); - ASSERT_NEAR(119.26411278039352, curviGrid->m_gridNodes(0, 25).x, tolerance); - ASSERT_NEAR(113.33983596520923, curviGrid->m_gridNodes(0, 26).x, tolerance); - ASSERT_NEAR(106.94724906818072, curviGrid->m_gridNodes(0, 27).x, tolerance); - ASSERT_NEAR(100.15448186391468, curviGrid->m_gridNodes(0, 28).x, tolerance); - ASSERT_NEAR(93.085794486715571, curviGrid->m_gridNodes(0, 29).x, tolerance); - ASSERT_NEAR(85.945168726353714, curviGrid->m_gridNodes(0, 30).x, tolerance); - ASSERT_NEAR(79.042711413094352, curviGrid->m_gridNodes(0, 31).x, tolerance); - ASSERT_NEAR(72.818165313086013, curviGrid->m_gridNodes(0, 32).x, tolerance); - ASSERT_NEAR(67.850573321365587, curviGrid->m_gridNodes(0, 33).x, tolerance); - ASSERT_NEAR(64.836764457842776, curviGrid->m_gridNodes(0, 34).x, tolerance); - ASSERT_NEAR(64.515162424795946, curviGrid->m_gridNodes(0, 35).x, tolerance); - ASSERT_NEAR(67.506775188377858, curviGrid->m_gridNodes(0, 36).x, tolerance); - ASSERT_NEAR(74.607619951405468, curviGrid->m_gridNodes(0, 37).x, tolerance); - ASSERT_NEAR(84.055547192477718, curviGrid->m_gridNodes(0, 38).x, tolerance); - ASSERT_NEAR(96.661189343119005, curviGrid->m_gridNodes(0, 39).x, tolerance); - ASSERT_NEAR(111.19388303065054, curviGrid->m_gridNodes(0, 40).x, tolerance); - ASSERT_NEAR(130.07126718065518, curviGrid->m_gridNodes(0, 41).x, tolerance); - ASSERT_NEAR(151.46031591233805, curviGrid->m_gridNodes(0, 42).x, tolerance); - ASSERT_NEAR(176.73644628514995, curviGrid->m_gridNodes(0, 43).x, tolerance); - ASSERT_NEAR(207.42707538337629, curviGrid->m_gridNodes(0, 44).x, tolerance); - ASSERT_NEAR(241.61953469189427, curviGrid->m_gridNodes(0, 45).x, tolerance); - - ASSERT_NEAR(-32.907270623515025, curviGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(-20.681837507733704, curviGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(-9.6398276503176721, curviGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(0.32833495830444726, curviGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(9.3229308506649744, curviGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(17.435580744966774, curviGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(24.749870809921365, curviGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(31.341956888789504, curviGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(37.281141739253201, curviGrid->m_gridNodes(0, 8).y, tolerance); - ASSERT_NEAR(42.630422109756289, curviGrid->m_gridNodes(0, 9).y, tolerance); - ASSERT_NEAR(47.447004133801570, curviGrid->m_gridNodes(0, 10).y, tolerance); - ASSERT_NEAR(51.782786571790027, curviGrid->m_gridNodes(0, 11).y, tolerance); - ASSERT_NEAR(55.684812056743255, curviGrid->m_gridNodes(0, 12).y, tolerance); - ASSERT_NEAR(59.195686975419036, curviGrid->m_gridNodes(0, 13).y, tolerance); - ASSERT_NEAR(62.714970591706496, curviGrid->m_gridNodes(0, 14).y, tolerance); - ASSERT_NEAR(66.242673999999440, curviGrid->m_gridNodes(0, 15).y, tolerance); - ASSERT_NEAR(69.778807369430695, curviGrid->m_gridNodes(0, 16).y, tolerance); - ASSERT_NEAR(73.323379936765136, curviGrid->m_gridNodes(0, 17).y, tolerance); - ASSERT_NEAR(76.876400000000004, curviGrid->m_gridNodes(0, 18).y, tolerance); - ASSERT_NEAR(80.337923744434121, curviGrid->m_gridNodes(0, 19).y, tolerance); - ASSERT_NEAR(83.803699631016158, curviGrid->m_gridNodes(0, 20).y, tolerance); - ASSERT_NEAR(87.273715653647628, curviGrid->m_gridNodes(0, 21).y, tolerance); - ASSERT_NEAR(90.747959670019270, curviGrid->m_gridNodes(0, 22).y, tolerance); - ASSERT_NEAR(94.226419412087282, curviGrid->m_gridNodes(0, 23).y, tolerance); - ASSERT_NEAR(97.709082496475787, curviGrid->m_gridNodes(0, 24).y, tolerance); - ASSERT_NEAR(101.55670701883272, curviGrid->m_gridNodes(0, 25).y, tolerance); - ASSERT_NEAR(105.88904155040480, curviGrid->m_gridNodes(0, 26).y, tolerance); - ASSERT_NEAR(110.86139387022313, curviGrid->m_gridNodes(0, 27).y, tolerance); - ASSERT_NEAR(116.66849852789267, curviGrid->m_gridNodes(0, 28).y, tolerance); - ASSERT_NEAR(123.54448633755437, curviGrid->m_gridNodes(0, 29).y, tolerance); - ASSERT_NEAR(131.75553064619231, curviGrid->m_gridNodes(0, 30).y, tolerance); - ASSERT_NEAR(141.58081563533725, curviGrid->m_gridNodes(0, 31).y, tolerance); - ASSERT_NEAR(153.27757201630283, curviGrid->m_gridNodes(0, 32).y, tolerance); - ASSERT_NEAR(167.02858202611705, curviGrid->m_gridNodes(0, 33).y, tolerance); - ASSERT_NEAR(182.87812073196093, curviGrid->m_gridNodes(0, 34).y, tolerance); - ASSERT_NEAR(200.67802082725191, curviGrid->m_gridNodes(0, 35).y, tolerance); - ASSERT_NEAR(220.09368423101697, curviGrid->m_gridNodes(0, 36).y, tolerance); - ASSERT_NEAR(240.56147175543990, curviGrid->m_gridNodes(0, 37).y, tolerance); - ASSERT_NEAR(262.53677014280578, curviGrid->m_gridNodes(0, 38).y, tolerance); - ASSERT_NEAR(285.72723326832892, curviGrid->m_gridNodes(0, 39).y, tolerance); - ASSERT_NEAR(310.96873531044707, curviGrid->m_gridNodes(0, 40).y, tolerance); - ASSERT_NEAR(336.98028385317122, curviGrid->m_gridNodes(0, 41).y, tolerance); - ASSERT_NEAR(365.26582661002578, curviGrid->m_gridNodes(0, 42).y, tolerance); - ASSERT_NEAR(395.14268835984223, curviGrid->m_gridNodes(0, 43).y, tolerance); - ASSERT_NEAR(425.52204184241054, curviGrid->m_gridNodes(0, 44).y, tolerance); - ASSERT_NEAR(458.71059422143117, curviGrid->m_gridNodes(0, 45).y, tolerance); + ASSERT_NEAR(318.51231173935355, curviGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(299.48353221639496, curviGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(282.44733906260205, curviGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(267.19252754998109, curviGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(253.53063723900343, curviGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(241.29345538457824, curviGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(230.33080196895105, curviGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(220.50856220652270, curviGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(211.70693763972625, curviGrid->GetNode(0, 8).x, tolerance); + ASSERT_NEAR(203.81889090380005, curviGrid->GetNode(0, 9).x, tolerance); + ASSERT_NEAR(196.74876236149268, curviGrid->GetNode(0, 10).x, tolerance); + ASSERT_NEAR(190.41103939285921, curviGrid->GetNode(0, 11).x, tolerance); + ASSERT_NEAR(184.72926128776140, curviGrid->GetNode(0, 12).x, tolerance); + ASSERT_NEAR(179.63504461179019, curviGrid->GetNode(0, 13).x, tolerance); + ASSERT_NEAR(174.54663336028344, curviGrid->GetNode(0, 14).x, tolerance); + ASSERT_NEAR(169.46405577607990, curviGrid->GetNode(0, 15).x, tolerance); + ASSERT_NEAR(164.38733961009973, curviGrid->GetNode(0, 16).x, tolerance); + ASSERT_NEAR(159.31651210847537, curviGrid->GetNode(0, 17).x, tolerance); + ASSERT_NEAR(154.25160000000000, curviGrid->GetNode(0, 18).x, tolerance); + ASSERT_NEAR(149.31711800582937, curviGrid->GetNode(0, 19).x, tolerance); + ASSERT_NEAR(144.38562161142110, curviGrid->GetNode(0, 20).x, tolerance); + ASSERT_NEAR(139.45710784084523, curviGrid->GetNode(0, 21).x, tolerance); + ASSERT_NEAR(134.53157358568254, curviGrid->GetNode(0, 22).x, tolerance); + ASSERT_NEAR(129.60901561173370, curviGrid->GetNode(0, 23).x, tolerance); + ASSERT_NEAR(124.68943056574528, curviGrid->GetNode(0, 24).x, tolerance); + ASSERT_NEAR(119.26411278039352, curviGrid->GetNode(0, 25).x, tolerance); + ASSERT_NEAR(113.33983596520923, curviGrid->GetNode(0, 26).x, tolerance); + ASSERT_NEAR(106.94724906818072, curviGrid->GetNode(0, 27).x, tolerance); + ASSERT_NEAR(100.15448186391468, curviGrid->GetNode(0, 28).x, tolerance); + ASSERT_NEAR(93.085794486715571, curviGrid->GetNode(0, 29).x, tolerance); + ASSERT_NEAR(85.945168726353714, curviGrid->GetNode(0, 30).x, tolerance); + ASSERT_NEAR(79.042711413094352, curviGrid->GetNode(0, 31).x, tolerance); + ASSERT_NEAR(72.818165313086013, curviGrid->GetNode(0, 32).x, tolerance); + ASSERT_NEAR(67.850573321365587, curviGrid->GetNode(0, 33).x, tolerance); + ASSERT_NEAR(64.836764457842776, curviGrid->GetNode(0, 34).x, tolerance); + ASSERT_NEAR(64.515162424795946, curviGrid->GetNode(0, 35).x, tolerance); + ASSERT_NEAR(67.506775188377858, curviGrid->GetNode(0, 36).x, tolerance); + ASSERT_NEAR(74.607619951405468, curviGrid->GetNode(0, 37).x, tolerance); + ASSERT_NEAR(84.055547192477718, curviGrid->GetNode(0, 38).x, tolerance); + ASSERT_NEAR(96.661189343119005, curviGrid->GetNode(0, 39).x, tolerance); + ASSERT_NEAR(111.19388303065054, curviGrid->GetNode(0, 40).x, tolerance); + ASSERT_NEAR(130.07126718065518, curviGrid->GetNode(0, 41).x, tolerance); + ASSERT_NEAR(151.46031591233805, curviGrid->GetNode(0, 42).x, tolerance); + ASSERT_NEAR(176.73644628514995, curviGrid->GetNode(0, 43).x, tolerance); + ASSERT_NEAR(207.42707538337629, curviGrid->GetNode(0, 44).x, tolerance); + ASSERT_NEAR(241.61953469189427, curviGrid->GetNode(0, 45).x, tolerance); + + ASSERT_NEAR(-32.907270623515025, curviGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(-20.681837507733704, curviGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(-9.6398276503176721, curviGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(0.32833495830444726, curviGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(9.3229308506649744, curviGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(17.435580744966774, curviGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(24.749870809921365, curviGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(31.341956888789504, curviGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(37.281141739253201, curviGrid->GetNode(0, 8).y, tolerance); + ASSERT_NEAR(42.630422109756289, curviGrid->GetNode(0, 9).y, tolerance); + ASSERT_NEAR(47.447004133801570, curviGrid->GetNode(0, 10).y, tolerance); + ASSERT_NEAR(51.782786571790027, curviGrid->GetNode(0, 11).y, tolerance); + ASSERT_NEAR(55.684812056743255, curviGrid->GetNode(0, 12).y, tolerance); + ASSERT_NEAR(59.195686975419036, curviGrid->GetNode(0, 13).y, tolerance); + ASSERT_NEAR(62.714970591706496, curviGrid->GetNode(0, 14).y, tolerance); + ASSERT_NEAR(66.242673999999440, curviGrid->GetNode(0, 15).y, tolerance); + ASSERT_NEAR(69.778807369430695, curviGrid->GetNode(0, 16).y, tolerance); + ASSERT_NEAR(73.323379936765136, curviGrid->GetNode(0, 17).y, tolerance); + ASSERT_NEAR(76.876400000000004, curviGrid->GetNode(0, 18).y, tolerance); + ASSERT_NEAR(80.337923744434121, curviGrid->GetNode(0, 19).y, tolerance); + ASSERT_NEAR(83.803699631016158, curviGrid->GetNode(0, 20).y, tolerance); + ASSERT_NEAR(87.273715653647628, curviGrid->GetNode(0, 21).y, tolerance); + ASSERT_NEAR(90.747959670019270, curviGrid->GetNode(0, 22).y, tolerance); + ASSERT_NEAR(94.226419412087282, curviGrid->GetNode(0, 23).y, tolerance); + ASSERT_NEAR(97.709082496475787, curviGrid->GetNode(0, 24).y, tolerance); + ASSERT_NEAR(101.55670701883272, curviGrid->GetNode(0, 25).y, tolerance); + ASSERT_NEAR(105.88904155040480, curviGrid->GetNode(0, 26).y, tolerance); + ASSERT_NEAR(110.86139387022313, curviGrid->GetNode(0, 27).y, tolerance); + ASSERT_NEAR(116.66849852789267, curviGrid->GetNode(0, 28).y, tolerance); + ASSERT_NEAR(123.54448633755437, curviGrid->GetNode(0, 29).y, tolerance); + ASSERT_NEAR(131.75553064619231, curviGrid->GetNode(0, 30).y, tolerance); + ASSERT_NEAR(141.58081563533725, curviGrid->GetNode(0, 31).y, tolerance); + ASSERT_NEAR(153.27757201630283, curviGrid->GetNode(0, 32).y, tolerance); + ASSERT_NEAR(167.02858202611705, curviGrid->GetNode(0, 33).y, tolerance); + ASSERT_NEAR(182.87812073196093, curviGrid->GetNode(0, 34).y, tolerance); + ASSERT_NEAR(200.67802082725191, curviGrid->GetNode(0, 35).y, tolerance); + ASSERT_NEAR(220.09368423101697, curviGrid->GetNode(0, 36).y, tolerance); + ASSERT_NEAR(240.56147175543990, curviGrid->GetNode(0, 37).y, tolerance); + ASSERT_NEAR(262.53677014280578, curviGrid->GetNode(0, 38).y, tolerance); + ASSERT_NEAR(285.72723326832892, curviGrid->GetNode(0, 39).y, tolerance); + ASSERT_NEAR(310.96873531044707, curviGrid->GetNode(0, 40).y, tolerance); + ASSERT_NEAR(336.98028385317122, curviGrid->GetNode(0, 41).y, tolerance); + ASSERT_NEAR(365.26582661002578, curviGrid->GetNode(0, 42).y, tolerance); + ASSERT_NEAR(395.14268835984223, curviGrid->GetNode(0, 43).y, tolerance); + ASSERT_NEAR(425.52204184241054, curviGrid->GetNode(0, 44).y, tolerance); + ASSERT_NEAR(458.71059422143117, curviGrid->GetNode(0, 45).y, tolerance); } TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingCurvatureAdaptedSpherical) @@ -650,51 +650,51 @@ TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingCurvatureAd const double tolerance = 1e-6; - ASSERT_NEAR(41.099466896304122, curviGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(41.099108497593477, curviGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(41.098791358547970, curviGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(41.098510729263410, curviGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(41.098262406654840, curviGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(41.098042671505588, curviGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(41.097848232763340, curviGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(41.097676178248982, curviGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(41.097523931039888, curviGrid->m_gridNodes(0, 8).x, tolerance); - ASSERT_NEAR(41.097389210874489, curviGrid->m_gridNodes(0, 9).x, tolerance); - ASSERT_NEAR(41.097270000000002, curviGrid->m_gridNodes(0, 10).x, tolerance); - ASSERT_NEAR(41.097150789125514, curviGrid->m_gridNodes(0, 11).x, tolerance); - ASSERT_NEAR(41.097017310879082, curviGrid->m_gridNodes(0, 12).x, tolerance); - ASSERT_NEAR(41.096867857715743, curviGrid->m_gridNodes(0, 13).x, tolerance); - ASSERT_NEAR(41.096700517728394, curviGrid->m_gridNodes(0, 14).x, tolerance); - ASSERT_NEAR(41.096513150189345, curviGrid->m_gridNodes(0, 15).x, tolerance); - ASSERT_NEAR(41.096303358164640, curviGrid->m_gridNodes(0, 16).x, tolerance); - ASSERT_NEAR(41.096068457850762, curviGrid->m_gridNodes(0, 17).x, tolerance); - ASSERT_NEAR(41.095805444241556, curviGrid->m_gridNodes(0, 18).x, tolerance); - ASSERT_NEAR(41.095510952686034, curviGrid->m_gridNodes(0, 19).x, tolerance); - ASSERT_NEAR(41.095181215845365, curviGrid->m_gridNodes(0, 20).x, tolerance); - ASSERT_NEAR(41.094812015498384, curviGrid->m_gridNodes(0, 21).x, tolerance); - - ASSERT_NEAR(41.101732337816657, curviGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(41.101733590647953, curviGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(41.101734698311994, curviGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(41.101735677734105, curviGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(41.101736543840993, curviGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(41.101737309803312, curviGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(41.101737987246892, curviGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(41.101738586437314, curviGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(41.101739116441543, curviGrid->m_gridNodes(0, 8).y, tolerance); - ASSERT_NEAR(41.101739585269776, curviGrid->m_gridNodes(0, 9).y, tolerance); - ASSERT_NEAR(41.101739999999999, curviGrid->m_gridNodes(0, 10).y, tolerance); - ASSERT_NEAR(41.101740414730223, curviGrid->m_gridNodes(0, 11).y, tolerance); - ASSERT_NEAR(41.101740878961273, curviGrid->m_gridNodes(0, 12).y, tolerance); - ASSERT_NEAR(41.101741398583627, curviGrid->m_gridNodes(0, 13).y, tolerance); - ASSERT_NEAR(41.101741980184251, curviGrid->m_gridNodes(0, 14).y, tolerance); - ASSERT_NEAR(41.101742631127856, curviGrid->m_gridNodes(0, 15).y, tolerance); - ASSERT_NEAR(41.101743359647344, curviGrid->m_gridNodes(0, 16).y, tolerance); - ASSERT_NEAR(41.101744174944386, curviGrid->m_gridNodes(0, 17).y, tolerance); - ASSERT_NEAR(41.101745087301268, curviGrid->m_gridNodes(0, 18).y, tolerance); - ASSERT_NEAR(41.101746108205063, curviGrid->m_gridNodes(0, 19).y, tolerance); - ASSERT_NEAR(41.101747250485388, curviGrid->m_gridNodes(0, 20).y, tolerance); - ASSERT_NEAR(41.101748528467041, curviGrid->m_gridNodes(0, 21).y, tolerance); + ASSERT_NEAR(41.099466896304122, curviGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(41.099108497593477, curviGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(41.098791358547970, curviGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(41.098510729263410, curviGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(41.098262406654840, curviGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(41.098042671505588, curviGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(41.097848232763340, curviGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(41.097676178248982, curviGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(41.097523931039888, curviGrid->GetNode(0, 8).x, tolerance); + ASSERT_NEAR(41.097389210874489, curviGrid->GetNode(0, 9).x, tolerance); + ASSERT_NEAR(41.097270000000002, curviGrid->GetNode(0, 10).x, tolerance); + ASSERT_NEAR(41.097150789125514, curviGrid->GetNode(0, 11).x, tolerance); + ASSERT_NEAR(41.097017310879082, curviGrid->GetNode(0, 12).x, tolerance); + ASSERT_NEAR(41.096867857715743, curviGrid->GetNode(0, 13).x, tolerance); + ASSERT_NEAR(41.096700517728394, curviGrid->GetNode(0, 14).x, tolerance); + ASSERT_NEAR(41.096513150189345, curviGrid->GetNode(0, 15).x, tolerance); + ASSERT_NEAR(41.096303358164640, curviGrid->GetNode(0, 16).x, tolerance); + ASSERT_NEAR(41.096068457850762, curviGrid->GetNode(0, 17).x, tolerance); + ASSERT_NEAR(41.095805444241556, curviGrid->GetNode(0, 18).x, tolerance); + ASSERT_NEAR(41.095510952686034, curviGrid->GetNode(0, 19).x, tolerance); + ASSERT_NEAR(41.095181215845365, curviGrid->GetNode(0, 20).x, tolerance); + ASSERT_NEAR(41.094812015498384, curviGrid->GetNode(0, 21).x, tolerance); + + ASSERT_NEAR(41.101732337816657, curviGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(41.101733590647953, curviGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(41.101734698311994, curviGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(41.101735677734105, curviGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(41.101736543840993, curviGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(41.101737309803312, curviGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(41.101737987246892, curviGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(41.101738586437314, curviGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(41.101739116441543, curviGrid->GetNode(0, 8).y, tolerance); + ASSERT_NEAR(41.101739585269776, curviGrid->GetNode(0, 9).y, tolerance); + ASSERT_NEAR(41.101739999999999, curviGrid->GetNode(0, 10).y, tolerance); + ASSERT_NEAR(41.101740414730223, curviGrid->GetNode(0, 11).y, tolerance); + ASSERT_NEAR(41.101740878961273, curviGrid->GetNode(0, 12).y, tolerance); + ASSERT_NEAR(41.101741398583627, curviGrid->GetNode(0, 13).y, tolerance); + ASSERT_NEAR(41.101741980184251, curviGrid->GetNode(0, 14).y, tolerance); + ASSERT_NEAR(41.101742631127856, curviGrid->GetNode(0, 15).y, tolerance); + ASSERT_NEAR(41.101743359647344, curviGrid->GetNode(0, 16).y, tolerance); + ASSERT_NEAR(41.101744174944386, curviGrid->GetNode(0, 17).y, tolerance); + ASSERT_NEAR(41.101745087301268, curviGrid->GetNode(0, 18).y, tolerance); + ASSERT_NEAR(41.101746108205063, curviGrid->GetNode(0, 19).y, tolerance); + ASSERT_NEAR(41.101747250485388, curviGrid->GetNode(0, 20).y, tolerance); + ASSERT_NEAR(41.101748528467041, curviGrid->GetNode(0, 21).y, tolerance); } TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingHighCurvature) @@ -732,37 +732,37 @@ TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingHighCurvatu const auto curviGrid = curvilinearGridFromSplines.Compute(); const double tolerance = 1e-6; - ASSERT_NEAR(189.31789918088032, curviGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(47.484543647183727, curviGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(-44.200527431510437, curviGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(-103.46833666491800, curviGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(-162.73614589832556, curviGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(-269.81491405451612, curviGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(-463.27343290566068, curviGrid->m_gridNodes(0, 6).x, tolerance); - - ASSERT_NEAR(466.77055774144100, curviGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(444.40739376403246, curviGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(429.95121544759934, curviGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(420.60633510206202, curviGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(411.26145475652470, curviGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(394.37811979088713, curviGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(363.87510755081644, curviGrid->m_gridNodes(0, 6).y, tolerance); - - ASSERT_NEAR(182.83836514269635, curviGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(37.276414715909084, curviGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(-55.730094345896688, curviGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(-115.85211826633454, curviGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(-175.97414218677238, curviGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(-284.59621450100786, curviGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(-480.84301100694080, curviGrid->m_gridNodes(1, 6).x, tolerance); - - ASSERT_NEAR(507.86555019683885, curviGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(509.15016368272256, curviGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(503.07490961581618, curviGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(499.14769447767401, curviGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(495.22047933953183, curviGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(488.12520511367825, curviGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(475.30621899521509, curviGrid->m_gridNodes(1, 6).y, tolerance); + ASSERT_NEAR(189.31789918088032, curviGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(47.484543647183727, curviGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(-44.200527431510437, curviGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(-103.46833666491800, curviGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(-162.73614589832556, curviGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(-269.81491405451612, curviGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(-463.27343290566068, curviGrid->GetNode(0, 6).x, tolerance); + + ASSERT_NEAR(466.77055774144100, curviGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(444.40739376403246, curviGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(429.95121544759934, curviGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(420.60633510206202, curviGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(411.26145475652470, curviGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(394.37811979088713, curviGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(363.87510755081644, curviGrid->GetNode(0, 6).y, tolerance); + + ASSERT_NEAR(182.83836514269635, curviGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(37.276414715909084, curviGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(-55.730094345896688, curviGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(-115.85211826633454, curviGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(-175.97414218677238, curviGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(-284.59621450100786, curviGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(-480.84301100694080, curviGrid->GetNode(1, 6).x, tolerance); + + ASSERT_NEAR(507.86555019683885, curviGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(509.15016368272256, curviGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(503.07490961581618, curviGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(499.14769447767401, curviGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(495.22047933953183, curviGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(488.12520511367825, curviGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(475.30621899521509, curviGrid->GetNode(1, 6).y, tolerance); } TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingHighCurvatureRemoveSkinnyTriangles) @@ -800,53 +800,53 @@ TEST(CurvilinearGridFromSplines, OrthogonalCurvilinearMeshTwoCrossingHighCurvatu const auto curviGrid = curvilinearGridFromSplines.Compute(); const double tolerance = 1e-6; - ASSERT_NEAR(189.31789918088032, curviGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(47.484543647183727, curviGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(-44.200527431510437, curviGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(-103.46833666491800, curviGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(-162.73614589832556, curviGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(-269.81491405451612, curviGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(-463.27343290566068, curviGrid->m_gridNodes(0, 6).x, tolerance); - - ASSERT_NEAR(466.77055774144100, curviGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(444.40739376403246, curviGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(429.95121544759934, curviGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(420.60633510206202, curviGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(411.26145475652470, curviGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(394.37811979088713, curviGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(363.87510755081644, curviGrid->m_gridNodes(0, 6).y, tolerance); - - ASSERT_NEAR(182.83836514269635, curviGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(42.764508901802778, curviGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(-55.730094345896688, curviGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(-115.85211826633454, curviGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(-175.97414218677238, curviGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(-284.59621450100786, curviGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(-480.84301100694080, curviGrid->m_gridNodes(1, 6).x, tolerance); - - ASSERT_NEAR(507.86555019683885, curviGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(541.25047181337595, curviGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(503.07490961581618, curviGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(499.14769447767401, curviGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(495.22047933953183, curviGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(488.12520511367825, curviGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(475.30621899521509, curviGrid->m_gridNodes(1, 6).y, tolerance); - - ASSERT_NEAR(182.83836514269635, curviGrid->m_gridNodes(2, 0).x, tolerance); - ASSERT_NEAR(42.764508901802778, curviGrid->m_gridNodes(2, 1).x, tolerance); - ASSERT_NEAR(-54.662854941964767, curviGrid->m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(-114.47739150129740, curviGrid->m_gridNodes(2, 3).x, tolerance); - ASSERT_NEAR(-174.29192806063003, curviGrid->m_gridNodes(2, 4).x, tolerance); - ASSERT_NEAR(-282.35846494548809, curviGrid->m_gridNodes(2, 5).x, tolerance); - ASSERT_NEAR(-477.60157917913409, curviGrid->m_gridNodes(2, 6).x, tolerance); - - ASSERT_NEAR(507.86555019683885, curviGrid->m_gridNodes(2, 0).y, tolerance); - ASSERT_NEAR(541.25047181337595, curviGrid->m_gridNodes(2, 1).y, tolerance); - ASSERT_NEAR(544.22653740080693, curviGrid->m_gridNodes(2, 2).y, tolerance); - ASSERT_NEAR(552.15571117238005, curviGrid->m_gridNodes(2, 3).y, tolerance); - ASSERT_NEAR(560.08488494395317, curviGrid->m_gridNodes(2, 4).y, tolerance); - ASSERT_NEAR(574.41047198586193, curviGrid->m_gridNodes(2, 5).y, tolerance); - ASSERT_NEAR(600.29241757154784, curviGrid->m_gridNodes(2, 6).y, tolerance); + ASSERT_NEAR(189.31789918088032, curviGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(47.484543647183727, curviGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(-44.200527431510437, curviGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(-103.46833666491800, curviGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(-162.73614589832556, curviGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(-269.81491405451612, curviGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(-463.27343290566068, curviGrid->GetNode(0, 6).x, tolerance); + + ASSERT_NEAR(466.77055774144100, curviGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(444.40739376403246, curviGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(429.95121544759934, curviGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(420.60633510206202, curviGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(411.26145475652470, curviGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(394.37811979088713, curviGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(363.87510755081644, curviGrid->GetNode(0, 6).y, tolerance); + + ASSERT_NEAR(182.83836514269635, curviGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(42.764508901802778, curviGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(-55.730094345896688, curviGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(-115.85211826633454, curviGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(-175.97414218677238, curviGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(-284.59621450100786, curviGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(-480.84301100694080, curviGrid->GetNode(1, 6).x, tolerance); + + ASSERT_NEAR(507.86555019683885, curviGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(541.25047181337595, curviGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(503.07490961581618, curviGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(499.14769447767401, curviGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(495.22047933953183, curviGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(488.12520511367825, curviGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(475.30621899521509, curviGrid->GetNode(1, 6).y, tolerance); + + ASSERT_NEAR(182.83836514269635, curviGrid->GetNode(2, 0).x, tolerance); + ASSERT_NEAR(42.764508901802778, curviGrid->GetNode(2, 1).x, tolerance); + ASSERT_NEAR(-54.662854941964767, curviGrid->GetNode(2, 2).x, tolerance); + ASSERT_NEAR(-114.47739150129740, curviGrid->GetNode(2, 3).x, tolerance); + ASSERT_NEAR(-174.29192806063003, curviGrid->GetNode(2, 4).x, tolerance); + ASSERT_NEAR(-282.35846494548809, curviGrid->GetNode(2, 5).x, tolerance); + ASSERT_NEAR(-477.60157917913409, curviGrid->GetNode(2, 6).x, tolerance); + + ASSERT_NEAR(507.86555019683885, curviGrid->GetNode(2, 0).y, tolerance); + ASSERT_NEAR(541.25047181337595, curviGrid->GetNode(2, 1).y, tolerance); + ASSERT_NEAR(544.22653740080693, curviGrid->GetNode(2, 2).y, tolerance); + ASSERT_NEAR(552.15571117238005, curviGrid->GetNode(2, 3).y, tolerance); + ASSERT_NEAR(560.08488494395317, curviGrid->GetNode(2, 4).y, tolerance); + ASSERT_NEAR(574.41047198586193, curviGrid->GetNode(2, 5).y, tolerance); + ASSERT_NEAR(600.29241757154784, curviGrid->GetNode(2, 6).y, tolerance); } TEST(CurvilinearGridFromSplines, Compute_ThreeLongitudinalSplinesTwoCrossingSplines_ShouldComputeMesh) { @@ -921,63 +921,63 @@ TEST(CurvilinearGridFromSplines, Compute_ThreeLongitudinalSplinesTwoCrossingSpli ASSERT_EQ(curviGrid->GetNumEdges(), 518); const double tolerance = 1e-6; - ASSERT_NEAR(76628.277886551819, curviGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(76791.455599638575, curviGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(76954.811639895925, curviGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(77118.281322492985, curviGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(77281.800000000003, curviGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(77456.012786563486, curviGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(77630.227785337833, curviGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(77804.442019475464, curviGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(77978.652474172515, curviGrid->m_gridNodes(0, 8).x, tolerance); - - ASSERT_NEAR(371425.60232370096, curviGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(371436.18997859408, curviGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(371443.52950145339, curviGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(371447.61941049609, curviGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(371448.46000000002, curviGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(371449.35556399345, curviGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(371449.53230994282, curviGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(371448.98672684340, curviGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(371447.71609262202, curviGrid->m_gridNodes(0, 8).y, tolerance); - - ASSERT_NEAR(76662.032448408805, curviGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(76817.286847389085, curviGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(76972.714709055581, curviGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(77128.255737655345, curviGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(77283.849613552913, curviGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(77456.417295877734, curviGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(77628.979126778970, curviGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(77801.533934459163, curviGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(77974.080718107303, curviGrid->m_gridNodes(1, 8).x, tolerance); - - ASSERT_NEAR(371028.00333830336, curviGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(371038.07689532253, curviGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(371045.06020822527, curviGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(371048.95174731233, curviGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(371049.75159831985, curviGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(371050.63870543620, curviGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(371050.81377420085, curviGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(371050.27338789281, curviGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(371049.01488794532, curviGrid->m_gridNodes(1, 8).y, tolerance); - - ASSERT_NEAR(76696.427555678631, curviGrid->m_gridNodes(2, 0).x, tolerance); - ASSERT_NEAR(76845.029240917880, curviGrid->m_gridNodes(2, 1).x, tolerance); - ASSERT_NEAR(76993.806439139778, curviGrid->m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(77142.721409325459, curviGrid->m_gridNodes(2, 3).x, tolerance); - ASSERT_NEAR(77291.736508965405, curviGrid->m_gridNodes(2, 4).x, tolerance); - ASSERT_NEAR(77461.424214244718, curviGrid->m_gridNodes(2, 5).x, tolerance); - ASSERT_NEAR(77631.102117621107, curviGrid->m_gridNodes(2, 6).x, tolerance); - ASSERT_NEAR(77800.766971634963, curviGrid->m_gridNodes(2, 7).x, tolerance); - ASSERT_NEAR(77970.415790794781, curviGrid->m_gridNodes(2, 8).x, tolerance); - - ASSERT_NEAR(370641.72934693948, curviGrid->m_gridNodes(2, 0).y, tolerance); - ASSERT_NEAR(370652.41904621699, curviGrid->m_gridNodes(2, 1).y, tolerance); - ASSERT_NEAR(370660.58064652071, curviGrid->m_gridNodes(2, 2).y, tolerance); - ASSERT_NEAR(370666.20885042200, curviGrid->m_gridNodes(2, 3).y, tolerance); - ASSERT_NEAR(370669.29796934803, curviGrid->m_gridNodes(2, 4).y, tolerance); - ASSERT_NEAR(370672.81563637080, curviGrid->m_gridNodes(2, 5).y, tolerance); - ASSERT_NEAR(370675.06421111501, curviGrid->m_gridNodes(2, 6).y, tolerance); - ASSERT_NEAR(370676.02282016393, curviGrid->m_gridNodes(2, 7).y, tolerance); - ASSERT_NEAR(370675.67515379097, curviGrid->m_gridNodes(2, 8).y, tolerance); + ASSERT_NEAR(76628.277886551819, curviGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(76791.455599638575, curviGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(76954.811639895925, curviGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(77118.281322492985, curviGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(77281.800000000003, curviGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(77456.012786563486, curviGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(77630.227785337833, curviGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(77804.442019475464, curviGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(77978.652474172515, curviGrid->GetNode(0, 8).x, tolerance); + + ASSERT_NEAR(371425.60232370096, curviGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(371436.18997859408, curviGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(371443.52950145339, curviGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(371447.61941049609, curviGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(371448.46000000002, curviGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(371449.35556399345, curviGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(371449.53230994282, curviGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(371448.98672684340, curviGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(371447.71609262202, curviGrid->GetNode(0, 8).y, tolerance); + + ASSERT_NEAR(76662.032448408805, curviGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(76817.286847389085, curviGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(76972.714709055581, curviGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(77128.255737655345, curviGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(77283.849613552913, curviGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(77456.417295877734, curviGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(77628.979126778970, curviGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(77801.533934459163, curviGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(77974.080718107303, curviGrid->GetNode(1, 8).x, tolerance); + + ASSERT_NEAR(371028.00333830336, curviGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(371038.07689532253, curviGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(371045.06020822527, curviGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(371048.95174731233, curviGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(371049.75159831985, curviGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(371050.63870543620, curviGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(371050.81377420085, curviGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(371050.27338789281, curviGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(371049.01488794532, curviGrid->GetNode(1, 8).y, tolerance); + + ASSERT_NEAR(76696.427555678631, curviGrid->GetNode(2, 0).x, tolerance); + ASSERT_NEAR(76845.029240917880, curviGrid->GetNode(2, 1).x, tolerance); + ASSERT_NEAR(76993.806439139778, curviGrid->GetNode(2, 2).x, tolerance); + ASSERT_NEAR(77142.721409325459, curviGrid->GetNode(2, 3).x, tolerance); + ASSERT_NEAR(77291.736508965405, curviGrid->GetNode(2, 4).x, tolerance); + ASSERT_NEAR(77461.424214244718, curviGrid->GetNode(2, 5).x, tolerance); + ASSERT_NEAR(77631.102117621107, curviGrid->GetNode(2, 6).x, tolerance); + ASSERT_NEAR(77800.766971634963, curviGrid->GetNode(2, 7).x, tolerance); + ASSERT_NEAR(77970.415790794781, curviGrid->GetNode(2, 8).x, tolerance); + + ASSERT_NEAR(370641.72934693948, curviGrid->GetNode(2, 0).y, tolerance); + ASSERT_NEAR(370652.41904621699, curviGrid->GetNode(2, 1).y, tolerance); + ASSERT_NEAR(370660.58064652071, curviGrid->GetNode(2, 2).y, tolerance); + ASSERT_NEAR(370666.20885042200, curviGrid->GetNode(2, 3).y, tolerance); + ASSERT_NEAR(370669.29796934803, curviGrid->GetNode(2, 4).y, tolerance); + ASSERT_NEAR(370672.81563637080, curviGrid->GetNode(2, 5).y, tolerance); + ASSERT_NEAR(370675.06421111501, curviGrid->GetNode(2, 6).y, tolerance); + ASSERT_NEAR(370676.02282016393, curviGrid->GetNode(2, 7).y, tolerance); + ASSERT_NEAR(370675.67515379097, curviGrid->GetNode(2, 8).y, tolerance); } diff --git a/libs/MeshKernel/tests/src/CurvilinearGridFromSplinesTransfiniteTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridFromSplinesTransfiniteTests.cpp index 1f514e05f..692adab55 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridFromSplinesTransfiniteTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridFromSplinesTransfiniteTests.cpp @@ -73,53 +73,53 @@ TEST(CurvilinearGridFromSplinesTransfinite, FourSplines) // check the values constexpr double tolerance = 1e-6; - ASSERT_NEAR(244.84733455150598, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(240.03223719861575, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(235.21721587684686, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(230.40187707543339, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(225.58666038317327, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(220.77175891290770, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(215.95654192442103, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(211.14151904110099, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(206.32630377949152, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - ASSERT_NEAR(201.51108480926104, curvilinearGrid->m_gridNodes(0, 9).x, tolerance); - ASSERT_NEAR(196.69606411139034, curvilinearGrid->m_gridNodes(0, 10).x, tolerance); - - ASSERT_NEAR(10.946966348412502, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(16.292559955716278, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(21.638069155281958, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(26.983930812344244, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(32.329656907057121, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(37.675033050656793, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(43.020759474232527, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(48.366270407390992, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(53.711994913833436, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); - ASSERT_NEAR(59.057723537488684, curvilinearGrid->m_gridNodes(0, 9).y, tolerance); - ASSERT_NEAR(64.403232044419184, curvilinearGrid->m_gridNodes(0, 10).y, tolerance); - - ASSERT_NEAR(263.67028430842242, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(259.11363739326902, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(254.53691267796933, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(249.93698634609487, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(245.31456069699095, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(240.66785332275725, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(235.99933187522288, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(231.30940727936030, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(226.60252865287427, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - ASSERT_NEAR(221.88022520931327, curvilinearGrid->m_gridNodes(1, 9).x, tolerance); - ASSERT_NEAR(217.14743651601677, curvilinearGrid->m_gridNodes(1, 10).x, tolerance); - - ASSERT_NEAR(34.264668045745267, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(39.307546170495868, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(44.379080332661857, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(49.481517460105827, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(54.613111211730796, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(59.775023214376127, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(64.963841851929189, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(70.178519042215470, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(75.413628528250186, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); - ASSERT_NEAR(80.667056521594716, curvilinearGrid->m_gridNodes(1, 9).y, tolerance); - ASSERT_NEAR(85.932983124208747, curvilinearGrid->m_gridNodes(1, 10).y, tolerance); + ASSERT_NEAR(244.84733455150598, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(240.03223719861575, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(235.21721587684686, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(230.40187707543339, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(225.58666038317327, curvilinearGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(220.77175891290770, curvilinearGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(215.95654192442103, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(211.14151904110099, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(206.32630377949152, curvilinearGrid->GetNode(0, 8).x, tolerance); + ASSERT_NEAR(201.51108480926104, curvilinearGrid->GetNode(0, 9).x, tolerance); + ASSERT_NEAR(196.69606411139034, curvilinearGrid->GetNode(0, 10).x, tolerance); + + ASSERT_NEAR(10.946966348412502, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(16.292559955716278, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(21.638069155281958, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(26.983930812344244, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(32.329656907057121, curvilinearGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(37.675033050656793, curvilinearGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(43.020759474232527, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(48.366270407390992, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(53.711994913833436, curvilinearGrid->GetNode(0, 8).y, tolerance); + ASSERT_NEAR(59.057723537488684, curvilinearGrid->GetNode(0, 9).y, tolerance); + ASSERT_NEAR(64.403232044419184, curvilinearGrid->GetNode(0, 10).y, tolerance); + + ASSERT_NEAR(263.67028430842242, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(259.11363739326902, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(254.53691267796933, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(249.93698634609487, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(245.31456069699095, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(240.66785332275725, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(235.99933187522288, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(231.30940727936030, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(226.60252865287427, curvilinearGrid->GetNode(1, 8).x, tolerance); + ASSERT_NEAR(221.88022520931327, curvilinearGrid->GetNode(1, 9).x, tolerance); + ASSERT_NEAR(217.14743651601677, curvilinearGrid->GetNode(1, 10).x, tolerance); + + ASSERT_NEAR(34.264668045745267, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(39.307546170495868, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(44.379080332661857, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(49.481517460105827, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(54.613111211730796, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(59.775023214376127, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(64.963841851929189, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(70.178519042215470, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(75.413628528250186, curvilinearGrid->GetNode(1, 8).y, tolerance); + ASSERT_NEAR(80.667056521594716, curvilinearGrid->GetNode(1, 9).y, tolerance); + ASSERT_NEAR(85.932983124208747, curvilinearGrid->GetNode(1, 10).y, tolerance); } TEST(CurvilinearGridFromSplinesTransfinite, FourSplinesOneNSwapped) @@ -153,53 +153,53 @@ TEST(CurvilinearGridFromSplinesTransfinite, FourSplinesOneNSwapped) // check the values constexpr double tolerance = 1e-6; - ASSERT_NEAR(244.84733455150598, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(240.03223719861575, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(235.21721587684686, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(230.40187707543339, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(225.58666038317327, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(220.77175891290770, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(215.95654192442103, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(211.14151904110099, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(206.32630377949152, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - ASSERT_NEAR(201.51108480926104, curvilinearGrid->m_gridNodes(0, 9).x, tolerance); - ASSERT_NEAR(196.69606411139034, curvilinearGrid->m_gridNodes(0, 10).x, tolerance); - - ASSERT_NEAR(10.946966348412502, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(16.292559955716278, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(21.638069155281958, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(26.983930812344244, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(32.329656907057121, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(37.675033050656793, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(43.020759474232527, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(48.366270407390992, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(53.711994913833436, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); - ASSERT_NEAR(59.057723537488684, curvilinearGrid->m_gridNodes(0, 9).y, tolerance); - ASSERT_NEAR(64.403232044419184, curvilinearGrid->m_gridNodes(0, 10).y, tolerance); - - ASSERT_NEAR(263.67028430842242, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(259.11363739326902, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(254.53691267796933, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(249.93698634609487, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(245.31456069699095, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(240.66785332275725, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(235.99933187522288, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(231.30940727936030, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(226.60252865287427, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - ASSERT_NEAR(221.88022520931327, curvilinearGrid->m_gridNodes(1, 9).x, tolerance); - ASSERT_NEAR(217.14743651601677, curvilinearGrid->m_gridNodes(1, 10).x, tolerance); - - ASSERT_NEAR(34.264668045745267, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(39.307546170495868, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(44.379080332661857, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(49.481517460105827, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(54.613111211730796, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(59.775023214376127, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(64.963841851929189, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(70.178519042215470, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(75.413628528250186, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); - ASSERT_NEAR(80.667056521594716, curvilinearGrid->m_gridNodes(1, 9).y, tolerance); - ASSERT_NEAR(85.932983124208747, curvilinearGrid->m_gridNodes(1, 10).y, tolerance); + ASSERT_NEAR(244.84733455150598, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(240.03223719861575, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(235.21721587684686, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(230.40187707543339, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(225.58666038317327, curvilinearGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(220.77175891290770, curvilinearGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(215.95654192442103, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(211.14151904110099, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(206.32630377949152, curvilinearGrid->GetNode(0, 8).x, tolerance); + ASSERT_NEAR(201.51108480926104, curvilinearGrid->GetNode(0, 9).x, tolerance); + ASSERT_NEAR(196.69606411139034, curvilinearGrid->GetNode(0, 10).x, tolerance); + + ASSERT_NEAR(10.946966348412502, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(16.292559955716278, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(21.638069155281958, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(26.983930812344244, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(32.329656907057121, curvilinearGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(37.675033050656793, curvilinearGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(43.020759474232527, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(48.366270407390992, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(53.711994913833436, curvilinearGrid->GetNode(0, 8).y, tolerance); + ASSERT_NEAR(59.057723537488684, curvilinearGrid->GetNode(0, 9).y, tolerance); + ASSERT_NEAR(64.403232044419184, curvilinearGrid->GetNode(0, 10).y, tolerance); + + ASSERT_NEAR(263.67028430842242, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(259.11363739326902, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(254.53691267796933, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(249.93698634609487, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(245.31456069699095, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(240.66785332275725, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(235.99933187522288, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(231.30940727936030, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(226.60252865287427, curvilinearGrid->GetNode(1, 8).x, tolerance); + ASSERT_NEAR(221.88022520931327, curvilinearGrid->GetNode(1, 9).x, tolerance); + ASSERT_NEAR(217.14743651601677, curvilinearGrid->GetNode(1, 10).x, tolerance); + + ASSERT_NEAR(34.264668045745267, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(39.307546170495868, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(44.379080332661857, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(49.481517460105827, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(54.613111211730796, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(59.775023214376127, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(64.963841851929189, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(70.178519042215470, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(75.413628528250186, curvilinearGrid->GetNode(1, 8).y, tolerance); + ASSERT_NEAR(80.667056521594716, curvilinearGrid->GetNode(1, 9).y, tolerance); + ASSERT_NEAR(85.932983124208747, curvilinearGrid->GetNode(1, 10).y, tolerance); } TEST(CurvilinearGridFromSplinesTransfinite, FiveSplines) @@ -236,53 +236,53 @@ TEST(CurvilinearGridFromSplinesTransfinite, FiveSplines) const auto curvilinearGrid = curvilinearGridFromSplinesTransfinite.Compute(); constexpr double tolerance = 1e-6; - ASSERT_NEAR(244.84733455150598, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(240.03223719861575, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(235.21721587684686, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(230.40187707543339, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(225.58666038317327, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(220.77175891290770, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(215.95654192442103, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(211.14151904110099, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(206.32630377949152, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - ASSERT_NEAR(201.51108480926104, curvilinearGrid->m_gridNodes(0, 9).x, tolerance); - ASSERT_NEAR(196.69606411139034, curvilinearGrid->m_gridNodes(0, 10).x, tolerance); - - ASSERT_NEAR(10.946966348412502, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(16.292559955716278, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(21.638069155281958, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(26.983930812344244, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(32.329656907057121, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(37.675033050656793, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(43.020759474232527, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(48.366270407390992, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(53.711994913833436, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); - ASSERT_NEAR(59.057723537488684, curvilinearGrid->m_gridNodes(0, 9).y, tolerance); - ASSERT_NEAR(64.403232044419184, curvilinearGrid->m_gridNodes(0, 10).y, tolerance); - - ASSERT_NEAR(255.89614293923407, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(251.26839070344425, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(246.62717589518911, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(241.96945582856105, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(237.29374836322307, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(232.59945837385263, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(227.88656387177011, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(223.15709488341233, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(218.41314240105709, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - ASSERT_NEAR(213.65762819876193, curvilinearGrid->m_gridNodes(1, 9).x, tolerance); - ASSERT_NEAR(208.89353710816445, curvilinearGrid->m_gridNodes(1, 10).x, tolerance); - - ASSERT_NEAR(24.731736741118521, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(29.842940652626876, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(34.982267945763468, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(40.148526703963910, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(45.340177298582923, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(50.555639961868344, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(55.793467784299104, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(61.050433278839293, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(66.323655962424397, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); - ASSERT_NEAR(71.609593896396262, curvilinearGrid->m_gridNodes(1, 9).y, tolerance); - ASSERT_NEAR(76.904826220873304, curvilinearGrid->m_gridNodes(1, 10).y, tolerance); + ASSERT_NEAR(244.84733455150598, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(240.03223719861575, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(235.21721587684686, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(230.40187707543339, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(225.58666038317327, curvilinearGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(220.77175891290770, curvilinearGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(215.95654192442103, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(211.14151904110099, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(206.32630377949152, curvilinearGrid->GetNode(0, 8).x, tolerance); + ASSERT_NEAR(201.51108480926104, curvilinearGrid->GetNode(0, 9).x, tolerance); + ASSERT_NEAR(196.69606411139034, curvilinearGrid->GetNode(0, 10).x, tolerance); + + ASSERT_NEAR(10.946966348412502, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(16.292559955716278, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(21.638069155281958, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(26.983930812344244, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(32.329656907057121, curvilinearGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(37.675033050656793, curvilinearGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(43.020759474232527, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(48.366270407390992, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(53.711994913833436, curvilinearGrid->GetNode(0, 8).y, tolerance); + ASSERT_NEAR(59.057723537488684, curvilinearGrid->GetNode(0, 9).y, tolerance); + ASSERT_NEAR(64.403232044419184, curvilinearGrid->GetNode(0, 10).y, tolerance); + + ASSERT_NEAR(255.89614293923407, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(251.26839070344425, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(246.62717589518911, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(241.96945582856105, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(237.29374836322307, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(232.59945837385263, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(227.88656387177011, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(223.15709488341233, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(218.41314240105709, curvilinearGrid->GetNode(1, 8).x, tolerance); + ASSERT_NEAR(213.65762819876193, curvilinearGrid->GetNode(1, 9).x, tolerance); + ASSERT_NEAR(208.89353710816445, curvilinearGrid->GetNode(1, 10).x, tolerance); + + ASSERT_NEAR(24.731736741118521, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(29.842940652626876, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(34.982267945763468, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(40.148526703963910, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(45.340177298582923, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(50.555639961868344, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(55.793467784299104, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(61.050433278839293, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(66.323655962424397, curvilinearGrid->GetNode(1, 8).y, tolerance); + ASSERT_NEAR(71.609593896396262, curvilinearGrid->GetNode(1, 9).y, tolerance); + ASSERT_NEAR(76.904826220873304, curvilinearGrid->GetNode(1, 10).y, tolerance); } void TestCurvilinearGridFromSplines(const std::vector& firstSpline, diff --git a/libs/MeshKernel/tests/src/CurvilinearGridLineAttractionRepulsionTest.cpp b/libs/MeshKernel/tests/src/CurvilinearGridLineAttractionRepulsionTest.cpp index 844fd2340..ea22ba74c 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridLineAttractionRepulsionTest.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridLineAttractionRepulsionTest.cpp @@ -18,17 +18,17 @@ TEST(CurvilinearLineAttraction, Compute_OnMLine_ShouldAttractMLines) // Asserts constexpr double tolerance = 1e-6; - ASSERT_NEAR(80178.014482303217, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80266.910680413363, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80322.584162464715, curvilinearGrid->m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(80350.500795549306, curvilinearGrid->m_gridNodes(3, 2).x, tolerance); - ASSERT_NEAR(80362.879671417410, curvilinearGrid->m_gridNodes(4, 2).x, tolerance); - - ASSERT_NEAR(367069.60110549850, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(366937.57246542675, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366803.23746104678, curvilinearGrid->m_gridNodes(2, 2).y, tolerance); - ASSERT_NEAR(366683.98469820933, curvilinearGrid->m_gridNodes(3, 2).y, tolerance); - ASSERT_NEAR(366555.11052078847, curvilinearGrid->m_gridNodes(4, 2).y, tolerance); + ASSERT_NEAR(80178.014482303217, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80266.910680413363, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80322.584162464715, curvilinearGrid->GetNode(2, 2).x, tolerance); + ASSERT_NEAR(80350.500795549306, curvilinearGrid->GetNode(3, 2).x, tolerance); + ASSERT_NEAR(80362.879671417410, curvilinearGrid->GetNode(4, 2).x, tolerance); + + ASSERT_NEAR(367069.60110549850, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(366937.57246542675, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366803.23746104678, curvilinearGrid->GetNode(2, 2).y, tolerance); + ASSERT_NEAR(366683.98469820933, curvilinearGrid->GetNode(3, 2).y, tolerance); + ASSERT_NEAR(366555.11052078847, curvilinearGrid->GetNode(4, 2).y, tolerance); } TEST(CurvilinearLineAttraction, Compute_OnNLine_ShouldAttractNLines) @@ -45,17 +45,17 @@ TEST(CurvilinearLineAttraction, Compute_OnNLine_ShouldAttractNLines) // Asserts constexpr double tolerance = 1e-6; - ASSERT_NEAR(80145.970831448722, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80247.575117740766, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80292.449108019704, curvilinearGrid->m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(80316.537053694148, curvilinearGrid->m_gridNodes(3, 2).x, tolerance); - ASSERT_NEAR(80331.200564142913, curvilinearGrid->m_gridNodes(4, 2).x, tolerance); - - ASSERT_NEAR(367047.36276461056, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(366897.17707224732, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366792.50812354451, curvilinearGrid->m_gridNodes(2, 2).y, tolerance); - ASSERT_NEAR(366703.03776077798, curvilinearGrid->m_gridNodes(3, 2).y, tolerance); - ASSERT_NEAR(366552.40947499714, curvilinearGrid->m_gridNodes(4, 2).y, tolerance); + ASSERT_NEAR(80145.970831448722, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80247.575117740766, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80292.449108019704, curvilinearGrid->GetNode(2, 2).x, tolerance); + ASSERT_NEAR(80316.537053694148, curvilinearGrid->GetNode(3, 2).x, tolerance); + ASSERT_NEAR(80331.200564142913, curvilinearGrid->GetNode(4, 2).x, tolerance); + + ASSERT_NEAR(367047.36276461056, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(366897.17707224732, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366792.50812354451, curvilinearGrid->GetNode(2, 2).y, tolerance); + ASSERT_NEAR(366703.03776077798, curvilinearGrid->GetNode(3, 2).y, tolerance); + ASSERT_NEAR(366552.40947499714, curvilinearGrid->GetNode(4, 2).y, tolerance); } TEST(CurvilinearLineRepulsion, Compute_OnMLine_ShouldRepulseMLines) @@ -72,17 +72,17 @@ TEST(CurvilinearLineRepulsion, Compute_OnMLine_ShouldRepulseMLines) // Asserts const double tolerance = 1e-6; - ASSERT_NEAR(80113.927180594226, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80202.937709587452, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80262.314053574693, curvilinearGrid->m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(80290.291966405988, curvilinearGrid->m_gridNodes(3, 2).x, tolerance); - ASSERT_NEAR(80299.521456868417, curvilinearGrid->m_gridNodes(4, 2).x, tolerance); - - ASSERT_NEAR(367025.12442372262, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(366900.80385695840, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366781.77878604224, curvilinearGrid->m_gridNodes(2, 2).y, tolerance); - ASSERT_NEAR(366674.26710998092, curvilinearGrid->m_gridNodes(3, 2).y, tolerance); - ASSERT_NEAR(366549.70842920581, curvilinearGrid->m_gridNodes(4, 2).y, tolerance); + ASSERT_NEAR(80113.927180594226, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80202.937709587452, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80262.314053574693, curvilinearGrid->GetNode(2, 2).x, tolerance); + ASSERT_NEAR(80290.291966405988, curvilinearGrid->GetNode(3, 2).x, tolerance); + ASSERT_NEAR(80299.521456868417, curvilinearGrid->GetNode(4, 2).x, tolerance); + + ASSERT_NEAR(367025.12442372262, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(366900.80385695840, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366781.77878604224, curvilinearGrid->GetNode(2, 2).y, tolerance); + ASSERT_NEAR(366674.26710998092, curvilinearGrid->GetNode(3, 2).y, tolerance); + ASSERT_NEAR(366549.70842920581, curvilinearGrid->GetNode(4, 2).y, tolerance); } TEST(CurvilinearLineRepulsion, Compute_OnNLine_ShouldRepulseNLines) @@ -99,15 +99,15 @@ TEST(CurvilinearLineRepulsion, Compute_OnNLine_ShouldRepulseNLines) // Asserts const double tolerance = 1e-6; - ASSERT_NEAR(80145.970831448722, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80222.273272260049, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80292.449108019704, curvilinearGrid->m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(80324.255708261146, curvilinearGrid->m_gridNodes(3, 2).x, tolerance); - ASSERT_NEAR(80331.200564142913, curvilinearGrid->m_gridNodes(4, 2).x, tolerance); - - ASSERT_NEAR(367047.36276461056, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(366941.19925013784, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366792.50812354451, curvilinearGrid->m_gridNodes(2, 2).y, tolerance); - ASSERT_NEAR(366655.21404741227, curvilinearGrid->m_gridNodes(3, 2).y, tolerance); - ASSERT_NEAR(366552.40947499714, curvilinearGrid->m_gridNodes(4, 2).y, tolerance); + ASSERT_NEAR(80145.970831448722, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80222.273272260049, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80292.449108019704, curvilinearGrid->GetNode(2, 2).x, tolerance); + ASSERT_NEAR(80324.255708261146, curvilinearGrid->GetNode(3, 2).x, tolerance); + ASSERT_NEAR(80331.200564142913, curvilinearGrid->GetNode(4, 2).x, tolerance); + + ASSERT_NEAR(367047.36276461056, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(366941.19925013784, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366792.50812354451, curvilinearGrid->GetNode(2, 2).y, tolerance); + ASSERT_NEAR(366655.21404741227, curvilinearGrid->GetNode(3, 2).y, tolerance); + ASSERT_NEAR(366552.40947499714, curvilinearGrid->GetNode(4, 2).y, tolerance); } diff --git a/libs/MeshKernel/tests/src/CurvilinearGridLineMirrorTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridLineMirrorTests.cpp index 78e2d12cb..525778689 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridLineMirrorTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridLineMirrorTests.cpp @@ -8,26 +8,26 @@ TEST(CurvilinearLineMirror, Compute_LineMirrorOnLeftBoundary_ShouldCorrectlySumC { // Set-up const auto curvilinearGrid = MakeCurvilinearGrid(0.0, 0.0, 1.0, 2.0, 3, 2); - EXPECT_EQ(3, curvilinearGrid->m_gridNodes.rows()); - EXPECT_EQ(2, curvilinearGrid->m_gridNodes.cols()); + EXPECT_EQ(3, curvilinearGrid->NumM()); + EXPECT_EQ(2, curvilinearGrid->NumN()); constexpr double f = 1.2; meshkernel::CurvilinearGridLineMirror curvilinearLineMirror(*curvilinearGrid, f); curvilinearLineMirror.SetLine({0, 0}, {0, 2}); - const auto p0 = curvilinearGrid->m_gridNodes(0, 1); - const auto p1 = curvilinearGrid->m_gridNodes(1, 1); + const auto p0 = curvilinearGrid->GetNode(0, 1); + const auto p1 = curvilinearGrid->GetNode(1, 1); // Execute curvilinearLineMirror.Compute(); - EXPECT_EQ(4, curvilinearGrid->m_gridNodes.rows()); - EXPECT_EQ(2, curvilinearGrid->m_gridNodes.cols()); + EXPECT_EQ(4, curvilinearGrid->NumM()); + EXPECT_EQ(2, curvilinearGrid->NumN()); // Asserts constexpr double tolerance = 1e-6; const auto p_expected = (1 + f) * p0 + (-f) * p1; - const auto p_actual = curvilinearGrid->m_gridNodes(0, 1); + const auto p_actual = curvilinearGrid->GetNode(0, 1); ASSERT_TRUE(meshkernel::IsEqual(p_expected, p_actual, tolerance)); } @@ -35,26 +35,26 @@ TEST(CurvilinearLineMirror, Compute_LineMirrorOnRightBoundary_ShouldCorrectlySum { // Set-up const auto curvilinearGrid = MakeCurvilinearGrid(0.0, 0.0, 1.0, 2.0, 3, 2); - EXPECT_EQ(3, curvilinearGrid->m_gridNodes.rows()); - EXPECT_EQ(2, curvilinearGrid->m_gridNodes.cols()); + EXPECT_EQ(3, curvilinearGrid->NumM()); + EXPECT_EQ(2, curvilinearGrid->NumN()); constexpr double f = 1.2; meshkernel::CurvilinearGridLineMirror curvilinearLineMirror(*curvilinearGrid, f); curvilinearLineMirror.SetLine({2, 0}, {2, 2}); - const auto p0 = curvilinearGrid->m_gridNodes(2, 1); - const auto p1 = curvilinearGrid->m_gridNodes(1, 1); + const auto p0 = curvilinearGrid->GetNode(2, 1); + const auto p1 = curvilinearGrid->GetNode(1, 1); // Execute curvilinearLineMirror.Compute(); - EXPECT_EQ(4, curvilinearGrid->m_gridNodes.rows()); - EXPECT_EQ(2, curvilinearGrid->m_gridNodes.cols()); + EXPECT_EQ(4, curvilinearGrid->NumM()); + EXPECT_EQ(2, curvilinearGrid->NumN()); // Asserts constexpr double tolerance = 1e-6; const auto p_expected = (1 + f) * p0 + (-f) * p1; - const auto p_actual = curvilinearGrid->m_gridNodes(3, 1); + const auto p_actual = curvilinearGrid->GetNode(3, 1); ASSERT_TRUE(meshkernel::IsEqual(p_expected, p_actual, tolerance)); } @@ -70,17 +70,17 @@ TEST(CurvilinearLineMirror, Compute_LineMirrorOnBottomBoundary_ShouldAddFacesOnB // Asserts constexpr double tolerance = 1e-6; - ASSERT_NEAR(79885.972404917018, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(79945.113707304932, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(79997.648681153471, curvilinearGrid->m_gridNodes(2, 0).x, tolerance); - ASSERT_NEAR(80022.752290748060, curvilinearGrid->m_gridNodes(3, 0).x, tolerance); - ASSERT_NEAR(80049.721398047535, curvilinearGrid->m_gridNodes(4, 0).x, tolerance); - - ASSERT_NEAR(366871.50371491740, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(366772.69280839822, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(366659.31789138837, curvilinearGrid->m_gridNodes(2, 0).y, tolerance); - ASSERT_NEAR(366598.79661874950, curvilinearGrid->m_gridNodes(3, 0).y, tolerance); - ASSERT_NEAR(366516.53233619139, curvilinearGrid->m_gridNodes(4, 0).y, tolerance); + ASSERT_NEAR(79885.972404917018, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(79945.113707304932, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(79997.648681153471, curvilinearGrid->GetNode(2, 0).x, tolerance); + ASSERT_NEAR(80022.752290748060, curvilinearGrid->GetNode(3, 0).x, tolerance); + ASSERT_NEAR(80049.721398047535, curvilinearGrid->GetNode(4, 0).x, tolerance); + + ASSERT_NEAR(366871.50371491740, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(366772.69280839822, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(366659.31789138837, curvilinearGrid->GetNode(2, 0).y, tolerance); + ASSERT_NEAR(366598.79661874950, curvilinearGrid->GetNode(3, 0).y, tolerance); + ASSERT_NEAR(366516.53233619139, curvilinearGrid->GetNode(4, 0).y, tolerance); } TEST(CurvilinearLineMirror, Compute_LineMirrorOnBottomBoundaryWithZeroMirrowingFactor_ShouldNotAddFacesOnBottomBoundary) @@ -96,6 +96,7 @@ TEST(CurvilinearLineMirror, Compute_LineMirrorOnUpperBoundary_ShouldAddFacesOnUp { // Set-up const auto curvilinearGrid = MakeSmallCurvilinearGrid(); + ASSERT_EQ(9, curvilinearGrid->NumN()); meshkernel::CurvilinearGridLineMirror curvilinearLineMirror(*curvilinearGrid, 1.2); curvilinearLineMirror.SetLine({80960.2, 366520.7}, {80609.8, 367406.0}); @@ -103,19 +104,21 @@ TEST(CurvilinearLineMirror, Compute_LineMirrorOnUpperBoundary_ShouldAddFacesOnUp curvilinearLineMirror.Compute(); // Asserts + ASSERT_EQ(10, curvilinearGrid->NumN()); + constexpr double tolerance = 1e-6; - Eigen::Index const last = curvilinearGrid->m_gridNodes.cols() - 1; - ASSERT_NEAR(80703.065731618568, curvilinearGrid->m_gridNodes(0, last).x, tolerance); - ASSERT_NEAR(80878.447265919545, curvilinearGrid->m_gridNodes(1, last).x, tolerance); - ASSERT_NEAR(81010.674000571220, curvilinearGrid->m_gridNodes(2, last).x, tolerance); - ASSERT_NEAR(81097.939900259138, curvilinearGrid->m_gridNodes(3, last).x, tolerance); - ASSERT_NEAR(81096.681464918671, curvilinearGrid->m_gridNodes(4, last).x, tolerance); - - ASSERT_NEAR(367480.69596951915, curvilinearGrid->m_gridNodes(0, last).y, tolerance); - ASSERT_NEAR(367242.36746145069, curvilinearGrid->m_gridNodes(1, last).y, tolerance); - ASSERT_NEAR(367002.07900554762, curvilinearGrid->m_gridNodes(2, last).y, tolerance); - ASSERT_NEAR(366719.73488287395, curvilinearGrid->m_gridNodes(3, last).y, tolerance); - ASSERT_NEAR(366511.72792605805, curvilinearGrid->m_gridNodes(4, last).y, tolerance); + const auto last = (meshkernel::UInt)curvilinearGrid->NumN() - 1; + ASSERT_NEAR(80703.065731618568, curvilinearGrid->GetNode(0, last).x, tolerance); + ASSERT_NEAR(80878.447265919545, curvilinearGrid->GetNode(1, last).x, tolerance); + ASSERT_NEAR(81010.674000571220, curvilinearGrid->GetNode(2, last).x, tolerance); + ASSERT_NEAR(81097.939900259138, curvilinearGrid->GetNode(3, last).x, tolerance); + ASSERT_NEAR(81096.681464918671, curvilinearGrid->GetNode(4, last).x, tolerance); + + ASSERT_NEAR(367480.69596951915, curvilinearGrid->GetNode(0, last).y, tolerance); + ASSERT_NEAR(367242.36746145069, curvilinearGrid->GetNode(1, last).y, tolerance); + ASSERT_NEAR(367002.07900554762, curvilinearGrid->GetNode(2, last).y, tolerance); + ASSERT_NEAR(366719.73488287395, curvilinearGrid->GetNode(3, last).y, tolerance); + ASSERT_NEAR(366511.72792605805, curvilinearGrid->GetNode(4, last).y, tolerance); } TEST(CurvilinearLineMirror, Compute_LineMirrorOnLeftBoundary_ShouldAddFacesOnLeftBoundary) @@ -130,31 +133,32 @@ TEST(CurvilinearLineMirror, Compute_LineMirrorOnLeftBoundary_ShouldAddFacesOnLef // Asserts constexpr double tolerance = 1e-6; - ASSERT_NEAR(79899.555713630645, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(79970.016439946601, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(80039.226795186711, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80107.373974174203, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(80174.667394645265, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(80233.729789995661, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(80293.934851283411, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(80355.263363179940, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(80417.692693760589, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - - ASSERT_NEAR(367068.55540497036, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(367133.95424016198, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(367201.17228871223, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(367270.06081416988, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(367340.45903014857, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(367425.25311140029, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(367508.49440735363, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(367590.20902999706, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(367670.42773418076, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); + ASSERT_NEAR(79899.555713630645, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(79970.016439946601, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(80039.226795186711, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80107.373974174203, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(80174.667394645265, curvilinearGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(80233.729789995661, curvilinearGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(80293.934851283411, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(80355.263363179940, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(80417.692693760589, curvilinearGrid->GetNode(0, 8).x, tolerance); + + ASSERT_NEAR(367068.55540497036, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(367133.95424016198, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(367201.17228871223, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(367270.06081416988, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(367340.45903014857, curvilinearGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(367425.25311140029, curvilinearGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(367508.49440735363, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(367590.20902999706, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(367670.42773418076, curvilinearGrid->GetNode(0, 8).y, tolerance); } TEST(CurvilinearLineMirror, Compute_LineMirrorOnRightBoundary_ShouldAddFacesOnRightBoundary) { // Set-up const auto curvilinearGrid = MakeSmallCurvilinearGrid(); + ASSERT_EQ(5, curvilinearGrid->NumM()); meshkernel::CurvilinearGridLineMirror curvilinearLineMirror(*curvilinearGrid, 1.2); curvilinearLineMirror.SetLine({80155.8, 366529.5}, {80960.2, 366520.72}); @@ -162,6 +166,8 @@ TEST(CurvilinearLineMirror, Compute_LineMirrorOnRightBoundary_ShouldAddFacesOnRi curvilinearLineMirror.Compute(); // Asserts + ASSERT_EQ(6, curvilinearGrid->NumM()); + constexpr double tolerance = 1e-6; const std::vector expected{ {80180.468545087249, 366414.38889474329}, @@ -173,9 +179,9 @@ TEST(CurvilinearLineMirror, Compute_LineMirrorOnRightBoundary_ShouldAddFacesOnRi {80733.43286732884, 366326.7255580065}, {80846.495013789012, 366309.39825786441}, {80959.52970866223, 366287.90794878011}}; - Eigen::Index const last = curvilinearGrid->m_gridNodes.rows() - 1; + const auto last = curvilinearGrid->NumM() - 1; for (int i = 0; i < 9; ++i) { - EXPECT_TRUE(meshkernel::IsEqual(expected[i], curvilinearGrid->m_gridNodes(last, i), tolerance)); + EXPECT_TRUE(meshkernel::IsEqual(expected[i], curvilinearGrid->GetNode(last, i), tolerance)); } } diff --git a/libs/MeshKernel/tests/src/CurvilinearGridLineShiftTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridLineShiftTests.cpp index 11af2413f..9f7469d70 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridLineShiftTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridLineShiftTests.cpp @@ -19,45 +19,45 @@ TEST(CurvilinearLineShift, Compute_OnMGridlineShiftingOneNode_ShouldShiftLine) // Asserts const double tolerance = 1e-6; - ASSERT_NEAR(79872.000000000000, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(80010.039799507853, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(80145.970831448722, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80225.900042018140, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(80305.243756829266, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(80381.747982750283, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(80458.252208671300, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(80534.756434592317, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(80611.260660513333, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - - ASSERT_NEAR(79970.149644452977, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(80103.062377666603, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(80234.924195000407, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80324.671765221428, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(80414.057391982613, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(80505.096476712482, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(80595.183339827883, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(80684.333994102650, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(80772.567299473958, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - - ASSERT_NEAR(366876.00000000000, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(366959.82623907487, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(367047.36276461056, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(367104.62934968271, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(367163.01691965276, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(367224.10904462705, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(367285.20116960135, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(367346.29329457565, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(367407.38541954994, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); - - ASSERT_NEAR(366781.50715811126, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(366849.28921837400, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(366919.18816119258, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366966.76979594346, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(367015.14849423966, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(367056.48898898275, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(367099.12347147451, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(367143.03018172452, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(367188.18349069095, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); + ASSERT_NEAR(79872.000000000000, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(80010.039799507853, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(80145.970831448722, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80225.900042018140, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(80305.243756829266, curvilinearGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(80381.747982750283, curvilinearGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(80458.252208671300, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(80534.756434592317, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(80611.260660513333, curvilinearGrid->GetNode(0, 8).x, tolerance); + + ASSERT_NEAR(79970.149644452977, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(80103.062377666603, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(80234.924195000407, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80324.671765221428, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(80414.057391982613, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(80505.096476712482, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(80595.183339827883, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(80684.333994102650, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(80772.567299473958, curvilinearGrid->GetNode(1, 8).x, tolerance); + + ASSERT_NEAR(366876.00000000000, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(366959.82623907487, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(367047.36276461056, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(367104.62934968271, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(367163.01691965276, curvilinearGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(367224.10904462705, curvilinearGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(367285.20116960135, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(367346.29329457565, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(367407.38541954994, curvilinearGrid->GetNode(0, 8).y, tolerance); + + ASSERT_NEAR(366781.50715811126, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(366849.28921837400, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(366919.18816119258, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366966.76979594346, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(367015.14849423966, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(367056.48898898275, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(367099.12347147451, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(367143.03018172452, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(367188.18349069095, curvilinearGrid->GetNode(1, 8).y, tolerance); } TEST(CurvilinearLineShift, Compute_OnMGridlineShiftingTwoNodes_ShouldShiftLine) @@ -78,43 +78,43 @@ TEST(CurvilinearLineShift, Compute_OnMGridlineShiftingTwoNodes_ShouldShiftLine) // Asserts const double tolerance = 1e-6; - ASSERT_NEAR(79872.000000000000, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(80010.039799507853, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(80145.970831448722, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80225.900042018140, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(80305.243756829266, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(80381.747982750283, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(80458.252208671300, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(80534.756434592317, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(80611.260660513333, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - - ASSERT_NEAR(79932.000000000000, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(80084.035373914361, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(80234.924195000407, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80324.671765221428, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(80414.057391982613, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(80505.096476712482, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(80595.183339827883, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(80684.333994102650, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(80772.567299473958, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - - ASSERT_NEAR(366876.00000000000, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(366959.82623907487, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(367047.36276461056, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(367104.62934968271, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(367163.01691965276, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(367224.10904462705, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(367285.20116960135, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(367346.29329457565, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(367407.38541954994, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); - - ASSERT_NEAR(366773.00000000000, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(366844.82660636236, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(366919.18816119258, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366966.76979594346, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(367015.14849423966, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(367056.48898898275, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(367099.12347147451, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(367143.03018172452, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(367188.18349069095, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); + ASSERT_NEAR(79872.000000000000, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(80010.039799507853, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(80145.970831448722, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80225.900042018140, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(80305.243756829266, curvilinearGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(80381.747982750283, curvilinearGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(80458.252208671300, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(80534.756434592317, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(80611.260660513333, curvilinearGrid->GetNode(0, 8).x, tolerance); + + ASSERT_NEAR(79932.000000000000, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(80084.035373914361, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(80234.924195000407, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80324.671765221428, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(80414.057391982613, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(80505.096476712482, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(80595.183339827883, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(80684.333994102650, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(80772.567299473958, curvilinearGrid->GetNode(1, 8).x, tolerance); + + ASSERT_NEAR(366876.00000000000, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(366959.82623907487, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(367047.36276461056, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(367104.62934968271, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(367163.01691965276, curvilinearGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(367224.10904462705, curvilinearGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(367285.20116960135, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(367346.29329457565, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(367407.38541954994, curvilinearGrid->GetNode(0, 8).y, tolerance); + + ASSERT_NEAR(366773.00000000000, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(366844.82660636236, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(366919.18816119258, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366966.76979594346, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(367015.14849423966, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(367056.48898898275, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(367099.12347147451, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(367143.03018172452, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(367188.18349069095, curvilinearGrid->GetNode(1, 8).y, tolerance); } diff --git a/libs/MeshKernel/tests/src/CurvilinearGridOrthogonalizationTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridOrthogonalizationTests.cpp index 639b00a6a..93e0823e3 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridOrthogonalizationTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridOrthogonalizationTests.cpp @@ -36,8 +36,8 @@ TEST(CurvilinearGridOrthogonalization, Compute_OnStronglyNonOrthogonalCurvilinea // Assert the moved nodes has moved towards its original location, making the grid more orthogonal constexpr double tolerance = 1e-6; - ASSERT_NEAR(11.841396536135521, curvilinearGrid.m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(18.158586078094562, curvilinearGrid.m_gridNodes(1, 2).y, tolerance); + ASSERT_NEAR(11.841396536135521, curvilinearGrid.GetNode(1, 2).x, tolerance); + ASSERT_NEAR(18.158586078094562, curvilinearGrid.GetNode(1, 2).y, tolerance); } TEST(CurvilinearGridOrthogonalization, Compute_OnOrthogonalCurvilinearGrid_ShouldNotModifyGrid) @@ -65,45 +65,45 @@ TEST(CurvilinearGridOrthogonalization, Compute_OnOrthogonalCurvilinearGrid_Shoul // Assert nodes are on the same location because the grid is already orthogonal constexpr double tolerance = 1e-6; - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 3).x, tolerance); - - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 3).x, tolerance); - - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(2, 0).x, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(2, 1).x, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(2, 3).x, tolerance); - - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 0).x, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 1).x, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 2).x, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 3).x, tolerance); - - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(0, 3).y, tolerance); - - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(1, 3).y, tolerance); - - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(2, 0).y, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(2, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(2, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(2, 3).y, tolerance); - - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(3, 0).y, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(3, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(3, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 3).y, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 0).x, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 1).x, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 2).x, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 3).x, tolerance); + + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 0).x, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 1).x, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 2).x, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 3).x, tolerance); + + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(2, 0).x, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(2, 1).x, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(2, 2).x, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(2, 3).x, tolerance); + + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 0).x, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 1).x, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 2).x, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 3).x, tolerance); + + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 0).y, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(0, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(0, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(0, 3).y, tolerance); + + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(1, 0).y, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(1, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(1, 3).y, tolerance); + + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(2, 0).y, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(2, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(2, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(2, 3).y, tolerance); + + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(3, 0).y, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(3, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(3, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 3).y, tolerance); } TEST(CurvilinearGridOrthogonalization, Compute_OnONonOrthogonalCurvilinearGrid_ShouldOrthogonalizeGrid) @@ -124,45 +124,45 @@ TEST(CurvilinearGridOrthogonalization, Compute_OnONonOrthogonalCurvilinearGrid_S // Assert constexpr double tolerance = 1e-6; - ASSERT_NEAR(79983.796374595549, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(80067.930920933941, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(80150.164245250286, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80231.651392830841, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(80312.801762204603, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(80390.860703898958, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(80466.956631008565, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(80540.510527743099, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(80611.260660513333, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - - ASSERT_NEAR(80056.139417226193, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(80143.392341684361, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(80232.701973556381, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80323.273756955823, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(80415.126141636414, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(80506.879117047443, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(80595.173874885382, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(80680.093103208215, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(80761.372120477128, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - - ASSERT_NEAR(366936.89538054139, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(366993.16520344437, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(367050.33461904334, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(367108.77222890750, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(367168.86295006215, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(367231.44573248079, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(367292.13654755038, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(367350.89140520856, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(367407.38541954994, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); - - ASSERT_NEAR(366823.20595668437, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(366869.41001402331, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(366915.26601702173, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366961.36595671845, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(367008.20690690872, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(367056.34885035310, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(367105.00611276925, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(367154.47604494903, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(367204.88319783867, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); + ASSERT_NEAR(79983.796374595549, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(80067.930920933941, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(80150.164245250286, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80231.651392830841, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(80312.801762204603, curvilinearGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(80390.860703898958, curvilinearGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(80466.956631008565, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(80540.510527743099, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(80611.260660513333, curvilinearGrid->GetNode(0, 8).x, tolerance); + + ASSERT_NEAR(80056.139417226193, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(80143.392341684361, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(80232.701973556381, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80323.273756955823, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(80415.126141636414, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(80506.879117047443, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(80595.173874885382, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(80680.093103208215, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(80761.372120477128, curvilinearGrid->GetNode(1, 8).x, tolerance); + + ASSERT_NEAR(366936.89538054139, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(366993.16520344437, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(367050.33461904334, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(367108.77222890750, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(367168.86295006215, curvilinearGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(367231.44573248079, curvilinearGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(367292.13654755038, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(367350.89140520856, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(367407.38541954994, curvilinearGrid->GetNode(0, 8).y, tolerance); + + ASSERT_NEAR(366823.20595668437, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(366869.41001402331, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(366915.26601702173, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366961.36595671845, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(367008.20690690872, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(367056.34885035310, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(367105.00611276925, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(367154.47604494903, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(367204.88319783867, curvilinearGrid->GetNode(1, 8).y, tolerance); } TEST(CurvilinearGridOrthogonalization, Compute_OnONonOrthogonalCurvilinearGridWithMissingElements_ShouldOrthogonalizeGrid) @@ -184,65 +184,65 @@ TEST(CurvilinearGridOrthogonalization, Compute_OnONonOrthogonalCurvilinearGridWi // Assert constexpr double tolerance = 1e-6; - EXPECT_NEAR(79983.796374595549, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - EXPECT_NEAR(80069.224277354806, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - EXPECT_NEAR(80152.817263131525, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - EXPECT_NEAR(80235.609244143387, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - EXPECT_NEAR(80317.466702245743, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - EXPECT_NEAR(80395.149908970227, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - EXPECT_NEAR(80470.021886679329, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - EXPECT_NEAR(80542.049673235932, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - EXPECT_NEAR(80611.260660513333, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - - EXPECT_NEAR(80055.199856352847, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - EXPECT_NEAR(80143.721071059583, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - EXPECT_NEAR(80234.545379411153, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - EXPECT_NEAR(80326.293574499403, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - EXPECT_NEAR(80418.809428865279, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - EXPECT_NEAR(80510.299874655640, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - EXPECT_NEAR(80597.036324757821, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - EXPECT_NEAR(80680.228401363493, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - EXPECT_NEAR(80759.822363775238, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - - EXPECT_NEAR(80104.514488846587, curvilinearGrid->m_gridNodes(2, 0).x, tolerance); - EXPECT_NEAR(80197.383420613070, curvilinearGrid->m_gridNodes(2, 1).x, tolerance); - EXPECT_NEAR(80292.449108019704, curvilinearGrid->m_gridNodes(2, 2).x, tolerance); - EXPECT_NEAR(80387.175475807715, curvilinearGrid->m_gridNodes(2, 3).x, tolerance); - EXPECT_NEAR(80480.608251576487, curvilinearGrid->m_gridNodes(2, 4).x, tolerance); - EXPECT_NEAR(80583.120607369667, curvilinearGrid->m_gridNodes(2, 5).x, tolerance); - EXPECT_NEAR(80682.512780448465, curvilinearGrid->m_gridNodes(2, 6).x, tolerance); - EXPECT_NEAR(80780.894620879248, curvilinearGrid->m_gridNodes(2, 7).x, tolerance); - EXPECT_NEAR(80877.580909293247, curvilinearGrid->m_gridNodes(2, 8).x, tolerance); - - EXPECT_NEAR(366936.89538054139, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - EXPECT_NEAR(366994.04511051433, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - EXPECT_NEAR(367052.21760805714, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - EXPECT_NEAR(367111.62432093697, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - EXPECT_NEAR(367172.50484630122, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - EXPECT_NEAR(367234.88964184484, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - EXPECT_NEAR(367294.58040378935, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - EXPECT_NEAR(367352.12121038162, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - EXPECT_NEAR(367407.38541954994, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); - - EXPECT_NEAR(366824.95581170503, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - EXPECT_NEAR(366871.97091034410, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - EXPECT_NEAR(366918.90326042997, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - EXPECT_NEAR(366966.74273245712, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - EXPECT_NEAR(367014.95754932362, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - EXPECT_NEAR(367062.00790467981, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - EXPECT_NEAR(367109.50790550862, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - EXPECT_NEAR(367157.80620957806, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - EXPECT_NEAR(367207.16259613103, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); - - EXPECT_NEAR(366718.00768776325, curvilinearGrid->m_gridNodes(2, 0).y, tolerance); - EXPECT_NEAR(366755.34794646013, curvilinearGrid->m_gridNodes(2, 1).y, tolerance); - EXPECT_NEAR(366792.50812354451, curvilinearGrid->m_gridNodes(2, 2).y, tolerance); - EXPECT_NEAR(366832.52615748829, curvilinearGrid->m_gridNodes(2, 3).y, tolerance); - EXPECT_NEAR(366870.46128228144, curvilinearGrid->m_gridNodes(2, 4).y, tolerance); - EXPECT_NEAR(366891.62363194284, curvilinearGrid->m_gridNodes(2, 5).y, tolerance); - EXPECT_NEAR(366923.14004067366, curvilinearGrid->m_gridNodes(2, 6).y, tolerance); - EXPECT_NEAR(366957.61329611664, curvilinearGrid->m_gridNodes(2, 7).y, tolerance); - EXPECT_NEAR(366996.07892524434, curvilinearGrid->m_gridNodes(2, 8).y, tolerance); + EXPECT_NEAR(79983.796374595549, curvilinearGrid->GetNode(0, 0).x, tolerance); + EXPECT_NEAR(80069.224277354806, curvilinearGrid->GetNode(0, 1).x, tolerance); + EXPECT_NEAR(80152.817263131525, curvilinearGrid->GetNode(0, 2).x, tolerance); + EXPECT_NEAR(80235.609244143387, curvilinearGrid->GetNode(0, 3).x, tolerance); + EXPECT_NEAR(80317.466702245743, curvilinearGrid->GetNode(0, 4).x, tolerance); + EXPECT_NEAR(80395.149908970227, curvilinearGrid->GetNode(0, 5).x, tolerance); + EXPECT_NEAR(80470.021886679329, curvilinearGrid->GetNode(0, 6).x, tolerance); + EXPECT_NEAR(80542.049673235932, curvilinearGrid->GetNode(0, 7).x, tolerance); + EXPECT_NEAR(80611.260660513333, curvilinearGrid->GetNode(0, 8).x, tolerance); + + EXPECT_NEAR(80055.199856352847, curvilinearGrid->GetNode(1, 0).x, tolerance); + EXPECT_NEAR(80143.721071059583, curvilinearGrid->GetNode(1, 1).x, tolerance); + EXPECT_NEAR(80234.545379411153, curvilinearGrid->GetNode(1, 2).x, tolerance); + EXPECT_NEAR(80326.293574499403, curvilinearGrid->GetNode(1, 3).x, tolerance); + EXPECT_NEAR(80418.809428865279, curvilinearGrid->GetNode(1, 4).x, tolerance); + EXPECT_NEAR(80510.299874655640, curvilinearGrid->GetNode(1, 5).x, tolerance); + EXPECT_NEAR(80597.036324757821, curvilinearGrid->GetNode(1, 6).x, tolerance); + EXPECT_NEAR(80680.228401363493, curvilinearGrid->GetNode(1, 7).x, tolerance); + EXPECT_NEAR(80759.822363775238, curvilinearGrid->GetNode(1, 8).x, tolerance); + + EXPECT_NEAR(80104.514488846587, curvilinearGrid->GetNode(2, 0).x, tolerance); + EXPECT_NEAR(80197.383420613070, curvilinearGrid->GetNode(2, 1).x, tolerance); + EXPECT_NEAR(80292.449108019704, curvilinearGrid->GetNode(2, 2).x, tolerance); + EXPECT_NEAR(80387.175475807715, curvilinearGrid->GetNode(2, 3).x, tolerance); + EXPECT_NEAR(80480.608251576487, curvilinearGrid->GetNode(2, 4).x, tolerance); + EXPECT_NEAR(80583.120607369667, curvilinearGrid->GetNode(2, 5).x, tolerance); + EXPECT_NEAR(80682.512780448465, curvilinearGrid->GetNode(2, 6).x, tolerance); + EXPECT_NEAR(80780.894620879248, curvilinearGrid->GetNode(2, 7).x, tolerance); + EXPECT_NEAR(80877.580909293247, curvilinearGrid->GetNode(2, 8).x, tolerance); + + EXPECT_NEAR(366936.89538054139, curvilinearGrid->GetNode(0, 0).y, tolerance); + EXPECT_NEAR(366994.04511051433, curvilinearGrid->GetNode(0, 1).y, tolerance); + EXPECT_NEAR(367052.21760805714, curvilinearGrid->GetNode(0, 2).y, tolerance); + EXPECT_NEAR(367111.62432093697, curvilinearGrid->GetNode(0, 3).y, tolerance); + EXPECT_NEAR(367172.50484630122, curvilinearGrid->GetNode(0, 4).y, tolerance); + EXPECT_NEAR(367234.88964184484, curvilinearGrid->GetNode(0, 5).y, tolerance); + EXPECT_NEAR(367294.58040378935, curvilinearGrid->GetNode(0, 6).y, tolerance); + EXPECT_NEAR(367352.12121038162, curvilinearGrid->GetNode(0, 7).y, tolerance); + EXPECT_NEAR(367407.38541954994, curvilinearGrid->GetNode(0, 8).y, tolerance); + + EXPECT_NEAR(366824.95581170503, curvilinearGrid->GetNode(1, 0).y, tolerance); + EXPECT_NEAR(366871.97091034410, curvilinearGrid->GetNode(1, 1).y, tolerance); + EXPECT_NEAR(366918.90326042997, curvilinearGrid->GetNode(1, 2).y, tolerance); + EXPECT_NEAR(366966.74273245712, curvilinearGrid->GetNode(1, 3).y, tolerance); + EXPECT_NEAR(367014.95754932362, curvilinearGrid->GetNode(1, 4).y, tolerance); + EXPECT_NEAR(367062.00790467981, curvilinearGrid->GetNode(1, 5).y, tolerance); + EXPECT_NEAR(367109.50790550862, curvilinearGrid->GetNode(1, 6).y, tolerance); + EXPECT_NEAR(367157.80620957806, curvilinearGrid->GetNode(1, 7).y, tolerance); + EXPECT_NEAR(367207.16259613103, curvilinearGrid->GetNode(1, 8).y, tolerance); + + EXPECT_NEAR(366718.00768776325, curvilinearGrid->GetNode(2, 0).y, tolerance); + EXPECT_NEAR(366755.34794646013, curvilinearGrid->GetNode(2, 1).y, tolerance); + EXPECT_NEAR(366792.50812354451, curvilinearGrid->GetNode(2, 2).y, tolerance); + EXPECT_NEAR(366832.52615748829, curvilinearGrid->GetNode(2, 3).y, tolerance); + EXPECT_NEAR(366870.46128228144, curvilinearGrid->GetNode(2, 4).y, tolerance); + EXPECT_NEAR(366891.62363194284, curvilinearGrid->GetNode(2, 5).y, tolerance); + EXPECT_NEAR(366923.14004067366, curvilinearGrid->GetNode(2, 6).y, tolerance); + EXPECT_NEAR(366957.61329611664, curvilinearGrid->GetNode(2, 7).y, tolerance); + EXPECT_NEAR(366996.07892524434, curvilinearGrid->GetNode(2, 8).y, tolerance); } TEST(CurvilinearGridOrthogonalization, SetFrozenLine_OnONonOrthogonalGrid_WithCrossingFrozenLines_ShouldThrowAnStdException) @@ -283,43 +283,43 @@ TEST(CurvilinearGridOrthogonalization, Compute_OnONonOrthogonalCurvilinearGridWi // Assert constexpr double tolerance = 1e-6; - ASSERT_NEAR(79983.796374595549, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(80069.479272425073, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(80153.235772058310, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80234.211288098682, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(80314.661153602894, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(80392.150195938390, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(80467.771942028790, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(80540.898431866168, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(80611.260660513333, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - - ASSERT_NEAR(80055.196755132944, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(80143.960692327732, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(80234.924195000407, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80324.849820521486, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(80416.240608373060, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(80507.596543850144, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(80595.526594976516, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(80680.087189144266, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(80760.998582117099, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - - ASSERT_NEAR(366936.89538054139, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(366994.21866791911, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(367052.51483841456, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(367110.61675055756, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(367170.31164987158, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(367232.48168405943, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(367292.78650072071, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(367351.20135266299, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(367407.38541954994, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); - - ASSERT_NEAR(366824.96156769694, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(366872.12740536616, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(366919.18816119258, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366964.42115637776, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(367010.41102564143, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(367057.91817534604, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(367106.12547266396, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(367155.26906854485, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(367205.43327878905, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); + ASSERT_NEAR(79983.796374595549, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(80069.479272425073, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(80153.235772058310, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80234.211288098682, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(80314.661153602894, curvilinearGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(80392.150195938390, curvilinearGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(80467.771942028790, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(80540.898431866168, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(80611.260660513333, curvilinearGrid->GetNode(0, 8).x, tolerance); + + ASSERT_NEAR(80055.196755132944, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(80143.960692327732, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(80234.924195000407, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80324.849820521486, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(80416.240608373060, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(80507.596543850144, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(80595.526594976516, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(80680.087189144266, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(80760.998582117099, curvilinearGrid->GetNode(1, 8).x, tolerance); + + ASSERT_NEAR(366936.89538054139, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(366994.21866791911, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(367052.51483841456, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(367110.61675055756, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(367170.31164987158, curvilinearGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(367232.48168405943, curvilinearGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(367292.78650072071, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(367351.20135266299, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(367407.38541954994, curvilinearGrid->GetNode(0, 8).y, tolerance); + + ASSERT_NEAR(366824.96156769694, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(366872.12740536616, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(366919.18816119258, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366964.42115637776, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(367010.41102564143, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(367057.91817534604, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(367106.12547266396, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(367155.26906854485, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(367205.43327878905, curvilinearGrid->GetNode(1, 8).y, tolerance); } diff --git a/libs/MeshKernel/tests/src/CurvilinearGridRectangularTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridRectangularTests.cpp index 6c7de21ac..cc5146463 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridRectangularTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridRectangularTests.cpp @@ -129,13 +129,13 @@ TEST(CurvilinearGridUniformCurvilinearGridUniform, InsertFace_OnBottomLeft_Shoul // Assert the new coordinates constexpr double tolerance = 1e-12; - ASSERT_NEAR(79913.595823791460, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(79985.899758176762, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(-999.00000000000000, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); + ASSERT_NEAR(79913.595823791460, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(79985.899758176762, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(-999.00000000000000, curvilinearGrid->GetNode(0, 2).x, tolerance); - ASSERT_NEAR(367046.61206756550, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(367110.19327267300, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(-999.0000000000000, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); + ASSERT_NEAR(367046.61206756550, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(367110.19327267300, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(-999.0000000000000, curvilinearGrid->GetNode(0, 2).y, tolerance); } TEST(CurvilinearGridUniform, InsertFace_OnBottomRight_ShouldInsertFace) @@ -148,13 +148,13 @@ TEST(CurvilinearGridUniform, InsertFace_OnBottomRight_ShouldInsertFace) // Assert the new coordinates constexpr double tolerance = 1e-12; - ASSERT_NEAR(80176.237835892549, curvilinearGrid->m_gridNodes(5, 0).x, tolerance); - ASSERT_NEAR(80259.193944680519, curvilinearGrid->m_gridNodes(5, 1).x, tolerance); - ASSERT_NEAR(-999.0000000000000, curvilinearGrid->m_gridNodes(5, 2).x, tolerance); + ASSERT_NEAR(80176.237835892549, curvilinearGrid->GetNode(5, 0).x, tolerance); + ASSERT_NEAR(80259.193944680519, curvilinearGrid->GetNode(5, 1).x, tolerance); + ASSERT_NEAR(-999.0000000000000, curvilinearGrid->GetNode(5, 2).x, tolerance); - ASSERT_NEAR(366433.98982542212, curvilinearGrid->m_gridNodes(5, 0).y, tolerance); - ASSERT_NEAR(366433.75796857959, curvilinearGrid->m_gridNodes(5, 1).y, tolerance); - ASSERT_NEAR(-999.0000000000000, curvilinearGrid->m_gridNodes(5, 2).y, tolerance); + ASSERT_NEAR(366433.98982542212, curvilinearGrid->GetNode(5, 0).y, tolerance); + ASSERT_NEAR(366433.75796857959, curvilinearGrid->GetNode(5, 1).y, tolerance); + ASSERT_NEAR(-999.0000000000000, curvilinearGrid->GetNode(5, 2).y, tolerance); } TEST(CurvilinearGridUniform, InsertFace_OnTopLeft_ShouldInsertFace) @@ -167,13 +167,13 @@ TEST(CurvilinearGridUniform, InsertFace_OnTopLeft_ShouldInsertFace) // Assert the new coordinates constexpr double tolerance = 1e-12; - ASSERT_NEAR(-999.0000000000000, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(80385.178875081983, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(80449.954021552709, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); + ASSERT_NEAR(-999.0000000000000, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(80385.178875081983, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(80449.954021552709, curvilinearGrid->GetNode(0, 8).x, tolerance); - ASSERT_NEAR(-999.0000000000000, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(367549.55640742677, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(367626.58734840894, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); + ASSERT_NEAR(-999.0000000000000, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(367549.55640742677, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(367626.58734840894, curvilinearGrid->GetNode(0, 8).y, tolerance); } TEST(CurvilinearGridUniform, InsertFace_OnTopRight_ShouldInsertFace) @@ -186,13 +186,13 @@ TEST(CurvilinearGridUniform, InsertFace_OnTopRight_ShouldInsertFace) // Assert the new coordinates constexpr double tolerance = 1e-12; - ASSERT_NEAR(-999.0000000000000, curvilinearGrid->m_gridNodes(5, 6).x, tolerance); - ASSERT_NEAR(80846.719054016474, curvilinearGrid->m_gridNodes(5, 7).x, tolerance); - ASSERT_NEAR(80959.766315635425, curvilinearGrid->m_gridNodes(5, 8).x, tolerance); + ASSERT_NEAR(-999.0000000000000, curvilinearGrid->GetNode(5, 6).x, tolerance); + ASSERT_NEAR(80846.719054016474, curvilinearGrid->GetNode(5, 7).x, tolerance); + ASSERT_NEAR(80959.766315635425, curvilinearGrid->GetNode(5, 8).x, tolerance); - ASSERT_NEAR(-999.0000000000000, curvilinearGrid->m_gridNodes(5, 6).y, tolerance); - ASSERT_NEAR(366346.42989900074, curvilinearGrid->m_gridNodes(5, 7).y, tolerance); - ASSERT_NEAR(366327.01674911042, curvilinearGrid->m_gridNodes(5, 8).y, tolerance); + ASSERT_NEAR(-999.0000000000000, curvilinearGrid->GetNode(5, 6).y, tolerance); + ASSERT_NEAR(366346.42989900074, curvilinearGrid->GetNode(5, 7).y, tolerance); + ASSERT_NEAR(366327.01674911042, curvilinearGrid->GetNode(5, 8).y, tolerance); } TEST(CurvilinearGridUniform, InsertFace_OnGridWithHoles_ShouldInsertFace) @@ -205,25 +205,25 @@ TEST(CurvilinearGridUniform, InsertFace_OnGridWithHoles_ShouldInsertFace) // Assert the new coordinates constexpr double tolerance = 1e-12; - ASSERT_NEAR(80133.930743945661, curvilinearGrid->m_gridNodes(3, 0).x, tolerance); - ASSERT_NEAR(80226.579454943669, curvilinearGrid->m_gridNodes(3, 1).x, tolerance); - ASSERT_NEAR(80320.396380977647, curvilinearGrid->m_gridNodes(3, 2).x, tolerance); - ASSERT_NEAR(80447.108241179725, curvilinearGrid->m_gridNodes(3, 3).x, tolerance); - ASSERT_NEAR(80545.663179203286, curvilinearGrid->m_gridNodes(3, 4).x, tolerance); - ASSERT_NEAR(80623.151266424975, curvilinearGrid->m_gridNodes(3, 5).x, tolerance); - ASSERT_NEAR(80735.800935924854, curvilinearGrid->m_gridNodes(3, 6).x, tolerance); - ASSERT_NEAR(80848.959456291268, curvilinearGrid->m_gridNodes(3, 7).x, tolerance); - ASSERT_NEAR(80962.132385367571, curvilinearGrid->m_gridNodes(3, 8).x, tolerance); - - ASSERT_NEAR(366629.99913221149, curvilinearGrid->m_gridNodes(3, 0).y, tolerance); - ASSERT_NEAR(366656.00122676318, curvilinearGrid->m_gridNodes(3, 1).y, tolerance); - ASSERT_NEAR(366679.12590409513, curvilinearGrid->m_gridNodes(3, 2).y, tolerance); - ASSERT_NEAR(366697.14301043766, curvilinearGrid->m_gridNodes(3, 3).y, tolerance); - ASSERT_NEAR(366725.32926280121, curvilinearGrid->m_gridNodes(3, 4).y, tolerance); - ASSERT_NEAR(366718.43748113938, curvilinearGrid->m_gridNodes(3, 5).y, tolerance); - ASSERT_NEAR(366717.43216295895, curvilinearGrid->m_gridNodes(3, 6).y, tolerance); - ASSERT_NEAR(366716.74631036510, curvilinearGrid->m_gridNodes(3, 7).y, tolerance); - ASSERT_NEAR(366718.10475241451, curvilinearGrid->m_gridNodes(3, 8).y, tolerance); + ASSERT_NEAR(80133.930743945661, curvilinearGrid->GetNode(3, 0).x, tolerance); + ASSERT_NEAR(80226.579454943669, curvilinearGrid->GetNode(3, 1).x, tolerance); + ASSERT_NEAR(80320.396380977647, curvilinearGrid->GetNode(3, 2).x, tolerance); + ASSERT_NEAR(80447.108241179725, curvilinearGrid->GetNode(3, 3).x, tolerance); + ASSERT_NEAR(80545.663179203286, curvilinearGrid->GetNode(3, 4).x, tolerance); + ASSERT_NEAR(80623.151266424975, curvilinearGrid->GetNode(3, 5).x, tolerance); + ASSERT_NEAR(80735.800935924854, curvilinearGrid->GetNode(3, 6).x, tolerance); + ASSERT_NEAR(80848.959456291268, curvilinearGrid->GetNode(3, 7).x, tolerance); + ASSERT_NEAR(80962.132385367571, curvilinearGrid->GetNode(3, 8).x, tolerance); + + ASSERT_NEAR(366629.99913221149, curvilinearGrid->GetNode(3, 0).y, tolerance); + ASSERT_NEAR(366656.00122676318, curvilinearGrid->GetNode(3, 1).y, tolerance); + ASSERT_NEAR(366679.12590409513, curvilinearGrid->GetNode(3, 2).y, tolerance); + ASSERT_NEAR(366697.14301043766, curvilinearGrid->GetNode(3, 3).y, tolerance); + ASSERT_NEAR(366725.32926280121, curvilinearGrid->GetNode(3, 4).y, tolerance); + ASSERT_NEAR(366718.43748113938, curvilinearGrid->GetNode(3, 5).y, tolerance); + ASSERT_NEAR(366717.43216295895, curvilinearGrid->GetNode(3, 6).y, tolerance); + ASSERT_NEAR(366716.74631036510, curvilinearGrid->GetNode(3, 7).y, tolerance); + ASSERT_NEAR(366718.10475241451, curvilinearGrid->GetNode(3, 8).y, tolerance); } TEST(CurvilinearGridUniform, DeleteNode_OnUniformGrid_ShouldDeleteNode) @@ -245,9 +245,9 @@ void TestDeleteInteriorNodes(meshkernel::CurvilinearGrid& curvilinearGrid, { // Check first, that all nodes are valid - for (meshkernel::UInt i = 0; i < curvilinearGrid.m_numN; ++i) + for (meshkernel::UInt i = 0; i < curvilinearGrid.NumN(); ++i) { - for (meshkernel::UInt j = 0; j < curvilinearGrid.m_numM; ++j) + for (meshkernel::UInt j = 0; j < curvilinearGrid.NumM(); ++j) { EXPECT_TRUE(curvilinearGrid.GetNode(i, j).IsValid()); } @@ -274,9 +274,9 @@ void TestDeleteInteriorNodes(meshkernel::CurvilinearGrid& curvilinearGrid, EXPECT_EQ(initialSize - expectedInvalidated, CurvilinearGridCountValidNodes(curvilinearGrid)); // Check that these nodes have been set to invalid. - for (meshkernel::UInt i = 0; i < curvilinearGrid.m_numN; ++i) + for (meshkernel::UInt i = 0; i < curvilinearGrid.NumN(); ++i) { - for (meshkernel::UInt j = 0; j < curvilinearGrid.m_numM; ++j) + for (meshkernel::UInt j = 0; j < curvilinearGrid.NumM(); ++j) { if (inRange(i, lowerLimitI, upperLimitI) && inRange(j, lowerLimitJ, upperLimitJ)) { @@ -363,9 +363,9 @@ void TestDeleteExteriorNodes(meshkernel::CurvilinearGrid& curvilinearGrid, const meshkernel::CurvilinearGridNodeIndices second) { // Check first, that all nodes are valid - for (meshkernel::UInt i = 0; i < curvilinearGrid.m_numN; ++i) + for (meshkernel::UInt i = 0; i < curvilinearGrid.NumN(); ++i) { - for (meshkernel::UInt j = 0; j < curvilinearGrid.m_numM; ++j) + for (meshkernel::UInt j = 0; j < curvilinearGrid.NumM(); ++j) { EXPECT_TRUE(curvilinearGrid.GetNode(i, j).IsValid()); } @@ -392,9 +392,9 @@ void TestDeleteExteriorNodes(meshkernel::CurvilinearGrid& curvilinearGrid, EXPECT_EQ(expectedValid, CurvilinearGridCountValidNodes(curvilinearGrid)); // Check that these exterior nodes have been set to invalid. - for (meshkernel::UInt i = 0; i < curvilinearGrid.m_numN; ++i) + for (meshkernel::UInt i = 0; i < curvilinearGrid.NumN(); ++i) { - for (meshkernel::UInt j = 0; j < curvilinearGrid.m_numM; ++j) + for (meshkernel::UInt j = 0; j < curvilinearGrid.NumM(); ++j) { if (inRange(i, lowerLimitI, upperLimitI) && inRange(j, lowerLimitJ, upperLimitJ)) { @@ -475,3 +475,142 @@ TEST(CurvilinearGridUniform, DeleteExteriorNodesFailureTest) EXPECT_THROW(curvilinearGrid->ComputeBlockFromCornerPoints(CurvilinearGridNodeIndices{nx, 1}, CurvilinearGridNodeIndices{4, 4}), meshkernel::ConstraintError); } + +TEST(CurvilinearGridUniform, NumM_ReturnsNumberOfNodeColumns) +{ + const int numM = 7; + const int numN = 5; + const auto subject = MakeCurvilinearGrid(0., 0., 1., 1., numM, numN); + EXPECT_EQ(7, subject->NumM()); +} + +TEST(CurvilinearGridUniform, NumM_ReturnsNumberOfRowColumns) +{ + const int numM = 7; + const int numN = 5; + const auto subject = MakeCurvilinearGrid(0., 0., 1., 1., numM, numN); + EXPECT_EQ(5, subject->NumN()); +} + +TEST(CurvilinearGridUniform, GetNodes_ReturnsCopyOfNodeMatrix) +{ + // NOTE: the storage is transposed, i.e. nodes.rows() corresponds with the number of node columns as indicated by numM and v.v. + const int numM = 7; + const int numN = 5; + const auto subject = MakeCurvilinearGrid(0., 0., 1., 1., numM, numN); + const auto nodes = subject->GetNodes(); + EXPECT_EQ(numM, nodes.rows()); + EXPECT_EQ(numN, nodes.cols()); +} + +TEST(CurvilinearGridUniform, GetRowVector_ReturnsVectorOfLengthNumM) +{ + const auto subject = MakeCurvilinearGrid(0., 0., 1., 1., 2, 3); + EXPECT_EQ(subject->NumM(), subject->GetNodeVectorAtN(1).size()); +} + +TEST(CurvilinearGridUniform, GetColumnVector_ReturnsVectorOfLengthNumN) +{ + const auto subject = MakeCurvilinearGrid(0., 0., 1., 1., 2, 3); + EXPECT_EQ(subject->NumN(), subject->GetNodeVectorAtM(1).size()); +} + +TEST(CurvilinearGridUniform, ConvertCurvilinearToNodesAndEdges_ReturnsSerializedNodes) +{ + // note: this is a characterization test to document the current behavior of MakeCurvilinearGrid, + // the constructor of CurvilinearGrid taking a matrix of points, and + // CurvilinearGrid::ConvertCurvilinearToNodesAndEdges + // A grid of nx=3 and ny=2 returns node coordinates with 3 y-coordinates and 2 x-coordinates!!! + const auto grid = MakeCurvilinearGrid(2.0, 1.0, 2.0, 1.0, 3, 2); + + EXPECT_EQ(3, grid->NumM()); + EXPECT_EQ(2, grid->NumN()); + + const auto [nodes, edges, gridIndices] = grid->ConvertCurvilinearToNodesAndEdges(); + const std::vector expected_nodes = {{2., 1.}, {2., 2.}, {4., 1.}, {4., 2.}, {6., 1.}, {6., 2.}}; + + EXPECT_EQ(expected_nodes.size(), nodes.size()); + for (size_t i = 0; i < nodes.size(); ++i) + { + EXPECT_TRUE(meshkernel::IsEqual(expected_nodes[i], nodes[i], 1e-4)) + << "#" << i << ": " + << "(" << expected_nodes[i].x << "," << expected_nodes[i].y << ") != " + << "(" << nodes[i].x << "," << nodes[i].y << ")"; + } +} + +TEST(CurvilinearGridUniform, ConvertCurvilinearToNodesAndEdges_ReturnsSerializedNodesWithInvalidNode) +{ + // note: this is a characterization test to document the current behavior of MakeCurvilinearGrid, + // the constructor of CurvilinearGrid taking a matrix of points, and + // CurvilinearGrid::ConvertCurvilinearToNodesAndEdges + // A grid of nx=3 and ny=2 returns node coordinates with 3 y-coordinates and 2 x-coordinates!!! + const auto grid = MakeCurvilinearGrid(2.0, 1.0, 2.0, 1.0, 3, 2); + + EXPECT_EQ(3, grid->NumM()); + EXPECT_EQ(2, grid->NumN()); + + grid->GetNode(2, 1).SetInvalid(); + + const auto [nodes, edges, gridIndices] = grid->ConvertCurvilinearToNodesAndEdges(); + const std::vector expected_nodes = {{2., 1.}, {2., 2.}, {4., 1.}, {4., 2.}, {6., 1.}, {-999., -999.}}; + + EXPECT_EQ(expected_nodes.size(), nodes.size()); + for (size_t i = 0; i < nodes.size(); ++i) + { + EXPECT_TRUE(meshkernel::IsEqual(expected_nodes[i], nodes[i], 1e-4)) + << "#" << i << ": " + << "(" << expected_nodes[i].x << "," << expected_nodes[i].y << ") != " + << "(" << nodes[i].x << "," << nodes[i].y << ")"; + } +} + +TEST(CurvilinearGridUniform, ConvertCurvilinearToNodesAndEdges_ReturnsSerializedEdges) +{ + // note: this is a characterization test to document the current behavior of MakeCurvilinearGrid, + // the constructor of CurvilinearGrid taking a matrix of points, and + // CurvilinearGrid::ConvertCurvilinearToNodesAndEdges + // A grid of nx=3 and ny=2 returns node coordinates with 3 y-coordinates and 2 x-coordinates!!! + const auto grid = MakeCurvilinearGrid(2.0, 1.0, 2.0, 1.0, 3, 2); + + EXPECT_EQ(3, grid->NumM()); + EXPECT_EQ(2, grid->NumN()); + + const auto [nodes, edges, gridIndices] = grid->ConvertCurvilinearToNodesAndEdges(); + const std::vector expected_edges = {{{0u, 2u}, {1u, 3u}, {2u, 4u}, {3u, 5u}, {0u, 1u}, {2u, 3u}, {4u, 5u}}}; + + EXPECT_EQ(expected_edges.size(), edges.size()); + for (size_t i = 0; i < edges.size(); ++i) + { + EXPECT_EQ(expected_edges[i], edges[i]) + << "#" << i << ": " + << "[" << expected_edges[i].first << "," << expected_edges[i].second << "] != " + << "[" << edges[i].first << "," << edges[i].second << "]"; + } +} + +TEST(CurvilinearGridUniform, ConvertCurvilinearToNodesAndEdges_ReturnsSerializedEdgesAlsoForEdgesWithInvalidNode) +{ + // note: this is a characterization test to document the current behavior of MakeCurvilinearGrid, + // the constructor of CurvilinearGrid taking a matrix of points, and + // CurvilinearGrid::ConvertCurvilinearToNodesAndEdges + // A grid of nx=3 and ny=2 returns node coordinates with 3 y-coordinates and 2 x-coordinates!!! + const auto grid = MakeCurvilinearGrid(2.0, 1.0, 2.0, 1.0, 3, 2); + + EXPECT_EQ(3, grid->NumM()); + EXPECT_EQ(2, grid->NumN()); + + grid->GetNode(0, 1).SetInvalid(); + + const auto [nodes, edges, gridIndices] = grid->ConvertCurvilinearToNodesAndEdges(); + const std::vector expected_edges = {{{0u, 2u}, {1u, 3u}, {2u, 4u}, {3u, 5u}, {0u, 1u}, {2u, 3u}, {4u, 5u}}}; + + EXPECT_EQ(expected_edges.size(), edges.size()); + for (size_t i = 0; i < edges.size(); ++i) + { + EXPECT_EQ(expected_edges[i], edges[i]) + << "#" << i << ": " + << "[" << expected_edges[i].first << "," << expected_edges[i].second << "] != " + << "[" << edges[i].first << "," << edges[i].second << "]"; + } +} diff --git a/libs/MeshKernel/tests/src/CurvilinearGridRefinementTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridRefinementTests.cpp index c56fec19f..eda1e315a 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridRefinementTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridRefinementTests.cpp @@ -23,30 +23,30 @@ TEST(CurvilinearGridRefinement, Compute_OnCurvilinearGrid_ShouldRefine) curvilinearGridRefinement.Compute(); // Assert - ASSERT_EQ(13, curvilinearGrid.m_numM); - ASSERT_EQ(4, curvilinearGrid.m_numN); + ASSERT_EQ(13, curvilinearGrid.NumM()); + ASSERT_EQ(4, curvilinearGrid.NumN()); constexpr double tolerance = 1e-12; - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 0).x, tolerance); - - ASSERT_NEAR(11.0, curvilinearGrid.m_gridNodes(2, 0).x, tolerance); - ASSERT_NEAR(12.0, curvilinearGrid.m_gridNodes(3, 0).x, tolerance); - ASSERT_NEAR(13.0, curvilinearGrid.m_gridNodes(4, 0).x, tolerance); - ASSERT_NEAR(14.0, curvilinearGrid.m_gridNodes(5, 0).x, tolerance); - ASSERT_NEAR(15.0, curvilinearGrid.m_gridNodes(6, 0).x, tolerance); - ASSERT_NEAR(16.0, curvilinearGrid.m_gridNodes(7, 0).x, tolerance); - ASSERT_NEAR(17.0, curvilinearGrid.m_gridNodes(8, 0).x, tolerance); - ASSERT_NEAR(18.0, curvilinearGrid.m_gridNodes(9, 0).x, tolerance); - ASSERT_NEAR(19.0, curvilinearGrid.m_gridNodes(10, 0).x, tolerance); - - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(11, 0).x, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(12, 0).x, tolerance); - - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(0, 3).y, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 0).x, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 0).x, tolerance); + + ASSERT_NEAR(11.0, curvilinearGrid.GetNode(2, 0).x, tolerance); + ASSERT_NEAR(12.0, curvilinearGrid.GetNode(3, 0).x, tolerance); + ASSERT_NEAR(13.0, curvilinearGrid.GetNode(4, 0).x, tolerance); + ASSERT_NEAR(14.0, curvilinearGrid.GetNode(5, 0).x, tolerance); + ASSERT_NEAR(15.0, curvilinearGrid.GetNode(6, 0).x, tolerance); + ASSERT_NEAR(16.0, curvilinearGrid.GetNode(7, 0).x, tolerance); + ASSERT_NEAR(17.0, curvilinearGrid.GetNode(8, 0).x, tolerance); + ASSERT_NEAR(18.0, curvilinearGrid.GetNode(9, 0).x, tolerance); + ASSERT_NEAR(19.0, curvilinearGrid.GetNode(10, 0).x, tolerance); + + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(11, 0).x, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(12, 0).x, tolerance); + + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 0).y, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(0, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(0, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(0, 3).y, tolerance); } TEST(CurvilinearGridRefinement, Compute_OnCurvilinearGridWithMissingFaces_ShouldRefine) @@ -69,52 +69,52 @@ TEST(CurvilinearGridRefinement, Compute_OnCurvilinearGridWithMissingFaces_Should curvilinearGridRefinement.Compute(); // Assert - ASSERT_EQ(15, curvilinearGrid.m_numM); - ASSERT_EQ(4, curvilinearGrid.m_numN); + ASSERT_EQ(15, curvilinearGrid.NumM()); + ASSERT_EQ(4, curvilinearGrid.NumN()); constexpr double tolerance = 1e-12; // vertical gridline 0 - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 3).x, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 0).x, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 1).x, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 2).x, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 3).x, tolerance); - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(0, 3).y, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 0).y, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(0, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(0, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(0, 3).y, tolerance); // vertical gridline 2 - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(2, 0).x, tolerance); - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(2, 1).x, tolerance); - ASSERT_NEAR(11.0, curvilinearGrid.m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(11.0, curvilinearGrid.m_gridNodes(2, 3).x, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(2, 0).x, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(2, 1).x, tolerance); + ASSERT_NEAR(11.0, curvilinearGrid.GetNode(2, 2).x, tolerance); + ASSERT_NEAR(11.0, curvilinearGrid.GetNode(2, 3).x, tolerance); - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(3, 0).y, tolerance); - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(3, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(3, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 3).y, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(3, 0).y, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(3, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(3, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 3).y, tolerance); // vertical gridline 10 - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(10, 0).x, tolerance); - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(10, 1).x, tolerance); - ASSERT_NEAR(19.0, curvilinearGrid.m_gridNodes(10, 2).x, tolerance); - ASSERT_NEAR(19.0, curvilinearGrid.m_gridNodes(10, 3).x, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(10, 0).x, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(10, 1).x, tolerance); + ASSERT_NEAR(19.0, curvilinearGrid.GetNode(10, 2).x, tolerance); + ASSERT_NEAR(19.0, curvilinearGrid.GetNode(10, 3).x, tolerance); - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(10, 0).y, tolerance); - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(10, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(10, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(10, 3).y, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(10, 0).y, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(10, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(10, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(10, 3).y, tolerance); // vertical gridline 11 - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(11, 0).x, tolerance); - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(11, 1).x, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(11, 2).x, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(11, 3).x, tolerance); - - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(11, 0).y, tolerance); - ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.m_gridNodes(11, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(11, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(11, 3).y, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(11, 0).x, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(11, 1).x, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(11, 2).x, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(11, 3).x, tolerance); + + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(11, 0).y, tolerance); + ASSERT_NEAR(constants::missing::doubleValue, curvilinearGrid.GetNode(11, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(11, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(11, 3).y, tolerance); } diff --git a/libs/MeshKernel/tests/src/CurvilinearGridSmoothingTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridSmoothingTests.cpp index 9e18240b7..d6012a416 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridSmoothingTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridSmoothingTests.cpp @@ -27,45 +27,45 @@ TEST(CurvilinearGridSmoothing, Compute_OnSmoothCurvilinearGrid_ShouldNotSmoothGr // Assert nodes are on the same location because the grid is already smooth constexpr double tolerance = 1e-6; - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 3).x, tolerance); - - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 3).x, tolerance); - - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(2, 0).x, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(2, 1).x, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(2, 3).x, tolerance); - - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 0).x, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 1).x, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 2).x, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 3).x, tolerance); - - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(0, 3).y, tolerance); - - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(1, 3).y, tolerance); - - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(2, 0).y, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(2, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(2, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(2, 3).y, tolerance); - - ASSERT_NEAR(0.0, curvilinearGrid.m_gridNodes(3, 0).y, tolerance); - ASSERT_NEAR(10.0, curvilinearGrid.m_gridNodes(3, 1).y, tolerance); - ASSERT_NEAR(20.0, curvilinearGrid.m_gridNodes(3, 2).y, tolerance); - ASSERT_NEAR(30.0, curvilinearGrid.m_gridNodes(3, 3).y, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 0).x, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 1).x, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 2).x, tolerance); + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 3).x, tolerance); + + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 0).x, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 1).x, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 2).x, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 3).x, tolerance); + + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(2, 0).x, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(2, 1).x, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(2, 2).x, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(2, 3).x, tolerance); + + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 0).x, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 1).x, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 2).x, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 3).x, tolerance); + + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(0, 0).y, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(0, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(0, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(0, 3).y, tolerance); + + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(1, 0).y, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(1, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(1, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(1, 3).y, tolerance); + + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(2, 0).y, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(2, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(2, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(2, 3).y, tolerance); + + ASSERT_NEAR(0.0, curvilinearGrid.GetNode(3, 0).y, tolerance); + ASSERT_NEAR(10.0, curvilinearGrid.GetNode(3, 1).y, tolerance); + ASSERT_NEAR(20.0, curvilinearGrid.GetNode(3, 2).y, tolerance); + ASSERT_NEAR(30.0, curvilinearGrid.GetNode(3, 3).y, tolerance); } TEST(CurvilinearGridSmoothing, Compute_OnONonSmoothCurvilinearGrid_ShouldSmoothGrid) { @@ -81,45 +81,45 @@ TEST(CurvilinearGridSmoothing, Compute_OnONonSmoothCurvilinearGrid_ShouldSmoothG // Assert constexpr double tolerance = 1e-6; - ASSERT_NEAR(79983.796374595549, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(80060.011105254613, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(80137.131323077789, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80214.289133171449, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(80290.623313344797, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(80364.411459799783, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(80440.632944042736, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(80521.863482944755, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(80611.260660513333, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - - ASSERT_NEAR(80049.839878894229, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(80126.599628477867, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(80209.094215192861, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80293.744880346814, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(80379.324140649813, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(80465.542584239694, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(80554.276324305538, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(80648.676638649602, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(80756.869964790196, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - - ASSERT_NEAR(366936.89538054139, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(366987.83821424743, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(367041.23176860309, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(367096.32094200718, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(367152.27534010477, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(367210.34624999913, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(367271.13533544831, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(367335.99776061886, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(367407.38541954994, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); - - ASSERT_NEAR(366833.73477307899, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(366875.95830515033, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(366920.06335723272, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366964.51932115341, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(367008.36165438319, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(367051.96991358045, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(367097.07280781888, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(367147.66697242024, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(367208.53384889866, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); + ASSERT_NEAR(79983.796374595549, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(80060.011105254613, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(80137.131323077789, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80214.289133171449, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(80290.623313344797, curvilinearGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(80364.411459799783, curvilinearGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(80440.632944042736, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(80521.863482944755, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(80611.260660513333, curvilinearGrid->GetNode(0, 8).x, tolerance); + + ASSERT_NEAR(80049.839878894229, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(80126.599628477867, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(80209.094215192861, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80293.744880346814, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(80379.324140649813, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(80465.542584239694, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(80554.276324305538, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(80648.676638649602, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(80756.869964790196, curvilinearGrid->GetNode(1, 8).x, tolerance); + + ASSERT_NEAR(366936.89538054139, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(366987.83821424743, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(367041.23176860309, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(367096.32094200718, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(367152.27534010477, curvilinearGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(367210.34624999913, curvilinearGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(367271.13533544831, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(367335.99776061886, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(367407.38541954994, curvilinearGrid->GetNode(0, 8).y, tolerance); + + ASSERT_NEAR(366833.73477307899, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(366875.95830515033, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(366920.06335723272, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366964.51932115341, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(367008.36165438319, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(367051.96991358045, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(367097.07280781888, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(367147.66697242024, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(367208.53384889866, curvilinearGrid->GetNode(1, 8).y, tolerance); } TEST(CurvilinearGridSmoothing, Compute_OnONonSmoothCurvilinearGridWithMissingElements_ShouldSmoothGrid) @@ -136,65 +136,65 @@ TEST(CurvilinearGridSmoothing, Compute_OnONonSmoothCurvilinearGridWithMissingEle // Assert constexpr double tolerance = 1e-6; - ASSERT_NEAR(79983.796374595549, curvilinearGrid->m_gridNodes(0, 0).x, tolerance); - ASSERT_NEAR(80060.788799524904, curvilinearGrid->m_gridNodes(0, 1).x, tolerance); - ASSERT_NEAR(80138.938885926123, curvilinearGrid->m_gridNodes(0, 2).x, tolerance); - ASSERT_NEAR(80216.491022095070, curvilinearGrid->m_gridNodes(0, 3).x, tolerance); - ASSERT_NEAR(80293.293375308422, curvilinearGrid->m_gridNodes(0, 4).x, tolerance); - ASSERT_NEAR(80367.153256326288, curvilinearGrid->m_gridNodes(0, 5).x, tolerance); - ASSERT_NEAR(80441.975289048860, curvilinearGrid->m_gridNodes(0, 6).x, tolerance); - ASSERT_NEAR(80522.272230797375, curvilinearGrid->m_gridNodes(0, 7).x, tolerance); - ASSERT_NEAR(80611.260660513333, curvilinearGrid->m_gridNodes(0, 8).x, tolerance); - - ASSERT_NEAR(80050.309286359756, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(80129.710469510028, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(80217.157476954410, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80301.619921323407, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(80387.883340666624, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(80476.978522055375, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(80558.979514368868, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(80649.960798514221, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(80756.940464565720, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - - ASSERT_NEAR(80098.932488001548, curvilinearGrid->m_gridNodes(2, 0).x, tolerance); - ASSERT_NEAR(80186.124532376241, curvilinearGrid->m_gridNodes(2, 1).x, tolerance); - ASSERT_NEAR(80292.449108019704, curvilinearGrid->m_gridNodes(2, 2).x, tolerance); - ASSERT_NEAR(80375.822861451976, curvilinearGrid->m_gridNodes(2, 3).x, tolerance); - ASSERT_NEAR(80468.946809326764, curvilinearGrid->m_gridNodes(2, 4).x, tolerance); - ASSERT_NEAR(80583.120607369667, curvilinearGrid->m_gridNodes(2, 5).x, tolerance); - ASSERT_NEAR(80652.102309464681, curvilinearGrid->m_gridNodes(2, 6).x, tolerance); - ASSERT_NEAR(80749.982910696970, curvilinearGrid->m_gridNodes(2, 7).x, tolerance); - ASSERT_NEAR(80871.931419427943, curvilinearGrid->m_gridNodes(2, 8).x, tolerance); - - ASSERT_NEAR(366936.89538054139, curvilinearGrid->m_gridNodes(0, 0).y, tolerance); - ASSERT_NEAR(366988.35803436005, curvilinearGrid->m_gridNodes(0, 1).y, tolerance); - ASSERT_NEAR(367042.48402813828, curvilinearGrid->m_gridNodes(0, 2).y, tolerance); - ASSERT_NEAR(367097.89403811248, curvilinearGrid->m_gridNodes(0, 3).y, tolerance); - ASSERT_NEAR(367154.23426078091, curvilinearGrid->m_gridNodes(0, 4).y, tolerance); - ASSERT_NEAR(367212.51011039014, curvilinearGrid->m_gridNodes(0, 5).y, tolerance); - ASSERT_NEAR(367272.20589329768, curvilinearGrid->m_gridNodes(0, 6).y, tolerance); - ASSERT_NEAR(367336.32413904829, curvilinearGrid->m_gridNodes(0, 7).y, tolerance); - ASSERT_NEAR(367407.38541954994, curvilinearGrid->m_gridNodes(0, 8).y, tolerance); - - ASSERT_NEAR(366833.00155397120, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(366875.36856874428, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(366919.22743417800, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366964.89754991967, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(367010.93790833943, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(367054.20807785576, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(367097.95891073684, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(367147.87982618762, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(367208.42653128889, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); - - ASSERT_NEAR(366729.04871992749, curvilinearGrid->m_gridNodes(2, 0).y, tolerance); - ASSERT_NEAR(366761.65380535304, curvilinearGrid->m_gridNodes(2, 1).y, tolerance); - ASSERT_NEAR(366792.50812354451, curvilinearGrid->m_gridNodes(2, 2).y, tolerance); - ASSERT_NEAR(366827.70632165857, curvilinearGrid->m_gridNodes(2, 3).y, tolerance); - ASSERT_NEAR(366865.78532145533, curvilinearGrid->m_gridNodes(2, 4).y, tolerance); - ASSERT_NEAR(366891.62363194284, curvilinearGrid->m_gridNodes(2, 5).y, tolerance); - ASSERT_NEAR(366916.02815869858, curvilinearGrid->m_gridNodes(2, 6).y, tolerance); - ASSERT_NEAR(366948.34436165588, curvilinearGrid->m_gridNodes(2, 7).y, tolerance); - ASSERT_NEAR(366996.75152488949, curvilinearGrid->m_gridNodes(2, 8).y, tolerance); + ASSERT_NEAR(79983.796374595549, curvilinearGrid->GetNode(0, 0).x, tolerance); + ASSERT_NEAR(80060.788799524904, curvilinearGrid->GetNode(0, 1).x, tolerance); + ASSERT_NEAR(80138.938885926123, curvilinearGrid->GetNode(0, 2).x, tolerance); + ASSERT_NEAR(80216.491022095070, curvilinearGrid->GetNode(0, 3).x, tolerance); + ASSERT_NEAR(80293.293375308422, curvilinearGrid->GetNode(0, 4).x, tolerance); + ASSERT_NEAR(80367.153256326288, curvilinearGrid->GetNode(0, 5).x, tolerance); + ASSERT_NEAR(80441.975289048860, curvilinearGrid->GetNode(0, 6).x, tolerance); + ASSERT_NEAR(80522.272230797375, curvilinearGrid->GetNode(0, 7).x, tolerance); + ASSERT_NEAR(80611.260660513333, curvilinearGrid->GetNode(0, 8).x, tolerance); + + ASSERT_NEAR(80050.309286359756, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(80129.710469510028, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(80217.157476954410, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80301.619921323407, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(80387.883340666624, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(80476.978522055375, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(80558.979514368868, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(80649.960798514221, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(80756.940464565720, curvilinearGrid->GetNode(1, 8).x, tolerance); + + ASSERT_NEAR(80098.932488001548, curvilinearGrid->GetNode(2, 0).x, tolerance); + ASSERT_NEAR(80186.124532376241, curvilinearGrid->GetNode(2, 1).x, tolerance); + ASSERT_NEAR(80292.449108019704, curvilinearGrid->GetNode(2, 2).x, tolerance); + ASSERT_NEAR(80375.822861451976, curvilinearGrid->GetNode(2, 3).x, tolerance); + ASSERT_NEAR(80468.946809326764, curvilinearGrid->GetNode(2, 4).x, tolerance); + ASSERT_NEAR(80583.120607369667, curvilinearGrid->GetNode(2, 5).x, tolerance); + ASSERT_NEAR(80652.102309464681, curvilinearGrid->GetNode(2, 6).x, tolerance); + ASSERT_NEAR(80749.982910696970, curvilinearGrid->GetNode(2, 7).x, tolerance); + ASSERT_NEAR(80871.931419427943, curvilinearGrid->GetNode(2, 8).x, tolerance); + + ASSERT_NEAR(366936.89538054139, curvilinearGrid->GetNode(0, 0).y, tolerance); + ASSERT_NEAR(366988.35803436005, curvilinearGrid->GetNode(0, 1).y, tolerance); + ASSERT_NEAR(367042.48402813828, curvilinearGrid->GetNode(0, 2).y, tolerance); + ASSERT_NEAR(367097.89403811248, curvilinearGrid->GetNode(0, 3).y, tolerance); + ASSERT_NEAR(367154.23426078091, curvilinearGrid->GetNode(0, 4).y, tolerance); + ASSERT_NEAR(367212.51011039014, curvilinearGrid->GetNode(0, 5).y, tolerance); + ASSERT_NEAR(367272.20589329768, curvilinearGrid->GetNode(0, 6).y, tolerance); + ASSERT_NEAR(367336.32413904829, curvilinearGrid->GetNode(0, 7).y, tolerance); + ASSERT_NEAR(367407.38541954994, curvilinearGrid->GetNode(0, 8).y, tolerance); + + ASSERT_NEAR(366833.00155397120, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(366875.36856874428, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(366919.22743417800, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366964.89754991967, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(367010.93790833943, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(367054.20807785576, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(367097.95891073684, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(367147.87982618762, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(367208.42653128889, curvilinearGrid->GetNode(1, 8).y, tolerance); + + ASSERT_NEAR(366729.04871992749, curvilinearGrid->GetNode(2, 0).y, tolerance); + ASSERT_NEAR(366761.65380535304, curvilinearGrid->GetNode(2, 1).y, tolerance); + ASSERT_NEAR(366792.50812354451, curvilinearGrid->GetNode(2, 2).y, tolerance); + ASSERT_NEAR(366827.70632165857, curvilinearGrid->GetNode(2, 3).y, tolerance); + ASSERT_NEAR(366865.78532145533, curvilinearGrid->GetNode(2, 4).y, tolerance); + ASSERT_NEAR(366891.62363194284, curvilinearGrid->GetNode(2, 5).y, tolerance); + ASSERT_NEAR(366916.02815869858, curvilinearGrid->GetNode(2, 6).y, tolerance); + ASSERT_NEAR(366948.34436165588, curvilinearGrid->GetNode(2, 7).y, tolerance); + ASSERT_NEAR(366996.75152488949, curvilinearGrid->GetNode(2, 8).y, tolerance); } TEST(CurvilinearGridSmoothing, ComputedDirectionalSmooth_OnMDrirection_ShouldSmoothGrid) @@ -212,25 +212,25 @@ TEST(CurvilinearGridSmoothing, ComputedDirectionalSmooth_OnMDrirection_ShouldSmo // Assert constexpr double tolerance = 1e-6; - ASSERT_NEAR(80053.996925399639, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(80144.732940478571, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(80222.990051062123, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80314.427829118606, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(80414.057391982613, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(80505.096476712482, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(80595.183339827883, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(80684.333994102650, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(80772.567299473958, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - - ASSERT_NEAR(366827.17869351729, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(366872.58359778317, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(366936.38429752010, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366981.06765786058, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(367015.14849423966, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(367056.48898898275, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(367099.12347147451, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(367143.03018172452, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(367188.18349069095, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); + ASSERT_NEAR(80053.996925399639, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(80144.732940478571, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(80222.990051062123, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80314.427829118606, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(80414.057391982613, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(80505.096476712482, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(80595.183339827883, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(80684.333994102650, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(80772.567299473958, curvilinearGrid->GetNode(1, 8).x, tolerance); + + ASSERT_NEAR(366827.17869351729, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(366872.58359778317, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(366936.38429752010, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366981.06765786058, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(367015.14849423966, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(367056.48898898275, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(367099.12347147451, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(367143.03018172452, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(367188.18349069095, curvilinearGrid->GetNode(1, 8).y, tolerance); } TEST(CurvilinearGridSmoothing, ComputedDirectionalSmooth_OnNDrirection_ShouldSmoothGrid) @@ -248,23 +248,23 @@ TEST(CurvilinearGridSmoothing, ComputedDirectionalSmooth_OnNDrirection_ShouldSmo // Assert constexpr double tolerance = 1e-6; - ASSERT_NEAR(80053.996925399639, curvilinearGrid->m_gridNodes(1, 0).x, tolerance); - ASSERT_NEAR(80144.692538122108, curvilinearGrid->m_gridNodes(1, 1).x, tolerance); - ASSERT_NEAR(80234.737077531070, curvilinearGrid->m_gridNodes(1, 2).x, tolerance); - ASSERT_NEAR(80324.189331719666, curvilinearGrid->m_gridNodes(1, 3).x, tolerance); - ASSERT_NEAR(80413.125110631052, curvilinearGrid->m_gridNodes(1, 4).x, tolerance); - ASSERT_NEAR(80505.096476712482, curvilinearGrid->m_gridNodes(1, 5).x, tolerance); - ASSERT_NEAR(80595.183339827883, curvilinearGrid->m_gridNodes(1, 6).x, tolerance); - ASSERT_NEAR(80684.333994102650, curvilinearGrid->m_gridNodes(1, 7).x, tolerance); - ASSERT_NEAR(80772.567299473958, curvilinearGrid->m_gridNodes(1, 8).x, tolerance); - - ASSERT_NEAR(366827.17869351729, curvilinearGrid->m_gridNodes(1, 0).y, tolerance); - ASSERT_NEAR(366872.56390471710, curvilinearGrid->m_gridNodes(1, 1).y, tolerance); - ASSERT_NEAR(366919.09182483586, curvilinearGrid->m_gridNodes(1, 2).y, tolerance); - ASSERT_NEAR(366966.51416593988, curvilinearGrid->m_gridNodes(1, 3).y, tolerance); - ASSERT_NEAR(367014.64392142039, curvilinearGrid->m_gridNodes(1, 4).y, tolerance); - ASSERT_NEAR(367056.48898898275, curvilinearGrid->m_gridNodes(1, 5).y, tolerance); - ASSERT_NEAR(367099.12347147451, curvilinearGrid->m_gridNodes(1, 6).y, tolerance); - ASSERT_NEAR(367143.03018172452, curvilinearGrid->m_gridNodes(1, 7).y, tolerance); - ASSERT_NEAR(367188.18349069095, curvilinearGrid->m_gridNodes(1, 8).y, tolerance); + ASSERT_NEAR(80053.996925399639, curvilinearGrid->GetNode(1, 0).x, tolerance); + ASSERT_NEAR(80144.692538122108, curvilinearGrid->GetNode(1, 1).x, tolerance); + ASSERT_NEAR(80234.737077531070, curvilinearGrid->GetNode(1, 2).x, tolerance); + ASSERT_NEAR(80324.189331719666, curvilinearGrid->GetNode(1, 3).x, tolerance); + ASSERT_NEAR(80413.125110631052, curvilinearGrid->GetNode(1, 4).x, tolerance); + ASSERT_NEAR(80505.096476712482, curvilinearGrid->GetNode(1, 5).x, tolerance); + ASSERT_NEAR(80595.183339827883, curvilinearGrid->GetNode(1, 6).x, tolerance); + ASSERT_NEAR(80684.333994102650, curvilinearGrid->GetNode(1, 7).x, tolerance); + ASSERT_NEAR(80772.567299473958, curvilinearGrid->GetNode(1, 8).x, tolerance); + + ASSERT_NEAR(366827.17869351729, curvilinearGrid->GetNode(1, 0).y, tolerance); + ASSERT_NEAR(366872.56390471710, curvilinearGrid->GetNode(1, 1).y, tolerance); + ASSERT_NEAR(366919.09182483586, curvilinearGrid->GetNode(1, 2).y, tolerance); + ASSERT_NEAR(366966.51416593988, curvilinearGrid->GetNode(1, 3).y, tolerance); + ASSERT_NEAR(367014.64392142039, curvilinearGrid->GetNode(1, 4).y, tolerance); + ASSERT_NEAR(367056.48898898275, curvilinearGrid->GetNode(1, 5).y, tolerance); + ASSERT_NEAR(367099.12347147451, curvilinearGrid->GetNode(1, 6).y, tolerance); + ASSERT_NEAR(367143.03018172452, curvilinearGrid->GetNode(1, 7).y, tolerance); + ASSERT_NEAR(367188.18349069095, curvilinearGrid->GetNode(1, 8).y, tolerance); } diff --git a/libs/MeshKernel/tests/src/CurvilinearGridSmoothnessTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridSmoothnessTests.cpp index 426fdf0af..72e98d42b 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridSmoothnessTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridSmoothnessTests.cpp @@ -150,10 +150,10 @@ TEST(CurvilinearGridSmoothness, Compute_SmoothnessOfRegularGridWithHole_ShouldCo std::unique_ptr grid = MakeCurvilinearGrid(originX, originY, deltaX, deltaY, nx, ny); - grid->m_gridNodes(4, 4).SetInvalid(); - grid->m_gridNodes(4, 5).SetInvalid(); - grid->m_gridNodes(5, 4).SetInvalid(); - grid->m_gridNodes(5, 5).SetInvalid(); + grid->GetNode(4, 4).SetInvalid(); + grid->GetNode(4, 5).SetInvalid(); + grid->GetNode(5, 4).SetInvalid(); + grid->GetNode(5, 5).SetInvalid(); lin_alg::Matrix smoothness; diff --git a/libs/MeshKernel/tests/src/CurvilinearGridSnappingTests.cpp b/libs/MeshKernel/tests/src/CurvilinearGridSnappingTests.cpp index 516d06ee4..359084ad5 100644 --- a/libs/MeshKernel/tests/src/CurvilinearGridSnappingTests.cpp +++ b/libs/MeshKernel/tests/src/CurvilinearGridSnappingTests.cpp @@ -96,24 +96,24 @@ TEST(CurvilinearGridSnapping, SnappingThreeSides) // First snap the east boundary of the domain snappingEast.Compute(); - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).x, eastMappedPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping east: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid.GetNode(i, j).x, eastMappedPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping east: (" << i << ", " << j << ")"; } } - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).y, eastMappedPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping east: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid.GetNode(i, j).y, eastMappedPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping east: (" << i << ", " << j << ")"; } } //-------------------------------- - CurvilinearGrid grid2(grid.m_gridNodes, Projection::cartesian); + CurvilinearGrid grid2(grid.GetNodes(), Projection::cartesian); snappingLine = std::vector{Point(0, 90.0), Point(0.0, 0.0)}; CurvilinearGridSnapping snappingWest(grid2, westLandBoundary, snappingLine); @@ -144,24 +144,24 @@ TEST(CurvilinearGridSnapping, SnappingThreeSides) {3.364448501894e+00, 9.980938934087e+00, 1.998060582596e+01, 2.998027271784e+01, 3.997993960972e+01, 4.997960650159e+01, 5.997927339347e+01, 6.997894028534e+01, 7.997860717722e+01, 8.997827406910e+01, 9.777374826707e+01}, {4.303172000000e+00, 9.975620656674e+00, 1.997519460719e+01, 2.997476855770e+01, 3.997434250822e+01, 4.997391645874e+01, 5.997349040925e+01, 6.997306435977e+01, 7.997263831028e+01, 8.997221226080e+01, 9.715259600000e+01}}; - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid2.m_gridNodes(i, j).x, westMappedPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping east: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid2.GetNode(i, j).x, westMappedPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping east: (" << i << ", " << j << ")"; } } - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid2.m_gridNodes(i, j).y, westMappedPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping east: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid2.GetNode(i, j).y, westMappedPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping east: (" << i << ", " << j << ")"; } } //-------------------------------- - CurvilinearGrid grid3(grid2.m_gridNodes, Projection::cartesian); + CurvilinearGrid grid3(grid2.GetNodes(), Projection::cartesian); snappingLine = std::vector{Point({0.0e+00, 1.0e+02}), Point({1.043040e+02, 9.715260e+01})}; CurvilinearGridSnapping snappingNorth(grid3, northLandBoundary, snappingLine); @@ -192,18 +192,18 @@ TEST(CurvilinearGridSnapping, SnappingThreeSides) {3.364448501894e+00, 9.980938934087e+00, 1.998060582596e+01, 2.998027271784e+01, 3.997993960972e+01, 4.997960650159e+01, 5.997927339347e+01, 7.049505766060e+01, 8.263723768445e+01, 9.487399319961e+01, 1.033370952633e+02}, {4.303172000000e+00, 9.975620656674e+00, 1.997519460719e+01, 2.997476855770e+01, 3.997434250822e+01, 4.997391645874e+01, 5.997349040925e+01, 7.047785003180e+01, 8.230233592963e+01, 9.410634025831e+01, 1.017586980000e+02}}; - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid3.m_gridNodes(i, j).x, northMappedPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping east: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid3.GetNode(i, j).x, northMappedPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping east: (" << i << ", " << j << ")"; } } - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid3.m_gridNodes(i, j).y, northMappedPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping east: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid3.GetNode(i, j).y, northMappedPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping east: (" << i << ", " << j << ")"; } } } @@ -253,18 +253,18 @@ TEST(CurvilinearGridSnapping, SnappingLineToLandBoundaryNorthTheWest) snappingNorth.Compute(); - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).x, northMappedPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping north: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid.GetNode(i, j).x, northMappedPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping north: (" << i << ", " << j << ")"; } } - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).y, northMappedPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping north: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid.GetNode(i, j).y, northMappedPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping north: (" << i << ", " << j << ")"; } } @@ -287,24 +287,24 @@ TEST(CurvilinearGridSnapping, SnappingLineToLandBoundaryNorthTheWest) {0.000000000000e+00, 1.000000000000e+01, 2.000000000000e+01, 3.000000000000e+01, 4.000000000000e+01, 5.000000000000e+01, 6.000000000000e+01, 7.027745348015e+01, 8.243267902243e+01, 9.518460383235e+01, 1.064179136971e+02}, {0.000000000000e+00, 1.000000000000e+01, 2.000000000000e+01, 3.000000000000e+01, 4.000000000000e+01, 5.000000000000e+01, 6.000000000000e+01, 7.021158750721e+01, 8.185517402742e+01, 9.395380659904e+01, 1.048943352951e+02}}; - CurvilinearGrid grid2(grid.m_gridNodes, Projection::cartesian); + CurvilinearGrid grid2(grid.GetNodes(), Projection::cartesian); snappingLine = std::vector{Point(0.0, 90.0), Point(0.0, 0.0)}; CurvilinearGridSnapping snappingWest(grid2, westLandBoundary, snappingLine); snappingWest.Compute(); - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid2.m_gridNodes(i, j).x, westMappedPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping west: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid2.GetNode(i, j).x, westMappedPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping west: (" << i << ", " << j << ")"; } } - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid2.m_gridNodes(i, j).y, westMappedPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping west: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid2.GetNode(i, j).y, westMappedPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping west: (" << i << ", " << j << ")"; } } } @@ -350,18 +350,18 @@ TEST(CurvilinearGridSnapping, SnapBoundaryRegionToEastOnePoint) snapping.Compute(); - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).x, eastMappedGridPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping east: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid.GetNode(i, j).x, eastMappedGridPointsX[i][j], snapping::tolerance) << "Difference in x-points after snapping east: (" << i << ", " << j << ")"; } } - for (Eigen::Index i = 0; i < gridPoints.rows(); ++i) + for (UInt i = 0; i < gridPoints.rows(); ++i) { - for (Eigen::Index j = 0; j < gridPoints.cols(); ++j) + for (UInt j = 0; j < gridPoints.cols(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).y, eastMappedGridPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping east: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid.GetNode(i, j).y, eastMappedGridPointsY[i][j], snapping::tolerance) << "Difference in y-points after snapping east: (" << i << ", " << j << ")"; } } } @@ -413,19 +413,19 @@ TEST(CurvilinearGridSnapping, SnapBoundaryRegionToEastTwoPoints) snapping.Compute(); // Check results - for (Eigen::Index i = 0; i < grid.m_gridNodes.rows(); ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (Eigen::Index j = 0; j < grid.m_gridNodes.cols(); ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).x, mappedPointsX[i][j], snapping::tolerance); + EXPECT_NEAR(grid.GetNode(i, j).x, mappedPointsX[i][j], snapping::tolerance); } } - for (Eigen::Index i = 0; i < grid.m_gridNodes.rows(); ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (Eigen::Index j = 0; j < grid.m_gridNodes.cols(); ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).y, mappedPointsY[i][j], snapping::tolerance); + EXPECT_NEAR(grid.GetNode(i, j).y, mappedPointsY[i][j], snapping::tolerance); } } } @@ -480,19 +480,19 @@ TEST(CurvilinearGridSnapping, SnapPartialBoundaryRegionToWest) // Compute snapping to land boundary snapping.Compute(); - for (Eigen::Index i = 0; i < grid.m_gridNodes.rows(); ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (Eigen::Index j = 0; j < grid.m_gridNodes.cols(); ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).x, mappedPointsX[i][j], snapping::tolerance); + EXPECT_NEAR(grid.GetNode(i, j).x, mappedPointsX[i][j], snapping::tolerance); } } - for (Eigen::Index i = 0; i < grid.m_gridNodes.rows(); ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (Eigen::Index j = 0; j < grid.m_gridNodes.cols(); ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).y, mappedPointsY[i][j], snapping::tolerance); + EXPECT_NEAR(grid.GetNode(i, j).y, mappedPointsY[i][j], snapping::tolerance); } } } @@ -547,19 +547,19 @@ TEST(CurvilinearGridSnapping, SnapPartialBoundaryRegionToNorthTwoPoints) // Compute snapping to land boundary snapping.Compute(); - for (Eigen::Index i = 0; i < grid.m_gridNodes.rows(); ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (Eigen::Index j = 0; j < grid.m_gridNodes.cols(); ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).x, mappedPointsX[i][j], snapping::tolerance); + EXPECT_NEAR(grid.GetNode(i, j).x, mappedPointsX[i][j], snapping::tolerance); } } - for (Eigen::Index i = 0; i < grid.m_gridNodes.rows(); ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (Eigen::Index j = 0; j < grid.m_gridNodes.cols(); ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).y, mappedPointsY[i][j], snapping::tolerance); + EXPECT_NEAR(grid.GetNode(i, j).y, mappedPointsY[i][j], snapping::tolerance); } } } @@ -615,19 +615,19 @@ TEST(CurvilinearGridSnapping, SnapPartialBoundaryRegionToNorthFourPoints) // Compute snapping to land boundary snapping.Compute(); - for (Eigen::Index i = 0; i < grid.m_gridNodes.rows(); ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (Eigen::Index j = 0; j < grid.m_gridNodes.cols(); ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).x, mappedPointsX[i][j], snapping::tolerance) << "Difference in x-points: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid.GetNode(i, j).x, mappedPointsX[i][j], snapping::tolerance) << "Difference in x-points: (" << i << ", " << j << ")"; } } - for (Eigen::Index i = 0; i < grid.m_gridNodes.rows(); ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (Eigen::Index j = 0; j < grid.m_gridNodes.cols(); ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).y, mappedPointsY[i][j], snapping::tolerance) << "Difference in y-points: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid.GetNode(i, j).y, mappedPointsY[i][j], snapping::tolerance) << "Difference in y-points: (" << i << ", " << j << ")"; } } } @@ -684,19 +684,19 @@ TEST(CurvilinearGridSnapping, SnapPartialOffsetBoundaryRegionToNorthFourPoints) // Compute snapping to land boundary snapping.Compute(); - for (Eigen::Index i = 0; i < grid.m_gridNodes.rows(); ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (Eigen::Index j = 0; j < grid.m_gridNodes.cols(); ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).x, mappedPointsX[i][j], snapping::tolerance) << "Difference in x-points: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid.GetNode(i, j).x, mappedPointsX[i][j], snapping::tolerance) << "Difference in x-points: (" << i << ", " << j << ")"; } } - for (Eigen::Index i = 0; i < grid.m_gridNodes.rows(); ++i) + for (UInt i = 0; i < grid.NumM(); ++i) { - for (Eigen::Index j = 0; j < grid.m_gridNodes.cols(); ++j) + for (UInt j = 0; j < grid.NumN(); ++j) { - EXPECT_NEAR(grid.m_gridNodes(i, j).y, mappedPointsY[i][j], snapping::tolerance) << "Difference in y-points: (" << i << ", " << j << ")"; + EXPECT_NEAR(grid.GetNode(i, j).y, mappedPointsY[i][j], snapping::tolerance) << "Difference in y-points: (" << i << ", " << j << ")"; } } } diff --git a/libs/MeshKernelApi/src/MeshKernel.cpp b/libs/MeshKernelApi/src/MeshKernel.cpp index 412adfde8..97fc560c9 100644 --- a/libs/MeshKernelApi/src/MeshKernel.cpp +++ b/libs/MeshKernelApi/src/MeshKernel.cpp @@ -525,8 +525,8 @@ namespace meshkernelapi { throw meshkernel::MeshKernelError("The selected mesh kernel id does not exist."); } - curvilinearGrid.num_n = static_cast(meshKernelState[meshKernelId].m_curvilinearGrid->m_numN); - curvilinearGrid.num_m = static_cast(meshKernelState[meshKernelId].m_curvilinearGrid->m_numM); + curvilinearGrid.num_n = static_cast(meshKernelState[meshKernelId].m_curvilinearGrid->NumN()); + curvilinearGrid.num_m = static_cast(meshKernelState[meshKernelId].m_curvilinearGrid->NumM()); } catch (...) { diff --git a/tools/test_utils/src/MakeCurvilinearGrids.cpp b/tools/test_utils/src/MakeCurvilinearGrids.cpp index 1ab1d6c86..b92b753ba 100644 --- a/tools/test_utils/src/MakeCurvilinearGrids.cpp +++ b/tools/test_utils/src/MakeCurvilinearGrids.cpp @@ -24,11 +24,11 @@ size_t CurvilinearGridCountValidNodes(meshkernel::CurvilinearGrid const& curvili { size_t validNodes = 0; size_t index = 0; - for (size_t m = 0; m < curvilinearGrid.m_numM; ++m) + for (meshkernel::UInt m = 0; m < curvilinearGrid.NumM(); ++m) { - for (size_t n = 0; n < curvilinearGrid.m_numN; ++n) + for (meshkernel::UInt n = 0; n < curvilinearGrid.NumN(); ++n) { - if (curvilinearGrid.m_gridNodes(m, n).IsValid()) + if (curvilinearGrid.GetNode(m, n).IsValid()) { validNodes++; }