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
Christopher Lackner
27a6d29187
fix occ closesurfaces ending in a larger plane
2022-04-20 17:18:44 +02:00
Christopher Lackner
d36b3d8b4e
[occ] inner point of surface -> surface mesh
2022-03-30 12:47:07 +02: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
mhochsteger@cerbsim.com
1e6ab35f4d
Fix return value of ProjectPointGI
2022-03-07 21:08:04 +01:00
mhochsteger@cerbsim.com
0a99c169b6
fix missing return value
2022-03-07 20:59:24 +01:00
Christopher Lackner
21b263a0ba
[occ] fix boundarylayer + curve
2022-03-07 17:25:41 +01:00
Christopher Lackner
d6770fda0c
allow quad dominated meshing of faces
2022-02-25 10:50:51 +01:00
mhochsteger@cerbsim.com
cf59f297a7
use std::filesystem::path
2022-02-23 11:56:00 +01:00
Christopher Lackner
e2040ae953
[occ] also keep color in merge if already set from shape
2022-02-14 18:24:02 +01:00
Christopher Lackner
3ee29a1ace
[occ] overwrite shape property name only if not already set in merge
2022-02-14 18:07:00 +01:00
Christopher Lackner
3ab8808fa3
do not restrict mesh size on identified edges
2022-01-19 15:05:41 +01:00
mhochsteger@cerbsim.com
5f202fd4ea
clear geom data in OCCGeometry::BuildFMap() (fixes broken meshing after Heal())
2022-01-17 10:02:11 +01:00
mhochsteger@cerbsim.com
b7448ce2c1
fix PropagateIdentifications after Glue
2021-12-16 18:35:43 +01:00
mhochsteger@cerbsim.com
329364e8e2
occ - set domin/domout for edges in 2d meshes
2021-12-07 14:52:06 +01:00
mhochsteger@cerbsim.com
c0d6f1588d
occ - closesurface identification (prisms)
2021-11-30 20:26:26 +01:00
Matthias Hochsteger
16b88e8e67
OCC Mesher Cleanup
2021-11-28 15:14:41 +00:00
mhochsteger@cerbsim.com
17458889aa
Change interface of LoadFromMeshFile
...
Fetch the first (geometry identification) token only once (and not on each try to load a different type)
2021-11-10 18:37:24 +01:00
Christopher Lackner
9d48602a2a
Add NetgenGeometry.RestrictH function
2021-09-08 22:12:45 +02:00
Christopher Lackner
6303b9d926
some default implementations for basegeometry
2019-11-18 11:14:02 +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
fbf6d92895
clean up geometry interface, fix if number of subdivided edges was not correct
2019-10-31 13:34:40 +01:00
Christopher Lackner
aa580e4025
add timer and little cleanup in not yet used findedges
2019-10-29 11:37:27 +01:00
Christopher Lackner
a76d407979
implement functionality to restrict meshsize in base class
...
not yet used in any derived geometry
2019-10-28 19:58:35 +01:00
Christopher Lackner
e221c550ac
implement find edges in base geometry
2019-10-28 17:14:55 +01:00
Christopher Lackner
b0db24fa83
implement meshsurface in basegeometry
2019-10-28 14:41:31 +01:00
Christopher Lackner
54b36c6a40
add virtual method to restrict localh to geometry
2019-10-24 17:34:53 +02:00
Christopher Lackner
36e56e5d6c
move some stuff to base geometry
2019-10-24 13:17:00 +02:00
Matthias Hochsteger
eaf2bee9e6
Throw Exception if ProjectPointGI is not implemented
2019-10-23 11:26:45 +02:00
Christopher Lackner
c309c9846f
store refinement
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
43cc5e68b1
occ use optimize surface functionality from basegeom
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
Matthias Hochsteger
cb87362f64
Rename Array to NgArray
2019-07-09 10:39:16 +02:00
Christopher Lackner
099acc9fa1
pickling for all geometry types
2018-12-14 12:01:58 +01:00
Joachim Schöberl
d9219e6f05
picking geometry with mesh (CSG only by now)
2018-05-12 09:16:02 +02:00
Christopher Lackner
7e4892a9e7
firststep and laststep as meshingparameters to be exported to python
2016-12-05 13:50:21 +01:00
Joachim Schoeberl
4dda85ac90
python, shared ptr
2014-09-25 20:23:31 +00:00
Joachim Schoeberl
60843c9bf0
2d mesh smoothing
2013-02-06 12:55:20 +00:00
Joachim Schoeberl
7c088f5f6f
move parallel mesh interface
2011-08-29 10:09:11 +00:00
Joachim Schoeberl
3d2f7d7457
dll_headers for geometry dll (only 2D yet)
2011-03-03 21:42:20 +00:00
Joachim Schoeberl
ab0077c609
meshing headers
2011-03-02 20:50:39 +00:00
Joachim Schoeberl
b95acb082c
geometry restructuring
2011-01-10 20:18:01 +00:00
Joachim Schoeberl
6cdaec8ece
meshing from surface mesh bug fix
2010-03-23 12:52:07 +00:00
Joachim Schoeberl
670509b52b
baseclass NetgenGeometry
2009-08-25 14:00:20 +00:00
Joachim Schoeberl
f14a04a837
basegeometry, disable moveablemem
2009-08-24 00:03:40 +00:00