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
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
Matthias Hochsteger
8e38334b9a
Merge branch 'add_csg_solid_maxh' into 'master'
...
Add maxh property to Solid2d
See merge request jschoeberl/netgen!464
2021-12-22 10:55:32 +00:00
Joachim Schoeberl
1c36ff9868
increase meshsize boundingbox in 2D
2021-11-30 18:39:12 +01:00
Matthias Rambausek
e30daf4232
solid2d gets its own maxh parameter such that maxh is also respected inside the domain
2021-11-18 09:25:17 +01:00
Christopher Lackner
bd29763b16
Add std::any to py::object caster for archive registered types
2021-09-28 22:34:11 +02:00
Christopher Lackner
9d48602a2a
Add NetgenGeometry.RestrictH function
2021-09-08 22:12:45 +02:00
Matthias Hochsteger
f53dad83ae
layer property for Solid2d
2021-09-01 14:38:45 +02:00
Christopher Lackner
aca46c49c8
add SetDomainLayer for geom2d
2021-09-01 14:34:30 +02:00
Joachim Schöberl
7b62f39460
Merge branch 'fix_pointsels_in_2dgeom' into 'master'
...
Only add segment end points of 2d geometry to mesh as 0D-elements
See merge request jschoeberl/netgen!373
2021-03-29 19:38:41 +00:00
Matthias Hochsteger
57a4d03d23
Merge branch 'fix_csg2d' into 'master'
...
Fix csg2d
See merge request jschoeberl/netgen!374
2021-03-24 11:35:28 +00:00
Matthias Hochsteger
5a0d07ca87
set hpref to 0.0 (fixes random values)
2021-03-24 12:04:21 +01:00
Matthias Hochsteger
b431a07c74
Fix starting point for intersection searching
2021-03-24 12:03:40 +01:00
Matthias Hochsteger
6cdeaf2d40
Only add segment end points of 2d geometry to mesh as 0D-elements
2021-03-24 10:49:46 +01: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
Joachim Schöberl
993c02b391
Merge branch 'geom2d_dont_need_spline_name' into 'master'
...
Don't need to specify string description of spline type in 2d geom
See merge request jschoeberl/netgen!363
2021-02-10 11:23:15 +00:00
Matthias Hochsteger
7739aaedf7
SplineGeometry - also add point elements with empty names to mesh
2021-02-01 11:27:31 +01:00
Christopher Lackner
b58c35831d
Don't need to specify string description of spline type in 2d geom
2021-01-26 11:27:46 +01:00
Matthias Hochsteger
12ebcd0d68
Fix oracle function and intersection bug in csg2d
2021-01-14 17:11:46 +01:00
Matthias Hochsteger
1502fd705e
some debug messages
2021-01-12 18:08:51 +01:00
Matthias Hochsteger
96b9be9f9c
[WIP] Fix oracle function in csg2d
2021-01-12 18:08:39 +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
f5771dca1e
fix for 2D curves with same sub-domain on both sides
2020-11-19 20:07:09 +01:00
Matthias Hochsteger
22d6303c5c
bugfix in csg2d
...
handle degenerate quadratic equation in intersection of spline and
segment correctly
2020-11-13 16:14:30 +01:00
Matthias Hochsteger
de76069283
CSG2d bugfix
...
Fixes bug in IsInside(p) test for splines if p lies on an edge of the surrounding triangle.
Do a fast check using (new) function IsCloseToTrig() instead of IsInsideTrig().
2020-11-11 16:03:09 +01:00
Matthias Hochsteger
6199c7f66b
csg2d interface
2020-11-05 14:59:58 +01:00
Matthias Hochsteger
8b14f399c1
csg2d - fix bug in getNonIntersectionVertex()
...
If a loop has no non-intersecting vertex, a new one is inserted
-> set all vertex properties correctly (info, spline)
2020-11-03 18:43:23 +01:00
Matthias Hochsteger
45059fa7af
csg2d - fix CleanupResult
...
Check for more edge properties (maxh, bc etc.) before removing
"intermediate" and unnecessary vertices
2020-11-03 18:43:23 +01:00
Joachim Schöberl
de83f0ca14
Delaunay2d also for small sub-domains
2020-10-25 16:31:47 +01:00
Joachim Schöberl
25342f7c3f
speeding up many small domains
2020-10-22 12:04:32 +02:00
Christopher Lackner
9a39b81615
fix set csg2d pinfo
2020-10-19 17:34:11 +02:00
Christopher Lackner
39be1fd3c9
add PointInfo for csg2d for maxh and name in points
2020-10-19 16:32:42 +02:00
Matthias Hochsteger
9d5661fdc5
Fix maxh issue for splines
2020-10-19 13:19:25 +02:00
Matthias Hochsteger
2b5d00b259
csg2d - add points as 0d-elements to mesh
2020-10-19 10:41:44 +02:00
Joachim Schöberl
c842de7c3d
Merge branch 'optimize_calcpartition' into 'master'
...
optimize CalcPartition() and PartitionBoundary()
See merge request jschoeberl/netgen!340
2020-10-17 05:44:33 +00:00
Matthias Hochsteger
dab18a1c8a
optimize CalcPartition() and PartitionBoundary()
...
new test results (2d meshing behaviour is changed with this commit)
2020-10-16 18:48:22 +02:00
Matthias Hochsteger
8ba6bad6fd
Delaunay for 2d mesh generation
...
Squashed commit of the following:
commit 84f36ffeb409f5fddb389c75ee48b4872b516ae9
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 16 18:27:15 2020 +0200
revert change in spline partitioning
commit d4aef23a22a9beb26c4453267c99dd7533174ced
Merge: 15a467aa 97dfecd0
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 16 17:59:00 2020 +0200
Merge branch 'master' into delaunay2d
commit 15a467aa7f7cb09f9ea3d984905fe3da69f0b238
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 16 17:44:31 2020 +0200
delaunay2d - fix trig orientation
commit be223412ad972722a51b64a5bccf7ca2bec566c8
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 16 17:29:46 2020 +0200
fix delaunay swapping
commit 48b95ae2ee1cbabcfae79dfd1cb7af1fd69d77f3
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 16 17:27:51 2020 +0200
testout only with debug settings
commit d82b7a7cecb6f65f42b79b666fc58d0116dc0365
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 16 16:37:10 2020 +0200
delaunay only for large domains
commit 1f51eaca1ff7a3777e4f32ba9e35e48d496a2854
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 16 16:21:33 2020 +0200
compress points in delaunay
commit 20a223f36f3912a208db80c717d9dd87851ba43f
Merge: 2446b746 4c15146d
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 16 14:31:14 2020 +0200
Merge branch 'master' into delaunay2d
commit 2446b74687ee56633a86e748e85343919edbd5ad
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 16 14:22:01 2020 +0200
optimize CalcPartition() and PartitionBoundary()
commit 3baa58833348a72f16853530a5d17e73424186df
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 16 12:24:17 2020 +0200
MeshingParameters - delaunay2d option (default is off)
commit e79b113dde9b9c4c5b92239817c6058ca468c319
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Thu Oct 15 16:12:45 2020 +0200
fix windows build error
commit 92c7b9c1ed4016458980bbc21c61dae07f4444c7
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Thu Oct 15 17:51:44 2020 +0200
delaunay bugfix
commit 6880194107819cfb2d23206e7e0f48ff5aa3fc10
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Thu Oct 15 17:51:05 2020 +0200
csg2d - fix bug with splines
commit 1d9baa299d49e1f6fa16f4368885601ed01c5de7
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Wed Oct 14 18:40:23 2020 +0200
CSG2d - faster AddIntersections (search tree per loop)
commit 2679ef0dee10cdf486441af47ca4c081aa7eb50b
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Wed Oct 14 17:13:17 2020 +0200
bounding box for Loop
commit 894c6345b737693e32cbda368e56f56764e11085
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Wed Oct 14 12:48:51 2020 +0200
remove debug check, output in blockfill
commit 2b0a0892c41e746b12e5e852cdb138acd3d2c4e3
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Wed Oct 14 12:40:53 2020 +0200
compress mesh after delaunay
commit 1de33c87eee3199d4d9b18544f66e53329b47a2f
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Wed Oct 14 12:37:07 2020 +0200
revert change in improve2d
commit 41a60e89533e94b93b92202ac17852d3aee9acbb
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Wed Oct 14 12:25:07 2020 +0200
cleanup delaunay2d
commit c16aae324969cd5a90748953019933690d013337
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Wed Oct 14 11:39:56 2020 +0200
sunburst chart - tooltip formatting
commit 4d61e1fdeab302ba357904f22f951361935791f0
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Wed Oct 14 11:03:37 2020 +0200
delaunay seems to work
commit 8bd43f54d1efd6862f1b403cdb6c8ce9b5f7b3c6
Merge: 90ac7adb 25efdadd
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Tue Oct 13 12:08:01 2020 +0200
Merge remote-tracking branch 'gitlab/master' into delaunay2d
commit 90ac7adb562cf2402345c5dfb4281bd097b5d62d
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Tue Oct 13 12:04:49 2020 +0200
fix Loop::operator=
commit 1eb4f2de3b6576f503a073011a208fa8f609524e
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Tue Oct 13 12:04:13 2020 +0200
more statistics in sunburst chart
commit db8b97ffbbc7db2a3413c4f8a5528eebe3488d57
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Tue Oct 13 11:17:28 2020 +0200
more work on delaunay2d
commit eaa675f2351252b5fde423f241b10e231d1eb97e
Merge: 0eb9f9bd 8f837cb9
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Mon Oct 12 12:51:31 2020 +0200
Merge remote-tracking branch 'gitlab/delaunay2d' into delaunay2d
commit 0eb9f9bd1c31a0e3c3c796c9280b1c1d007ace26
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Mon Oct 12 12:50:10 2020 +0200
further csg2d optimization
commit 8f837cb9a281acca7c33159985da3b6992fe638f
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Tue Oct 6 19:02:31 2020 +0200
csg2d - optimize Loop::operator=
commit 7bb4f16b886b20902b0d3563716055fc1734d47e
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Tue Oct 6 10:28:20 2020 +0200
csg2d performance (search tree, inside tests)
commit 2c9ebce04d7989223327a1875e1b65bf180c95f5
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Fri Oct 2 16:33:24 2020 +0200
[WIP] delaunay2d
commit 749df2311a3ac1976faaa9f0b60846709a2087b9
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Thu Oct 1 11:36:03 2020 +0200
something
commit cda9fffde33a86b71467debb86848fdb9cfbf80c
Author: Matthias Hochsteger <mhochsteger@cerbsim.com>
Date: Wed Sep 30 12:06:53 2020 +0200
delaunay2d - fix size of starting trig
2020-10-16 18:34:13 +02:00
Matthias Hochsteger
f66d8bd54e
Revert "optimize CalcPartition() and PartitionBoundary()"
...
This reverts commit 95b7720efd6057371c941b466b3f0a4dc5ff78c9.
2020-10-16 14:45:01 +02:00
Matthias Hochsteger
4c15146df9
fix windows build error
2020-10-16 14:30:38 +02:00
Matthias Hochsteger
e1100617af
csg2d - fix bug with splines
2020-10-16 14:29:38 +02:00
Matthias Hochsteger
19ebc915c8
CSG2d - faster AddIntersections (search tree per loop)
2020-10-16 14:29:33 +02:00
Matthias Hochsteger
95b7720efd
optimize CalcPartition() and PartitionBoundary()
2020-10-16 14:25:33 +02:00
Matthias Hochsteger
7a8e10738b
Revert "CSG2d - faster AddIntersections (search tree per loop)"
...
This reverts commit 307c2a3bbbe5f340c0ae6833bc9579331e823de1.
2020-10-14 19:59:36 +02:00
Matthias Hochsteger
307c2a3bbb
CSG2d - faster AddIntersections (search tree per loop)
2020-10-14 18:41:35 +02:00
Matthias Hochsteger
7b8b3b03ca
bounding box for Loop
2020-10-14 18:41:35 +02:00
Matthias Hochsteger
33bb84bd3e
CSG2d optimizations (in-place operators, search tree)
2020-10-14 11:54:36 +02:00
Matthias Hochsteger
0852a20fff
some DLL_HEADER
2020-09-24 16:58:59 +02:00
Matthias Hochsteger
2763285b46
csg2d - fix tutorial
2020-09-15 15:48:49 +02:00