From 95a48ffceff039eb01c4b5b2fc52c1a3a4775b8d Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@uliege.be> Date: Mon, 26 Oct 2020 14:23:55 +0100 Subject: [PATCH] fix double return type with ctype() --- CHANGELOG.txt | 20 ++++++++++---------- api/GenApi.py | 4 +++- api/gmsh.py | 2 ++ doc/texinfo/api.texi | 14 +++++++------- 4 files changed, 22 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index fe67e27bce..a360eddb09 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,15 +1,15 @@ 4.7.0 (Work-in-progress): API errors now throw exceptions with the last error message (instead of an integer error code); API functions now print messages on -terminal by default, and throw exceptions on all errors; new API functions to -retrieve "homogeneous" model-based data (for improved Python performance), to -set interpolation matrices for high-order datasets, to assign "automatic" -transfinite meshing constraints and to pass native (C++, C, Python or Julia) -mesh size callback; added option to save high-order periodic node info; added -support for scripted window splitting; improved VTK reader; new MatrixOfInertia -command; added support for Unicode command line arguments on Windows; removed -bundled Mmg3D and added support for stock Mmg 5; Gmsh now requires C++11 and -CMake 3.1, and uses Eigen by default instead of Blas/Lapack for dense linear -algebra; small bug fixes. +terminal by default, and throw exceptions on all errors unless in interactive +mode; new API functions to retrieve "homogeneous" model-based data (for improved +Python performance), to set interpolation matrices for high-order datasets, to +assign "automatic" transfinite meshing constraints and to pass native (C++, C, +Python or Julia) mesh size callback; added option to save high-order periodic +node info; added support for scripted window splitting; improved VTK reader; new +MatrixOfInertia command; added support for Unicode command line arguments on +Windows; removed bundled Mmg3D and added support for stock Mmg 5; Gmsh now +requires C++11 and CMake 3.1, and uses Eigen by default instead of Blas/Lapack +for dense linear algebra; small bug fixes. * Incompatible API changes: new optional argument to geo/addCurveLoop diff --git a/api/GenApi.py b/api/GenApi.py index 9eb3dad2e8..8f042b3948 100644 --- a/api/GenApi.py +++ b/api/GenApi.py @@ -1495,10 +1495,12 @@ class API: for a in args: if a.python_pre: self.fwrite(f, indent + a.python_pre + "\n") self.fwrite(f, indent + "ierr = c_int()\n") + c_name = c_mpath + name[0].upper() + name[1:] + if rtype is odouble: + self.fwrite(f, indent + "lib." + c_name + ".restype = c_double\n") self.fwrite( f, indent + "api_result_ = " if ((rtype is oint) or (rtype is odouble)) else (indent)) - c_name = c_mpath + name[0].upper() + name[1:] self.fwrite( f, "lib." + c_name + "(\n " + indent + (",\n" + indent + " ").join( diff --git a/api/gmsh.py b/api/gmsh.py index 7b6b84cce9..49ce886071 100644 --- a/api/gmsh.py +++ b/api/gmsh.py @@ -6772,6 +6772,7 @@ class logger: Return a floating point value. """ ierr = c_int() + lib.gmshLoggerGetWallTime.restype = c_double api_result_ = lib.gmshLoggerGetWallTime( byref(ierr)) if ierr.value != 0: @@ -6788,6 +6789,7 @@ class logger: Return a floating point value. """ ierr = c_int() + lib.gmshLoggerGetCpuTime.restype = c_double api_result_ = lib.gmshLoggerGetCpuTime( byref(ierr)) if ierr.value != 0: diff --git a/doc/texinfo/api.texi b/doc/texinfo/api.texi index 2e8da9bf74..1839a888ee 100644 --- a/doc/texinfo/api.texi +++ b/doc/texinfo/api.texi @@ -92,7 +92,7 @@ file with model data will add the data to the current model. @item Language-specific definition: @url{@value{GITLAB-PREFIX}/api/gmsh.h#L84,C++}, @url{@value{GITLAB-PREFIX}/api/gmshc.h#L63,C}, @url{@value{GITLAB-PREFIX}/api/gmsh.py#L261,Python}, @url{@value{GITLAB-PREFIX}/api/gmsh.jl#L85,Julia} @item Examples: -C++ (@url{@value{GITLAB-PREFIX}/tutorial/c++/t7.cpp#L21,t7.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/t8.cpp#L37,t8.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/t9.cpp#L29,t9.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/t13.cpp#L22,t13.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/t17.cpp#L33,t17.cpp}), Python (@url{@value{GITLAB-PREFIX}/tutorial/python/t7.py#L20,t7.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/t8.py#L35,t8.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/t9.py#L26,t9.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/t13.py#L19,t13.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/t17.py#L32,t17.py}, ...) +C++ (@url{@value{GITLAB-PREFIX}/tutorial/c++/t7.cpp#L21,t7.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/t8.cpp#L37,t8.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/t9.cpp#L29,t9.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/t13.cpp#L22,t13.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/t17.cpp#L33,t17.cpp}, ...), Python (@url{@value{GITLAB-PREFIX}/tutorial/python/t7.py#L20,t7.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/t8.py#L35,t8.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/t9.py#L26,t9.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/t13.py#L19,t13.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/t17.py#L32,t17.py}, ...) @end table @item gmsh/write @@ -599,7 +599,7 @@ integer value @item Language-specific definition: @url{@value{GITLAB-PREFIX}/api/gmsh.h#L320,C++}, @url{@value{GITLAB-PREFIX}/api/gmshc.h#L262,C}, @url{@value{GITLAB-PREFIX}/api/gmsh.py#L841,Python}, @url{@value{GITLAB-PREFIX}/api/gmsh.jl#L632,Julia} @item Examples: -C++ (@url{@value{GITLAB-PREFIX}/tutorial/c++/x2.cpp#L78,x2.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/x4.cpp#L24,x4.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/discrete.cpp#L10,discrete.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/edges.cpp#L60,edges.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/faces.cpp#L60,faces.cpp}, ...), Python (@url{@value{GITLAB-PREFIX}/tutorial/python/x2.py#L74,x2.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/x4.py#L22,x4.py}, @url{@value{GITLAB-PREFIX}/demos/api/copy_mesh.py#L27,copy_mesh.py}, @url{@value{GITLAB-PREFIX}/demos/api/discrete.py#L9,discrete.py}, @url{@value{GITLAB-PREFIX}/demos/api/mesh_from_discrete_curve.py#L10,mesh_from_discrete_curve.py}, ...) +C++ (@url{@value{GITLAB-PREFIX}/tutorial/c++/x2.cpp#L78,x2.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/x4.cpp#L24,x4.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/discrete.cpp#L10,discrete.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/edges.cpp#L60,edges.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/faces.cpp#L60,faces.cpp}, ...), Python (@url{@value{GITLAB-PREFIX}/tutorial/python/x2.py#L74,x2.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/x4.py#L22,x4.py}, @url{@value{GITLAB-PREFIX}/demos/api/copy_mesh.py#L27,copy_mesh.py}, @url{@value{GITLAB-PREFIX}/demos/api/discrete.py#L9,discrete.py}, @url{@value{GITLAB-PREFIX}/demos/api/import_perf.py#L30,import_perf.py}, ...) @end table @item gmsh/model/removeEntities @@ -1292,7 +1292,7 @@ automatically assigned to the nodes. @item Language-specific definition: @url{@value{GITLAB-PREFIX}/api/gmsh.h#L693,C++}, @url{@value{GITLAB-PREFIX}/api/gmshc.h#L591,C}, @url{@value{GITLAB-PREFIX}/api/gmsh.py#L1704,Python}, @url{@value{GITLAB-PREFIX}/api/gmsh.jl#L1420,Julia} @item Examples: -C++ (@url{@value{GITLAB-PREFIX}/tutorial/c++/x2.cpp#L92,x2.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/x4.cpp#L27,x4.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/discrete.cpp#L13,discrete.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/plugin.cpp#L11,plugin.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/view.cpp#L10,view.cpp}), Python (@url{@value{GITLAB-PREFIX}/tutorial/python/x2.py#L88,x2.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/x4.py#L25,x4.py}, @url{@value{GITLAB-PREFIX}/demos/api/copy_mesh.py#L28,copy_mesh.py}, @url{@value{GITLAB-PREFIX}/demos/api/discrete.py#L12,discrete.py}, @url{@value{GITLAB-PREFIX}/demos/api/flatten.py#L36,flatten.py}, ...) +C++ (@url{@value{GITLAB-PREFIX}/tutorial/c++/x2.cpp#L92,x2.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/x4.cpp#L27,x4.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/discrete.cpp#L13,discrete.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/import_perf.cpp#L45,import_perf.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/plugin.cpp#L11,plugin.cpp}, ...), Python (@url{@value{GITLAB-PREFIX}/tutorial/python/x2.py#L88,x2.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/x4.py#L25,x4.py}, @url{@value{GITLAB-PREFIX}/demos/api/copy_mesh.py#L28,copy_mesh.py}, @url{@value{GITLAB-PREFIX}/demos/api/discrete.py#L12,discrete.py}, @url{@value{GITLAB-PREFIX}/demos/api/flatten.py#L36,flatten.py}, ...) @end table @item gmsh/model/mesh/reclassifyNodes @@ -1574,7 +1574,7 @@ are automatically assigned to the elements. @item Language-specific definition: @url{@value{GITLAB-PREFIX}/api/gmsh.h#L889,C++}, @url{@value{GITLAB-PREFIX}/api/gmshc.h#L770,C}, @url{@value{GITLAB-PREFIX}/api/gmsh.py#L2084,Python}, @url{@value{GITLAB-PREFIX}/api/gmsh.jl#L1735,Julia} @item Examples: -C++ (@url{@value{GITLAB-PREFIX}/tutorial/c++/x2.cpp#L98,x2.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/x4.cpp#L29,x4.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/edges.cpp#L64,edges.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/faces.cpp#L64,faces.cpp}), Python (@url{@value{GITLAB-PREFIX}/tutorial/python/x2.py#L94,x2.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/x4.py#L27,x4.py}, @url{@value{GITLAB-PREFIX}/demos/api/terrain.py#L58,terrain.py}) +C++ (@url{@value{GITLAB-PREFIX}/tutorial/c++/x2.cpp#L98,x2.cpp}, @url{@value{GITLAB-PREFIX}/tutorial/c++/x4.cpp#L29,x4.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/edges.cpp#L64,edges.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/faces.cpp#L64,faces.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/import_perf.cpp#L50,import_perf.cpp}), Python (@url{@value{GITLAB-PREFIX}/tutorial/python/x2.py#L94,x2.py}, @url{@value{GITLAB-PREFIX}/tutorial/python/x4.py#L27,x4.py}, @url{@value{GITLAB-PREFIX}/demos/api/import_perf.py#L40,import_perf.py}, @url{@value{GITLAB-PREFIX}/demos/api/terrain.py#L58,terrain.py}) @end table @item gmsh/model/mesh/getIntegrationPoints @@ -5428,7 +5428,7 @@ floating point value @item Language-specific definition: @url{@value{GITLAB-PREFIX}/api/gmsh.h#L3172,C++}, @url{@value{GITLAB-PREFIX}/api/gmshc.h#L2779,C}, @url{@value{GITLAB-PREFIX}/api/gmsh.py#L6766,Python}, @url{@value{GITLAB-PREFIX}/api/gmsh.jl#L5863,Julia} @item Examples: -C++ (@url{@value{GITLAB-PREFIX}/demos/api/custom_gui.cpp#L37,custom_gui.cpp}) +C++ (@url{@value{GITLAB-PREFIX}/demos/api/custom_gui.cpp#L37,custom_gui.cpp}, @url{@value{GITLAB-PREFIX}/demos/api/import_perf.cpp#L10,import_perf.cpp}), Python (@url{@value{GITLAB-PREFIX}/demos/api/import_perf.py#L8,import_perf.py}) @end table @item gmsh/logger/getCpuTime @@ -5442,7 +5442,7 @@ Return CPU time. @item Return: floating point value @item Language-specific definition: -@url{@value{GITLAB-PREFIX}/api/gmsh.h#L3177,C++}, @url{@value{GITLAB-PREFIX}/api/gmshc.h#L2782,C}, @url{@value{GITLAB-PREFIX}/api/gmsh.py#L6782,Python}, @url{@value{GITLAB-PREFIX}/api/gmsh.jl#L5879,Julia} +@url{@value{GITLAB-PREFIX}/api/gmsh.h#L3177,C++}, @url{@value{GITLAB-PREFIX}/api/gmshc.h#L2782,C}, @url{@value{GITLAB-PREFIX}/api/gmsh.py#L6783,Python}, @url{@value{GITLAB-PREFIX}/api/gmsh.jl#L5879,Julia} @end table @item gmsh/logger/getLastError @@ -5456,7 +5456,7 @@ Return last error message, if any. @item Return: - @item Language-specific definition: -@url{@value{GITLAB-PREFIX}/api/gmsh.h#L3182,C++}, @url{@value{GITLAB-PREFIX}/api/gmshc.h#L2785,C}, @url{@value{GITLAB-PREFIX}/api/gmsh.py#L6798,Python}, @url{@value{GITLAB-PREFIX}/api/gmsh.jl#L5895,Julia} +@url{@value{GITLAB-PREFIX}/api/gmsh.h#L3182,C++}, @url{@value{GITLAB-PREFIX}/api/gmshc.h#L2785,C}, @url{@value{GITLAB-PREFIX}/api/gmsh.py#L6800,Python}, @url{@value{GITLAB-PREFIX}/api/gmsh.jl#L5895,Julia} @end table @end ftable -- GitLab