mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-24 21:10:33 +05:00
Merge remote-tracking branch 'gitlab/master' into ngcore
This commit is contained in:
commit
c5af003bba
@ -27,85 +27,35 @@ if(APPLE)
|
||||
|
||||
set(TCL_DIR ${CMAKE_CURRENT_BINARY_DIR}/dependencies/src/project_tcl)
|
||||
set(TK_DIR ${CMAKE_CURRENT_BINARY_DIR}/dependencies/src/project_tk)
|
||||
set(TCL_INCLUDE_PATH ${TCL_DIR}/generic;${TCL_DIR}/macosx)
|
||||
set(TK_INCLUDE_PATH ${TK_DIR}/generic;${TK_DIR}/macosx;${TK_DIR}/xlib)
|
||||
find_package(TCL 8.6 REQUIRED)
|
||||
list(APPEND NETGEN_DEPENDENCIES project_tcl project_tk)
|
||||
set(TCL_INCLUDE_PATH "${TCL_DIR}/generic;${TCL_DIR}/macosx")
|
||||
set(TK_INCLUDE_PATH "${TK_DIR}/generic;${TK_DIR}/macosx;${TK_DIR}/xlib")
|
||||
string(REPLACE ";" "$<SEMICOLON>" TCL_INC "${TCL_INCLUDE_PATH}")
|
||||
string(REPLACE ";" "$<SEMICOLON>" TK_INC "${TK_INCLUDE_PATH}")
|
||||
|
||||
ExternalProject_Add(project_tkdnd
|
||||
URL "http://sourceforge.net/projects/tkdnd/files/TkDND/TkDND%202.8/tkdnd2.8-src.tar.gz"
|
||||
URL_MD5 a6d47a996ea957416469b12965d4db91
|
||||
DEPENDS project_tcl project_tk
|
||||
DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external_dependencies
|
||||
PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/tkdnd_macosx.patch
|
||||
UPDATE_COMMAND "" # Disable update
|
||||
BUILD_IN_SOURCE 1
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/Contents/MacOS
|
||||
-DTCL_INCLUDE_PATH=${TCL_INC}
|
||||
-DTK_INCLUDE_PATH=${TK_INC}
|
||||
-DTK_LIBRARY=${TK_LIBRARY}
|
||||
-DTCL_LIBRARY=${TCL_LIBRARY}
|
||||
LOG_DOWNLOAD 1
|
||||
LOG_CONFIGURE 1
|
||||
LOG_BUILD 1
|
||||
LOG_INSTALL 1
|
||||
)
|
||||
|
||||
list(APPEND NETGEN_DEPENDENCIES project_tkdnd)
|
||||
else()
|
||||
find_package(TCL 8.5 REQUIRED)
|
||||
endif()
|
||||
# set(HOME $ENV{HOME})
|
||||
# set(tcl_prefix ${CMAKE_INSTALL_PREFIX}/../../)
|
||||
# ExternalProject_Add(project_tcl
|
||||
# URL "http://sourceforge.net/projects/tcl/files/Tcl/8.6.4/tcl8.6.4-src.tar.gz"
|
||||
# URL_MD5 d7cbb91f1ded1919370a30edd1534304
|
||||
# DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external_dependencies
|
||||
# UPDATE_COMMAND "" # Disable update
|
||||
# CONFIGURE_COMMAND ../project_tcl/macosx/configure --enable-threads --enable-framework --prefix=${tcl_prefix} --libdir=${tcl_prefix}/Contents/Frameworks --bindir=${tcl_prefix}/Contents/Frameworks/Tcl.framework/bin
|
||||
# BUILD_COMMAND make -j4 binaries libraries
|
||||
# INSTALL_COMMAND make install-binaries install-headers install-libraries install-private-headers
|
||||
# LOG_DOWNLOAD 1
|
||||
# LOG_BUILD 1
|
||||
# LOG_CONFIGURE 1
|
||||
# LOG_INSTALL 1
|
||||
# )
|
||||
#
|
||||
# ExternalProject_Add(project_tk
|
||||
# DEPENDS project_tcl
|
||||
# URL "http://sourceforge.net/projects/tcl/files/Tcl/8.6.4/tk8.6.4-src.tar.gz"
|
||||
# URL_MD5 261754d7dc2a582f00e35547777e1fea
|
||||
# DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external_dependencies
|
||||
# UPDATE_COMMAND "" # Disable update
|
||||
# CONFIGURE_COMMAND ../project_tk/macosx/configure --enable-aqua=yes --enable-threads --enable-framework --prefix=${tcl_prefix} --libdir=${tcl_prefix}/Contents/Frameworks --bindir=${tcl_prefix}/Contents/Frameworks/Tcl.framework/bin --with-tcl=${tcl_prefix}/Contents/Frameworks/Tcl.framework
|
||||
# BUILD_COMMAND make -j4 binaries libraries
|
||||
# INSTALL_COMMAND make install-binaries install-headers install-libraries install-private-headers
|
||||
# LOG_DOWNLOAD 1
|
||||
# LOG_BUILD 1
|
||||
# LOG_CONFIGURE 1
|
||||
# LOG_INSTALL 1
|
||||
# )
|
||||
#
|
||||
# ExternalProject_Add(project_tkdnd
|
||||
# URL "https://sourceforge.net/projects/tkdnd/files/OS%20X%20Binaries/TkDND%202.8/tkdnd2.8-OSX-MountainLion.tar.gz"
|
||||
# URL_MD5 2dbb471b1d66c5f391f3c3c5b71548fb
|
||||
# DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external_dependencies
|
||||
# BUILD_IN_SOURCE 1
|
||||
# CONFIGURE_COMMAND ""
|
||||
# BUILD_COMMAND ""
|
||||
# INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory . ${CMAKE_INSTALL_PREFIX}/../MacOS
|
||||
# LOG_DOWNLOAD 1
|
||||
# LOG_CONFIGURE 1
|
||||
# LOG_BUILD 1
|
||||
# LOG_INSTALL 1
|
||||
# )
|
||||
#
|
||||
# list(APPEND NETGEN_DEPENDENCIES project_tcl project_tk project_tkdnd)
|
||||
# list(APPEND CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}../Frameworks)
|
||||
# set(TCL_INCLUDE_PATH ${CMAKE_INSTALL_PREFIX}/../Frameworks/Tcl.framework/Headers)
|
||||
# set(TCL_LIBRARY ${CMAKE_INSTALL_PREFIX}/../Frameworks/Tcl.framework)
|
||||
# set(TK_LIBRARY ${CMAKE_INSTALL_PREFIX}/../Frameworks/Tk.framework)
|
||||
# set(TK_INCLUDE_PATH ${CMAKE_INSTALL_PREFIX}/../Frameworks/Tk.framework/Headers)
|
||||
#
|
||||
|
||||
|
||||
|
||||
ExternalProject_Add(project_tkdnd
|
||||
URL "http://sourceforge.net/projects/tkdnd/files/TkDND/TkDND%202.8/tkdnd2.8-src.tar.gz"
|
||||
URL_MD5 a6d47a996ea957416469b12965d4db91
|
||||
DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external_dependencies
|
||||
PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/tkdnd_macosx.patch
|
||||
UPDATE_COMMAND "" # Disable update
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND ./configure --prefix=${CMAKE_INSTALL_PREFIX}/Contents/MacOS --libdir=${CMAKE_INSTALL_PREFIX}/Contents/MacOS
|
||||
BUILD_COMMAND make
|
||||
INSTALL_COMMAND make install
|
||||
LOG_DOWNLOAD 1
|
||||
LOG_CONFIGURE 1
|
||||
LOG_BUILD 1
|
||||
LOG_INSTALL 1
|
||||
)
|
||||
list(APPEND NETGEN_DEPENDENCIES project_tkdnd)
|
||||
|
||||
elseif(WIN32)
|
||||
|
||||
|
@ -1,35 +1,36 @@
|
||||
diff -Naur orig/tkdnd2.8/configure changed/tkdnd2.8/configure
|
||||
--- tkdnd2.8/configure 2015-05-13 19:24:32.000000000 +0200
|
||||
+++ tkdnd2.8/configure 2016-02-22 15:26:37.000000000 +0100
|
||||
@@ -6145,7 +6145,7 @@
|
||||
|
||||
|
||||
|
||||
- PKG_CFLAGS="$PKG_CFLAGS -DMAC_TK_COCOA -std=gnu99 -x objective-c -fobjc-gc"
|
||||
+ PKG_CFLAGS="$PKG_CFLAGS -DMAC_TK_COCOA -std=gnu99 -x objective-c"
|
||||
|
||||
|
||||
|
||||
diff -Naur orig/tkdnd2.8/configure.in changed/tkdnd2.8/configure.in
|
||||
--- tkdnd2.8/configure.in 2015-05-13 19:24:32.000000000 +0200
|
||||
+++ tkdnd2.8/configure.in 2016-02-22 15:26:44.000000000 +0100
|
||||
@@ -126,7 +126,7 @@
|
||||
|
||||
if test "${TEA_WINDOWINGSYSTEM}" = "aqua"; then
|
||||
TEA_ADD_SOURCES([macosx/macdnd.m])
|
||||
- TEA_ADD_CFLAGS([-DMAC_TK_COCOA -std=gnu99 -x objective-c -fobjc-gc])
|
||||
+ TEA_ADD_CFLAGS([-DMAC_TK_COCOA -std=gnu99 -x objective-c])
|
||||
TEA_ADD_LIBS([-framework Cocoa -framework Carbon])
|
||||
fi
|
||||
|
||||
diff -Naur orig/tkdnd2.8/macosx/macdnd.m changed/tkdnd2.8/macosx/macdnd.m
|
||||
--- tkdnd2.8/macosx/macdnd.m 2015-07-06 21:49:14.000000000 +0200
|
||||
+++ tkdnd2.8/macosx/macdnd.m 2016-02-22 15:27:04.000000000 +0100
|
||||
@@ -16,6 +16,7 @@
|
||||
#import <tcl.h>
|
||||
#import <tk.h>
|
||||
#import <tkInt.h>
|
||||
+#undef panic
|
||||
#import <tkMacOSXInt.h>
|
||||
#import <Cocoa/Cocoa.h>
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 4eb497c..c6424fc 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -43,17 +43,17 @@ IF ( WIN32 )
|
||||
ELSE ( WIN32 )
|
||||
## Unix and OS X...
|
||||
IF ( APPLE )
|
||||
- SET ( CMAKE_OSX_ARCHITECTURES "x86_64;i386" )
|
||||
+ SET ( CMAKE_OSX_ARCHITECTURES "x86_64")
|
||||
FIND_LIBRARY ( COCOA_LIBRARY Cocoa )
|
||||
INCLUDE_DIRECTORIES ( macosx )
|
||||
- INCLUDE_DIRECTORIES ( /Library/Frameworks/Tk.framework/Versions/8.6/PrivateHeaders )
|
||||
- INCLUDE_DIRECTORIES ( /System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/tk-private )
|
||||
- INCLUDE_DIRECTORIES ( /System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/tk-private )
|
||||
+# INCLUDE_DIRECTORIES ( /Library/Frameworks/Tk.framework/Versions/8.6/PrivateHeaders )
|
||||
+# INCLUDE_DIRECTORIES ( /System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/tk-private )
|
||||
+# INCLUDE_DIRECTORIES ( /System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/tk-private )
|
||||
ADD_DEFINITIONS ( -DMAC_TK_COCOA -DMAC_OSX_TK)
|
||||
ADD_DEFINITIONS ( -DMAC_OSX_TK )
|
||||
ADD_DEFINITIONS ( -std=gnu99 )
|
||||
ADD_DEFINITIONS ( -x objective-c )
|
||||
- ADD_DEFINITIONS ( -fobjc-gc )
|
||||
+# ADD_DEFINITIONS ( -fobjc-gc )
|
||||
ADD_DEFINITIONS ( -fno-objc-arc )
|
||||
# ADD_DEFINITIONS ( -fobjc-arc )
|
||||
LINK_LIBRARIES ( ${COCOA_LIBRARY} )
|
||||
@@ -125,7 +125,7 @@ SET ( CP ${CMAKE_COMMAND} -E copy )
|
||||
## Locate Tcl/Tk
|
||||
## ===========================================================================
|
||||
MESSAGE ( STATUS "Searching for Tcl/Tk..." )
|
||||
-FIND_PACKAGE ( TCL REQUIRED )
|
||||
+#FIND_PACKAGE ( TCL REQUIRED )
|
||||
FIND_PACKAGE ( TclStub REQUIRED )
|
||||
|
||||
## Tcl/Tk info (useful for debug purposes)...
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 2a150736601bb3113877bb673fb934bb60d46ec5
|
||||
Subproject commit e2b884c33bcde70b2ea562ffa52dd7ebee276d50
|
@ -1,28 +1,5 @@
|
||||
#ifdef NG_PYTHON
|
||||
|
||||
// BEGIN EVIL HACK: Patch PyThread_get_key_value/PyThread_tss_get inside pybind11 to avoid deadlocks
|
||||
// see https://github.com/pybind/pybind11/pull/1211 (please merge!)
|
||||
#if defined(__GNUG__) && !defined(__clang__)
|
||||
# pragma GCC diagnostic ignored "-Wattributes"
|
||||
#endif
|
||||
#include <Python.h>
|
||||
#include <pythread.h>
|
||||
#include <pybind11/cast.h>
|
||||
#undef PYBIND11_TLS_GET_VALUE
|
||||
#if PY_VERSION_HEX >= 0x03070000
|
||||
inline void * PYBIND11_TLS_GET_VALUE(Py_tss_t *state) {
|
||||
PyThreadState *tstate = (PyThreadState *) PyThread_tss_get(state);
|
||||
if (!tstate) tstate = PyGILState_GetThisThreadState();
|
||||
return tstate;
|
||||
}
|
||||
#else
|
||||
inline void * PYBIND11_TLS_GET_VALUE(int state) {
|
||||
PyThreadState *tstate = (PyThreadState *) PyThread_get_key_value(state);
|
||||
if (!tstate) tstate = PyGILState_GetThisThreadState();
|
||||
return tstate;
|
||||
}
|
||||
#endif
|
||||
// END EVIL HACK
|
||||
#include <pybind11/pybind11.h>
|
||||
#include <pybind11/operators.h>
|
||||
#include <pybind11/numpy.h>
|
||||
|
@ -208,6 +208,9 @@ namespace netgen
|
||||
|
||||
// mesh size restrictions ...
|
||||
|
||||
for (auto & point : geompoints)
|
||||
mesh2d.RestrictLocalH (Point<3> (point(0), point(1), 0), point.hmax);
|
||||
|
||||
for (int i = 0; i < splines.Size(); i++)
|
||||
{
|
||||
const SplineSegExt & spline = GetSpline(i);
|
||||
@ -241,6 +244,20 @@ namespace netgen
|
||||
for (auto mspnt : mp.meshsize_points)
|
||||
mesh2d.RestrictLocalH (mspnt.pnt, mspnt.h);
|
||||
|
||||
// add point elements
|
||||
for (auto & point : geompoints)
|
||||
if (point.name.length())
|
||||
{
|
||||
Point<3> newp(point(0), point(1), 0);
|
||||
PointIndex npi = mesh2d.AddPoint (newp, 1, FIXEDPOINT);
|
||||
mesh2d.AddLockedPoint(npi);
|
||||
Element0d el(npi, npi);
|
||||
el.name = point.name;
|
||||
mesh2d.SetCD2Name(npi, point.name);
|
||||
mesh2d.pointelements.Append (el);
|
||||
searchtree.Insert (newp, npi);
|
||||
}
|
||||
|
||||
// first add all vertices (for compatible orientation on periodic bnds)
|
||||
{
|
||||
double diam2 = Dist2(pmin, pmax);
|
||||
@ -584,7 +601,9 @@ namespace netgen
|
||||
// not complete, use at own risk ...
|
||||
// meshing.Delaunay(*mesh, domnr, mp);
|
||||
mp.checkoverlap = 0;
|
||||
meshing.GenerateMesh (*mesh, mp, h, domnr);
|
||||
auto res = meshing.GenerateMesh (*mesh, mp, h, domnr);
|
||||
if (res != 0)
|
||||
throw NgException("meshing failed");
|
||||
|
||||
for (SurfaceElementIndex sei = oldnf; sei < mesh->GetNSE(); sei++)
|
||||
(*mesh)[sei].SetIndex (domnr);
|
||||
|
@ -31,7 +31,7 @@ DLL_HEADER void ExportGeom2d(py::module &m)
|
||||
|
||||
.def("Load",&SplineGeometry2d::Load)
|
||||
.def("AppendPoint", FunctionPointer
|
||||
([](SplineGeometry2d &self, double px, double py, double maxh, double hpref)
|
||||
([](SplineGeometry2d &self, double px, double py, double maxh, double hpref, string name)
|
||||
{
|
||||
Point<2> p;
|
||||
p(0) = px;
|
||||
@ -39,10 +39,11 @@ DLL_HEADER void ExportGeom2d(py::module &m)
|
||||
GeomPoint<2> gp(p);
|
||||
gp.hmax = maxh;
|
||||
gp.hpref = hpref;
|
||||
gp.name = name;
|
||||
self.geompoints.Append(gp);
|
||||
return self.geompoints.Size()-1;
|
||||
}),
|
||||
py::arg("x"), py::arg("y"), py::arg("maxh") = 1e99, py::arg("hpref")=0)
|
||||
py::arg("x"), py::arg("y"), py::arg("maxh") = 1e99, py::arg("hpref")=0, py::arg("name")="")
|
||||
.def("Append", FunctionPointer([](SplineGeometry2d &self, py::list segment, int leftdomain, int rightdomain,
|
||||
py::object bc, py::object copy, double maxh, double hpref)
|
||||
{
|
||||
|
@ -28,7 +28,8 @@ namespace netgen
|
||||
double hmax;
|
||||
/// hp-refinement
|
||||
double hpref;
|
||||
|
||||
///
|
||||
string name;
|
||||
///
|
||||
GeomPoint () { ; }
|
||||
|
||||
|
@ -47,6 +47,7 @@ NGX_INLINE DLL_HEADER Ng_Element Ngx_Mesh :: GetElement<0> (size_t nr) const
|
||||
Ng_Element ret;
|
||||
ret.type = NG_PNT;
|
||||
ret.index = el.index;
|
||||
ret.mat = &el.name;
|
||||
|
||||
ret.points.num = 1;
|
||||
ret.points.ptr = (int*)&el.pnum;
|
||||
|
@ -9,9 +9,7 @@ add_library(interface ${NG_LIB_TYPE}
|
||||
|
||||
if(NOT WIN32)
|
||||
target_link_libraries(interface mesh csg geom2d)
|
||||
if(USE_GUI)
|
||||
target_link_libraries(interface visual)
|
||||
endif(USE_GUI)
|
||||
target_link_libraries(interface visual)
|
||||
install( TARGETS interface ${NG_INSTALL_DIR})
|
||||
endif(NOT WIN32)
|
||||
|
||||
|
@ -22,7 +22,7 @@ namespace netgen
|
||||
mgi = new MultiPointGeomInfo (*amgi);
|
||||
for (int i = 1; i <= mgi->GetNPGI(); i++)
|
||||
if (mgi->GetPGI(i).trignum <= 0)
|
||||
cout << "Add FrontPoint2, illegal geominfo = " << mgi->GetPGI(i).trignum << endl;
|
||||
cout << "WARNING: Add FrontPoint2, illegal geominfo = " << mgi->GetPGI(i).trignum << endl;
|
||||
}
|
||||
else
|
||||
mgi = NULL;
|
||||
@ -136,7 +136,7 @@ namespace netgen
|
||||
|
||||
if (!gi1.trignum || !gi2.trignum)
|
||||
{
|
||||
cout << "ERROR: in AdFront::AddLine, illegal geominfo" << endl;
|
||||
cout << "WARNING: in AdFront::AddLine, illegal geominfo" << endl;
|
||||
}
|
||||
|
||||
lines[li].SetGeomInfo (gi1, gi2);
|
||||
|
@ -1036,6 +1036,7 @@ namespace netgen
|
||||
{
|
||||
public:
|
||||
PointIndex pnum;
|
||||
string name;
|
||||
int index;
|
||||
Element0d () = default;
|
||||
Element0d (PointIndex _pnum, int _index)
|
||||
|
@ -4,13 +4,17 @@ add_library(occ ${NG_LIB_TYPE}
|
||||
Partition_Loop.cxx Partition_Loop2d.cxx Partition_Loop3d.cxx Partition_Spliter.cxx
|
||||
occconstruction.cpp occgenmesh.cpp occgeom.cpp occmeshsurf.cpp python_occ.cpp
|
||||
)
|
||||
|
||||
add_library(occvis ${NG_LIB_TYPE} vsocc.cpp)
|
||||
if(USE_GUI)
|
||||
add_library(occvis ${NG_LIB_TYPE} vsocc.cpp)
|
||||
endif(USE_GUI)
|
||||
|
||||
if(NOT WIN32)
|
||||
target_link_libraries( occ ${OCC_LIBRARIES} ${PYTHON_LIBRARIES})
|
||||
target_link_libraries( occvis occ )
|
||||
install( TARGETS occ occvis ${NG_INSTALL_DIR})
|
||||
install( TARGETS occ ${NG_INSTALL_DIR})
|
||||
if (USE_GUI)
|
||||
target_link_libraries( occvis occ )
|
||||
install( TARGETS occvis ${NG_INSTALL_DIR})
|
||||
endif(USE_GUI)
|
||||
endif(NOT WIN32)
|
||||
|
||||
install(FILES
|
||||
|
Loading…
Reference in New Issue
Block a user