Commit Graph

62 Commits

Author SHA1 Message Date
Matthias Hochsteger
fbeb6137eb Fix SwapImprove2
Don't allow swaps if an adjacent element was deleted in the current
optimization pass. Also update test restults.
2020-11-25 17:55:44 +01:00
Matthias Hochsteger
ae268637cf revert pyramid-specific code in optimizations 2020-07-27 18:06:43 +02:00
Matthias Hochsteger
c0b8b1c0cc Parallel SplitImprove2, update test results
Due to prallelization, the order of splits is changed (sort by
    improvement of badness, like in other optimization passes)
2020-07-27 14:26:45 +02:00
Matthias Hochsteger
b689d13efe SplitImprove2 - optimize only bad elements, update results 2020-07-23 13:18:14 +02:00
Matthias Hochsteger
e17de17385 SplitImprove2 - further cleanup, handle Pyramids 2020-07-23 12:26:07 +02:00
Matthias Hochsteger
df97e45bd1 SplitImprove2 - cleanup, new point at min dist of edges 2020-07-20 18:56:36 +02:00
Matthias Hochsteger
abe37bf12a SplitImprove2 - cleanup, badness calculation, add point only when applying optimization 2020-07-20 12:11:29 +02:00
Matthias Hochsteger
a0a189869e SplitImprove2 optimization path 2020-07-17 18:17:09 +02:00
Matthias Hochsteger
ce8ba71f33 Fix SwapImprove 2020-07-15 17:26:39 +00:00
Christopher Lackner
249d785084 progress bars for find edges, mesh surface,... 2019-10-31 15:17:28 +01:00
Matthias Hochsteger
9fdd28e3b8 Compress mesh in SwapImprove2 2019-10-30 16:09:04 +01:00
Matthias Hochsteger
17b6c83499 Remove debug output 2019-10-30 09:09:57 +01:00
Matthias Hochsteger
3acadc023f Rework on 3D SplitImprove
- Try (expensive) split operation only if badness > 100 (of any adjacent
        tet) and badness > 0.1 * badness_max
- Use FindInnerPoint before BFGS to ensure valid starting point (similar
        as in ImproveMesh() )
- Skip valid tets if goal==OPT_LEGAL (as in sequential version)
2019-10-29 17:58:37 +01:00
Matthias Hochsteger
63aab9076c parallel SplitImprove 2019-10-28 09:38:53 +01:00
Matthias Hochsteger
ab024c2e6c Sort edges by improvement in SwapImprove2 2019-10-24 18:04:56 +02:00
Matthias Hochsteger
6fb8f90a73 Sort edges by improvement in SwapImprove 2019-10-24 17:40:20 +02:00
Matthias Hochsteger
19c86a9f3d Move BuildEdgeList to improve2.hpp 2019-10-14 13:50:56 +02:00
Matthias Hochsteger
04de18d0b4 Check badness quality in tests 2019-10-04 10:25:14 +00:00
Matthias Hochsteger
a3ccb6432c Use Mesh::CreatePoint2ElementTable() in SplitImprove() 2019-10-01 15:15:46 +02:00
Matthias Hochsteger
f42ee7b02d Use Mesh::CreatePoint2ElementTable() in optimizations 2019-10-01 15:12:37 +02:00
Joachim Schöberl
656b0e0539 parallel CreatePoint2ElementTable as method of Mesh 2019-09-30 09:36:15 +02:00
Matthias Hochsteger
8874e41aec SwapImprove2 - delete/add elements instead of replacing them 2019-09-29 21:31:00 +02:00
Joachim Schöberl
47641c9b2c swapimprove2 with core tables 2019-09-29 20:47:41 +02:00
Joachim Schöberl
eeb63f659f Table with IndexType 2019-09-29 17:44:08 +02:00
Matthias Hochsteger
26865d6470 Parallelize SwapImprove() (again) 2019-09-25 14:10:52 +02:00
Matthias Hochsteger
5724b397d1 Revert "Separate function SwapImproveEdge(), iterate over list of edges instead of elements and edges per element"
This reverts commit c22f44617b.
2019-09-20 12:51:13 +02:00
Matthias Hochsteger
8688c135b2 Revert "Parallelize SwapImprove()"
This reverts commit 8c9d75f5f4.
2019-09-20 12:51:13 +02:00
Matthias Hochsteger
fc1dbc2957 Revert "Change elementsonnode only when applying optimization"
This reverts commit 6c0171f2c0.
2019-09-20 12:51:13 +02:00
Matthias Hochsteger
6c0171f2c0 Change elementsonnode only when applying optimization 2019-09-11 13:06:07 +02:00
Matthias Hochsteger
1d016f2204 Use PointIndex instead of int 2019-09-11 13:02:15 +02:00
Matthias Hochsteger
8c9d75f5f4 Parallelize SwapImprove() 2019-09-10 17:52:24 +02:00
Matthias Hochsteger
a70803eecb Fix BuildEdgeList() - create sorted list 2019-09-10 16:59:31 +02:00
Matthias Hochsteger
c22f44617b Separate function SwapImproveEdge(), iterate over list of edges instead of elements and edges per element 2019-09-10 16:58:53 +02:00
Matthias Hochsteger
d95e9afb92 Utility function MeshOptimize3d::BuildEdgeList() 2019-09-10 16:19:04 +02:00
Matthias Hochsteger
88ac5456ab Parallelize SwapImprove2 2019-09-10 11:45:04 +02:00
Matthias Hochsteger
d0586a6366 Separate function to perform SwapImprove2 on one face of an element 2019-09-10 11:45:04 +02:00
Matthias Hochsteger
2bb11f4cb1 Avoid parallel call of BuildBoundaryEdges() inside Mesh::CombineImprove() 2019-09-09 17:02:50 +02:00
Matthias Hochsteger
1584da69ae Rename BitArray to NgBitArray 2019-08-28 14:04:05 +02:00
Matthias Hochsteger
ad526ef2bc Parallelize CombineImprove 2019-08-14 17:41:26 +02:00
Joachim Schöberl
b03705c37d more use of Index types 2019-08-09 00:23:12 +02:00
Joachim Schöberl
4bfe42b305 more PointIndex::BASE 0/1 fixes 2019-08-07 23:32:14 +02:00
Joachim Schöberl
bbc3661bfe remove timer, PointIndex::INVALID 2019-08-07 07:48:15 +02:00
Matthias Hochsteger
c5acbacadb Rename ArrayMem to NgArrayMem 2019-07-09 18:00:12 +02:00
Matthias Hochsteger
2d46d21a52 Rename FlatArray to NgFlatArray 2019-07-09 10:40:35 +02:00
Matthias Hochsteger
cb87362f64 Rename Array to NgArray 2019-07-09 10:39:16 +02:00
Joachim Schöberl
7aa5c536a8 timers 2019-02-11 21:38:05 +01:00
Joachim Schöberl
17a457c1fc timers 2019-01-31 18:41:20 +01:00
Joachim Schöberl
c50bd79beb default constructors assignment operators, cheaper Array-Resize 2017-04-11 21:06:30 +02:00
Joachim Schöberl
be1e6e160b PointIndex::BASE = 0 working for CSG 2016-12-11 20:17:07 +01:00
Joachim Schöberl
bdbc415589 more use of PointIndex 2016-12-11 18:02:16 +01:00