Commit Graph

3334 Commits

Author SHA1 Message Date
Joachim Schoeberl
b6b20be30b IVec with HTArray 2024-07-16 19:20:07 +02:00
Joachim Schoeberl
e075d32f14 fix unused warning 2024-07-16 16:50:28 +02:00
Joachim Schoeberl
bac10cf1fb go back to C-array (since tests fail) 2024-07-16 16:11:20 +02:00
Joachim Schoeberl
7968ae4588 use std::array in IVec (for 0-size handling) 2024-07-16 13:48:17 +02:00
Joachim Schoeberl
54d59cff1e fix warnings 2024-07-16 13:03:49 +02:00
Joachim Schoeberl
20e0b3efa5 replace const string& by string_view in Flags and SymbolTable 2024-07-16 12:44:04 +02:00
Joachim Schoeberl
63986a4e5f throw range exception via function call -> reduces code size 2024-07-16 10:18:16 +02:00
Joachim Schoeberl
304ce7364a mpi-send of 0D-elements 2024-07-14 20:38:36 +02:00
Joachim Schoeberl
f1e06f0a6d pickling 0D-elements 2024-07-12 18:21:46 +02:00
Matthias Hochsteger
da743467fb Fix reading face_colors and face_transparencies for faces without attached geometry surface 2024-07-10 10:36:03 +02:00
Matthias Hochsteger
78832cb7c5 Fix building with mpi wrapper but without python support 2024-07-08 11:48:27 +02:00
Matthias Hochsteger
d987051f2b Fix building without Python 2024-07-04 17:26:47 +02:00
Matthias Hochsteger
000a312dc2 Use same color for shifted faces in boundary layer generation 2024-07-04 15:00:50 +02:00
Christopher Lackner
3974191ffa correctly check for degenerated edges 2024-06-27 21:00:52 +02:00
Matthias Hochsteger
a2d9455627 Fix compiling with cuda and active mem-tracer 2024-06-27 11:29:26 +02:00
Lackner, Christopher
32f291c66e Merge branch 'binary_brep' into 'master'
allow reading of binary brep files

See merge request ngsolve/netgen!654
2024-06-24 18:28:10 +02:00
Joachim Schoeberl
f9d7d3a4fd store newest vertex from bisection 2024-06-24 15:30:08 +02:00
Christopher Lackner
3709ea8f94 allow reading of binary brep files 2024-06-21 15:16:47 +02:00
Matthias Hochsteger
af5e003790 Fix GIL issue (see previous commit for details) 2024-06-21 11:51:12 +02:00
Matthias Hochsteger
163135981e Fix GIL issues in GenerateMesh() functions
Functions with a python typed argument (kwargs in this case) cannot use
  py::call_guard<py::gil_scoped_release>()
because it means, the GIL is not held when the function returns (and
cleans up arguments/temporary variables).

Thus, remove the global call guard and create a local variable
  py::gil_scoped_release gil_release;
after arguments are processed and before meshing starts.

This local variable is destroyed before the function returns
(acquiring the GIL again).
2024-06-21 11:36:37 +02:00
Matthias Hochsteger
c2f42f2f16 Backward compatibility for occ geometry loading (from mesh file) 2024-06-20 18:05:43 +02:00
Christopher Lackner
eff5e946f7 fix export of submesh faces 2024-06-20 11:12:01 +02:00
Joachim Schoeberl
cc3f27e514 comment occ.Mirror 2024-06-11 08:06:25 +02:00
Matthias Hochsteger
f5c9b87ee7 Fix build issue with gcc on AVX512 2024-06-10 10:48:33 +02:00
Matthias Hochsteger
eb98f59bc0 Add ng_mpi_native.hpp 2024-06-06 15:46:19 +02:00
Christopher Lackner
236f14553c fix project on edge in MapSurfacemesh if no trafo is given 2024-06-03 17:19:41 +02:00
Matthias Hochsteger
571cbbe4df Optional identification_name argument in Face::Offset to apply CLOSE_SURFACE identifications 2024-06-03 12:37:26 +02:00
Joachim Schoeberl
6d1c87f214 Offset - face with propagate properties 2024-06-02 15:56:10 +02:00
Joachim Schoeberl
f938b64397 Offset-wire 2024-06-02 10:50:22 +02:00
Joachim Schoeberl
82472c7905 undo std::ignore 2024-05-31 18:42:17 +02:00
Joachim Schoeberl
9a2dd3b63e avoid warnings 2024-05-31 18:19:57 +02:00
Christopher Lackner
3bb804eeaf add dict constructor of flags for implicit convertion back 2024-05-31 13:23:53 +02:00
Christopher Lackner
3029b5422a allow nested flags from nested python dictionaries 2024-05-31 12:55:59 +02:00
Matthias Hochsteger
0e0ea2d5f8 Wrap more MPI functions 2024-05-31 10:17:01 +02:00
Matthias Hochsteger
fefea90133 Fix pyodide build 2024-05-29 20:32:32 +02:00
Matthias Hochsteger
f70200e5aa Don't include MPI cxx symbols properly 2024-05-28 13:55:27 +02:00
Matthias Hochsteger
1e7624c7f5 Get rid of mpi4py compile-time dependency, disable MPI wrapper by default 2024-05-28 11:43:15 +02:00
Lisandro Dalcin
246dfd734d
mpi4py: Support limited API and ABI compatibility 2024-05-27 14:26:21 +03:00
Christopher Lackner
e404ce737b export localh set/get from mesh 2024-05-24 08:30:24 +02:00
Matthias Hochsteger
eaa797d7f6 Wrap MPI_Comm_c2f 2024-05-23 10:37:42 +02:00
Matthias Hochsteger
1dc353d3c5 Remove output while generating fieldlines 2024-05-21 16:10:13 +02:00
Matthias Hochsteger
2072f70f7f Fix building without MPI 2024-05-16 11:03:44 +02:00
Matthias Hochsteger
05c01ee884 Fix segfault when using more than 32 colors in colormap 2024-05-16 10:49:11 +02:00
Matthias Hochsteger
184a6ba4c5 Fix MPI code in paje trace 2024-05-16 09:35:58 +02:00
Matthias Hochsteger
f2ea9cde4c Fix MPI code in paje trace 2024-05-16 09:18:07 +02:00
Matthias Hochsteger
a018931437 Utility function to check if MPI was loaded 2024-05-14 22:17:42 +02:00
Matthias Hochsteger
a80ae826c6 Remove MyMPI helper class 2024-05-14 22:02:08 +02:00
Matthias Hochsteger
5e6f2ee045 Fix mesh generation from GUI when building with MPI 2024-05-14 21:56:50 +02:00
Christopher Lackner
12aaaf1e6c do not EdgeSwap with quads 2024-05-14 13:57:01 +02:00
Matthias Hochsteger
19731869d3 Utility header to convert to native mpi handles 2024-05-13 18:10:56 +02:00
Hochsteger, Matthias
335b926f8b Runtime MPI wrapper 2024-05-13 13:43:53 +02:00
Schöberl, Joachim
08eec4460c Merge branch 'uzerbinati/curved' into 'master'
Added ``curved'' field for Datalayout of Element and Elements2D

See merge request ngsolve/netgen!649
2024-05-06 18:31:46 +02:00
Joachim Schoeberl
19fcfc7f44 SetLevel returns old level 2024-05-05 21:41:05 +02:00
Joachim Schoeberl
bb2989e1c5 add 'items' to Flags, for same behavior as dict 2024-05-05 21:40:47 +02:00
Umberto Zerbinati
cdb5b74f53 Added ``curved'' field for Datalayout of Element and Elements2D
Signed-off-by: Umberto Zerbinati <zerbinati@maths.ox.ac.uk>
2024-05-02 12:28:06 +01:00
Joachim Schoeberl
331e47830e fix warning by throwing 2024-04-27 15:13:17 +02:00
Christopher Lackner
f808a2bb64 Propagate maxh to children only in occgeom constructor
Allows resetting maxh to larger values again:

```
from netgen.occ import *
from ngsolve import *

b1 = Box((-1,-1,-1), (1,1,1))

b1.faces.Max(X).maxh = 0.1
b1.faces.Max(X).maxh = 0.2

geo = OCCGeometry(b1)
mesh = Mesh(geo.GenerateMesh(maxh=0.5))
Draw(mesh)
```

Needed for example in meshing app. Before it was not possible to set
maxh to larger value again.
2024-04-26 09:55:53 +02:00
Joachim Schoeberl
eef79e64f2 added DLL_HEADER 2024-04-19 09:46:02 +02:00
Joachim Schoeberl
65006d3436 hp/macro-refinement hierarchy routed through Python 2024-04-18 11:58:50 +02:00
Joachim Schoeberl
8045611375 added missing dll-header 2024-04-13 08:32:16 +02:00
Joachim Schoeberl
ce8eca4099 include cassertk 2024-04-12 09:55:38 +02:00
Joachim Schoeberl
a393a315d0 makePyTuple from BaseArrayObject 2024-04-04 15:20:17 +02:00
Hochsteger, Matthias
6e2eae70ad Merge branch 'fix_blayer_meshopt' into 'master'
Fix blayer meshoptimization

See merge request ngsolve/netgen!647
2024-04-02 23:25:10 +02:00
Christopher Lackner
9b9ad1fd82 function to reset occ global shape properties 2024-04-02 22:46:55 +02:00
Matthias Hochsteger
78a3d24fde Do bad element Optimization only when requested 2024-04-02 21:59:27 +02:00
Matthias Hochsteger
ff505f1e41 Add range check in table 2024-04-02 21:58:58 +02:00
Matthias Hochsteger
db500f3cae Make /bigobj a public build flag again 2024-03-28 09:51:36 +01:00
Schöberl, Joachim
ea380ecb47 Merge branch 'explicit_edge_partition' into 'master'
[occ] allow giving explicit edge partition

See merge request ngsolve/netgen!645
2024-03-27 21:08:24 +01:00
Matthias Hochsteger
d8beec758e Fix Mesh::operator=
- assign pointelements
- sometimes region names were not copied correctly
- add some basic pytests for Mesh.Copy()
2024-03-27 21:03:45 +01:00
Christopher Lackner
bfcd77ff9c [occ] allow giving explicit edge partition 2024-03-27 14:55:29 +01:00
xiaodaxia
7c72410c84 no exporting compile options of ngcore 2024-03-27 11:32:17 +08:00
Matthias Hochsteger
7b54f95a27 Utility function to extract a subregion of the mesh 2024-03-25 18:02:33 +01:00
Matthias Hochsteger
29c6b8e06f Fix Mesh::operator=
bcnames are now stored in FaceDescriptor (as string members, no
pointers), so the name mapping must be applied to materials/bcnames
(depending on the mesh dimension).
2024-03-25 18:00:29 +01:00
Matthias Hochsteger
afb2f2f0ea Opencascade 7.8.0 compatibility 2024-03-25 10:19:25 +01:00
Matthias Hochsteger
e5513d9417 Print "Remove Illegal Elements" only when having illegal elements 2024-03-22 15:43:40 +01:00
Hochsteger, Matthias
b090bd1937 Propagate -fabi-version=xx when compiling with GCC 2024-03-20 18:30:17 +01:00
Christopher Lackner
11e8914dd8 face points need to have geominfo for face meshing (thx MrSmile) 2024-03-18 08:58:40 +01:00
Hochsteger, Matthias
d0ba2934df Consistent penalty for illegal tets 2024-03-11 21:10:56 +01:00
Joachim Schoeberl
43b707bcfb wrap inertia of occ-shape to Python 2024-03-07 12:39:56 +01:00
Hochsteger, Matthias
6b89d2cf62 Compatibility with Opencascade 7.8 2024-03-06 16:29:11 +01:00
Lackner, Christopher
a5c11df37e Merge branch 'remove_search_tree_in_face_mapping' into 'master'
Remove search tree in face mapping

See merge request ngsolve/netgen!640
2024-03-06 15:22:28 +01:00
Christopher Lackner
5f0276179f fix primary face computation in identification 2024-03-06 12:12:34 +01:00
Matthias Hochsteger
7e4f171b16 Remove search tree in face mapping 2024-03-06 11:20:20 +01:00
Christopher Lackner
bb7a3fe692 show properties in topology view in netgen gui 2024-03-05 14:38:25 +01:00
Christopher Lackner
1a213a1588 fix identifications write and load to step 2024-03-04 21:57:54 +01:00
Christopher Lackner
37df61b233 don't segfault on internal or external orientations in occ viewer 2024-03-04 19:49:40 +01:00
Matthias Hochsteger
4417b17d12 Fix order of members in MeshOptimize3d 2024-03-01 20:35:49 +01:00
Matthias Hochsteger
b8aa568626 Utility function to generate OCC shape triangulation -> always use same parameters 2024-02-29 17:19:47 +01:00
Matthias Hochsteger
13867ef1a0 Extra optimization steps for bad elements 2024-02-28 10:07:57 +01:00
Matthias Hochsteger
6be1c57999 Call CalcTotalBad only if testout is active 2024-02-23 18:26:07 +01:00
Matthias Hochsteger
0d481b1104 Use badness stored in Element 2024-02-23 18:20:14 +01:00
Matthias Hochsteger
d3ea87bd1e Store mesh and goal im MeshOptimize3d 2024-02-23 17:42:06 +01:00
Matthias Hochsteger
23c6b96b47 Move RemoveIllegalElements to MeshVolume() 2024-02-23 17:39:43 +01:00
Matthias Hochsteger
e5b544e02b Don't optimize when goal==OPT_LEGAL and all affected elements are legal 2024-02-23 17:01:40 +01:00
Joachim Schoeberl
4ff7a2261b use IMeshTools in SetLocalMeshSize 2024-02-21 21:42:34 +01:00
Joachim Schoeberl
a65e61c95e OCC generation of visualization mesh using IMeshTools_Parameters 2024-02-21 20:00:59 +01:00
Joachim Schoeberl
b959676534 check for infinite shape 2024-02-21 15:14:33 +01:00
Joachim Schoeberl
4f0b15ef55 use FlatArray for edges and faces in mesh interface V2 2024-02-21 08:41:17 +01:00
Joachim Schoeberl
6813c519b6 feature check macro for transition from INT to IVec 2024-02-20 08:47:20 +01:00
Matthias Hochsteger
4e31878f89 Utility function to split faces when they have more than two adjacent domains 2024-02-14 09:46:39 +01:00
Christopher Lackner
8e94de7a73 fix isendpoint check in boundarylayer code 2024-02-13 13:01:42 +01:00
Schöberl, Joachim
07fb5d698e Merge branch 'throw_if_unbounded_domain' into 'master'
throw exception if surface triangulation cannot be built by occ

See merge request ngsolve/netgen!630
2024-02-13 10:07:53 +01:00
Christopher Lackner
803eb73d2d allow internal edges on boundarylayer (for sphere, ellipsoid) 2024-02-13 09:35:44 +01:00
Christopher Lackner
ddc50aa651 throw exception if surface triangulation cannot be built by occ 2024-02-13 09:33:12 +01:00
Matthias Hochsteger
cee5d55b7d Fix dangling reference in ZRefinement 2024-02-12 07:12:17 -08:00
Hochsteger, Matthias
dfaf270670 Remove windows.h include where possible. 2024-02-12 11:57:54 +01:00
Joachim Schoeberl
18262a526d replace INT by IVec (cgns) 2024-02-12 07:44:26 +01:00
Joachim Schoeberl
c87aea14eb rename INT to IVec (avoiding windows name conflict) 2024-02-12 07:36:26 +01:00
Schöberl, Joachim
b88535621f Removewinheader 2024-02-11 11:02:18 +01:00
Joachim Schoeberl
97de13cf30 remove include<windows.h> from cpp-files 2024-02-10 20:55:45 +01:00
Joachim Schoeberl
e9ee45024c include windows.h back to mystdlib 2024-02-10 20:52:45 +01:00
Joachim Schoeberl
3a2e3fa901 includes in vsocc 2024-02-10 10:15:11 +01:00
Joachim Schoeberl
e8a9131b31 include win first 2024-02-10 10:09:29 +01:00
Joachim Schoeberl
6622829e8f windows include in visual 2024-02-10 10:05:00 +01:00
Joachim Schoeberl
61f34fc4ad converting back: no win include in python-occ 2024-02-10 10:02:55 +01:00
Joachim Schoeberl
7d45d47260 no extra win include 2024-02-10 09:57:37 +01:00
Joachim Schoeberl
df7ea2b685 don't globally include ngcore 2024-02-10 09:55:16 +01:00
Joachim Schoeberl
beed254a7d windows include in python_occ 2024-02-10 09:51:19 +01:00
Joachim Schoeberl
97709fca23 windows include in python_occ_shapes 2024-02-10 09:46:53 +01:00
Joachim Schoeberl
996d2809c9 no windows specfic includes globally 2024-02-10 09:21:09 +01:00
Christopher Lackner
000424f001 offset should always be called no a finished line 2024-02-08 15:08:49 +01:00
Christopher Lackner
0fab0ec1eb dont reverse wire in offset
This works with this change:

```
MoveTo(0,0).LineTo(1,1).Finish().Offset(0.2).Face()
```
2024-02-08 14:57:56 +01:00
Christopher Lackner
282c3e5c0a fix glued point in sphere (was removed by compress) 2024-02-07 15:05:03 +01:00
Joachim Schoeberl
adbdf194e0 fix Powell-Sabin split 2024-02-06 21:41:15 +01:00
Christopher Lackner
45362b588b dont curve faces with boundarylayers 2024-01-31 15:13:20 +01:00
Christopher Lackner
e155700bc3 throw if surface is extruded that is not named (if map surface-> new
mat is given)
2024-01-31 12:27:03 +01:00
Matthias Hochsteger
6533663b7f Fix Workplane.Offset for straight lines 2024-01-30 17:41:46 +01:00
Matthias Hochsteger
0c885db5a4 Consider draw_surfaces bitarray when drawing surface vectors 2024-01-25 16:00:45 +01:00
Matthias Hochsteger
2024a67c74 occ shapes _webgui_data - export color alpha values
Also
- don't create ShapeProperties objects for faces with default values
- use default name/color from ShapeProperties
2024-01-22 11:00:46 +01:00
Joachim Schoeberl
d7ffc68a30 add GetBackTrace to checksame 2024-01-19 08:07:57 +01:00
Joachim Schoeberl
eb90c6ed3b use list instead of map to keep order 2024-01-18 19:43:08 +01:00
Joachim Schoeberl
5a4b89c1ed merge hp face-refinement with limiting fac2 2024-01-16 12:54:06 +01:00
Schöberl, Joachim
3dc0383f3f Merge branch 'uz/splits' into 'master'
Expsosing splits in Netgen and Powell-Sabin split

See merge request ngsolve/netgen!623
2024-01-16 12:51:18 +01:00
Joachim Schoeberl
cb7759cd0b line number in NETGEN_CHECK_SAME macro 2024-01-16 12:43:23 +01:00
Joachim Schoeberl
6c3fcf0188 Alfeld split uses sub-division factor 1/3 2024-01-16 12:42:42 +01:00
Joachim Schoeberl
29f0a5d647 simple signal without smart pointers 2024-01-16 10:17:19 +01:00
Umberto Zerbinati
87c4e543ad Introduced fac2 to fix issue with face splits 2024-01-15 23:54:44 +00:00
Umberto Zerbinati
d2bba6cb3c Merging master 2024-01-15 22:50:49 +00:00
Umberto Zerbinati
00747fb947 Powell Sabin splits 2024-01-15 22:43:18 +00:00
Joachim Schoeberl
696620828f don't restrict refinement parameter in HPRefinement (more user responsibility) 2024-01-15 21:42:27 +01:00
Umberto Zerbinati
890f59b8b4 Exposed Alfeld splits 2024-01-15 11:42:00 +00:00
Lackner, Christopher
ed7d1dfdaf Merge branch 'tolerance_occ_edge_projection' into 'master'
add tolerance to occ-edge projection

See merge request ngsolve/netgen!622
2024-01-15 11:50:07 +01:00
Joachim Schoeberl
c0d394ebf5 introduce 'shallow_archive' member 2024-01-15 08:16:14 +01:00
Joachim Schoeberl
6b346926ec if constexpr 2024-01-14 04:52:19 +01:00
Joachim Schoeberl
1ff8c97b1d fix has_shared_from_this any_cast 2024-01-14 04:33:55 +01:00
Joachim Schoeberl
2d2503bbbb auto-shallow shared_ptr with enable_shared_from_this 2024-01-13 21:15:55 +01:00
Christopher Lackner
48eb4fed07 add tolerance to occ-edge projection 2024-01-10 16:31:05 +01:00
Joachim Schoeberl
54287bbfbb wrap static variable into function 2024-01-09 10:21:06 +01:00
Joachim Schoeberl
fda7cfa2bc function-pointer instead of std::function, no unique-ptr around type_register 2024-01-09 10:01:11 +01:00
Joachim Schoeberl
8362349bb8 fix metis warnings 2024-01-06 18:19:11 +01:00