284 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
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
Joachim Schoeberl
aa00749f97 fix some deprecated 2022-04-29 13:05:38 +02:00
Christopher Lackner
c39dbd443e Merge remote-tracking branch 'jzimmermann/master' 2022-04-25 11:06:21 +02:00
Joachim Schoeberl
1afcb30102 less copying 2022-04-21 17:16:26 +02:00
Julius Zimmermann
267959967d add message level and check notation of unv file only for first line 2022-04-21 10:25:57 +02:00
Julius Zimmermann
adda364eaa UNV interface with D notation for exponent 2022-04-11 17:52:35 +02:00
Joachim Schoeberl
7791840a4a little mpi cleanup, meshing+distribution in one call 2022-03-15 09:13:09 +01:00
mhochsteger@cerbsim.com
cf59f297a7 use std::filesystem::path 2022-02-23 11:56:00 +01:00
Joachim Schoeberl
bb44c7b0c3 fix warnings 2022-02-16 13:37:32 +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
Matthias Hochsteger
dc57935468 include gzsteram.h only where needed 2021-10-21 10:25:40 +02:00
Christopher Lackner
1fd4835c72 call mesh.ComputeNVertices in read fnf file 2021-09-30 15:40:38 +02:00
Matthias Hochsteger
db5acb5718 Fix second order output in elmer format 2021-09-20 15:08:54 +00:00
Christopher Lackner
e0f3ce9cf0 fix loading of short mesh file names 2021-06-22 11:57:30 +02:00
Joachim Schoeberl
b51df253fd pickle mesh-load also via ngsolve.Mesh('filename.vol.bin') 2021-06-17 07:58:25 +02:00
Matthias Hochsteger
99e001fc4c TABLE -> Table 2021-05-11 18:21:40 +02:00
Matthias Hochsteger
c8406d3b10 replace NgArray and TABLE with Array and Table 2021-05-10 16:30:40 +02:00
Christopher Lackner
a612444e77 FindElementOfPoint<1> for 2d meshes for curved segments 2021-03-23 15:08:20 +01:00
Joachim Schoeberl
28c4b78410 mesh bisection with onlyonce option. otherwise, tet-bisection performs three bisection steps to obtain h/2 2021-02-19 15:06:20 +01:00
Joachim Schoeberl
e9e3d52b45 parent faces 2021-02-17 23:32:15 +01:00
Joachim Schoeberl
22aee3b3a5 simd-mapping of point elements 2021-02-05 11:42:45 +01:00
Matthias Hochsteger
2d667a08dc move (refactored) SIMD headers from ngsolve into ngcore 2020-12-11 20:54:41 +01:00
Christopher Lackner
7ae460b2e5 Fix .surf file reading.
See https://ngsolve.org/forum/ngspy-forum/1275-bug-surf-file-read-incorrectly
2020-11-27 15:28:48 +01:00
Matthias Hochsteger
47632a06aa fix index error in cgns import 2020-10-27 14:54:25 +01:00
Matthias Hochsteger
585a2e086c read cgns - set domin/domout in FaceDescriptor 2020-09-01 22:55:10 +02:00
Matthias Hochsteger
a8a0b9d50b fix bc/mat names in CGNS reader 2020-09-01 17:36:08 +02:00
Joachim Schöberl
e680f23bfa fix for non-parallel 2020-08-21 22:38:35 +02:00
Joachim Schöberl
895280a244 littel parallel polishing 2020-08-21 16:29:33 +02:00
Joachim Schöberl
33626c6669 clear solutiondata object on python-exit 2020-08-17 15:55:32 +02:00
Christopher Lackner
620b90fbee read material names from fnf file 2020-08-06 18:06:26 +02:00
Matthias Hochsteger
7dbd9e6b54 CGNS write support 2020-08-04 21:06:56 +02:00
Joachim Schöberl
ba84439227 NgMPI_Communicator by reference, check for valid mpi-comm 2020-08-02 09:25:44 +02:00
Matthias Hochsteger
2f88502729 Remove Segment::bcname, fix Mesh::operator=
Remap the 'string* bcname' members in the FaceDescriptor objects in
Mesh::operator= to the new mesh
2020-07-23 16:24:59 +02:00
Matthias Hochsteger
7058732e23 Fix CGNS reader for 2d meshes, cleanup 2020-07-15 13:31:37 +02:00
Matthias Hochsteger
7da5cfd3de translate to NGSolve node type in ReadCGNSFile 2020-07-02 18:26:16 +02:00
Joachim Schöberl
3b5c346e63 proper terms 2020-06-17 19:11:17 +02:00
Matthias Hochsteger
b1d65912ec cgns: flip normals of 2d elements 2020-03-19 20:50:32 +01:00
Matthias Hochsteger
bff0e67576 CGNS reader: identify equal points in different zones 2020-03-17 17:46:29 +01:00
Matthias Hochsteger
89cb1e07ff CGNS reader: Fix boundary/material names for MIXED elements 2020-03-12 18:42:58 +01:00
Matthias Hochsteger
a88432cb7f Merge branch 'cgns' into 'master'
CGNS format read support

See merge request jschoeberl/netgen!315
2020-03-11 21:07:08 +00:00
Matthias Hochsteger
2615b0911e Fix CGNS code for version < 3.4
Install libhdf5 on ubuntu test (cgns depends on it)
2020-03-11 17:43:36 +01:00
Matthias Hochsteger
603141cf1a Fix CGNS support on Windows 2020-03-11 14:53:08 +00:00
Matthias Hochsteger
db5ad09b79 Initial CGNS format read support 2020-03-11 13:39:40 +01:00
Lukas
672ce3f3f2 Interface can now give curve order of mesh 2020-03-06 10:17:09 +01:00
Joachim Schöberl
d46453050d fix for recent change 2019-09-21 02:22:20 +02:00
Matthias Hochsteger
8381ce58ba Link stl to interface 2019-09-20 15:26:15 +02:00
Christopher Lackner
681628bd40 remove unnecessary line 2019-09-20 13:45:23 +02:00
Matthias Hochsteger
f6f4976402 Import STL as Mesh 2019-09-20 11:32:20 +02:00
Matthias Hochsteger
1584da69ae Rename BitArray to NgBitArray 2019-08-28 14:04:05 +02:00