Commit Graph

527 Commits

Author SHA1 Message Date
Christopher Lackner
143f113d78 separate_layers now also working for 2d occ geometries 2023-06-28 15:59:04 +02:00
Joachim Schoeberl
3ab8ffbdc1 robust Axis to Axes conversion 2023-06-08 16:50:53 +03:00
Joachim Schoeberl
ec9d028c60 ellipsoid 2023-06-08 16:38:34 +03:00
Matthias Hochsteger
3e9eba7906 OCC - Handle internal (forward+reversed) edges correctly 2023-06-05 11:24:52 +02:00
Christopher Lackner
b1b2f17c09 fix clang warning about unqualified std move 2023-05-23 08:57:51 +02:00
Christopher Lackner
8374346023 allow adding identification name in occ extrude 2023-05-22 13:08:31 +02:00
Christopher Lackner
2233275c0b do not copy faces when extrude, better identify in extrude 2023-05-17 16:24:06 +02:00
Christopher Lackner
e4a2795414 extrude with optional (closesurface) identification 2023-05-17 12:49:16 +02:00
Matthias Hochsteger
bdd15644d3 Fix compile warning 2023-04-26 16:48:29 +02:00
Christopher Lackner
50356b7c5e fox list of shape constructor in OCCGeometry propagating properties 2023-02-17 08:47:01 +01:00
Schöberl, Joachim
1eb0fdfbb7 Merge branch 'occ_better_divide_edge' into 'master'
OCC better divide edge algorithm

See merge request ngsolve/netgen!551
2023-02-13 15:57:53 +01:00
Hochsteger, Matthias
219c2af686 OCC better divide edge algorithm 2023-02-13 15:57:53 +01:00
Christopher Lackner
fafcf555ac [occ] add additional arguments for MakeThickSolid 2023-02-01 11:03:42 +01:00
Matthias Hochsteger
e64d07aab3 set domain names in revolve 2023-01-26 17:00:18 +01:00
Hochsteger, Matthias
2f4e52594e Merge branch 'fix_occ_identified_edge_orientation' into 'master'
Keep consistent vertex numbering for identified edges

See merge request ngsolve/netgen!547
2023-01-19 12:59:19 +01:00
Christopher Lackner
bb25aa656a more stable occ parameter space projection
occ uv parameters are not very accurate sometimes, therefore new
strategy for finding same uv points in parameter space:

if uv coordinates are closer together than 0.9 * min(seg_length) and
global point numbers are the same -> same uv point
2023-01-16 19:57:48 +01:00
Matthias Hochsteger
e3772bf3af Keep consistent vertex numbering for identified edges 2023-01-16 17:05:18 +01:00
Matthias Hochsteger
9f2daabc0f Fix dangling reference in PropagateProperties()
Other GetProperties() calls push_back new elements to global_shape_properties
-> memory reallocation
2023-01-12 14:57:31 +01:00
Schöberl, Joachim
c631efd6b5 Merge branch 'fix_access_of_empty_WP_wires' into 'master'
Avoid out-of-bounds access in OCC WP and ListOfShapes

See merge request ngsolve/netgen!545
2022-12-20 13:52:43 +01:00
Matthias Rambausek
bda7ea5ac1 handle case of WP.wires being empty 2022-12-20 12:14:55 +01:00
Christopher Lackner
36644161b3 fix closesurface identification with degenerated edges 2022-12-19 13:26:18 +01:00
Christopher Lackner
7abda1151c occ_face ProjectPointGI should set gi 2022-12-13 16:09:28 +01:00
Schöberl, Joachim
6d539e0213 Merge branch 'occ_no_maps' into 'master'
remove all std::maps<TopoDS_Shape, *> and std::set<TopoDS_Shape>

See merge request ngsolve/netgen!542
2022-12-09 16:20:37 +01:00
Christopher Lackner
d3a393a727 fixes for identifications not using maps, python maps also don't use hash 2022-12-09 13:10:17 +01:00
Joachim Schoeberl
c622f39897 replace sprintf by snprintf (remove warnings), remove old mpi-interface header 2022-12-08 15:19:16 +01:00
Christopher Lackner
0aa20603d9 remove all std::maps<TopoDS_Shape, *> and std::set<TopoDS_Shape>
since hash conflicts may occur this is not safe.
2022-12-06 17:51:19 +01:00
Matthias Hochsteger
22d314a1ec Don't use std::map<TopoDS_Shape> (hash value is not unique) 2022-11-15 17:02:34 +01:00
Christopher Lackner
4714aa9b31 smaller tolerance in occ center 2022-10-17 15:56:38 +02:00
Joachim Schoeberl
bce715acc9 switch back to manual projection for OCC geometry (wta/coil.ipynb make a huge difference) 2022-10-16 13:08:27 +02:00
Matthias Hochsteger
a005bfadd8 set uv-params in mapped trigs correctly
Just projecting might lead to wrong results if a face contains edges
twice.
2022-10-11 11:30:49 +02:00
Christopher Lackner
11f2ff0c76 fix project point on edge to stay in param range 2022-10-07 12:22:11 +02:00
Matthias Hochsteger
85b909ef21 TopoDS_Shape.center - call utility function instead of separate(and incomplete) implementation 2022-10-06 14:50:23 +02:00
Christopher Lackner
be9e15e635 Merge remote-tracking branch 'luzpaz/typos' 2022-09-13 16:12:46 +02:00
Christopher Lackner
9b58ece673 fix occ identification propagation, use IsSame not == 2022-09-08 17:48:11 +02:00
luz paz
3230021dec Fix typos
Found via `codespell`
2022-09-08 11:08:25 -04:00
Christopher Lackner
412fd372d0 Merge branch 'fix_1_solid_in_glue' 2022-09-06 17:50:29 +02:00
Francesco Ballarin
606485f00c Fix segmentation fault introduced in 78dfd10: missing local variable name was causing the global variable to be used 2022-09-01 21:24:42 +02:00
Christopher Lackner
e05b8960d7 if list with 1 element in glue -> return that element
else opencascade returns empty shape
2022-09-01 15:10:14 +02:00
Christopher Lackner
78dfd10475 mesh argument in GeneratMesh (to continue meshing from higher perfstepstart 2022-09-01 10:43:16 +02:00
Christopher Lackner
85d4874320 Merge branch 'fixes_closesurface_identification' 2022-08-31 10:05:15 +02:00
Matthias Hochsteger
666fb2ee86 fix boundarylayer 2d code (now single line segments, not per face) 2022-08-30 09:12:49 +02:00
Christopher Lackner
7c2070ab0d fix closesurface identification IsSame instead of operator == 2022-08-29 14:43:01 +02:00
Christopher Lackner
b7e0288a34 use Shape hash instead of TShape 2022-08-19 12:51:39 +02:00
Christopher Lackner
28efccccf4 faces may be multiple time in explorer iteration -> skip if already in map 2022-08-19 09:44:58 +02:00
Christopher Lackner
27aaae9fb5 add solid -> faces map in renderData of occ geom 2022-08-10 07:45:30 +02:00
Schöberl, Joachim
d36a6746b7 Update python_occ.cpp 2022-08-04 14:16:16 +02:00
Christopher Lackner
4e860f4ca2 set global shared ptr only if meshing fails 2022-08-04 14:14:39 +02:00
Christopher Lackner
00a1d1a496 visualized failed mesh after generatemesh 2022-08-04 10:31:33 +02:00
Christopher Lackner
06f35594c6 add norm of gp_Vec 2022-06-13 10:35:26 +02:00
Christopher Lackner
3531f9c9d4 fix typo 2022-06-08 20:59:06 +02:00
Christopher Lackner
03e21d5c5f [occ] create ListOfShape from list of shapes 2022-06-08 20:52:51 +02:00
Matthias Hochsteger
1497404a4c Fix mesh saving/loading with OCC 7.6 2022-05-25 16:29:34 +02:00
Schöberl, Joachim
1a174508db Merge branch 'occ_consistent_maxh' into 'master'
make shape.solids.maxh = ... consistent with solid.maxh = ...

See merge request ngsolve/netgen!503
2022-05-07 15:10:57 +02:00
Christopher Lackner
456cb927d1 make shape.solids.maxh = ... consistent with solid.maxh = ... 2022-05-05 18:09:42 +02:00
Christopher Lackner
a04b7b5d5d __ge__ and __le__ operator for DirectionalInterval 2022-05-05 17:32:25 +02: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
Julius Zimmermann
4df5ed1536 denser syntax in occ file 2022-04-21 10:26:27 +02:00
Julius Zimmermann
6e18260ef7 Merge branch 'master' of github.com:j-zimmermann/netgen 2022-04-20 14:49:32 +02:00
Julius Zimmermann
ae28716366 add cone 2022-04-20 14:49:22 +02:00
Julius Zimmermann
718c876fa7 correct computation of shapes 2022-04-20 00:08:54 +02:00
Joachim Schoeberl
e5056dcd57 output control 2022-04-02 10:37:26 +02:00
Christopher Lackner
d36b3d8b4e [occ] inner point of surface -> surface mesh 2022-03-30 12:47:07 +02:00
Christopher Lackner
046443259e [occ] gp_GTrsf for anisotropic trafos 2022-03-28 18:34:22 +00:00
Matthias Hochsteger
132261ec4d Merge remote-tracking branch 'StefanBruens/fix_switch_enum' 2022-03-28 18:29:32 +02:00
luz paz
4033fac1b3 Fix various typos
Found via `codespell -q 3 -S ./external_dependencies/pybind11 -L alledges,allright,ane,anormal,ans,apoints,ba,boxs,cancle,childs,co-ordinate,co-ordinates,daty,enty,filld,hel,identifyable,ist,linz,lod,ned,nd,selt,statics,suround,thev,thist,thisy,timere,upto,wel`
2022-03-25 18:22:05 -04:00
Christopher Lackner
c822caafe7 [occ] create solid from faces
Needs shape consisting of topologically closed faces, for example from
Solid(Glue(list_of_faces))`
2022-03-17 11:58:11 +01:00
Joachim Schoeberl
7791840a4a little mpi cleanup, meshing+distribution in one call 2022-03-15 09:13:09 +01:00
mhochsteger@cerbsim.com
154302605f separate localh trees for different layers
currenlty used in OCC geometries generated with
shape = netgen.occ.Compound(list_of_shapes, separate_layers=True)
2022-03-10 19:04:46 +01:00
mhochsteger@cerbsim.com
4e8fe77098 fix some warnings 2022-03-02 14:14:38 +01:00
Christopher Lackner
d6770fda0c allow quad dominated meshing of faces 2022-02-25 10:50:51 +01:00
mhochsteger@cerbsim.com
cf59f297a7 use std::filesystem::path 2022-02-23 11:56:00 +01:00
mhochsteger@cerbsim.com
2ce4412fb2 no periodic in bspline surface builder on OCC 7.3 2022-02-11 18:19:50 +01:00
Joachim Schöberl
c5886cfe05 Merge branch 'occ_spline_tools' into 'master'
Adds wrappers for various OCC spline interpolation and approximation routines

See merge request jschoeberl/netgen!472
2022-02-11 11:15:18 +00:00
Matthias Rambausek
5f6b234262 shorter property names 2022-02-11 11:46:55 +01:00
Matthias Rambausek
51013105ed doc typo 2022-02-08 14:01:25 +01:00
Matthias Rambausek
947da90a00 Merge branch 'master' into occ_spline_tools 2022-02-07 18:43:29 +01:00
mhochsteger@cerbsim.com
82ec42b292 Ignore identified edges/vertices for closeedge localh restrictions 2022-02-02 15:09:41 +01:00
Stefan Brüns
54246e12ad Throw Exception when shape has invalid type
Although the switch statement handles all (current) allowed values, from
a C/C++ view point the enum may have any value of its underlying type.
In this case the function has no return statement and runs into
undefined behavior.

Fixes build failures when built with "-Werror=return-type".
2022-01-27 11:42:30 +01:00
Joachim Schöberl
86fd2983c7 Merge branch 'shape_name_return_optional' into 'master'
shape.name return optional<string>

See merge request jschoeberl/netgen!469
2022-01-20 16:48:43 +00:00
Joachim Schöberl
837575faf7 Merge branch 'fix_occ_closesurface' into 'master'
bugfix in FillCloseSurface

See merge request jschoeberl/netgen!468
2022-01-20 16:20:32 +00:00
Joachim Schöberl
1f23acac21 Merge branch 'occ_minedgelen' into 'master'
dont ignore small edges per default, do not set from stl parameters

See merge request jschoeberl/netgen!467
2022-01-20 16:20:15 +00:00
Christopher Lackner
1fbfc440ac shape.name return optional<string> 2022-01-20 17:03:16 +01:00
Christopher Lackner
3ab8808fa3 do not restrict mesh size on identified edges 2022-01-19 15:05:41 +01:00
Matthias Rambausek
bd85b7c638 Merge branch 'master' into occ_spline_tools
# Conflicts:
#	libsrc/occ/python_occ_shapes.cpp
2022-01-19 12:01:55 +01:00
Christopher Lackner
b6396c15c0 [occ] allow to delete names 2022-01-18 18:39:08 +01:00
Christopher Lackner
6065fe40f4 set global mesh in occ before generatemesh
to visualize meshing
2022-01-18 18:23:35 +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
Christopher Lackner
e597ce996b [occ] also prolongate names of solids and faces in extrude 2022-01-17 16:03:40 +01:00
mhochsteger@cerbsim.com
5f202fd4ea clear geom data in OCCGeometry::BuildFMap() (fixes broken meshing after Heal()) 2022-01-17 10:02:11 +01:00
mhochsteger@cerbsim.com
c63a865ee3 occ - fix meshing a sphere (need to keep degenerate edges) 2022-01-04 16:09:00 +01:00
Matthias Rambausek
093692f825 docstring fix 2021-12-27 17:08:00 +01:00
Matthias Rambausek
88bb6ec6af add some functions to access WorkPlane data and the possibility to create splines from any starting point 2021-12-27 16:10:37 +01:00
Matthias Rambausek
6656181e2b work om WP Spline: detect closing similar to ArcTo and LineTo, remove "name" arg 2021-12-22 16:21:24 +01:00
mhochsteger@cerbsim.com
f0b8b4fae9 occ - bugfix in identification propagation 2021-12-20 21:45:36 +01:00
mhochsteger@cerbsim.com
fe8c036204 Map identification trafo when transforming occ shapes
also propagate properties in gp_Trsf.__call__()
2021-12-20 21:01:51 +01:00
mhochsteger@cerbsim.com
1e86bc2c59 occ - consistent ordering of shapes 2021-12-17 11:04:23 +01:00
mhochsteger@cerbsim.com
d467621edd change interface for identifications 2021-12-16 20:54:19 +01:00
mhochsteger@cerbsim.com
b7448ce2c1 fix PropagateIdentifications after Glue 2021-12-16 18:35:43 +01:00
mhochsteger@cerbsim.com
44471fe649 occ - identify with given trafo (allows identifying multiple faces at once) 2021-12-14 12:16:03 +01:00
mhochsteger@cerbsim.com
329364e8e2 occ - set domin/domout for edges in 2d meshes 2021-12-07 14:52:06 +01:00