summaryrefslogtreecommitdiff
path: root/cad/gmsh
diff options
context:
space:
mode:
Diffstat (limited to 'cad/gmsh')
-rw-r--r--cad/gmsh/Makefile3
-rw-r--r--cad/gmsh/distinfo6
-rw-r--r--cad/gmsh/files/patch-CMakeLists.txt11
-rw-r--r--cad/gmsh/files/patch-contrib_HighOrderMeshOptimizer_HighOrderMeshElasticAnalogy.cpp41
-rw-r--r--cad/gmsh/files/patch-contrib_MeshOptimizer_VertexCoord.cpp42
-rw-r--r--cad/gmsh/files/patch-contrib_domhex_BackgroundMesh2D.cpp110
-rw-r--r--cad/gmsh/files/patch-contrib_domhex_BackgroundMesh2D.h23
-rw-r--r--cad/gmsh/files/patch-contrib_domhex_surfaceFiller.cpp48
-rw-r--r--cad/gmsh/files/patch-src_common_gmsh.cpp32
-rw-r--r--cad/gmsh/files/patch-src_geo_GFace.cpp121
-rw-r--r--cad/gmsh/files/patch-src_geo_GFace.h26
-rw-r--r--cad/gmsh/files/patch-src_geo_GeomMeshMatcher.cpp274
-rw-r--r--cad/gmsh/files/patch-src_geo_GeomMeshMatcher.h32
-rw-r--r--cad/gmsh/files/patch-src_geo_OCCFace.cpp19
-rw-r--r--cad/gmsh/files/patch-src_geo_OCCFace.h11
-rw-r--r--cad/gmsh/files/patch-src_geo_Pair.h29
-rw-r--r--cad/gmsh/files/patch-src_geo_discreteFace.cpp33
-rw-r--r--cad/gmsh/files/patch-src_geo_discreteFace.h11
-rw-r--r--cad/gmsh/files/patch-src_geo_gmshFace.cpp27
-rw-r--r--cad/gmsh/files/patch-src_geo_gmshFace.h11
-rw-r--r--cad/gmsh/files/patch-src_geo_gmshSurface.cpp15
-rw-r--r--cad/gmsh/files/patch-src_geo_gmshSurface.h19
-rw-r--r--cad/gmsh/files/patch-src_geo_xyFace.h16
-rw-r--r--cad/gmsh/files/patch-src_mesh_BackgroundMesh.cpp26
-rw-r--r--cad/gmsh/files/patch-src_mesh_meshGFace.cpp22
-rw-r--r--cad/gmsh/files/patch-src_mesh_meshGFaceBamg.cpp24
-rw-r--r--cad/gmsh/files/patch-src_mesh_meshGFaceDelaunayInsertion.cpp18
-rw-r--r--cad/gmsh/pkg-plist17
28 files changed, 21 insertions, 1046 deletions
diff --git a/cad/gmsh/Makefile b/cad/gmsh/Makefile
index b5a498ce42ad..ae29096cd085 100644
--- a/cad/gmsh/Makefile
+++ b/cad/gmsh/Makefile
@@ -1,6 +1,5 @@
PORTNAME= gmsh
-DISTVERSION= 4.13.1
-PORTREVISION= 6
+DISTVERSION= 4.14.0
CATEGORIES= cad
MASTER_SITES= http://gmsh.info/src/
DISTNAME= ${PORTNAME}-${PORTVERSION}-source
diff --git a/cad/gmsh/distinfo b/cad/gmsh/distinfo
index a962d87ceaf7..2c20a5dbf455 100644
--- a/cad/gmsh/distinfo
+++ b/cad/gmsh/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1718914009
-SHA256 (gmsh/gmsh-4.13.1-source.tgz) = 77972145f431726026d50596a6a44fb3c1c95c21255218d66955806b86edbe8d
-SIZE (gmsh/gmsh-4.13.1-source.tgz) = 18383962
+TIMESTAMP = 1753978269
+SHA256 (gmsh/gmsh-4.14.0-source.tgz) = db4d7da2062e9a4356a820832138ab99f97af6388bfeb21599a2eadfb0b76a28
+SIZE (gmsh/gmsh-4.14.0-source.tgz) = 18458158
diff --git a/cad/gmsh/files/patch-CMakeLists.txt b/cad/gmsh/files/patch-CMakeLists.txt
deleted file mode 100644
index 86815dd843e5..000000000000
--- a/cad/gmsh/files/patch-CMakeLists.txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- CMakeLists.txt.orig 2024-05-07 15:55:05 UTC
-+++ CMakeLists.txt
-@@ -834,7 +834,7 @@ if(ENABLE_TINYXML2)
- endif()
-
- if(ENABLE_TINYXML2)
-- find_library(TINYXML2_LIB mathex PATH_SUFFIXES lib)
-+ find_library(TINYXML2_LIB tinyxml2 PATH_SUFFIXES lib)
- find_path(TINYXML2_INC "tinyxml2.h" PATH_SUFFIXES src include)
- if(ENABLE_SYSTEM_CONTRIB AND TINYXML2_LIB AND TINYXML2_INC)
- list(APPEND EXTERNAL_LIBRARIES ${TINYXML2_LIB})
diff --git a/cad/gmsh/files/patch-contrib_HighOrderMeshOptimizer_HighOrderMeshElasticAnalogy.cpp b/cad/gmsh/files/patch-contrib_HighOrderMeshOptimizer_HighOrderMeshElasticAnalogy.cpp
deleted file mode 100644
index 2ecac4e87b02..000000000000
--- a/cad/gmsh/files/patch-contrib_HighOrderMeshOptimizer_HighOrderMeshElasticAnalogy.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
---- contrib/HighOrderMeshOptimizer/HighOrderMeshElasticAnalogy.cpp.orig 2024-03-29 22:06:53 UTC
-+++ contrib/HighOrderMeshOptimizer/HighOrderMeshElasticAnalogy.cpp
-@@ -242,25 +242,25 @@ void highOrderTools::_computeMetricInfo(GFace *gf, MEl
- for(int j = 0; j < nbNodes; j++) {
- SPoint2 param;
- reparamMeshVertexOnFace(e->getVertex(j), gf, param);
-- Pair<SVector3, SVector3> der = gf->firstDer(param);
-+ std::pair<SVector3, SVector3> der = gf->firstDer(param);
- int XJ = j;
- int YJ = j + nbNodes;
- int ZJ = j + 2 * nbNodes;
- int UJ = j;
- int VJ = j + nbNodes;
-- J(XJ, UJ) = der.first().x();
-- J(YJ, UJ) = der.first().y();
-- J(ZJ, UJ) = der.first().z();
-- J(XJ, VJ) = der.second().x();
-- J(YJ, VJ) = der.second().y();
-- J(ZJ, VJ) = der.second().z();
-+ J(XJ, UJ) = der.first.x();
-+ J(YJ, UJ) = der.first.y();
-+ J(ZJ, UJ) = der.first.z();
-+ J(XJ, VJ) = der.second.x();
-+ J(YJ, VJ) = der.second.y();
-+ J(ZJ, VJ) = der.second.z();
-
-- JT(UJ, XJ) = der.first().x();
-- JT(UJ, YJ) = der.first().y();
-- JT(UJ, ZJ) = der.first().z();
-- JT(VJ, XJ) = der.second().x();
-- JT(VJ, YJ) = der.second().y();
-- JT(VJ, ZJ) = der.second().z();
-+ JT(UJ, XJ) = der.first.x();
-+ JT(UJ, YJ) = der.first.y();
-+ JT(UJ, ZJ) = der.first.z();
-+ JT(VJ, XJ) = der.second.x();
-+ JT(VJ, YJ) = der.second.y();
-+ JT(VJ, ZJ) = der.second.z();
-
- SVector3 ss = getSSL(e->getVertex(j));
- GPoint gp = gf->point(param);
diff --git a/cad/gmsh/files/patch-contrib_MeshOptimizer_VertexCoord.cpp b/cad/gmsh/files/patch-contrib_MeshOptimizer_VertexCoord.cpp
deleted file mode 100644
index 4cb21e79ce54..000000000000
--- a/cad/gmsh/files/patch-contrib_MeshOptimizer_VertexCoord.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
---- contrib/MeshOptimizer/VertexCoord.cpp.orig 2024-03-29 22:06:54 UTC
-+++ contrib/MeshOptimizer/VertexCoord.cpp
-@@ -76,12 +76,12 @@ void VertexCoordParent::gXyz2gUvw(const SPoint3 &uvw,
- gUvw[0] = gXyz.x() * der.x() + gXyz.y() * der.y() + gXyz.z() * der.z();
- }
- else {
-- Pair<SVector3, SVector3> der =
-+ std::pair<SVector3, SVector3> der =
- static_cast<GFace *>(ge)->firstDer(SPoint2(uvw[0], uvw[1]));
-- gUvw[0] = gXyz.x() * der.first().x() + gXyz.y() * der.first().y() +
-- gXyz.z() * der.first().z();
-- gUvw[1] = gXyz.x() * der.second().x() + gXyz.y() * der.second().y() +
-- gXyz.z() * der.second().z();
-+ gUvw[0] = gXyz.x() * der.first.x() + gXyz.y() * der.first.y() +
-+ gXyz.z() * der.first.z();
-+ gUvw[1] = gXyz.x() * der.second.x() + gXyz.y() * der.second.y() +
-+ gXyz.z() * der.second.z();
- }
- }
-
-@@ -101,15 +101,15 @@ void VertexCoordParent::gXyz2gUvw(const SPoint3 &uvw,
- }
- }
- else {
-- Pair<SVector3, SVector3> der =
-+ std::pair<SVector3, SVector3> der =
- static_cast<GFace *>(ge)->firstDer(SPoint2(uvw[0], uvw[1]));
- auto itUvw = gUvw.begin();
- for(auto itXyz = gXyz.begin(); itXyz != gXyz.end(); itXyz++) {
-- (*itUvw)[0] = itXyz->x() * der.first().x() +
-- itXyz->y() * der.first().y() + itXyz->z() * der.first().z();
-- (*itUvw)[1] = itXyz->x() * der.second().x() +
-- itXyz->y() * der.second().y() +
-- itXyz->z() * der.second().z();
-+ (*itUvw)[0] = itXyz->x() * der.first.x() +
-+ itXyz->y() * der.first.y() + itXyz->z() * der.first.z();
-+ (*itUvw)[1] = itXyz->x() * der.second.x() +
-+ itXyz->y() * der.second.y() +
-+ itXyz->z() * der.second.z();
- itUvw++;
- }
- }
diff --git a/cad/gmsh/files/patch-contrib_domhex_BackgroundMesh2D.cpp b/cad/gmsh/files/patch-contrib_domhex_BackgroundMesh2D.cpp
deleted file mode 100644
index 2863634a8f85..000000000000
--- a/cad/gmsh/files/patch-contrib_domhex_BackgroundMesh2D.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
---- contrib/domhex/BackgroundMesh2D.cpp.orig 2024-03-29 22:06:54 UTC
-+++ contrib/domhex/BackgroundMesh2D.cpp
-@@ -490,9 +490,9 @@ void frameFieldBackgroundMesh2D::computeCrossField(
- v[1] = (*it)->lines[i]->getVertex(1);
- SPoint2 p1, p2;
- reparamMeshEdgeOnFace(v[0], v[1], face, p1, p2);
-- Pair<SVector3, SVector3> der = face->firstDer((p1 + p2) * .5);
-- SVector3 t1 = der.first();
-- SVector3 t2 = der.second();
-+ std::pair<SVector3, SVector3> der = face->firstDer((p1 + p2) * .5);
-+ SVector3 t1 = der.first;
-+ SVector3 t2 = der.second;
- SVector3 n = crossprod(t1, t2);
- n.normalize();
- SVector3 d1(v[1]->x() - v[0]->x(), v[1]->y() - v[0]->y(),
-@@ -534,21 +534,21 @@ void frameFieldBackgroundMesh2D::eval_crossfield(doubl
- STensor3 &cf)
- {
- double quadAngle = angle(u, v);
-- Pair<SVector3, SVector3> dirs =
-+ std::pair<SVector3, SVector3> dirs =
- compute_crossfield_directions(u, v, quadAngle);
-- SVector3 n = crossprod(dirs.first(), dirs.second());
-+ SVector3 n = crossprod(dirs.first, dirs.second);
-
- for(int i = 0; i < 3; i++) {
-- cf(i, 0) = dirs.first()[i];
-- cf(i, 1) = dirs.second()[i];
-+ cf(i, 0) = dirs.first[i];
-+ cf(i, 1) = dirs.second[i];
- cf(i, 2) = n[i];
- }
-
- // SVector3 t1,t2,n;
- // GFace *face = dynamic_cast<GFace*>(gf);
-- // Pair<SVector3, SVector3> der = face->firstDer(SPoint2(u,v));
-- // SVector3 s1 = der.first();
-- // SVector3 s2 = der.second();
-+ // std::pair<SVector3, SVector3> der = face->firstDer(SPoint2(u,v));
-+ // SVector3 s1 = der.first;
-+ // SVector3 s2 = der.second;
- // n = crossprod(s1,s2);
- // n.normalize();
- // s1.normalize();
-@@ -642,12 +642,12 @@ void frameFieldBackgroundMesh2D::exportCrossField(cons
- double angle_current = angle(v);
- GPoint p = get_GPoint_from_MVertex(v);
- for(int i = 0; i < 2; i++) {
-- Pair<SVector3, SVector3> dirs = compute_crossfield_directions(
-+ std::pair<SVector3, SVector3> dirs = compute_crossfield_directions(
- v->x(), v->y(), angle_current + deltas[i]);
- fprintf(f, "VP(%g,%g,%g) {%g,%g,%g};\n", p.x(), p.y(), p.z(),
-- dirs.first()[0], dirs.first()[1], dirs.first()[2]);
-+ dirs.first[0], dirs.first[1], dirs.first[2]);
- fprintf(f, "VP(%g,%g,%g) {%g,%g,%g};\n", p.x(), p.y(), p.z(),
-- dirs.second()[0], dirs.second()[1], dirs.second()[2]);
-+ dirs.second[0], dirs.second[1], dirs.second[2]);
- }
- }
- fprintf(f, "};\n");
-@@ -656,7 +656,7 @@ void frameFieldBackgroundMesh2D::exportCrossField(cons
-
- // returns the cross field as a pair of othogonal vectors (NOT in parametric
- // coordinates, but real 3D coordinates)
--Pair<SVector3, SVector3>
-+std::pair<SVector3, SVector3>
- frameFieldBackgroundMesh2D::compute_crossfield_directions(double u, double v,
- double angle_current)
- {
-@@ -664,12 +664,12 @@ frameFieldBackgroundMesh2D::compute_crossfield_directi
- GFace *face = dynamic_cast<GFace *>(gf);
- if(!face) {
- Msg::Error("Entity is not a face in background mesh");
-- return Pair<SVector3, SVector3>(SVector3(), SVector3());
-+ return std::pair<SVector3, SVector3>(SVector3(), SVector3());
- }
-
-- Pair<SVector3, SVector3> der = face->firstDer(SPoint2(u, v));
-- SVector3 s1 = der.first();
-- SVector3 s2 = der.second();
-+ std::pair<SVector3, SVector3> der = face->firstDer(SPoint2(u, v));
-+ SVector3 s1 = der.first;
-+ SVector3 s2 = der.second;
- SVector3 n = crossprod(s1, s2);
- n.normalize();
-
-@@ -687,8 +687,8 @@ frameFieldBackgroundMesh2D::compute_crossfield_directi
- SVector3 t2 = crossprod(n, t1);
- t2.normalize();
-
-- return Pair<SVector3, SVector3>(SVector3(t1[0], t1[1], t1[2]),
-- SVector3(t2[0], t2[1], t2[2]));
-+ return std::pair<SVector3, SVector3>(SVector3(t1[0], t1[1], t1[2]),
-+ SVector3(t2[0], t2[1], t2[2]));
- }
-
- bool frameFieldBackgroundMesh2D::compute_RK_infos(double u, double v, double x,
-@@ -711,9 +711,9 @@ bool frameFieldBackgroundMesh2D::compute_RK_infos(doub
- return false;
- }
-
-- Pair<SVector3, SVector3> der = face->firstDer(SPoint2(u, v));
-- SVector3 s1 = der.first();
-- SVector3 s2 = der.second();
-+ std::pair<SVector3, SVector3> der = face->firstDer(SPoint2(u, v));
-+ SVector3 s1 = der.first;
-+ SVector3 s2 = der.second;
- SVector3 n = crossprod(s1, s2);
- n.normalize();
- SVector3 basis_u = s1;
diff --git a/cad/gmsh/files/patch-contrib_domhex_BackgroundMesh2D.h b/cad/gmsh/files/patch-contrib_domhex_BackgroundMesh2D.h
deleted file mode 100644
index 9e6ad3a20153..000000000000
--- a/cad/gmsh/files/patch-contrib_domhex_BackgroundMesh2D.h
+++ /dev/null
@@ -1,23 +0,0 @@
---- contrib/domhex/BackgroundMesh2D.h.orig 2024-03-29 22:06:54 UTC
-+++ contrib/domhex/BackgroundMesh2D.h
-@@ -9,9 +9,7 @@
- #include <string>
- #include <map>
- #include <vector>
--#include "Pair.h"
- #include "STensor3.h"
--
- #include "BGMBase.h"
-
- class MTriangle;
-@@ -133,8 +131,8 @@ class frameFieldBackgroundMesh2D : public backgroundMe
- void eval_crossfield(MVertex *vert, STensor3 &cf);
-
- void exportCrossField(const std::string &filename);
-- Pair<SVector3, SVector3> compute_crossfield_directions(double u, double v,
-- double angle_current);
-+ std::pair<SVector3, SVector3> compute_crossfield_directions(double u, double v,
-+ double angle_current);
- bool compute_RK_infos(double u, double v, double x, double y, double z,
- RK_form &infos);
-
diff --git a/cad/gmsh/files/patch-contrib_domhex_surfaceFiller.cpp b/cad/gmsh/files/patch-contrib_domhex_surfaceFiller.cpp
deleted file mode 100644
index 2985db17481f..000000000000
--- a/cad/gmsh/files/patch-contrib_domhex_surfaceFiller.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
---- contrib/domhex/surfaceFiller.cpp.orig 2024-03-29 22:06:54 UTC
-+++ contrib/domhex/surfaceFiller.cpp
-@@ -85,10 +85,10 @@ bool compute4neighbors(
- metricField = SMetric3(1. / (L * L));
-
- // get the unit normal at that point
-- Pair<SVector3, SVector3> der =
-+ std::pair<SVector3, SVector3> der =
- gf->firstDer(SPoint2(midpoint[0], midpoint[1]));
-- SVector3 s1 = der.first();
-- SVector3 s2 = der.second();
-+ SVector3 s1 = der.first;
-+ SVector3 s2 = der.second;
- SVector3 n = crossprod(s1, s2);
- n.normalize();
- t1 -= n*dot(t1,n);
-@@ -259,10 +259,10 @@ bool compute4neighbors(
- // // 0
-
- // // get the unit normal at that point
--// Pair<SVector3, SVector3> der =
-+// std::pair<SVector3, SVector3> der =
- // gf->firstDer(SPoint2(midpoint[0], midpoint[1]));
--// SVector3 s1 = der.first();
--// SVector3 s2 = der.second();
-+// SVector3 s1 = der.first;
-+// SVector3 s2 = der.second;
- // SVector3 n = crossprod(s1, s2);
- // n.normalize();
-
-@@ -490,7 +490,7 @@ void packingOfParallelograms(GFace *gf, std::vector<MV
- double du[4] = {0,0,0,0}, dv[4]= {0,0,0,0};
-
- // printf("cop %d\n",(*it)->getNum());
--
-+
- for (int i=0;i<2;i++){
- if (gf->periodic(i)){
- reparamMeshVertexOnFace(*it, gf, midpoint);
-@@ -513,7 +513,7 @@ void packingOfParallelograms(GFace *gf, std::vector<MV
- }
-
- if (NP == 0)NP=1;
--
-+
- for (int i=0;i<NP;i++){
- bool singular = !compute4neighbors(gf, *it, midpoint, newp, metricField, cross_field, du[i],dv[i],globalMult );
- // printf("there %d %g %g\n",singular,du[i],dv[i]);
diff --git a/cad/gmsh/files/patch-src_common_gmsh.cpp b/cad/gmsh/files/patch-src_common_gmsh.cpp
deleted file mode 100644
index df550b32000f..000000000000
--- a/cad/gmsh/files/patch-src_common_gmsh.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
---- src/common/gmsh.cpp.orig 2024-05-05 07:36:23 UTC
-+++ src/common/gmsh.cpp
-@@ -443,7 +443,7 @@ GMSH_API void gmsh::model::getEntitiesForPhysicalName(
- GModel::current()->getEntitiesForPhysicalName(name, entities);
- if(entities.size() != 0) {
- for(auto ge : entities) {
-- dimTags.push_back(std::pair<int, int >(ge->dim(), ge->tag()));
-+ dimTags.push_back(std::make_pair(ge->dim(), ge->tag()));
- }
- }
- else {
-@@ -847,13 +847,13 @@ gmsh::model::getDerivative(const int dim, const int ta
- GFace *gf = static_cast<GFace *>(entity);
- for(std::size_t i = 0; i < parametricCoord.size(); i += 2) {
- SPoint2 param(parametricCoord[i], parametricCoord[i + 1]);
-- Pair<SVector3, SVector3> d = gf->firstDer(param);
-- deriv.push_back(d.left().x());
-- deriv.push_back(d.left().y());
-- deriv.push_back(d.left().z());
-- deriv.push_back(d.right().x());
-- deriv.push_back(d.right().y());
-- deriv.push_back(d.right().z());
-+ std::pair<SVector3, SVector3> d = gf->firstDer(param);
-+ deriv.push_back(d.first.x());
-+ deriv.push_back(d.first.y());
-+ deriv.push_back(d.first.z());
-+ deriv.push_back(d.second.x());
-+ deriv.push_back(d.second.y());
-+ deriv.push_back(d.second.z());
- }
- }
- }
diff --git a/cad/gmsh/files/patch-src_geo_GFace.cpp b/cad/gmsh/files/patch-src_geo_GFace.cpp
deleted file mode 100644
index 241d63352f0e..000000000000
--- a/cad/gmsh/files/patch-src_geo_GFace.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
---- src/geo/GFace.cpp.orig 2024-03-29 22:07:00 UTC
-+++ src/geo/GFace.cpp
-@@ -880,10 +880,10 @@ double GFace::curvatureDiv(const SPoint2 &param) const
-
- const double eps = 1.e-5;
-
-- Pair<SVector3, SVector3> der = firstDer(param);
-+ std::pair<SVector3, SVector3> der = firstDer(param);
-
-- SVector3 du = der.first();
-- SVector3 dv = der.second();
-+ SVector3 du = der.first;
-+ SVector3 dv = der.second;
- SVector3 nml = crossprod(du, dv);
-
- double detJ = norm(nml);
-@@ -937,19 +937,19 @@ double GFace::curvatures(const SPoint2 &param, SVector
- SVector3 &dirMin, double &curvMax,
- double &curvMin) const
- {
-- Pair<SVector3, SVector3> D1 = firstDer(param);
-+ std::pair<SVector3, SVector3> D1 = firstDer(param);
-
- if(geomType() == Plane || geomType() == BoundaryLayerSurface) {
-- dirMax = D1.first();
-- dirMin = D1.second();
-+ dirMax = D1.first;
-+ dirMin = D1.second;
- curvMax = 0.;
- curvMin = 0.;
- return 0.;
- }
-
- if(geomType() == Sphere) {
-- dirMax = D1.first();
-- dirMin = D1.second();
-+ dirMax = D1.first;
-+ dirMin = D1.second;
- curvMax = curvatureDiv(param);
- curvMin = curvMax;
- return curvMax;
-@@ -961,8 +961,8 @@ double GFace::curvatures(const SPoint2 &param, SVector
- // curvatures and main directions
- curvMax = fabs(eigVal[1]);
- curvMin = fabs(eigVal[0]);
-- dirMax = eigVec[1] * D1.first() + eigVec[3] * D1.second();
-- dirMin = eigVec[0] * D1.first() + eigVec[2] * D1.second();
-+ dirMax = eigVec[1] * D1.first + eigVec[3] * D1.second;
-+ dirMin = eigVec[0] * D1.first + eigVec[2] * D1.second;
-
- return curvMax;
- }
-@@ -979,9 +979,9 @@ void GFace::getMetricEigenVectors(const SPoint2 &param
- double eigVec[4]) const
- {
- // first derivatives
-- Pair<SVector3, SVector3> D1 = firstDer(param);
-- SVector3 du = D1.first();
-- SVector3 dv = D1.second();
-+ std::pair<SVector3, SVector3> D1 = firstDer(param);
-+ SVector3 du = D1.first;
-+ SVector3 dv = D1.second;
- SVector3 nor = crossprod(du, dv);
- nor.normalize();
-
-@@ -1088,13 +1088,13 @@ void GFace::XYZtoUV(double X, double Y, double Z, doub
-
- while(err > tol && iter < MaxIter) {
- P = point(U, V);
-- Pair<SVector3, SVector3> der = firstDer(SPoint2(U, V));
-- mat[0][0] = der.left().x();
-- mat[0][1] = der.left().y();
-- mat[0][2] = der.left().z();
-- mat[1][0] = der.right().x();
-- mat[1][1] = der.right().y();
-- mat[1][2] = der.right().z();
-+ std::pair<SVector3, SVector3> der = firstDer(SPoint2(U, V));
-+ mat[0][0] = der.first.x();
-+ mat[0][1] = der.first.y();
-+ mat[0][2] = der.first.z();
-+ mat[1][0] = der.second.x();
-+ mat[1][1] = der.second.y();
-+ mat[1][2] = der.second.z();
- mat[2][0] = 0.;
- mat[2][1] = 0.;
- mat[2][2] = 0.;
-@@ -1193,15 +1193,15 @@ void bfgs_callback(const alglib::real_1d_array &x, dou
- // printf("func : %f\n", func);
-
- // Value of the gradient
-- Pair<SVector3, SVector3> der = gf->firstDer(SPoint2(x[0], x[1]));
-- grad[0] = -(p.x() - pnt.x()) * der.left().x() -
-- (p.y() - pnt.y()) * der.left().y() -
-- (p.z() - pnt.z()) * der.left().z();
-- grad[1] = -(p.x() - pnt.x()) * der.right().x() -
-- (p.y() - pnt.y()) * der.right().y() -
-- (p.z() - pnt.z()) * der.right().z();
-+ std::pair<SVector3, SVector3> der = gf->firstDer(SPoint2(x[0], x[1]));
-+ grad[0] = -(p.x() - pnt.x()) * der.first.x() -
-+ (p.y() - pnt.y()) * der.first.y() -
-+ (p.z() - pnt.z()) * der.first.z();
-+ grad[1] = -(p.x() - pnt.x()) * der.second.x() -
-+ (p.y() - pnt.y()) * der.second.y() -
-+ (p.z() - pnt.z()) * der.second.z();
- // printf("func %22.15E Gradients %22.15E %22.15E der %g %g %g\n", func,
-- // grad[0], grad[1],der.left().x(),der.left().y(),der.left().z());
-+ // grad[0], grad[1],der.first.x(),der.first.y(),der.first.z());
- }
- #endif
-
-@@ -1296,8 +1296,8 @@ SVector3 GFace::normal(const SPoint2 &param) const
- {
- if(geomType() == BoundaryLayerSurface) return SVector3();
-
-- Pair<SVector3, SVector3> der = firstDer(param);
-- SVector3 n = crossprod(der.first(), der.second());
-+ std::pair<SVector3, SVector3> der = firstDer(param);
-+ SVector3 n = crossprod(der.first, der.second);
- n.normalize();
- return n;
- }
diff --git a/cad/gmsh/files/patch-src_geo_GFace.h b/cad/gmsh/files/patch-src_geo_GFace.h
deleted file mode 100644
index 6155c2ff1b67..000000000000
--- a/cad/gmsh/files/patch-src_geo_GFace.h
+++ /dev/null
@@ -1,26 +0,0 @@
---- src/geo/GFace.h.orig 2024-03-29 22:07:00 UTC
-+++ src/geo/GFace.h
-@@ -10,13 +10,13 @@
- #include <string>
- #include <vector>
- #include <map>
-+#include <utility>
- #include "GmshDefines.h"
- #include "GEntity.h"
- #include "GPoint.h"
- #include "GEdgeLoop.h"
- #include "SPoint2.h"
- #include "SVector3.h"
--#include "Pair.h"
- #include "Numeric.h"
- #include "boundaryLayersData.h"
-
-@@ -201,7 +201,7 @@ class GFace : public GEntity { (public)
- virtual SVector3 normal(const SPoint2 &param) const;
-
- // return the first derivate of the face at the parameter location
-- virtual Pair<SVector3, SVector3> firstDer(const SPoint2 &param) const = 0;
-+ virtual std::pair<SVector3, SVector3> firstDer(const SPoint2 &param) const = 0;
-
- // compute the second derivates of the face at the parameter location
- virtual void secondDer(const SPoint2 &param, SVector3 &dudu, SVector3 &dvdv,
diff --git a/cad/gmsh/files/patch-src_geo_GeomMeshMatcher.cpp b/cad/gmsh/files/patch-src_geo_GeomMeshMatcher.cpp
deleted file mode 100644
index a78293d1f542..000000000000
--- a/cad/gmsh/files/patch-src_geo_GeomMeshMatcher.cpp
+++ /dev/null
@@ -1,274 +0,0 @@
---- src/geo/GeomMeshMatcher.cpp.orig 2024-03-29 22:07:00 UTC
-+++ src/geo/GeomMeshMatcher.cpp
-@@ -12,7 +12,6 @@
- #include <list>
- #include <vector>
- #include "GeomMeshMatcher.h"
--#include "Pair.h"
- #include "discreteVertex.h"
- #include "GmshMessage.h"
- #include "SOrientedBoundingBox.h"
-@@ -61,22 +60,22 @@ void getIntersection(std::vector<T> &res, std::vector<
- }
- }
-
--template <class T> T findMatching(std::vector<Pair<T, T> > &matching, T &entity)
-+template <class T> T findMatching(std::vector<std::pair<T, T> > &matching, T &entity)
- {
- for(auto pair = matching.begin(); pair != matching.end(); pair++) {
-- if((*pair).left() == entity) return ((*pair).right());
-+ if((*pair).first == entity) return ((*pair).second);
- }
- return (0);
- }
-
- // Matching vertices
-
--std::vector<Pair<GVertex *, GVertex *> > *
-+std::vector<std::pair<GVertex *, GVertex *> > *
- GeomMeshMatcher::matchVertices(GModel *m1, GModel *m2, bool &ok)
- {
- // Vector that will be returned.
-- std::vector<Pair<GVertex *, GVertex *> > *coresp_v =
-- new std::vector<Pair<GVertex *, GVertex *> >;
-+ std::vector<std::pair<GVertex *, GVertex *> > *coresp_v =
-+ new std::vector<std::pair<GVertex *, GVertex *> >;
- int num_matched_vertices = 0;
- int num_total_vertices = m2->getNumVertices();
-
-@@ -107,7 +106,7 @@ GeomMeshMatcher::matchVertices(GModel *m1, GModel *m2,
-
- if(choice && best_score != DBL_MAX) {
- choice->physicals = v1->physicals;
-- coresp_v->push_back(Pair<GVertex *, GVertex *>(v1, choice));
-+ coresp_v->push_back(std::make_pair(v1, choice));
- num_matched_vertices++;
- }
- }
-@@ -120,17 +119,17 @@ GeomMeshMatcher::matchVertices(GModel *m1, GModel *m2,
-
- // Matching edges
-
--std::vector<Pair<GEdge *, GEdge *> > *
-+std::vector<std::pair<GEdge *, GEdge *> > *
- GeomMeshMatcher::matchEdges(GModel *m1, GModel *m2,
-- std::vector<Pair<GVertex *, GVertex *> > *coresp_v,
-+ std::vector<std::pair<GVertex *, GVertex *> > *coresp_v,
- bool &ok)
- {
- int num_matched_edges = 0;
- int num_total_edges = m2->getNumEdges();
-
- // Vector that will be returned.
-- std::vector<Pair<GEdge *, GEdge *> > *coresp_e =
-- new std::vector<Pair<GEdge *, GEdge *> >;
-+ std::vector<std::pair<GEdge *, GEdge *> > *coresp_e =
-+ new std::vector<std::pair<GEdge *, GEdge *> >;
-
- std::vector<GEdge *> closed_curves;
-
-@@ -195,7 +194,7 @@ GeomMeshMatcher::matchEdges(GModel *m1, GModel *m2,
- }
- }
- }
-- coresp_e->push_back(Pair<GEdge *, GEdge *>(e1, choice));
-+ coresp_e->push_back(std::make_pair(e1, choice));
-
- // copy topological information
- if(choice) {
-@@ -213,16 +212,16 @@ GeomMeshMatcher::matchEdges(GModel *m1, GModel *m2,
-
- // Matching faces
-
--std::vector<Pair<GFace *, GFace *> > *
-+std::vector<std::pair<GFace *, GFace *> > *
- GeomMeshMatcher::matchFaces(GModel *m1, GModel *m2,
-- std::vector<Pair<GEdge *, GEdge *> > *coresp_e,
-+ std::vector<std::pair<GEdge *, GEdge *> > *coresp_e,
- bool &ok)
- {
- int num_matched_faces = 0;
- int num_total_faces = m2->getNumFaces();
-
-- std::vector<Pair<GFace *, GFace *> > *coresp_f =
-- new std::vector<Pair<GFace *, GFace *> >;
-+ std::vector<std::pair<GFace *, GFace *> > *coresp_f =
-+ new std::vector<std::pair<GFace *, GFace *> >;
-
- for(auto fit = m1->firstFace(); fit != m1->lastFace(); fit++) {
- GFace *f1 = (GFace *)*fit;
-@@ -276,7 +275,7 @@ GeomMeshMatcher::matchFaces(GModel *m1, GModel *m2,
-
- if(choice) {
- Msg::Debug("Surfaces %i and %i match", f1->tag(), choice->tag());
-- coresp_f->push_back(Pair<GFace *, GFace *>(f1, choice));
-+ coresp_f->push_back(std::make_pair(f1, choice));
- // copy topological information
- choice->setTag(f1->tag());
- f1->physicals = choice->physicals;
-@@ -292,17 +291,17 @@ GeomMeshMatcher::matchFaces(GModel *m1, GModel *m2,
-
- // Matching regions
-
--std::vector<Pair<GRegion *, GRegion *> > *
-+std::vector<std::pair<GRegion *, GRegion *> > *
- GeomMeshMatcher::matchRegions(GModel *m1, GModel *m2,
-- std::vector<Pair<GFace *, GFace *> > *coresp_f,
-+ std::vector<std::pair<GFace *, GFace *> > *coresp_f,
- bool &ok)
-
- {
- int num_matched_regions = 0;
- int num_total_regions = 0;
-
-- std::vector<Pair<GRegion *, GRegion *> > *coresp_r =
-- new std::vector<Pair<GRegion *, GRegion *> >;
-+ std::vector<std::pair<GRegion *, GRegion *> > *coresp_r =
-+ new std::vector<std::pair<GRegion *, GRegion *> >;
-
- std::vector<GEntity *> m1_entities;
- m1->getEntities(m1_entities, 3);
-@@ -344,8 +343,7 @@ GeomMeshMatcher::matchRegions(GModel *m1, GModel *m2,
- }
-
- if(common_regions.size() == 1) {
-- coresp_r->push_back(
-- Pair<GRegion *, GRegion *>((GRegion *)*entity1, common_regions[0]));
-+ coresp_r->push_back(std::make_pair((GRegion *)*entity1, common_regions[0]));
- common_regions[0]->setTag(((GRegion *)*entity1)->tag());
- (*entity1)->physicals = common_regions[0]->physicals;
- num_matched_regions++;
-@@ -377,8 +375,7 @@ GeomMeshMatcher::matchRegions(GModel *m1, GModel *m2,
- choice = (*candidate);
- }
- }
-- coresp_r->push_back(
-- Pair<GRegion *, GRegion *>((GRegion *)*entity1, choice));
-+ coresp_r->push_back(std::make_pair((GRegion *)*entity1, choice));
- if(choice) {
- choice->setTag(((GRegion *)*entity1)->tag());
- (*entity1)->physicals = choice->physicals;
-@@ -594,13 +591,13 @@ template <class GEType>
- }
-
- template <class GEType>
--static void copy_periodicity(std::vector<Pair<GEType *, GEType *> > &eCor,
-+static void copy_periodicity(std::vector<std::pair<GEType *, GEType *> > &eCor,
- std::map<MVertex *, MVertex *> &mesh_to_geom)
- {
- typename std::multimap<GEType *, GEType *> eMap; // (eCor.begin(),eCor.end());
- auto eIter = eCor.begin();
- for(; eIter != eCor.end(); ++eIter) {
-- eMap.insert(std::make_pair(eIter->second(), eIter->first()));
-+ eMap.insert(std::make_pair(eIter->second, eIter->first));
- }
-
- auto srcIter = eMap.begin();
-@@ -651,12 +648,12 @@ template <class GEType>
- }
-
- template <class GEType>
--static bool apply_periodicity(std::vector<Pair<GEType *, GEType *> > &eCor)
-+static bool apply_periodicity(std::vector<std::pair<GEType *, GEType *> > &eCor)
- {
- typename std::multimap<GEType *, GEType *> eMap; // (eCor.begin(),eCor.end());
- auto eIter = eCor.begin();
- for(; eIter != eCor.end(); ++eIter) {
-- eMap.insert(std::make_pair(eIter->second(), eIter->first()));
-+ eMap.insert(std::make_pair(eIter->second, eIter->first));
- }
-
- auto srcIter = eMap.begin();
-@@ -787,57 +784,57 @@ void copy_vertices(GModel *geom, GModel *mesh,
-
- void copy_vertices(GModel *geom, GModel *mesh,
- std::map<MVertex *, MVertex *> &_mesh_to_geom,
-- std::vector<Pair<GVertex *, GVertex *> > *coresp_v,
-- std::vector<Pair<GEdge *, GEdge *> > *coresp_e,
-- std::vector<Pair<GFace *, GFace *> > *coresp_f,
-- std::vector<Pair<GRegion *, GRegion *> > *coresp_r)
-+ std::vector<std::pair<GVertex *, GVertex *> > *coresp_v,
-+ std::vector<std::pair<GEdge *, GEdge *> > *coresp_e,
-+ std::vector<std::pair<GFace *, GFace *> > *coresp_f,
-+ std::vector<std::pair<GRegion *, GRegion *> > *coresp_r)
- {
- // copy all elements
- for(std::size_t i = 0; i < coresp_v->size(); ++i)
-- copy_vertices((*coresp_v)[i].first(), (*coresp_v)[i].second(),
-+ copy_vertices((*coresp_v)[i].first, (*coresp_v)[i].second,
- _mesh_to_geom);
- for(std::size_t i = 0; i < coresp_e->size(); ++i)
-- copy_vertices((*coresp_e)[i].first(), (*coresp_e)[i].second(),
-+ copy_vertices((*coresp_e)[i].first, (*coresp_e)[i].second,
- _mesh_to_geom);
- for(std::size_t i = 0; i < coresp_f->size(); ++i)
-- copy_vertices((*coresp_f)[i].first(), (*coresp_f)[i].second(),
-+ copy_vertices((*coresp_f)[i].first, (*coresp_f)[i].second,
- _mesh_to_geom);
- for(std::size_t i = 0; i < coresp_r->size(); ++i)
-- copy_vertices((*coresp_r)[i].first(), (*coresp_r)[i].second(),
-+ copy_vertices((*coresp_r)[i].first, (*coresp_r)[i].second,
- _mesh_to_geom);
- }
- void copy_elements(GModel *geom, GModel *mesh,
- std::map<MVertex *, MVertex *> &_mesh_to_geom,
-- std::vector<Pair<GVertex *, GVertex *> > *coresp_v,
-- std::vector<Pair<GEdge *, GEdge *> > *coresp_e,
-- std::vector<Pair<GFace *, GFace *> > *coresp_f,
-- std::vector<Pair<GRegion *, GRegion *> > *coresp_r)
-+ std::vector<std::pair<GVertex *, GVertex *> > *coresp_v,
-+ std::vector<std::pair<GEdge *, GEdge *> > *coresp_e,
-+ std::vector<std::pair<GFace *, GFace *> > *coresp_f,
-+ std::vector<std::pair<GRegion *, GRegion *> > *coresp_r)
- {
- // copy all elements
-
- for(std::size_t i = 0; i < coresp_v->size(); ++i) {
-- GVertex *dest = (*coresp_v)[i].first();
-- GVertex *orig = (*coresp_v)[i].second();
-+ GVertex *dest = (*coresp_v)[i].first;
-+ GVertex *orig = (*coresp_v)[i].second;
- copy_elements<MPoint>(dest->points, orig->points, _mesh_to_geom);
- }
-
- for(std::size_t i = 0; i < coresp_e->size(); ++i) {
-- GEdge *dest = (*coresp_e)[i].first();
-- GEdge *orig = (*coresp_e)[i].second();
-+ GEdge *dest = (*coresp_e)[i].first;
-+ GEdge *orig = (*coresp_e)[i].second;
- copy_elements<MLine>(dest->lines, orig->lines, _mesh_to_geom);
- }
-
- for(std::size_t i = 0; i < coresp_f->size(); ++i) {
-- GFace *dest = (*coresp_f)[i].first();
-- GFace *orig = (*coresp_f)[i].second();
-+ GFace *dest = (*coresp_f)[i].first;
-+ GFace *orig = (*coresp_f)[i].second;
- copy_elements<MTriangle>(dest->triangles, orig->triangles, _mesh_to_geom);
- copy_elements<MQuadrangle>(dest->quadrangles, orig->quadrangles,
- _mesh_to_geom);
- }
-
- for(std::size_t i = 0; i < coresp_r->size(); ++i) {
-- GRegion *dest = (*coresp_r)[i].first();
-- GRegion *orig = (*coresp_r)[i].second();
-+ GRegion *dest = (*coresp_r)[i].first;
-+ GRegion *orig = (*coresp_r)[i].second;
- copy_elements<MTetrahedron>(dest->tetrahedra, orig->tetrahedra,
- _mesh_to_geom);
- copy_elements<MHexahedron>(dest->hexahedra, orig->hexahedra, _mesh_to_geom);
-@@ -857,10 +854,10 @@ int GeomMeshMatcher::match(GModel *geom, GModel *mesh)
-
- bool ok = true;
-
-- std::vector<Pair<GVertex *, GVertex *> > *coresp_v(nullptr);
-- std::vector<Pair<GEdge *, GEdge *> > *coresp_e(nullptr);
-- std::vector<Pair<GFace *, GFace *> > *coresp_f(nullptr);
-- std::vector<Pair<GRegion *, GRegion *> > *coresp_r(nullptr);
-+ std::vector<std::pair<GVertex *, GVertex *> > *coresp_v(nullptr);
-+ std::vector<std::pair<GEdge *, GEdge *> > *coresp_e(nullptr);
-+ std::vector<std::pair<GFace *, GFace *> > *coresp_f(nullptr);
-+ std::vector<std::pair<GRegion *, GRegion *> > *coresp_r(nullptr);
-
- coresp_v = matchVertices(geom, mesh, ok);
- if(ok) {
diff --git a/cad/gmsh/files/patch-src_geo_GeomMeshMatcher.h b/cad/gmsh/files/patch-src_geo_GeomMeshMatcher.h
deleted file mode 100644
index a22748865e45..000000000000
--- a/cad/gmsh/files/patch-src_geo_GeomMeshMatcher.h
+++ /dev/null
@@ -1,32 +0,0 @@
---- src/geo/GeomMeshMatcher.h.orig 2024-03-29 22:07:00 UTC
-+++ src/geo/GeomMeshMatcher.h
-@@ -16,21 +16,20 @@
- #include "GEdge.h"
- #include "GFace.h"
- #include "GRegion.h"
--#include "Pair.h"
-
- class GeomMeshMatcher {
- private:
-- std::vector<Pair<GVertex *, GVertex *> > *matchVertices(GModel *m1,
-- GModel *m2, bool &ok);
-- std::vector<Pair<GEdge *, GEdge *> > *
-+ std::vector<std::pair<GVertex *, GVertex *> > *
-+ matchVertices(GModel *m1, GModel *m2, bool &ok);
-+ std::vector<std::pair<GEdge *, GEdge *> > *
- matchEdges(GModel *m1, GModel *m2,
-- std::vector<Pair<GVertex *, GVertex *> > *coresp_v, bool &ok);
-- std::vector<Pair<GFace *, GFace *> > *
-+ std::vector<std::pair<GVertex *, GVertex *> > *coresp_v, bool &ok);
-+ std::vector<std::pair<GFace *, GFace *> > *
- matchFaces(GModel *m1, GModel *m2,
-- std::vector<Pair<GEdge *, GEdge *> > *coresp_e, bool &ok);
-- std::vector<Pair<GRegion *, GRegion *> > *
-+ std::vector<std::pair<GEdge *, GEdge *> > *coresp_e, bool &ok);
-+ std::vector<std::pair<GRegion *, GRegion *> > *
- matchRegions(GModel *m1, GModel *m2,
-- std::vector<Pair<GFace *, GFace *> > *coresp_f, bool &ok);
-+ std::vector<std::pair<GFace *, GFace *> > *coresp_f, bool &ok);
- static GeomMeshMatcher *_gmm_instance;
- GeomMeshMatcher() {}
- ~GeomMeshMatcher() {}
diff --git a/cad/gmsh/files/patch-src_geo_OCCFace.cpp b/cad/gmsh/files/patch-src_geo_OCCFace.cpp
deleted file mode 100644
index 4d34954ee598..000000000000
--- a/cad/gmsh/files/patch-src_geo_OCCFace.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
---- src/geo/OCCFace.cpp.orig 2024-03-29 22:07:01 UTC
-+++ src/geo/OCCFace.cpp
-@@ -249,13 +249,13 @@ SVector3 OCCFace::normal(const SPoint2 &param) const
- return n;
- }
-
--Pair<SVector3, SVector3> OCCFace::firstDer(const SPoint2 &param) const
-+std::pair<SVector3, SVector3> OCCFace::firstDer(const SPoint2 &param) const
- {
- gp_Pnt pnt;
- gp_Vec du, dv;
- _occface->D1(param.x(), param.y(), pnt, du, dv);
-- return Pair<SVector3, SVector3>(SVector3(du.X(), du.Y(), du.Z()),
-- SVector3(dv.X(), dv.Y(), dv.Z()));
-+ return std::make_pair(SVector3(du.X(), du.Y(), du.Z()),
-+ SVector3(dv.X(), dv.Y(), dv.Z()));
- }
-
- void OCCFace::secondDer(const SPoint2 &param, SVector3 &dudu, SVector3 &dvdv,
diff --git a/cad/gmsh/files/patch-src_geo_OCCFace.h b/cad/gmsh/files/patch-src_geo_OCCFace.h
deleted file mode 100644
index bf34b80f4372..000000000000
--- a/cad/gmsh/files/patch-src_geo_OCCFace.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/geo/OCCFace.h.orig 2024-03-29 22:07:01 UTC
-+++ src/geo/OCCFace.h
-@@ -42,7 +42,7 @@ class OCCFace : public GFace { (public)
- virtual bool containsPoint(const SPoint3 &pt) const;
- virtual bool containsParam(const SPoint2 &pt);
- virtual SVector3 normal(const SPoint2 &param) const;
-- virtual Pair<SVector3, SVector3> firstDer(const SPoint2 &param) const;
-+ virtual std::pair<SVector3, SVector3> firstDer(const SPoint2 &param) const;
- virtual void secondDer(const SPoint2 &, SVector3 &, SVector3 &,
- SVector3 &) const;
- virtual GEntity::GeomType geomType() const;
diff --git a/cad/gmsh/files/patch-src_geo_Pair.h b/cad/gmsh/files/patch-src_geo_Pair.h
deleted file mode 100644
index d99d6a3bcd43..000000000000
--- a/cad/gmsh/files/patch-src_geo_Pair.h
+++ /dev/null
@@ -1,29 +0,0 @@
---- src/geo/Pair.h.orig 2024-03-29 22:07:01 UTC
-+++ src/geo/Pair.h
-@@ -1,26 +0,0 @@
--// Gmsh - Copyright (C) 1997-2024 C. Geuzaine, J.-F. Remacle
--//
--// See the LICENSE.txt file in the Gmsh root directory for license information.
--// Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
--
--#ifndef PAIR_H
--#define PAIR_H
--
--// A pair of values, the types of which can be different
--template <class L, class R> class Pair {
--private:
-- L Left;
-- R Right;
--
--public:
-- Pair() {}
-- Pair(const L &left, const R &right) : Left(left), Right(right) {}
-- L left() const { return Left; }
-- void left(const L &left) { Left = left; }
-- R right() const { return Right; }
-- void right(const R &right) { Right = right; }
-- L first() const { return Left; }
-- R second() const { return Right; }
--};
--
--#endif
diff --git a/cad/gmsh/files/patch-src_geo_discreteFace.cpp b/cad/gmsh/files/patch-src_geo_discreteFace.cpp
deleted file mode 100644
index 52bbff44c5fe..000000000000
--- a/cad/gmsh/files/patch-src_geo_discreteFace.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
---- src/geo/discreteFace.cpp.orig 2024-04-18 14:52:42 UTC
-+++ src/geo/discreteFace.cpp
-@@ -363,16 +363,16 @@ double discreteFace::curvatures(const SPoint2 &param,
- return false;
- }
-
--Pair<SVector3, SVector3> discreteFace::firstDer(const SPoint2 &param) const
-+std::pair<SVector3, SVector3> discreteFace::firstDer(const SPoint2 &param) const
- {
-- if(_param.empty()) return Pair<SVector3, SVector3>(SVector3(), SVector3());
-+ if(_param.empty()) return std::make_pair(SVector3(), SVector3());
-
- MElement *e = _param.oct->find(param.x(), param.y(), 0.0, -1, true);
- if(!e) {
- Msg::Info("Triangle not found for first derivative at uv=(%g,%g) on "
- "discrete surface %d",
- param.x(), param.y(), tag());
-- return Pair<SVector3, SVector3>(SVector3(1, 0, 0), SVector3(0, 1, 0));
-+ return std::make_pair(SVector3(1, 0, 0), SVector3(0, 1, 0));
- }
-
- int position = (int)((MTriangle *)e - &_param.t2d[0]);
-@@ -403,8 +403,8 @@ Pair<SVector3, SVector3> discreteFace::firstDer(const
- }
- }
-
-- return Pair<SVector3, SVector3>(SVector3(dxdu[0][0], dxdu[1][0], dxdu[2][0]),
-- SVector3(dxdu[0][1], dxdu[1][1], dxdu[2][1]));
-+ return std::make_pair(SVector3(dxdu[0][0], dxdu[1][0], dxdu[2][0]),
-+ SVector3(dxdu[0][1], dxdu[1][1], dxdu[2][1]));
- }
-
- void discreteFace::secondDer(const SPoint2 &param, SVector3 &dudu,
diff --git a/cad/gmsh/files/patch-src_geo_discreteFace.h b/cad/gmsh/files/patch-src_geo_discreteFace.h
deleted file mode 100644
index dcbc173e68d0..000000000000
--- a/cad/gmsh/files/patch-src_geo_discreteFace.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/geo/discreteFace.h.orig 2024-04-18 14:52:42 UTC
-+++ src/geo/discreteFace.h
-@@ -60,7 +60,7 @@ class discreteFace : public GFace { (public)
- double curvatures(const SPoint2 &param, SVector3 &dirMax, SVector3 &dirMin,
- double &curvMax, double &curvMin) const;
- GEntity::GeomType geomType() const { return DiscreteSurface; }
-- virtual Pair<SVector3, SVector3> firstDer(const SPoint2 &param) const;
-+ virtual std::pair<SVector3, SVector3> firstDer(const SPoint2 &param) const;
- virtual void secondDer(const SPoint2 &param, SVector3 &dudu, SVector3 &dvdv,
- SVector3 &dudv) const;
- int createGeometry();
diff --git a/cad/gmsh/files/patch-src_geo_gmshFace.cpp b/cad/gmsh/files/patch-src_geo_gmshFace.cpp
deleted file mode 100644
index ecdfdd1ec5b4..000000000000
--- a/cad/gmsh/files/patch-src_geo_gmshFace.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
---- src/geo/gmshFace.cpp.orig 2024-03-29 22:07:01 UTC
-+++ src/geo/gmshFace.cpp
-@@ -215,19 +215,19 @@ SVector3 gmshFace::normal(const SPoint2 &param) const
- }
- }
-
--Pair<SVector3, SVector3> gmshFace::firstDer(const SPoint2 &param) const
-+std::pair<SVector3, SVector3> gmshFace::firstDer(const SPoint2 &param) const
- {
- if(_s->Typ == MSH_SURF_PLAN && !_s->geometry) {
- double x, y, z, VX[3], VY[3];
- getMeanPlaneData(VX, VY, x, y, z);
-- return Pair<SVector3, SVector3>(SVector3(VX[0], VX[1], VX[2]),
-- SVector3(VY[0], VY[1], VY[2]));
-+ return std::make_pair(SVector3(VX[0], VX[1], VX[2]),
-+ SVector3(VY[0], VY[1], VY[2]));
- }
- else {
- Vertex vu = InterpolateSurface(_s, param[0], param[1], 1, 1);
- Vertex vv = InterpolateSurface(_s, param[0], param[1], 1, 2);
-- return Pair<SVector3, SVector3>(SVector3(vu.Pos.X, vu.Pos.Y, vu.Pos.Z),
-- SVector3(vv.Pos.X, vv.Pos.Y, vv.Pos.Z));
-+ return std::make_pair(SVector3(vu.Pos.X, vu.Pos.Y, vu.Pos.Z),
-+ SVector3(vv.Pos.X, vv.Pos.Y, vv.Pos.Z));
- }
- }
-
diff --git a/cad/gmsh/files/patch-src_geo_gmshFace.h b/cad/gmsh/files/patch-src_geo_gmshFace.h
deleted file mode 100644
index edb65b025f83..000000000000
--- a/cad/gmsh/files/patch-src_geo_gmshFace.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/geo/gmshFace.h.orig 2024-03-29 22:07:01 UTC
-+++ src/geo/gmshFace.h
-@@ -26,7 +26,7 @@ class gmshFace : public GFace { (public)
- virtual bool containsPoint(const SPoint3 &pt) const;
- virtual double getMetricEigenvalue(const SPoint2 &);
- virtual SVector3 normal(const SPoint2 &param) const;
-- virtual Pair<SVector3, SVector3> firstDer(const SPoint2 &param) const;
-+ virtual std::pair<SVector3, SVector3> firstDer(const SPoint2 &param) const;
- virtual void secondDer(const SPoint2 &, SVector3 &, SVector3 &,
- SVector3 &) const;
- virtual GEntity::GeomType geomType() const;
diff --git a/cad/gmsh/files/patch-src_geo_gmshSurface.cpp b/cad/gmsh/files/patch-src_geo_gmshSurface.cpp
deleted file mode 100644
index 7f744d3ebfda..000000000000
--- a/cad/gmsh/files/patch-src_geo_gmshSurface.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
---- src/geo/gmshSurface.cpp.orig 2024-03-29 22:07:01 UTC
-+++ src/geo/gmshSurface.cpp
-@@ -23,10 +23,10 @@ SVector3 gmshSurface::normal(const SPoint2 &param) con
- return SVector3();
- }
-
--Pair<SVector3, SVector3> gmshSurface::firstDer(const SPoint2 &param)
-+std::pair<SVector3, SVector3> gmshSurface::firstDer(const SPoint2 &param)
- {
- Msg::Error("First derivative not implemented for this type of surface");
-- return Pair<SVector3, SVector3>();
-+ return std::pair<SVector3, SVector3>();
- }
-
- double gmshSurface::getMetricEigenvalue(const SPoint2 &)
diff --git a/cad/gmsh/files/patch-src_geo_gmshSurface.h b/cad/gmsh/files/patch-src_geo_gmshSurface.h
deleted file mode 100644
index 42b306deb3aa..000000000000
--- a/cad/gmsh/files/patch-src_geo_gmshSurface.h
+++ /dev/null
@@ -1,19 +0,0 @@
---- src/geo/gmshSurface.h.orig 2024-03-29 22:07:01 UTC
-+++ src/geo/gmshSurface.h
-@@ -9,7 +9,6 @@
- #include <cmath>
- #include <cstdio>
- #include <map>
--#include "Pair.h"
- #include "Range.h"
- #include "SPoint2.h"
- #include "SPoint3.h"
-@@ -61,7 +60,7 @@ class gmshSurface { (public)
- // Return the normal to the face at the given parameter location.
- virtual SVector3 normal(const SPoint2 &param) const;
- // Return the first derivate of the face at the parameter location.
-- virtual Pair<SVector3, SVector3> firstDer(const SPoint2 &param);
-+ virtual std::pair<SVector3, SVector3> firstDer(const SPoint2 &param);
- virtual double getMetricEigenvalue(const SPoint2 &);
- };
-
diff --git a/cad/gmsh/files/patch-src_geo_xyFace.h b/cad/gmsh/files/patch-src_geo_xyFace.h
deleted file mode 100644
index f3e92019390e..000000000000
--- a/cad/gmsh/files/patch-src_geo_xyFace.h
+++ /dev/null
@@ -1,16 +0,0 @@
---- src/geo/xyFace.h.orig 2024-03-29 22:07:01 UTC
-+++ src/geo/xyFace.h
-@@ -33,11 +33,11 @@ class xyFace : public GFace { (public)
- SVector3 n(0, 0, 1);
- return n;
- }
-- virtual Pair<SVector3, SVector3> firstDer(const SPoint2 &param) const
-+ virtual std::pair<SVector3, SVector3> firstDer(const SPoint2 &param) const
- {
- SVector3 t1(1, 0, 0);
- SVector3 t2(0, 1, 0);
-- return Pair<SVector3, SVector3>(t1, t2);
-+ return std::make_pair(t1, t2);
- }
- virtual void secondDer(const SPoint2 &, SVector3 &a, SVector3 &b,
- SVector3 &c) const
diff --git a/cad/gmsh/files/patch-src_mesh_BackgroundMesh.cpp b/cad/gmsh/files/patch-src_mesh_BackgroundMesh.cpp
deleted file mode 100644
index 91240206fb74..000000000000
--- a/cad/gmsh/files/patch-src_mesh_BackgroundMesh.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
---- src/mesh/BackgroundMesh.cpp.orig 2024-03-29 22:07:01 UTC
-+++ src/mesh/BackgroundMesh.cpp
-@@ -304,8 +304,8 @@ void backgroundMesh::propagateCrossFieldByDistance(GFa
- SPoint2 p1, p2;
- reparamMeshEdgeOnFace(v[0], v[1], _gf, p1, p2);
- /* a correct way of computing angles */
-- Pair<SVector3, SVector3> der = _gf->firstDer((p1 + p2) * .5);
-- SVector3 t1 = der.first();
-+ std::pair<SVector3, SVector3> der = _gf->firstDer((p1 + p2) * .5);
-+ SVector3 t1 = der.first;
- SVector3 t2(v[1]->x() - v[0]->x(), v[1]->y() - v[0]->y(),
- v[1]->z() - v[0]->z());
- t1.normalize();
-@@ -459,9 +459,9 @@ void backgroundMesh::propagateCrossField(GFace *_gf,
- v[1] = (*it)->lines[i]->getVertex(1);
- SPoint2 p1, p2;
- reparamMeshEdgeOnFace(v[0], v[1], _gf, p1, p2);
-- Pair<SVector3, SVector3> der = _gf->firstDer((p1 + p2) * .5);
-- SVector3 t1 = der.first();
-- SVector3 t2 = der.second();
-+ std::pair<SVector3, SVector3> der = _gf->firstDer((p1 + p2) * .5);
-+ SVector3 t1 = der.first;
-+ SVector3 t2 = der.second;
- SVector3 n = crossprod(t1, t2);
- n.normalize();
- SVector3 d1(v[1]->x() - v[0]->x(), v[1]->y() - v[0]->y(),
diff --git a/cad/gmsh/files/patch-src_mesh_meshGFace.cpp b/cad/gmsh/files/patch-src_mesh_meshGFace.cpp
deleted file mode 100644
index fa08a01b01d7..000000000000
--- a/cad/gmsh/files/patch-src_mesh_meshGFace.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
---- src/mesh/meshGFace.cpp.orig 2024-03-29 22:07:01 UTC
-+++ src/mesh/meshGFace.cpp
-@@ -1269,7 +1269,7 @@ static bool improved_translate(GFace *gf, MVertex *ver
- SVector3 s1, s2;
- SVector3 normal;
- SVector3 basis_u, basis_v;
-- Pair<SVector3, SVector3> derivatives;
-+ std::pair<SVector3, SVector3> derivatives;
-
- reparamMeshVertexOnFace(vertex, gf, point);
- x = point.x();
-@@ -1278,8 +1278,8 @@ static bool improved_translate(GFace *gf, MVertex *ver
- angle = backgroundMesh::current()->getAngle(x, y, 0.0);
- derivatives = gf->firstDer(point);
-
-- s1 = derivatives.first();
-- s2 = derivatives.second();
-+ s1 = derivatives.first;
-+ s2 = derivatives.second;
- normal = crossprod(s1, s2);
-
- basis_u = s1;
diff --git a/cad/gmsh/files/patch-src_mesh_meshGFaceBamg.cpp b/cad/gmsh/files/patch-src_mesh_meshGFaceBamg.cpp
deleted file mode 100644
index ed95da9fb724..000000000000
--- a/cad/gmsh/files/patch-src_mesh_meshGFaceBamg.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
---- src/mesh/meshGFaceBamg.cpp.orig 2024-03-29 22:07:01 UTC
-+++ src/mesh/meshGFaceBamg.cpp
-@@ -49,14 +49,14 @@ static void computeMeshMetricsForBamg(GFace *gf, int n
- SMetric3 m = BGM_MeshMetric(gf, u, v, gp.x(), gp.y(), gp.z());
-
- // compute the derivatives of the parametrization
-- Pair<SVector3, SVector3> der = gf->firstDer(SPoint2(u, v));
-+ std::pair<SVector3, SVector3> der = gf->firstDer(SPoint2(u, v));
-
-- J(0, 0) = JT(0, 0) = der.first().x();
-- J(0, 1) = JT(1, 0) = der.first().y();
-- J(0, 2) = JT(2, 0) = der.first().z();
-- J(1, 0) = JT(0, 1) = der.second().x();
-- J(1, 1) = JT(1, 1) = der.second().y();
-- J(1, 2) = JT(2, 1) = der.second().z();
-+ J(0, 0) = JT(0, 0) = der.first.x();
-+ J(0, 1) = JT(1, 0) = der.first.y();
-+ J(0, 2) = JT(2, 0) = der.first.z();
-+ J(1, 0) = JT(0, 1) = der.second.x();
-+ J(1, 1) = JT(1, 1) = der.second.y();
-+ J(1, 2) = JT(2, 1) = der.second.z();
-
- m.getMat(M);
- J.mult(M, W);
diff --git a/cad/gmsh/files/patch-src_mesh_meshGFaceDelaunayInsertion.cpp b/cad/gmsh/files/patch-src_mesh_meshGFaceDelaunayInsertion.cpp
deleted file mode 100644
index 2b1e1644b5cd..000000000000
--- a/cad/gmsh/files/patch-src_mesh_meshGFaceDelaunayInsertion.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/mesh/meshGFaceDelaunayInsertion.cpp.orig 2024-03-29 22:07:01 UTC
-+++ src/mesh/meshGFaceDelaunayInsertion.cpp
-@@ -331,11 +331,11 @@ void buildMetric(GFace *gf, double *uv, double *metric
-
- void buildMetric(GFace *gf, double *uv, double *metric)
- {
-- Pair<SVector3, SVector3> der = gf->firstDer(SPoint2(uv[0], uv[1]));
-+ std::pair<SVector3, SVector3> der = gf->firstDer(SPoint2(uv[0], uv[1]));
-
-- metric[0] = dot(der.first(), der.first());
-- metric[1] = dot(der.second(), der.first());
-- metric[2] = dot(der.second(), der.second());
-+ metric[0] = dot(der.first, der.first);
-+ metric[1] = dot(der.second, der.first);
-+ metric[2] = dot(der.second, der.second);
- }
-
- static double computeTolerance(const double radius)
diff --git a/cad/gmsh/pkg-plist b/cad/gmsh/pkg-plist
index 27c9a23fb122..99ba216e10f7 100644
--- a/cad/gmsh/pkg-plist
+++ b/cad/gmsh/pkg-plist
@@ -46,6 +46,7 @@ lib/libgmsh.so.%%VER%%
%%PORTDOCS%%%%DOCSDIR%%/examples/api/faces.cpp
%%PORTDOCS%%%%DOCSDIR%%/examples/api/flatten.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/flatten2.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/fractures.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/fragment_surfaces.cpp
%%PORTDOCS%%%%DOCSDIR%%/examples/api/get_data_perf.cpp
%%PORTDOCS%%%%DOCSDIR%%/examples/api/get_data_perf.py
@@ -60,8 +61,10 @@ lib/libgmsh.so.%%VER%%
%%PORTDOCS%%%%DOCSDIR%%/examples/api/import_perf.cpp
%%PORTDOCS%%%%DOCSDIR%%/examples/api/import_perf.jl
%%PORTDOCS%%%%DOCSDIR%%/examples/api/import_perf.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/julia_exception.jl
%%PORTDOCS%%%%DOCSDIR%%/examples/api/mesh_from_discrete_curve.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/mesh_quality.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/min_edge.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/mirror_mesh.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/msh_attributes.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/multi_process.py
@@ -81,6 +84,7 @@ lib/libgmsh.so.%%VER%%
%%PORTDOCS%%%%DOCSDIR%%/examples/api/open.cpp
%%PORTDOCS%%%%DOCSDIR%%/examples/api/open.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/opt.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/parametric_surface.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/partition.cpp
%%PORTDOCS%%%%DOCSDIR%%/examples/api/partition.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/periodic.py
@@ -90,9 +94,12 @@ lib/libgmsh.so.%%VER%%
%%PORTDOCS%%%%DOCSDIR%%/examples/api/poisson.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/prepro.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/prim_axis.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/raw_tetrahedralization.cpp
%%PORTDOCS%%%%DOCSDIR%%/examples/api/raw_tetrahedralization.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/raw_triangulation.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/relocate_nodes.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/remesh_cavity.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/remesh_partial_move.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/remesh_stl.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/remove_elements.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/renumbering.py
@@ -125,6 +132,7 @@ lib/libgmsh.so.%%VER%%
%%PORTDOCS%%%%DOCSDIR%%/examples/api/terrain_stl_data.stl
%%PORTDOCS%%%%DOCSDIR%%/examples/api/test.c
%%PORTDOCS%%%%DOCSDIR%%/examples/api/test.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/torus_bspline.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/trimmed.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/tube_boundary_layer.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/view.cpp
@@ -132,6 +140,9 @@ lib/libgmsh.so.%%VER%%
%%PORTDOCS%%%%DOCSDIR%%/examples/api/view_adaptive_to_mesh.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/view_combine.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/view_element_size.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/view_list_isoparametric.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/view_list_subparametric.py
+%%PORTDOCS%%%%DOCSDIR%%/examples/api/view_list_superparametric.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/view_renumbering.py
%%PORTDOCS%%%%DOCSDIR%%/examples/api/viewlist.cpp
%%PORTDOCS%%%%DOCSDIR%%/examples/api/viewlist.py
@@ -145,6 +156,7 @@ lib/libgmsh.so.%%VER%%
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/component8.step
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/compsolid.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/compsolid2.geo
+%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/cylinder_with_hole.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/extend_field.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/extrude.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/extrude2.geo
@@ -155,6 +167,7 @@ lib/libgmsh.so.%%VER%%
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/fillet_chamfer.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/fleur.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/fragment_numbering.geo
+%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/full_quad.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/hybrid_occ_builtin.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/hyperboloid.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/import.geo
@@ -183,6 +196,7 @@ lib/libgmsh.so.%%VER%%
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/spline.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/step_assembly.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/surface_filling.geo
+%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/symmetry_test_occ_builtin.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/thicksolid.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/thrusections.geo
%%PORTDOCS%%%%DOCSDIR%%/examples/boolean/transfinite.geo
@@ -405,4 +419,7 @@ lib/libgmsh.so.%%VER%%
%%PORTDOCS%%%%DOCSDIR%%/tutorials/view3.pos
%%PORTDOCS%%%%DOCSDIR%%/tutorials/view4.pos
%%PORTDOCS%%%%DOCSDIR%%/tutorials/view5.msh
+%%DATADIR%%/gmshConfig.cmake
+%%DATADIR%%/gmshTargets-%%CMAKE_BUILD_TYPE%%.cmake
+%%DATADIR%%/gmshTargets.cmake
share/man/man1/gmsh.1.gz