56 Commits

Author SHA1 Message Date
Christopher "Monty" Montgomery
b28baf0cd7
Merge de7ffc5906e0ce4117ca91f13c1e3a8f858cefd7 into 00d6c94bd9227bbe80f5a7d9e94f36acf2384889 2022-07-06 14:12:13 +02:00
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
95be76d8ee surface color to mesh from geometry 2022-05-10 18:18:29 +02: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
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
Matthias Hochsteger
dcda14e6e7 fix occ identifications 2022-03-24 16:54:40 +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
mhochsteger@cerbsim.com
d2348a7651 optimize occ surfaces individually again, update test results 2022-03-02 15:42:44 +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
Christopher Lackner
016b1692e2 fix point type of geo vertices (FIXEDPOINT) -> locked points 2022-03-01 13:23:06 +01:00
mhochsteger@cerbsim.com
cf59f297a7 use std::filesystem::path 2022-02-23 11:56:00 +01:00
mhochsteger@cerbsim.com
a68cd9f89a fix parallel surface optimization
update test results
2022-02-15 19:09:53 +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
439415bffe fix OCC meshing with nglib 2022-01-14 11:47:22 +01:00
mhochsteger@cerbsim.com
2a77e9635a Use 10000 edge divide factor again for OCC 2022-01-14 11:47:08 +01:00
mhochsteger@cerbsim.com
00e6d1d077 occ - fix bug in edge identification 2021-12-20 10:42:26 +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
mhochsteger@cerbsim.com
1818ffd152 occ - fix meshing in parameter space, fix edge curve parameters 2021-11-29 16:04:26 +01:00
mhochsteger@cerbsim.com
06031e665a set default bcname to valid string pointer, some occ tests 2021-11-29 11:13:40 +01:00
mhochsteger@cerbsim.com
9537ccdb7a occ - allow closed edges in identified faces 2021-11-28 19:59:14 +01:00
Matthias Hochsteger
16b88e8e67 OCC Mesher Cleanup 2021-11-28 15:14:41 +00:00
mhochsteger@cerbsim.com
e0afa0a916 Use TextOutArchive to store OCCGeometry in mesh files 2021-11-11 10:04:39 +01: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
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
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
6c012675aa project point without geominfo returns new geominfo 2019-10-31 17:08:29 +01:00
Christopher Lackner
1e3ed047db progress for analyse geometry 2019-10-31 15:25:47 +01:00
Christopher Lackner
249d785084 progress bars for find edges, mesh surface,... 2019-10-31 15:17:28 +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
Christopher Lackner
c309c9846f store refinement 2019-10-07 15:17:03 +02:00
Christopher Lackner
fa3ae333ce delete trailing whitespaces in new commits 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