Commit Graph

2377 Commits

Author SHA1 Message Date
Matthias Hochsteger
a51f8ed307 fix meshing empty meshes 2021-06-14 10:39:57 +02:00
Matthias Hochsteger
b83d73e919 fix meshing of close surfaces (use identifications of master mesh) 2021-06-14 10:39:57 +02:00
Matthias Hochsteger
1cf3d2a21c always merge domains in separate meshes (consistent output) 2021-06-14 10:39:57 +02:00
Matthias Hochsteger
c835767115 Timer in ProcessTask() 2021-06-14 10:39:57 +02:00
Matthias Hochsteger
97623db219 Mesh 3d domains in parallel
To get consistent results, copy the LocalH tree in BlockFillLocalH
2021-06-14 10:39:57 +02:00
Matthias Hochsteger
5e3505b897 faster SwapImprove after delaunay
also new test results
2021-06-14 10:39:57 +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 Schöberl
44d7207380 Merge branch 'parallel_timing' into 'master'
Thread-safe Timer

See merge request jschoeberl/netgen!392
2021-06-11 17:03:57 +00:00
Matthias Hochsteger
b9f7b1e5a5 Register OCCGeometry for archiver 2021-06-11 15:23:21 +02:00
Matthias Hochsteger
1de1a1800e Fix template argument deduction for Timer, remove ThreadRegionTimer 2021-06-11 15:19:30 +02:00
Matthias Hochsteger
6f7543c7dc Timer - convenience constructors to disable tracing and/or timing
Examples:
Timer t0("name");
Timer t1("name", NoTracing);
Timer t2("name", NoTiming);
Timer t3("name", NoTracing, NoTiming);
Timer t4("name", NoTiming, NoTracing);
2021-06-11 10:08:06 +02:00
Matthias Hochsteger
c5639a5706 Thread-safe Timer
- use template arguments instead of run-time variable 'priority'
 - change in paje interface for tracing
2021-06-11 09:52:58 +02:00
Matthias Hochsteger
a11294baf0 inline GetThreadI() (except on Windows, no dllexport for thread_local variables supported) 2021-06-11 09:51:23 +02:00
Joachim Schoeberl
6c73222f20 more ParallelFor in Topology 2021-06-10 21:52:22 +02:00
Joachim Schöberl
d922d3abdd Merge branch 'small_improvements' into 'master'
Small improvements

See merge request jschoeberl/netgen!390
2021-06-10 10:43:13 +00:00
Matthias Hochsteger
2a17451c96 consistent criterion for conformance optimization in SwapImprove
Only small effect on output Meshes
2021-06-10 11:04:41 +02:00
Matthias Hochsteger
8df49eee2a Reduce sizeof(MeshPoint) from 48 to 40 bytes 2021-06-10 10:15:55 +02:00
Matthias Hochsteger
3f93ccd3bd remove static array in ruler3 (prepare for parallel meshing) 2021-06-10 09:56:42 +02:00
Matthias Hochsteger
80d648c005 parallel evaluation of localh in ImproveMesh() 2021-06-10 09:55:30 +02:00
Matthias Hochsteger
b677ef5e22 Fix RangeException (prepare for local optimizations, with partially filled elementsonpoint table) 2021-06-10 09:53:42 +02:00
Matthias Hochsteger
6cdfefcc82 Use CreateTable for coloring table 2021-06-10 09:51:56 +02:00
Matthias Hochsteger
c734a27621 TABLE -> Table in PointFunction 2021-06-10 09:45:14 +02:00
Matthias Hochsteger
873de8149c thread-safe delaunay 2021-06-10 09:42:04 +02:00
Matthias Hochsteger
eee7a6d211 initialize childs in GradingBox also in default ctor 2021-06-10 09:39:23 +02:00
Matthias Hochsteger
a96a1e4624 separate memtracer.hpp 2021-06-10 09:38:00 +02:00
Matthias Hochsteger
0b90d24d81 fix tolerance in specpoints check (compare Dist2() with sqr(1e-8*geomsize) ) 2021-06-08 20:03:07 +02:00
Matthias Hochsteger
d6ca80d50e Fix SplineSeg ctor 2021-06-08 19:28:53 +02:00
Joachim Schoeberl
abb2e43ccb optimize parallel load 2021-06-08 19:08:14 +02:00
Christopher Lackner
aceb2fac32 Merge branch 'revolution_boundaryconditions' into 'master'
Revolution boundaryconditions

See merge request jschoeberl/netgen!388
2021-06-08 13:01:14 +00:00
Christopher Lackner
bc0b5d538c Merge branch 'revolution_splinegeo_sharedptr' into 'master'
Revolution should keep shared_ptr to splinegeo2d

See merge request jschoeberl/netgen!387
2021-06-08 13:01:06 +00:00
Christopher Lackner
b8ab3a47a7 Give bcname and maxh to revolution by adding it to spline 2021-06-08 14:35:58 +02:00
Joachim Schoeberl
c0534c5e0a partition array also in sequential version 2021-06-08 14:33:32 +02:00
Joachim Schoeberl
d7452c34f9 sequential dummy 2021-06-08 14:09:12 +02:00
Joachim Schoeberl
aa3f778d06 separat metis-partitioning call, pickling partition number of mesh elements 2021-06-08 13:48:27 +02:00
Christopher Lackner
12a5d14967 Revolution should keep shared_ptr to splinegeo2d 2021-06-08 11:56:57 +02:00
Matthias Hochsteger
ca6d6e8ca7 revert mistakenly commited code 2021-06-04 20:04:10 +02:00
Matthias Hochsteger
bb43f669e6 Don't skip deleted elements when building point2element table 2021-06-04 19:57:21 +02:00
Matthias Hochsteger
ba148e8b3b cleanup, more parallel 2021-06-04 16:23:18 +02:00
Matthias Hochsteger
9ddf2424e2 rewrite of DelaunayRemoveTwoTriaTets (much faster now) 2021-06-04 16:03:50 +02:00
Matthias Hochsteger
a2cc102849 delaunay - stay consistent with code on master 2021-06-04 13:32:34 +02:00
Matthias Hochsteger
6c37ce33b0 CreatePoint2ElementTable with optional points bitarray 2021-06-04 13:32:30 +02:00
Matthias Hochsteger
7623289c27 Timer to AdFront3::Inside 2021-06-04 11:33:39 +02:00
Matthias Hochsteger
17af3d0091 Timers, cleanup in delaunay 2021-06-04 11:33:39 +02:00
Matthias Hochsteger
39acabe406 split delaunay postprocessing code into smaller funtions 2021-06-04 11:33:34 +02:00
Matthias Hochsteger
3ce5b1958e Initialize FlatArray members ( thx @mrambausek ) 2021-06-02 15:45:36 +02:00
Matthias Hochsteger
32522368b9 Merge branch 'vol_bin_format' into 'master'
.vol.bin format using archiver

See merge request jschoeberl/netgen!385
2021-06-02 12:05:47 +00:00
Joachim Schoeberl
6dcc89ad04 some table py-features 2021-06-01 12:57:58 +02:00
Matthias Hochsteger
639bbb2c0a .vol.bin format (using archiver) 2021-05-31 10:29:45 +02:00
Matthias Hochsteger
0aa63880c4 smaller tasks 2021-05-31 08:23:46 +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
073cbec108 remember search starting point in inside/outside marking after delaunay 2021-05-31 08:23:22 +02:00
Matthias Hochsteger
19176daa09 more timers in delaunay 2021-05-31 08:23:16 +02:00
Matthias Hochsteger
e721d250f8 use tuple -> std::tuple 2021-05-31 08:23:09 +02:00
Matthias Hochsteger
eb87741b70 init allocsize in NgArray 2021-05-31 08:23:01 +02:00
Joachim Schoeberl
7c4f1cf53a minimal export of Table 2021-05-30 22:15:21 +02:00
Joachim Schoeberl
9389ecdf62 rename to GenerateStructuredMesh for not intending to override 2021-05-30 19:41:23 +02:00
Joachim Schoeberl
c3984fcc5b just use pointer for Array - iterators (on proposal of Matthias R) 2021-05-30 18:58:34 +02:00
Joachim Schoeberl
3258b27410 fix initialization order warning 2021-05-30 18:57:14 +02:00
Matthias Hochsteger
e272f0c704 fix RangeExceptions 2021-05-17 15:35:12 +02:00
Joachim Schöberl
14570f2bfb Merge branch 'fix_badness_in_combineimprove2d' into 'master'
Use sum of badnesses and not average value in CombineImprove in 2D

See merge request jschoeberl/netgen!384
2021-05-14 16:15:03 +00:00
Matthias Hochsteger
f7a08df155 Use sum of badnesses and not average value in CombineImprove in 2D 2021-05-14 17:55:09 +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
5bba076c9e UpdateTopology - use TasksPerThread(4) -> faster table update 2021-05-12 09:42:38 +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
Matthias Hochsteger
4b53c63fba helper functions for table creation 2021-05-10 12:03:20 +02:00
Joachim Schoeberl
955eaa682c edges/faces on per default 2021-05-06 22:22:14 +02:00
Joachim Schoeberl
5af2413481 disable edge/faces tables for Mesh class 2021-05-06 21:46:56 +02:00
Matthias Hochsteger
786013c857 add dependency for rules file 2021-04-30 18:33:55 +02:00
Matthias Hochsteger
2eb888a8bf generate .cpp for meshing rules automatically during the build process 2021-04-29 14:30:44 +02:00
Matthias Hochsteger
4592123f68 Merge remote-tracking branch 'origin/master' into rules_files_not_matching_cpp 2021-04-28 11:21:15 +02:00
Matthias Hochsteger
acf2b39680 Fix cross-platform archiving
This is a non-backward compatible change for archives on Windows!
2021-04-23 20:06:58 +02:00
Joachim Schoeberl
9033de843b uniform refinement for quads 2021-04-18 17:53:26 +02:00
Christopher Lackner
0763e4a5d1 fix override warnings 2021-04-17 16:27:30 +02:00
Christopher Lackner
087a830a67 store cumulated angle 2021-04-15 22:48:16 +02:00
Christopher Lackner
6e87ff6ea7 allow spirals with extrusion using zones 2021-04-15 19:02:05 +02:00
Christopher Lackner
4e2d2943f6 fix csg extrusion 2021-04-13 12:11:10 +02:00
Christopher Lackner
7c6296f153 csg splinecurves -> shared_ptr 2021-04-12 15:51:40 +02:00
Joachim Schoeberl
2d9e32ba70 ArrayMem from BaseArray ctor 2021-04-09 21:30:29 +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
Joachim Schoeberl
d803150b87 red refinement, parent faces (thx Guosheng) 2021-04-09 08:06:30 +02:00
Christopher Lackner
daa0985a41 trace memory free only when array owns memory 2021-04-07 09:58:53 +02:00
Christopher Lackner
4fad6e0631 fix pickling on arm, store long type platform independent 2021-04-01 10:48:13 +02:00
Joachim Schoeberl
096b419f6e parent edges for red refinement (thx Guosheng) 2021-03-31 07:50:24 +02:00
Matthias Hochsteger
44c10f663a Boundarylayer 2d interface 2021-03-30 16:55:03 +02:00
Joachim Schoeberl
1f45601387 Array<int> ia(n); ia.Range(2, END-1) 2021-03-29 22:39:57 +02:00
Joachim Schöberl
7b62f39460 Merge branch 'fix_pointsels_in_2dgeom' into 'master'
Only add segment end points of 2d geometry to mesh as 0D-elements

See merge request jschoeberl/netgen!373
2021-03-29 19:38:41 +00:00
Christopher Lackner
15380a2618 Revert "more stable boundarylayer, also cut prisms at outside"
This reverts commit d2dc84b02c.
2021-03-29 18:05:09 +02:00
Joachim Schöberl
f63734e4a0 Merge branch 'archive_localh' into 'master'
DoArchive for LocalH

See merge request jschoeberl/netgen!375
2021-03-29 12:46:18 +00:00
Christopher Lackner
d2dc84b02c more stable boundarylayer, also cut prisms at outside 2021-03-29 14:02:00 +02:00
Christopher Lackner
001eaa32b6 DoArchive for LocalH 2021-03-29 13:55:23 +02:00
Christopher Lackner
c27fa6899b Merge remote-tracking branch 'massimil/mleoni/indexIntegerType' 2021-03-29 11:55:10 +02:00
Matthias Hochsteger
88fd0a9cd3 2d boundary layer - some cleanup, average growth vectors along straight lines 2021-03-26 09:13:11 +01:00
Matthias Hochsteger
57a4d03d23 Merge branch 'fix_csg2d' into 'master'
Fix csg2d

See merge request jschoeberl/netgen!374
2021-03-24 11:35:28 +00:00
Matthias Hochsteger
5a0d07ca87 set hpref to 0.0 (fixes random values) 2021-03-24 12:04:21 +01:00
Matthias Hochsteger
b431a07c74 Fix starting point for intersection searching 2021-03-24 12:03:40 +01:00
Matthias Hochsteger
6cdeaf2d40 Only add segment end points of 2d geometry to mesh as 0D-elements 2021-03-24 10:49:46 +01:00
Christopher Lackner
a612444e77 FindElementOfPoint<1> for 2d meshes for curved segments 2021-03-23 15:08:20 +01:00
Massimiliano Leoni
a40544ddc5 Changed integer type of Element::index and Element2d::index 2021-03-23 12:11:32 +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
Matthias Hochsteger
69bc02a74d Increase bounding box for curved elements by 20% in element search tree 2021-03-17 17:35:30 +01:00
Matthias Hochsteger
98770dbf94 2d boundary layers 2021-03-16 18:22:14 +01:00
Matthias Hochsteger
c77da32463 skip fixed points when checking for mixed mesh 2021-03-16 18:09:07 +01:00
Christopher Lackner
0fc488e802 Merge remote-tracking branch 'stefanbruens/salome_upstreamable' 2021-03-15 09:36:01 +01:00
Christopher Lackner
0141546373 Merge remote-tracking branch 'stefanbruens/cleanup_includes' 2021-03-15 09:20:48 +01:00
Stefan Brüns
cf4d9eff33 Modernize code, replace Handle_<X> with Handle(X)
Same like c35297a8fb158be47772cb5fc9cee76ca88ff871
2021-03-12 23:13:01 +01:00
Stefan Brüns
3c13e41692 Remove duplicated includes from occgeom.hpp
Each of the duplicated header files have an include guard, so including
it twice is just a small waste of processing time.
2021-03-11 23:26:23 +01:00
Stefan Brüns
8abd52a47b Remove two unused variables 2021-03-10 01:06:11 +01:00
Stefan Brüns
2767672286 Cleanup use of M_PI/PI defines
gprim/geom2d.cpp includes mystdlib.h, which already has a fallback define
for M_PI. As geomfuncs.cpp also includes mystdlib.h, use M_PI instead
of a truncated value.

occ/Partition_Loop2d.cxx already gets M_PI from the opencascade headers
(~everything includes Standard_Real.hxx, which includes Standard_math.hxx,
which sets _USE_MATH_DEFINES for Windows and includes math.h).
2021-03-10 00:46:58 +01:00
Stefan Brüns
883baf4189 Remove occconstruction.cpp from list of library sources
Since commit 0c3c3f32d1
("occ build visualization mesh") occgeometry.cpp does not contain
any compiled code, and it has not been used at least for 12 years.

As the file includes quite some header files removing it from the sources
should save some compile time.
2021-03-08 02:38:28 +01:00
Stefan Brüns
85e8c09ff6 Fix GetTimeCounter for Aarch64 variants
Neither GCC nor Clang define an __arm64__ preprocessor macro, but use
__aarch64__ (MSVC uses _MARM_64). Add a "64" suffix to the define, i.e.
NETGEN_ARCH_ARM64 to make it more obvious in only refers to aarch64, and
to be in line with NETGEN_ARCH_AMD64.

Replace the (Clang specific) __builtin_readcyclecounter with inline
asm:
- The function return cycles (i.e. varies with CPU frequency), not time
- It may return 0, depending on the PMU settings
- It may cause an illegal instruction, in case it is not trapped by the
  kernel, e.g. on FreeBSD.

Reading the generic timer/counter CNTVCT_EL0 instead of PMCCNTR_EL0 avoids
these pitfalls. The inline asm works on GCC and Clang, instead of
Clang only for the builtin.
2021-03-03 17:30:33 +01:00
Matthias Hochsteger
3397e3bb9d Merge branch 'fix_swapimprove' into 'master'
Fix SwapImprove

See merge request jschoeberl/netgen!370
2021-03-02 11:08:13 +00:00
Christopher Lackner
f11cb4fcfb boundarylayers - inner corners at end of layer now possible too 2021-03-02 11:47:40 +01:00
Matthias Hochsteger
d7d12ac53d Don't swap very bad elements in SwapImprove
Changes meshing -> new test results
2021-03-01 10:08:00 +01:00
Matthias Hochsteger
f8aa3d3159 util function NotTooBad() in mesh optimization 2021-03-01 09:33:47 +01:00
Matthias Hochsteger
f5432718c1 Fix ImproveMesh 2021-02-26 12:20:51 +01:00
Joachim Schoeberl
298cbc2523 less printing for face hierarchy 2021-02-22 08:30:00 +01:00
Joachim Schoeberl
5cc42f040d fixing face refinement (by Guosheng) 2021-02-19 18:20:22 +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
Matthias Hochsteger
75e6c8217f Merge branch 'cleanup_dll_header' into 'master'
Clean up multiple definitions of DLL_HEADER

See merge request jschoeberl/netgen!369
2021-02-19 09:43:45 +00:00
Joachim Schoeberl
a354bf9e51 bisect face classification by permutation of 5 2021-02-19 10:04:45 +01:00
Joachim Schoeberl
4592bf90a8 subdivided faces are now working (boundary looks good) 2021-02-19 02:12:58 +01:00
Joachim Schoeberl
fede8b4d25 intermediate faces 2021-02-19 01:28:19 +01:00
Matthias Hochsteger
b2fea6dec1 Clean up multiple definitions of DLL_HEADER
- define DLL_HEADER only once in mydefs.hpp
- define/use NGLIB_API in nglib.h
- use NGCORE_API_EXPORT for explicit export of symbols
2021-02-18 14:53:38 +01:00
Joachim Schoeberl
979a695f62 fixing warnings 2021-02-18 10:30:01 +01:00
Joachim Schoeberl
d1c9b4b24f no 'and' in C++ (but ok for gcc and clang ?) 2021-02-18 09:28:09 +01:00
Joachim Schoeberl
c7666ae99f classify bisect face (thx Guosheng) 2021-02-18 08:43:22 +01:00
Joachim Schoeberl
e9e3d52b45 parent faces 2021-02-17 23:32:15 +01:00
Joachim Schoeberl
87e472b6fc start face-hierarchy in Netgen 2021-02-17 14:54:14 +01:00
Joachim Schoeberl
2e69b39339 cleanup parent_edges 2021-02-10 19:40:38 +01:00
Joachim Schöberl
39063eb961 Merge branch 'mpi_zdes' into 'master'
0d Elements + MPI

See merge request jschoeberl/netgen!367
2021-02-10 13:35:06 +00:00
Joachim Schöberl
993c02b391 Merge branch 'geom2d_dont_need_spline_name' into 'master'
Don't need to specify string description of spline type in 2d geom

See merge request jschoeberl/netgen!363
2021-02-10 11:23:15 +00:00
Joachim Schöberl
dd455a7a62 Merge branch 'fix_mpi_curve' into 'master'
fix OCC curving with MPI

See merge request jschoeberl/netgen!366
2021-02-10 11:22:35 +00:00
Joachim Schoeberl
b03528e944 third parent edge 2021-02-09 21:14:26 +01:00
Christopher Lackner
0c2430f3dc add std::any symboltable to Flags to store arbitrary objects 2021-02-08 15:44:15 +01:00
Lukas
0256ce1efc also send 0d elements when distributing mesh 2021-02-08 12:05:27 +01:00
Lukas
d1bc4fc6ca fix OCC curving with MPI 2021-02-08 11:36:48 +01:00
Joachim Schoeberl
145007b46a use the right INT 2021-02-08 10:48:41 +01:00
Joachim Schoeberl
fd878079cb edge hierarchy in mesh - Topology class, needs mesh.EnableTable('parentedges') 2021-02-08 09:41:23 +01:00
Matthias Hochsteger
6d30186279 allow cd2names in 2d meshes 2021-02-05 17:40:43 +01:00
Christopher Lackner
9e080ee9e0 add boundarylayer closure on pyramids outside 2021-02-05 12:16:41 +01:00
Christopher Lackner
77a7cb66d8 Merge branch 'master' of https://github.com/NGSolve/netgen 2021-02-05 12:10:37 +01:00
Christopher Lackner
1d9281f412 localh as shared_ptr in mesh 2021-02-05 12:10:22 +01:00
Joachim Schoeberl
25011c8407 arm-simd: HSum, tuple support 2021-02-05 11:59:03 +01:00
Joachim Schoeberl
22aee3b3a5 simd-mapping of point elements 2021-02-05 11:42:45 +01:00