Commit Graph

20 Commits

Author SHA1 Message Date
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
mhochsteger@cerbsim.com
cf59f297a7 use std::filesystem::path 2022-02-23 11:56:00 +01:00
Christopher Lackner
93de43456d dont ignore small edges per default, do not set from stl parameters
occresthminedgelen ignored restricting meshsize per segment length
on edges smaller than stl parameter resthminedgelen which was set
from the gui to 0.2. Disable this (can be used by giving
minedgelen parameter from python in meshing parameters)
2022-01-18 18:21:16 +01:00
Matthias Hochsteger
16b88e8e67 OCC Mesher Cleanup 2021-11-28 15:14:41 +00:00
Christopher Lackner
ec96feb7f4 occ colors also in netgen gui, also allow transparency 2021-10-03 12:58:33 +02:00
Christopher Lackner
27baa178d2 fix new clang warning and add helper function 2020-04-20 10:13:04 +02: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
bee097b153 start unify meshing with occ meshing 2019-10-07 15:17:03 +02:00
Christopher Lackner
9d96c0e432 occ parameters from python, gui and meshsize parameters now the same 2019-08-27 10:10:17 +02:00
Joachim Schöberl
e8960ebae1 use ngscore::Array for surface elements 2019-08-08 08:44:59 +02:00
Joachim Schöberl
954cae2686 don't use global mparam in occ-meshing 2019-07-27 19:05:43 +02:00
Matthias Hochsteger
cb87362f64 Rename Array to NgArray 2019-07-09 10:39:16 +02:00
Joachim Schöberl
7c1cee3817 fix warnings 2018-03-08 22:31:00 +01:00
Matthias
ad6785731f OpenCascade for Windows 2016-04-04 10:18:38 +02:00
Joachim Schoeberl
42ea36b932 opengl/tcl structure 2014-10-08 12:46:25 +00:00
Joachim Schoeberl
04f6c7be46 shared ptr in occ 2014-09-15 08:07:23 +00:00
Philippose Rajan
c7ba1a6dc8 * Converted the minimum edge length used for subdividing geometry edges during the meshing phase into a user defined parameter accessible from the GUI 2014-01-25 21:17:16 +00:00
Philippose Rajan
0ca9193607 * OpenCascade geometry broken by changes in the NetgenGeometry memory leak fix.
* This commit makes the required changes to get it working again
2013-04-29 18:25:27 +00:00
Joachim Schoeberl
1b4c7be876 occ as shared lib 2011-01-14 17:03:35 +00:00
Joachim Schoeberl
b95acb082c geometry restructuring 2011-01-10 20:18:01 +00:00