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
Joachim Schoeberl
aa00749f97
fix some deprecated
2022-04-29 13:05:38 +02:00
Christopher Lackner
8c7d69c1d1
setnextmayortimestamp in mesh.ZRefine
2022-04-11 13:05:14 +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
Christopher Lackner
842780feec
if only 1 locahl tree is set use the global one on all layers
2022-03-14 14:20:31 +01:00
mhochsteger@cerbsim.com
154302605f
separate localh trees for different layers
...
currenlty used in OCC geometries generated with
shape = netgen.occ.Compound(list_of_shapes, separate_layers=True)
2022-03-10 19:04:46 +01:00
Matthias Hochsteger
c6c8f52878
Merge branch 'fix_parallel_optimize2d' into 'master'
...
Fix parallel optimize2d
See merge request jschoeberl/netgen!487
2022-03-02 14:11:21 +00:00
mhochsteger@cerbsim.com
43382d4be8
fix parallel surface optimization with occ
2022-03-02 14:58:39 +01:00
Christopher Lackner
9730a383fd
geo vertices as pointelements not locked points
2022-03-02 11:34:02 +01:00
mhochsteger@cerbsim.com
0379b737eb
copy hglob, hmin, maxhdomain in Mesh::operator=
2022-02-25 10:00:41 +01:00
mhochsteger@cerbsim.com
922a0c5c86
fix 2d edge swapping
2022-02-23 21:23:37 +01:00
Joachim Schöberl
afa018049b
Merge branch 'use_filesystem_path' into 'master'
...
use std::filesystem::path
See merge request jschoeberl/netgen!480
2022-02-23 13:34:23 +00:00
Christopher Lackner
ea7e980c8d
[occ] ZRefinement
2022-02-23 12:22:19 +01:00
mhochsteger@cerbsim.com
cf59f297a7
use std::filesystem::path
2022-02-23 11:56:00 +01:00
mhochsteger@cerbsim.com
daa2c69714
fix parsing cd3names
2022-02-16 19:52:49 +01:00
mhochsteger@cerbsim.com
7a10afc720
clean up cd3names in mesh dtor
2022-02-09 09:41:05 +01:00
mhochsteger@cerbsim.com
f5b7e27e5d
save FaceDescriptors in mesh file
2021-12-03 14:54:39 +01:00
mhochsteger@cerbsim.com
06031e665a
set default bcname to valid string pointer, some occ tests
2021-11-29 11:13:40 +01:00
Matthias Hochsteger
dc57935468
include gzsteram.h only where needed
2021-10-21 10:25:40 +02:00
Joachim Schoeberl
0b7d8d5a9b
fix Mirror for second-order meshes
2021-10-17 18:59:49 +02:00
Joachim Schoeberl
f38d258d15
Mirror mesh: invert surface elements, update num vertices
2021-10-15 09:00:26 +02:00
Christopher Lackner
b4bf1172bc
fix length of occ dim2 boundaries
2021-10-04 15:52:56 +02:00
Christopher Lackner
e6a6ab89e6
write transparency in mesh file and also read it if avail
...
The indexing is a little weird but consistent to before so leave it
like this
2021-10-04 09:27:33 +02:00
Christopher Lackner
ec96feb7f4
occ colors also in netgen gui, also allow transparency
2021-10-03 12:58:33 +02:00
mhochsteger@cerbsim.com
6dfc78ca42
fix GetElementOfPoint (again)
...
- clearer code structure with helper functions FindElementXd
- fix broken search in 2d meshes (bug from last commit)
2021-09-23 18:38:48 +02:00
mhochsteger@cerbsim.com
00855acfec
fix GetSurfaceElementOfPoint
...
only call GetElementOfPoint, if there are volume elements (otherwise we get an endless loop of mutual function calls here...)
2021-09-23 09:15:04 +02:00
Christopher Lackner
6bbaa6bc69
fix GetSurfaceElementOfPoint with indices
2021-09-22 17:52:04 +02:00
mhochsteger@cerbsim.com
286f63f002
Restructure code in GetElementOfPoint
2021-09-22 17:06:20 +02:00
Joachim Schoeberl
9d2a436749
changing mesh-dimension from 3 to 2 moves names
2021-08-15 13:13:11 +02:00
Michael Neunteufel
c0d9f3d95b
Meshpnt surfacemesh
2021-07-25 07:47:25 +00:00
Matthias Hochsteger
48198d232d
Revert "Revert "Merge branch 'parallel_meshing' into 'master'""
...
This reverts commit 65c5e2d244d75832e7193ca90643c70bef4788a8.
2021-07-19 14:59:12 +02:00
Matthias Hochsteger
a89cf0089a
Scaling of bounding box (instead of increasing size in all directions)
2021-07-06 17:09:22 +02:00
Matthias Hochsteger
65c5e2d244
Revert "Merge branch 'parallel_meshing' into 'master'"
...
This reverts commit d20a297cf141b37d7edefd68a6be81631017e2be, reversing
changes made to fd50131a5bd05ca6c1d612de272001939d2550f8.
2021-06-29 19:38:19 +02:00
Matthias Hochsteger
8baccf0a08
some fixes, new test results
2021-06-28 17:48:21 +02:00
Matthias Hochsteger
0b7f4fecbc
timers
2021-06-14 10:39:57 +02:00
Matthias Hochsteger
9b5aa90d38
skip deleted elements when creating tables
...
-> no need to call Compress() everytime the mesh changes
2021-06-14 10:39:57 +02:00
Matthias Hochsteger
b2af4c1069
set flags properly for new Elements
2021-06-14 10:39:57 +02:00
Joachim Schoeberl
1b5aa71ad6
fix parallel mesh pickling
2021-06-14 10:34:39 +02:00
Joachim Schoeberl
aa3f778d06
separat metis-partitioning call, pickling partition number of mesh elements
2021-06-08 13:48:27 +02:00
Matthias Hochsteger
bb43f669e6
Don't skip deleted elements when building point2element table
2021-06-04 19:57:21 +02:00
Matthias Hochsteger
6c37ce33b0
CreatePoint2ElementTable with optional points bitarray
2021-06-04 13:32:30 +02:00
Matthias Hochsteger
639bbb2c0a
.vol.bin format (using archiver)
2021-05-31 10:29:45 +02:00
Matthias Hochsteger
2c72c20c87
smaller tasks
2021-05-31 08:23:42 +02:00
Matthias Hochsteger
1045f68b97
TableCreator -> CreateSortedTable()
2021-05-31 08:23:35 +02:00
Matthias Hochsteger
d1ee6efc14
parallel Cluster update
2021-05-12 10:56:34 +02:00
Matthias Hochsteger
db494f4239
more Timers in Mesh
2021-05-12 10:56:21 +02:00
Matthias Hochsteger
4b53c63fba
helper functions for table creation
2021-05-10 12:03:20 +02:00
Matthias Hochsteger
190e22b06d
Find surface element of point: fix local coordinates for TRIG
...
TRIG and TRIG6 are handled differently, see nginterface_v2.cpp:1114
2021-04-09 14:14:04 +02:00
Christopher Lackner
a612444e77
FindElementOfPoint<1> for 2d meshes for curved segments
2021-03-23 15:08:20 +01:00
Matthias Hochsteger
bcd86a18fd
FindSurfaceElementOfPoint - use barycentric coordinates of already found volume element
...
Increases robustness for finding curved surface elements
2021-03-17 17:36:41 +01:00