Monty Montgomery
de7ffc5906
Eliminate a "C++ initialization order fiasco" for geometryregister
...
Current initialization of the global geometryregister suffers from a
classic 'initialization order fiasco'. Depending on the order the
compilation units are loaded/linked, the initialization of the global
geometryregisterarray is not guaranteed to happen (and indeed often
does not happen) before it is used. This leads to entries being
appended before it's initialized (usually 'suceeding, but potentially
causing memory corruption if the segment at that point isn't zeroed),
initialization then happening halfway through (wiping the initial
entries) and then the last entries being the only ones that show up.
The net effect is either a crash at startup, or several geometry types
seeming to be missing. Eg, step files will oad, but STL files are
just ignored. The bug is actively observed on, eg, Linux.
This patch implements a simple 'initialize at first access' convention
for the array, eliminating the ordering problem.
I've not reviewed the rest of the source for other potential examples
of the fiasco pattern; this fixes only the geometryregister, since
that was actively biting.
2022-05-22 11:29:10 -04:00
Matthias Hochsteger
b694b4667a
rework build system, separate gui and non-gui code
...
move fieldlines code to meshing dir
move visualization function pointers to meshing directory
DLL_HEADER -> NGGUI_API in visualization lib
move soldata.hpp to meshing
update occ, no freetype necessary anymore
2022-05-05 14:39:31 +02:00
Matthias Hochsteger
6b36a2d9d8
load geometries from command line with python netgen executable
2022-04-28 10:46:49 +02:00
luz paz
4033fac1b3
Fix various typos
...
Found via `codespell -q 3 -S ./external_dependencies/pybind11 -L alledges,allright,ane,anormal,ans,apoints,ba,boxs,cancle,childs,co-ordinate,co-ordinates,daty,enty,filld,hel,identifyable,ist,linz,lod,ned,nd,selt,statics,suround,thev,thist,thisy,timere,upto,wel`
2022-03-25 18:22:05 -04:00
mhochsteger@cerbsim.com
cf59f297a7
use std::filesystem::path
2022-02-23 11:56:00 +01:00
Christopher Lackner
bd29763b16
Add std::any to py::object caster for archive registered types
2021-09-28 22:34:11 +02:00
Matthias Hochsteger
b2fea6dec1
Clean up multiple definitions of DLL_HEADER
...
- define DLL_HEADER only once in mydefs.hpp
- define/use NGLIB_API in nglib.h
- use NGCORE_API_EXPORT for explicit export of symbols
2021-02-18 14:53:38 +01:00
Matthias Hochsteger
94ecf8de92
Fix private linking of Python
...
The CMake export of Interface libraries also exports PRIVATE build
settings, which leads to build errors with non-existing include paths and .lib files for binary distributions.
Use the work-around mentioned here to circumvent this behavior:
https://gitlab.kitware.com/cmake/cmake/-/issues/15415#note_849405
2020-12-18 11:05:10 +01:00
Joachim Schöberl
2b683f70d5
Merge branch 'throw_on_meshing_fail' into 'master'
...
throw on meshing failure
See merge request jschoeberl/netgen!299
2019-11-26 19:27:30 +00:00
Matthias Hochsteger
f3d9d3ad67
[cmake] Don't link python libraries in unix-conda environment
...
Conda links python libs statically to python executable
2019-11-26 19:26:18 +00:00
Christopher Lackner
303aebc27e
throw on meshing failure
2019-11-26 17:08:21 +01:00
Christopher Lackner
b99e37999f
fixes for mac and windows
2019-11-05 15:19:54 +01:00
Christopher Lackner
073e215bb6
add closeedge meshsize to base geometry (not used)
...
closedgefac moved to meshingparameters for this
2019-11-04 19:34:46 +01:00
Christopher Lackner
1b1c4700ad
geo GetNormal and ProjectPointEdge with geoinfo pointer
2019-11-04 11:27:01 +01:00
Christopher Lackner
6c012675aa
project point without geominfo returns new geominfo
2019-10-31 17:08:29 +01:00
Christopher Lackner
5b45c7a972
implement meshing2 functionality for 3d geometries
2019-10-28 13:44:51 +01:00
Matthias Hochsteger
8659e5a3ee
some thread-safe STLGeometry projection functions
2019-10-18 13:40:53 +02:00
Matthias Hochsteger
17dfd45609
Merge remote-tracking branch 'origin/master' into test_refactoring_meshing_design
2019-10-18 11:53:05 +02:00
Matthias Hochsteger
18bdd9df93
Build neighbors list in parallel
...
Check in new results (part1.stl does not mesh with very_coarse anymore)
2019-10-08 19:26:43 +02:00
Matthias Hochsteger
865aca0ba0
Implement MeshOptimizeSTLSurface::ProjectPointGI
2019-10-08 14:40:40 +02:00
Matthias Hochsteger
fea75d6ff5
Remove MeshOptimize2d::SelectSurfaceOfPoint()
2019-10-08 12:44:00 +02:00
Matthias Hochsteger
893df3a79f
Automatically select correct chart in MeshOptimizeSTLSurface::GetNormalVector
2019-10-08 12:42:06 +02:00
Christopher Lackner
ed087848ef
this check is too hard sometimes and prevents some stls from meshing
...
bone.stl fails on moderate because of this
2019-10-08 12:41:26 +02:00
Matthias Hochsteger
ed5ea4408f
Revert "Automatically select correct chart in MeshOptimizeSTLSurface::GetNormalVector"
...
This reverts commit d4b376024a
.
2019-10-08 12:35:58 +02:00
Matthias Hochsteger
d4b376024a
Automatically select correct chart in MeshOptimizeSTLSurface::GetNormalVector
2019-10-08 12:34:15 +02:00
Matthias Hochsteger
4d98a6eb8c
STLGeometry::GetNormal only valid with PointGeomInfo
2019-10-07 15:17:03 +02:00
Matthias Hochsteger
562800babc
Clean up STLGeometry
2019-10-07 15:17:03 +02:00
Christopher Lackner
05881c0eb5
refactor a lot of the old code, stl still needs to be done
2019-10-07 15:17:03 +02:00
Christopher Lackner
bee097b153
start unify meshing with occ meshing
2019-10-07 15:17:03 +02:00
Christopher Lackner
b0f13a1f20
fix parsing of stl parameters from python
2019-10-07 12:56:12 +02:00
Matthias Hochsteger
85d7f5e628
Use BoxTree::GetFirstIntersecting in STLChart::ProjectNormal
2019-10-02 11:51:09 +02:00
Joachim Schöberl
78094016bf
Merge branch 'calclocalh_use_point' into 'master'
...
change CalcLocalH to use Point<D> instead of PointDd
See merge request jschoeberl/netgen!258
2019-10-01 10:59:43 +00:00
Matthias Hochsteger
8bfccdf1df
Use BoxTree::GetFirstIntersecting
2019-10-01 12:34:23 +02:00
Matthias Hochsteger
7ced41e56f
Use searchtree in STLBoundary
2019-10-01 12:19:22 +02:00
Christopher Lackner
9797c23351
change CalcLocalH to use Point<D> instead of PointDd
2019-10-01 11:59:17 +02:00
Christopher Lackner
bef1172b44
only iterate over outer chart if inner chart searchtree
2019-09-30 18:50:43 +02:00
Matthias Hochsteger
94671a176a
Use STLTrigId instead of int in SearchTree
2019-09-30 18:43:53 +02:00
Joachim Schöberl
693bc66d49
use STL-searchtree
2019-09-30 18:21:01 +02:00
Joachim Schöberl
dd70e94143
searchtree in STLCharts
2019-09-30 18:14:46 +02:00
Joachim Schöberl
e4017b84e9
Merge branch 'pointnd_to_point' into 'master'
...
Pointnd to point
See merge request jschoeberl/netgen!255
2019-09-30 13:30:01 +00:00
Joachim Schöberl
b76b82b293
Merge branch 'split_improve_2d' into 'master'
...
SplitImprove for triangles
See merge request jschoeberl/netgen!251
2019-09-30 13:29:50 +00:00
Matthias Hochsteger
8defe2f864
New function Mesh::FindIllegalTrigs()
...
Find illegal trigs after surface meshing and use this information in
surface mesh optimization
2019-09-30 14:54:03 +02:00
Matthias Hochsteger
b3c64a0607
Handle CR and other space characters correctly when loading STL files
2019-09-30 13:08:39 +02:00
Matthias Hochsteger
7becf20ebd
Ignore leading whitespaces in STL files
...
Treat STL files as binary if non-printable characters appear in first
80 bytes
2019-09-30 11:54:04 +02:00
Christopher Lackner
030d8c8523
change more PointNd to Point<N>
2019-09-30 10:19:35 +02:00
Christopher Lackner
ca2212879e
Change some PointNd to Point<N> functions
2019-09-29 14:54:24 +02:00
Christopher Lackner
c04da61ddc
final check for badsurfacemesh
2019-09-27 14:45:15 +02:00
Christopher Lackner
9b92e754f2
Merge branch 'master' into stl_refine_fix
2019-09-27 14:34:09 +02:00
Joachim Schöberl
d1705be7a6
searchtree in MakeAtlas
2019-09-26 15:22:06 +02:00
Christopher Lackner
182ee07a5c
start fixing
2019-09-26 13:57:55 +02:00