netgen-mesher 6.2.2506.post35.dev0__cp314-cp314-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- netgen/NgOCC.py +7 -0
- netgen/__init__.py +114 -0
- netgen/__init__.pyi +22 -0
- netgen/__main__.py +53 -0
- netgen/cmake/NetgenConfig.cmake +79 -0
- netgen/cmake/netgen-targets-release.cmake +69 -0
- netgen/cmake/netgen-targets.cmake +146 -0
- netgen/config/__init__.py +1 -0
- netgen/config/__init__.pyi +52 -0
- netgen/config/__main__.py +4 -0
- netgen/config/config.py +68 -0
- netgen/config/config.pyi +54 -0
- netgen/csg.py +25 -0
- netgen/geom2d.py +178 -0
- netgen/gui.py +82 -0
- netgen/include/core/archive.hpp +1256 -0
- netgen/include/core/array.hpp +1760 -0
- netgen/include/core/autodiff.hpp +1131 -0
- netgen/include/core/autodiffdiff.hpp +733 -0
- netgen/include/core/bitarray.hpp +240 -0
- netgen/include/core/concurrentqueue.h +3619 -0
- netgen/include/core/exception.hpp +145 -0
- netgen/include/core/flags.hpp +199 -0
- netgen/include/core/hashtable.hpp +1281 -0
- netgen/include/core/localheap.hpp +318 -0
- netgen/include/core/logging.hpp +117 -0
- netgen/include/core/memtracer.hpp +221 -0
- netgen/include/core/mpi4py_pycapi.h +245 -0
- netgen/include/core/mpi_wrapper.hpp +643 -0
- netgen/include/core/ng_mpi.hpp +94 -0
- netgen/include/core/ng_mpi_generated_declarations.hpp +155 -0
- netgen/include/core/ng_mpi_native.hpp +25 -0
- netgen/include/core/ngcore.hpp +32 -0
- netgen/include/core/ngcore_api.hpp +152 -0
- netgen/include/core/ngstream.hpp +115 -0
- netgen/include/core/paje_trace.hpp +279 -0
- netgen/include/core/profiler.hpp +382 -0
- netgen/include/core/python_ngcore.hpp +457 -0
- netgen/include/core/ranges.hpp +109 -0
- netgen/include/core/register_archive.hpp +100 -0
- netgen/include/core/signal.hpp +82 -0
- netgen/include/core/simd.hpp +160 -0
- netgen/include/core/simd_arm64.hpp +407 -0
- netgen/include/core/simd_avx.hpp +394 -0
- netgen/include/core/simd_avx512.hpp +285 -0
- netgen/include/core/simd_generic.hpp +1053 -0
- netgen/include/core/simd_math.hpp +178 -0
- netgen/include/core/simd_sse.hpp +289 -0
- netgen/include/core/statushandler.hpp +37 -0
- netgen/include/core/symboltable.hpp +153 -0
- netgen/include/core/table.hpp +810 -0
- netgen/include/core/taskmanager.hpp +1161 -0
- netgen/include/core/type_traits.hpp +65 -0
- netgen/include/core/utils.hpp +385 -0
- netgen/include/core/version.hpp +102 -0
- netgen/include/core/xbool.hpp +47 -0
- netgen/include/csg/algprim.hpp +563 -0
- netgen/include/csg/brick.hpp +150 -0
- netgen/include/csg/csg.hpp +43 -0
- netgen/include/csg/csgeom.hpp +389 -0
- netgen/include/csg/csgparser.hpp +101 -0
- netgen/include/csg/curve2d.hpp +67 -0
- netgen/include/csg/edgeflw.hpp +112 -0
- netgen/include/csg/explicitcurve2d.hpp +113 -0
- netgen/include/csg/extrusion.hpp +185 -0
- netgen/include/csg/gencyl.hpp +70 -0
- netgen/include/csg/geoml.hpp +16 -0
- netgen/include/csg/identify.hpp +213 -0
- netgen/include/csg/manifold.hpp +29 -0
- netgen/include/csg/meshsurf.hpp +46 -0
- netgen/include/csg/polyhedra.hpp +121 -0
- netgen/include/csg/revolution.hpp +180 -0
- netgen/include/csg/singularref.hpp +84 -0
- netgen/include/csg/solid.hpp +295 -0
- netgen/include/csg/specpoin.hpp +194 -0
- netgen/include/csg/spline3d.hpp +99 -0
- netgen/include/csg/splinesurface.hpp +85 -0
- netgen/include/csg/surface.hpp +394 -0
- netgen/include/csg/triapprox.hpp +63 -0
- netgen/include/csg/vscsg.hpp +34 -0
- netgen/include/general/autodiff.hpp +356 -0
- netgen/include/general/autoptr.hpp +39 -0
- netgen/include/general/gzstream.h +121 -0
- netgen/include/general/hashtabl.hpp +1692 -0
- netgen/include/general/myadt.hpp +48 -0
- netgen/include/general/mystring.hpp +226 -0
- netgen/include/general/netgenout.hpp +205 -0
- netgen/include/general/ngarray.hpp +797 -0
- netgen/include/general/ngbitarray.hpp +149 -0
- netgen/include/general/ngpython.hpp +74 -0
- netgen/include/general/optmem.hpp +44 -0
- netgen/include/general/parthreads.hpp +138 -0
- netgen/include/general/seti.hpp +50 -0
- netgen/include/general/sort.hpp +47 -0
- netgen/include/general/spbita2d.hpp +59 -0
- netgen/include/general/stack.hpp +114 -0
- netgen/include/general/table.hpp +280 -0
- netgen/include/general/template.hpp +509 -0
- netgen/include/geom2d/csg2d.hpp +750 -0
- netgen/include/geom2d/geometry2d.hpp +280 -0
- netgen/include/geom2d/spline2d.hpp +234 -0
- netgen/include/geom2d/vsgeom2d.hpp +28 -0
- netgen/include/gprim/adtree.hpp +1392 -0
- netgen/include/gprim/geom2d.hpp +858 -0
- netgen/include/gprim/geom3d.hpp +749 -0
- netgen/include/gprim/geomfuncs.hpp +212 -0
- netgen/include/gprim/geomobjects.hpp +544 -0
- netgen/include/gprim/geomops.hpp +404 -0
- netgen/include/gprim/geomtest3d.hpp +101 -0
- netgen/include/gprim/gprim.hpp +33 -0
- netgen/include/gprim/spline.hpp +778 -0
- netgen/include/gprim/splinegeometry.hpp +73 -0
- netgen/include/gprim/transform3d.hpp +216 -0
- netgen/include/include/acisgeom.hpp +3 -0
- netgen/include/include/csg.hpp +1 -0
- netgen/include/include/geometry2d.hpp +1 -0
- netgen/include/include/gprim.hpp +1 -0
- netgen/include/include/incopengl.hpp +62 -0
- netgen/include/include/inctcl.hpp +13 -0
- netgen/include/include/incvis.hpp +6 -0
- netgen/include/include/linalg.hpp +1 -0
- netgen/include/include/meshing.hpp +1 -0
- netgen/include/include/myadt.hpp +1 -0
- netgen/include/include/mydefs.hpp +70 -0
- netgen/include/include/mystdlib.h +59 -0
- netgen/include/include/netgen_config.hpp +27 -0
- netgen/include/include/netgen_version.hpp +9 -0
- netgen/include/include/nginterface_v2_impl.hpp +395 -0
- netgen/include/include/ngsimd.hpp +1 -0
- netgen/include/include/occgeom.hpp +1 -0
- netgen/include/include/opti.hpp +1 -0
- netgen/include/include/parallel.hpp +1 -0
- netgen/include/include/stlgeom.hpp +1 -0
- netgen/include/include/visual.hpp +1 -0
- netgen/include/interface/rw_medit.hpp +11 -0
- netgen/include/interface/writeuser.hpp +80 -0
- netgen/include/linalg/densemat.hpp +414 -0
- netgen/include/linalg/linalg.hpp +29 -0
- netgen/include/linalg/opti.hpp +142 -0
- netgen/include/linalg/polynomial.hpp +47 -0
- netgen/include/linalg/vector.hpp +217 -0
- netgen/include/meshing/adfront2.hpp +274 -0
- netgen/include/meshing/adfront3.hpp +332 -0
- netgen/include/meshing/basegeom.hpp +370 -0
- netgen/include/meshing/bcfunctions.hpp +53 -0
- netgen/include/meshing/bisect.hpp +72 -0
- netgen/include/meshing/boundarylayer.hpp +113 -0
- netgen/include/meshing/classifyhpel.hpp +1984 -0
- netgen/include/meshing/clusters.hpp +46 -0
- netgen/include/meshing/curvedelems.hpp +274 -0
- netgen/include/meshing/delaunay2d.hpp +73 -0
- netgen/include/meshing/fieldlines.hpp +103 -0
- netgen/include/meshing/findip.hpp +198 -0
- netgen/include/meshing/findip2.hpp +103 -0
- netgen/include/meshing/geomsearch.hpp +69 -0
- netgen/include/meshing/global.hpp +54 -0
- netgen/include/meshing/hpref_hex.hpp +330 -0
- netgen/include/meshing/hpref_prism.hpp +3405 -0
- netgen/include/meshing/hpref_pyramid.hpp +154 -0
- netgen/include/meshing/hpref_quad.hpp +2082 -0
- netgen/include/meshing/hpref_segm.hpp +122 -0
- netgen/include/meshing/hpref_tet.hpp +4230 -0
- netgen/include/meshing/hpref_trig.hpp +848 -0
- netgen/include/meshing/hprefinement.hpp +366 -0
- netgen/include/meshing/improve2.hpp +178 -0
- netgen/include/meshing/improve3.hpp +151 -0
- netgen/include/meshing/localh.hpp +223 -0
- netgen/include/meshing/meshclass.hpp +1076 -0
- netgen/include/meshing/meshfunc.hpp +47 -0
- netgen/include/meshing/meshing.hpp +63 -0
- netgen/include/meshing/meshing2.hpp +163 -0
- netgen/include/meshing/meshing3.hpp +123 -0
- netgen/include/meshing/meshtool.hpp +90 -0
- netgen/include/meshing/meshtype.hpp +1930 -0
- netgen/include/meshing/msghandler.hpp +62 -0
- netgen/include/meshing/paralleltop.hpp +172 -0
- netgen/include/meshing/python_mesh.hpp +206 -0
- netgen/include/meshing/ruler2.hpp +172 -0
- netgen/include/meshing/ruler3.hpp +211 -0
- netgen/include/meshing/soldata.hpp +141 -0
- netgen/include/meshing/specials.hpp +17 -0
- netgen/include/meshing/surfacegeom.hpp +73 -0
- netgen/include/meshing/topology.hpp +1003 -0
- netgen/include/meshing/validate.hpp +21 -0
- netgen/include/meshing/visual_interface.hpp +71 -0
- netgen/include/mydefs.hpp +70 -0
- netgen/include/nginterface.h +474 -0
- netgen/include/nginterface_v2.hpp +406 -0
- netgen/include/nglib.h +697 -0
- netgen/include/nglib_occ.h +50 -0
- netgen/include/occ/occ_edge.hpp +47 -0
- netgen/include/occ/occ_face.hpp +52 -0
- netgen/include/occ/occ_solid.hpp +23 -0
- netgen/include/occ/occ_utils.hpp +376 -0
- netgen/include/occ/occ_vertex.hpp +30 -0
- netgen/include/occ/occgeom.hpp +659 -0
- netgen/include/occ/occmeshsurf.hpp +168 -0
- netgen/include/occ/vsocc.hpp +33 -0
- netgen/include/pybind11/LICENSE +29 -0
- netgen/include/pybind11/attr.h +722 -0
- netgen/include/pybind11/buffer_info.h +208 -0
- netgen/include/pybind11/cast.h +2361 -0
- netgen/include/pybind11/chrono.h +228 -0
- netgen/include/pybind11/common.h +2 -0
- netgen/include/pybind11/complex.h +74 -0
- netgen/include/pybind11/conduit/README.txt +15 -0
- netgen/include/pybind11/conduit/pybind11_conduit_v1.h +116 -0
- netgen/include/pybind11/conduit/pybind11_platform_abi_id.h +87 -0
- netgen/include/pybind11/conduit/wrap_include_python_h.h +72 -0
- netgen/include/pybind11/critical_section.h +56 -0
- netgen/include/pybind11/detail/class.h +823 -0
- netgen/include/pybind11/detail/common.h +1348 -0
- netgen/include/pybind11/detail/cpp_conduit.h +75 -0
- netgen/include/pybind11/detail/descr.h +226 -0
- netgen/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +39 -0
- netgen/include/pybind11/detail/exception_translation.h +71 -0
- netgen/include/pybind11/detail/function_record_pyobject.h +191 -0
- netgen/include/pybind11/detail/init.h +538 -0
- netgen/include/pybind11/detail/internals.h +799 -0
- netgen/include/pybind11/detail/native_enum_data.h +209 -0
- netgen/include/pybind11/detail/pybind11_namespace_macros.h +82 -0
- netgen/include/pybind11/detail/struct_smart_holder.h +378 -0
- netgen/include/pybind11/detail/type_caster_base.h +1591 -0
- netgen/include/pybind11/detail/typeid.h +65 -0
- netgen/include/pybind11/detail/using_smart_holder.h +22 -0
- netgen/include/pybind11/detail/value_and_holder.h +90 -0
- netgen/include/pybind11/eigen/common.h +9 -0
- netgen/include/pybind11/eigen/matrix.h +723 -0
- netgen/include/pybind11/eigen/tensor.h +521 -0
- netgen/include/pybind11/eigen.h +12 -0
- netgen/include/pybind11/embed.h +320 -0
- netgen/include/pybind11/eval.h +161 -0
- netgen/include/pybind11/functional.h +147 -0
- netgen/include/pybind11/gil.h +199 -0
- netgen/include/pybind11/gil_safe_call_once.h +102 -0
- netgen/include/pybind11/gil_simple.h +37 -0
- netgen/include/pybind11/iostream.h +265 -0
- netgen/include/pybind11/native_enum.h +67 -0
- netgen/include/pybind11/numpy.h +2312 -0
- netgen/include/pybind11/operators.h +202 -0
- netgen/include/pybind11/options.h +92 -0
- netgen/include/pybind11/pybind11.h +3645 -0
- netgen/include/pybind11/pytypes.h +2680 -0
- netgen/include/pybind11/stl/filesystem.h +114 -0
- netgen/include/pybind11/stl.h +666 -0
- netgen/include/pybind11/stl_bind.h +858 -0
- netgen/include/pybind11/subinterpreter.h +299 -0
- netgen/include/pybind11/trampoline_self_life_support.h +65 -0
- netgen/include/pybind11/type_caster_pyobject_ptr.h +61 -0
- netgen/include/pybind11/typing.h +298 -0
- netgen/include/pybind11/warnings.h +75 -0
- netgen/include/stlgeom/meshstlsurface.hpp +67 -0
- netgen/include/stlgeom/stlgeom.hpp +491 -0
- netgen/include/stlgeom/stlline.hpp +193 -0
- netgen/include/stlgeom/stltool.hpp +331 -0
- netgen/include/stlgeom/stltopology.hpp +419 -0
- netgen/include/stlgeom/vsstl.hpp +58 -0
- netgen/include/visualization/meshdoc.hpp +42 -0
- netgen/include/visualization/mvdraw.hpp +325 -0
- netgen/include/visualization/vispar.hpp +128 -0
- netgen/include/visualization/visual.hpp +28 -0
- netgen/include/visualization/visual_api.hpp +10 -0
- netgen/include/visualization/vssolution.hpp +399 -0
- netgen/lib/libnggui.lib +0 -0
- netgen/lib/ngcore.lib +0 -0
- netgen/lib/nglib.lib +0 -0
- netgen/lib/togl.lib +0 -0
- netgen/libnggui.dll +0 -0
- netgen/libngguipy.lib +0 -0
- netgen/libngguipy.pyd +0 -0
- netgen/libngpy/_NgOCC.pyi +1545 -0
- netgen/libngpy/__init__.pyi +7 -0
- netgen/libngpy/_csg.pyi +259 -0
- netgen/libngpy/_geom2d.pyi +323 -0
- netgen/libngpy/_meshing.pyi +1111 -0
- netgen/libngpy/_stl.pyi +131 -0
- netgen/libngpy.lib +0 -0
- netgen/libngpy.pyd +0 -0
- netgen/meshing.py +65 -0
- netgen/ngcore.dll +0 -0
- netgen/nglib.dll +0 -0
- netgen/occ.py +52 -0
- netgen/read_gmsh.py +259 -0
- netgen/read_meshio.py +22 -0
- netgen/stl.py +2 -0
- netgen/togl.dll +0 -0
- netgen/version.py +2 -0
- netgen/webgui.py +529 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boundarycondition.geo +16 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/boxcyl.geo +32 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/circle_on_cube.geo +27 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cone.geo +13 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cube.geo +16 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandring.geo +55 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubeandspheres.geo +21 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemcyl.geo +18 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cubemsphere.geo +19 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylinder.geo +12 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/cylsphere.geo +12 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/doc/ng4.pdf +0 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipsoid.geo +8 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ellipticcyl.geo +10 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/extrusion.geo +99 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/fichera.geo +24 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/frame.step +11683 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/hinge.stl +8486 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/lshape3d.geo +26 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes.geo +26 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/manyholes2.geo +26 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/matrix.geo +27 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/ortho.geo +11 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/part1.stl +2662 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/period.geo +33 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/exportNeutral.py +26 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/mesh.py +19 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/py_tutorials/shaft.geo +65 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/revolution.geo +18 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/screw.step +1694 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sculpture.geo +13 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shaft.geo +65 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/shell.geo +10 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphere.geo +8 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/sphereincube.geo +17 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/square.in2d +35 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarecircle.in2d +48 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/squarehole.in2d +47 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/torus.geo +8 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/trafo.geo +57 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twobricks.geo +15 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocubes.geo +18 -0
- netgen_mesher-6.2.2506.post35.dev0.data/data/share/netgen/twocyl.geo +16 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/METADATA +15 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/RECORD +340 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/WHEEL +5 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/entry_points.txt +2 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/licenses/AUTHORS +1 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/licenses/LICENSE +504 -0
- netgen_mesher-6.2.2506.post35.dev0.dist-info/top_level.txt +2 -0
- pyngcore/__init__.py +1 -0
- pyngcore/pyngcore.cp314-win_amd64.pyd +0 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
#ifndef FILE_GEOMETRY2D
|
|
2
|
+
#define FILE_GEOMETRY2D
|
|
3
|
+
|
|
4
|
+
/* *************************************************************************/
|
|
5
|
+
/* File: geometry2d.hpp */
|
|
6
|
+
/* Author: Joachim Schoeberl */
|
|
7
|
+
/* Date: 20. Jul. 02 */
|
|
8
|
+
/* *************************************************************************/
|
|
9
|
+
|
|
10
|
+
#include <myadt.hpp>
|
|
11
|
+
#include <gprim.hpp>
|
|
12
|
+
#include <meshing.hpp>
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
// #include "../gprim/spline.hpp"
|
|
16
|
+
// #include "../gprim/splinegeometry.hpp"
|
|
17
|
+
|
|
18
|
+
namespace netgen
|
|
19
|
+
{
|
|
20
|
+
|
|
21
|
+
class SplineSegExt : public SplineSeg<2>
|
|
22
|
+
{
|
|
23
|
+
public:
|
|
24
|
+
SplineSeg<2>* seg;
|
|
25
|
+
|
|
26
|
+
/// left domain
|
|
27
|
+
int leftdom;
|
|
28
|
+
/// right domain
|
|
29
|
+
int rightdom;
|
|
30
|
+
/// refinement at line
|
|
31
|
+
double reffak;
|
|
32
|
+
/// maximal h;
|
|
33
|
+
double hmax;
|
|
34
|
+
/// boundary condition number
|
|
35
|
+
int bc;
|
|
36
|
+
/// copy spline mesh from other spline (-1.. do not copy)
|
|
37
|
+
int copyfrom;
|
|
38
|
+
/// perform anisotropic refinement (hp-refinement) to edge
|
|
39
|
+
double hpref_left;
|
|
40
|
+
/// perform anisotropic refinement (hp-refinement) to edge
|
|
41
|
+
double hpref_right;
|
|
42
|
+
///
|
|
43
|
+
int layer;
|
|
44
|
+
|
|
45
|
+
SplineSegExt (SplineSeg<2> & hseg)
|
|
46
|
+
: seg(&hseg)
|
|
47
|
+
{
|
|
48
|
+
layer = 1;
|
|
49
|
+
}
|
|
50
|
+
// default constructor for archive
|
|
51
|
+
SplineSegExt() {}
|
|
52
|
+
|
|
53
|
+
~SplineSegExt ()
|
|
54
|
+
{
|
|
55
|
+
delete seg;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
virtual void DoArchive(Archive& ar)
|
|
59
|
+
{
|
|
60
|
+
ar & seg & leftdom & rightdom & reffak & hmax & bc & copyfrom
|
|
61
|
+
& hpref_left & hpref_right & layer;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
virtual const GeomPoint<2> & StartPI () const
|
|
65
|
+
{
|
|
66
|
+
return seg->StartPI();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
virtual const GeomPoint<2> & EndPI () const
|
|
70
|
+
{
|
|
71
|
+
return seg->EndPI();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
virtual Point<2> GetPoint (double t) const
|
|
75
|
+
{
|
|
76
|
+
return seg->GetPoint(t);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
virtual Vec<2> GetTangent (const double t) const
|
|
80
|
+
{
|
|
81
|
+
return seg->GetTangent(t);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
virtual void GetDerivatives (const double t,
|
|
85
|
+
Point<2> & point,
|
|
86
|
+
Vec<2> & first,
|
|
87
|
+
Vec<2> & second) const
|
|
88
|
+
{
|
|
89
|
+
seg->GetDerivatives (t, point, first, second);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
virtual void GetCoeff (Vector & coeffs) const
|
|
93
|
+
{
|
|
94
|
+
seg->GetCoeff (coeffs);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
virtual void GetPoints (int n, NgArray<Point<2> > & points) const
|
|
98
|
+
{
|
|
99
|
+
seg->GetPoints (n, points);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
virtual double MaxCurvature () const
|
|
103
|
+
{
|
|
104
|
+
return seg->MaxCurvature();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
virtual string GetType () const
|
|
108
|
+
{
|
|
109
|
+
return seg->GetType();
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
virtual double CalcCurvature (double t) const
|
|
113
|
+
{
|
|
114
|
+
Point<2> point;
|
|
115
|
+
Vec<2> first, second;
|
|
116
|
+
GetDerivatives (t, point, first, second);
|
|
117
|
+
double curv = fabs(first(0)*second(1)-first(1)*second(0)) / pow(first.Length(), 3);
|
|
118
|
+
return curv;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
virtual bool InConvexHull (Point<2> p, double eps) const
|
|
122
|
+
{
|
|
123
|
+
return seg->InConvexHull (p, eps);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
class DLL_HEADER SplineGeometry2d : public SplineGeometry<2>, public NetgenGeometry
|
|
132
|
+
{
|
|
133
|
+
protected:
|
|
134
|
+
NgArray<char*> materials;
|
|
135
|
+
NgArray<double> maxh;
|
|
136
|
+
NgArray<bool> quadmeshing;
|
|
137
|
+
Array<bool> tensormeshing;
|
|
138
|
+
NgArray<int> layer;
|
|
139
|
+
NgArray<string*> bcnames;
|
|
140
|
+
double elto0 = 1.0;
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
public:
|
|
144
|
+
virtual ~SplineGeometry2d();
|
|
145
|
+
|
|
146
|
+
void Load (const filesystem::path & filename);
|
|
147
|
+
|
|
148
|
+
void LoadData( ifstream & infile );
|
|
149
|
+
void LoadDataNew ( ifstream & infile );
|
|
150
|
+
void LoadDataV2 ( ifstream & infile );
|
|
151
|
+
|
|
152
|
+
void TestComment ( ifstream & infile ) ;
|
|
153
|
+
|
|
154
|
+
void DoArchive(Archive& ar) override
|
|
155
|
+
{
|
|
156
|
+
SplineGeometry<2>::DoArchive(ar);
|
|
157
|
+
ar & materials & maxh & quadmeshing & tensormeshing & layer & bcnames & elto0;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override
|
|
161
|
+
{
|
|
162
|
+
p(2) = 0.0;
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
void PointBetween(const Point<3> & p1, const Point<3> & p2, double secpoint,
|
|
167
|
+
int surfi,
|
|
168
|
+
const PointGeomInfo & gi1,
|
|
169
|
+
const PointGeomInfo & gi2,
|
|
170
|
+
Point<3> & newp, PointGeomInfo & newgi) const override
|
|
171
|
+
{
|
|
172
|
+
newp = p1+secpoint*(p2-p1);
|
|
173
|
+
newgi.trignum = 1;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
void PointBetweenEdge(const Point<3> & p1, const Point<3> & p2, double secpoint,
|
|
177
|
+
int surfi1, int surfi2,
|
|
178
|
+
const EdgePointGeomInfo & ap1,
|
|
179
|
+
const EdgePointGeomInfo & ap2,
|
|
180
|
+
Point<3> & newp, EdgePointGeomInfo & newgi) const override;
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
Vec<3> GetTangent (const Point<3> & p, int surfi1, int surfi2,
|
|
184
|
+
const EdgePointGeomInfo & ap1) const override;
|
|
185
|
+
Vec<3> GetNormal(int surfi1, const Point<3> & p,
|
|
186
|
+
const PointGeomInfo* gi) const override;
|
|
187
|
+
|
|
188
|
+
const SplineSegExt & GetSpline (const int i) const
|
|
189
|
+
{
|
|
190
|
+
return dynamic_cast<const SplineSegExt&> (*splines[i]);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
SplineSegExt & GetSpline (const int i)
|
|
194
|
+
{
|
|
195
|
+
return dynamic_cast<SplineSegExt&> (*splines[i]);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
int GenerateMesh (shared_ptr<Mesh> & mesh, MeshingParameters & mparam) override;
|
|
200
|
+
|
|
201
|
+
void PartitionBoundary (MeshingParameters & mp, double h, Mesh & mesh2d);
|
|
202
|
+
|
|
203
|
+
void CopyEdgeMesh (int from, int to, Mesh & mesh2d, Point3dTree & searchtree);
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
size_t GetNDomains() const { return materials.Size(); }
|
|
207
|
+
void GetMaterial (int domnr, char* & material );
|
|
208
|
+
void SetMaterial (int domnr, const string & material);
|
|
209
|
+
|
|
210
|
+
double GetDomainMaxh ( const int domnr );
|
|
211
|
+
void SetDomainMaxh ( const int domnr, double maxh );
|
|
212
|
+
|
|
213
|
+
bool GetDomainQuadMeshing ( int domnr )
|
|
214
|
+
{
|
|
215
|
+
if ( quadmeshing.Size() ) return quadmeshing[domnr-1];
|
|
216
|
+
else return false;
|
|
217
|
+
}
|
|
218
|
+
void SetDomainQuadMeshing ( int domnr, bool quad_meshing )
|
|
219
|
+
{
|
|
220
|
+
auto oldsize = quadmeshing.Size();
|
|
221
|
+
|
|
222
|
+
if ( oldsize<domnr )
|
|
223
|
+
{
|
|
224
|
+
quadmeshing.SetSize(domnr);
|
|
225
|
+
for(auto dom : IntRange(oldsize, domnr-1))
|
|
226
|
+
quadmeshing[dom] = false;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
quadmeshing[domnr-1] = quad_meshing;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
bool GetDomainTensorMeshing ( int domnr )
|
|
233
|
+
{
|
|
234
|
+
if ( tensormeshing.Size()>=domnr ) return tensormeshing[domnr-1];
|
|
235
|
+
else return false;
|
|
236
|
+
}
|
|
237
|
+
void SetDomainTensorMeshing ( int domnr, bool tm )
|
|
238
|
+
{
|
|
239
|
+
if ( tensormeshing.Size()<domnr )
|
|
240
|
+
{
|
|
241
|
+
auto oldsize = tensormeshing.Size();
|
|
242
|
+
tensormeshing.SetSize(domnr);
|
|
243
|
+
for(auto i : IntRange(oldsize, domnr-1))
|
|
244
|
+
tensormeshing[i] = false;
|
|
245
|
+
}
|
|
246
|
+
tensormeshing[domnr-1] = tm;
|
|
247
|
+
}
|
|
248
|
+
int GetDomainLayer ( int domnr )
|
|
249
|
+
{
|
|
250
|
+
if ( layer.Size() ) return layer[domnr-1];
|
|
251
|
+
else return 1;
|
|
252
|
+
}
|
|
253
|
+
void SetDomainLayer (int domnr, int layernr)
|
|
254
|
+
{
|
|
255
|
+
auto old_size = layer.Size();
|
|
256
|
+
if(domnr > old_size)
|
|
257
|
+
{
|
|
258
|
+
layer.SetSize(domnr);
|
|
259
|
+
for(size_t i = old_size; i < domnr; i++)
|
|
260
|
+
layer[i] = 1;
|
|
261
|
+
}
|
|
262
|
+
layer[domnr-1] = layernr;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
string GetBCName (int bcnr) const;
|
|
266
|
+
void SetBCName (int bcnr, string name);
|
|
267
|
+
int GetBCNumber (string name) const; // 0 if not exists
|
|
268
|
+
int AddBCName (string name);
|
|
269
|
+
|
|
270
|
+
string * BCNamePtr ( const int bcnr );
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
#endif
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
das File sollte nicht mehr verwendet werden ---> spline.hpp
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
#ifndef FILE_SPLINE2D
|
|
14
|
+
#define FILE_SPLINE2D
|
|
15
|
+
|
|
16
|
+
/**************************************************************************/
|
|
17
|
+
/* File: spline2d.hh */
|
|
18
|
+
/* Author: Joachim Schoeberl */
|
|
19
|
+
/* Date: 24. Jul. 96 */
|
|
20
|
+
/**************************************************************************/
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
Spline curves for 2D mesh generation
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#include "spline.hpp"
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
//#define OLDSPLINEVERSION
|
|
31
|
+
#ifdef OLDSPLINEVERSION
|
|
32
|
+
|
|
33
|
+
/// Geometry point
|
|
34
|
+
class GeomPoint2d : public Point<2>
|
|
35
|
+
{
|
|
36
|
+
public:
|
|
37
|
+
/// refinement to point
|
|
38
|
+
double refatpoint;
|
|
39
|
+
bool hpref;
|
|
40
|
+
|
|
41
|
+
GeomPoint2d ()
|
|
42
|
+
{ ; }
|
|
43
|
+
|
|
44
|
+
///
|
|
45
|
+
GeomPoint2d (double ax, double ay, double aref = 1)
|
|
46
|
+
: Point<2> (ax, ay), refatpoint(aref) { ; }
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
/// base class for 2d - segment
|
|
52
|
+
class SplineSegment
|
|
53
|
+
{
|
|
54
|
+
public:
|
|
55
|
+
/// left domain
|
|
56
|
+
int leftdom;
|
|
57
|
+
/// right domain
|
|
58
|
+
int rightdom;
|
|
59
|
+
/// refinement at line
|
|
60
|
+
double reffak;
|
|
61
|
+
/// boundary condition number
|
|
62
|
+
int bc;
|
|
63
|
+
/// copy spline mesh from other spline (-1.. do not copy)
|
|
64
|
+
int copyfrom;
|
|
65
|
+
/// perform anisotropic refinement (hp-refinement) to edge
|
|
66
|
+
bool hpref_left;
|
|
67
|
+
bool hpref_right;
|
|
68
|
+
/// calculates length of curve
|
|
69
|
+
virtual double Length () const;
|
|
70
|
+
/// returns point at curve, 0 <= t <= 1
|
|
71
|
+
virtual Point<2> GetPoint (double t) const = 0;
|
|
72
|
+
/// partitionizes curve
|
|
73
|
+
void Partition (double h, double elto0,
|
|
74
|
+
Mesh & mesh, Point3dTree & searchtree, int segnr) const;
|
|
75
|
+
/// returns initial point on curve
|
|
76
|
+
virtual const GeomPoint2d & StartPI () const = 0;
|
|
77
|
+
/// returns terminal point on curve
|
|
78
|
+
virtual const GeomPoint2d & EndPI () const = 0;
|
|
79
|
+
/** writes curve description for fepp:
|
|
80
|
+
for implicitly given quadratic curves, the 6 coefficients of
|
|
81
|
+
the polynomial
|
|
82
|
+
$$ a x^2 + b y^2 + c x y + d x + e y + f = 0 $$
|
|
83
|
+
are written to ost */
|
|
84
|
+
void PrintCoeff (ostream & ost) const;
|
|
85
|
+
|
|
86
|
+
virtual void GetCoeff (Vector & coeffs) const = 0;
|
|
87
|
+
|
|
88
|
+
virtual void GetPoints (int n, NgArray<Point<2> > & points);
|
|
89
|
+
|
|
90
|
+
/** calculates lineintersections:
|
|
91
|
+
for lines $$ a x + b y + c = 0 $$ the intersecting points are calculated
|
|
92
|
+
and stored in points */
|
|
93
|
+
virtual void LineIntersections (const double a, const double b, const double c,
|
|
94
|
+
NgArray < Point<2> > & points, const double eps) const
|
|
95
|
+
{points.SetSize(0);}
|
|
96
|
+
|
|
97
|
+
virtual double MaxCurvature(void) const = 0;
|
|
98
|
+
|
|
99
|
+
virtual string GetType(void) const {return "splinebase";}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
/// Straight line form p1 to p2
|
|
104
|
+
class LineSegment : public SplineSegment
|
|
105
|
+
{
|
|
106
|
+
///
|
|
107
|
+
const GeomPoint2d &p1, &p2;
|
|
108
|
+
public:
|
|
109
|
+
///
|
|
110
|
+
LineSegment (const GeomPoint2d & ap1, const GeomPoint2d & ap2);
|
|
111
|
+
///
|
|
112
|
+
virtual double Length () const;
|
|
113
|
+
///
|
|
114
|
+
virtual Point<2> GetPoint (double t) const;
|
|
115
|
+
///
|
|
116
|
+
virtual const GeomPoint2d & StartPI () const { return p1; };
|
|
117
|
+
///
|
|
118
|
+
virtual const GeomPoint2d & EndPI () const { return p2; }
|
|
119
|
+
///
|
|
120
|
+
//virtual void PrintCoeff (ostream & ost) const;
|
|
121
|
+
virtual void GetCoeff (Vector & coeffs) const;
|
|
122
|
+
|
|
123
|
+
virtual string GetType(void) const {return "line";}
|
|
124
|
+
|
|
125
|
+
virtual void LineIntersections (const double a, const double b, const double c,
|
|
126
|
+
NgArray < Point<2> > & points, const double eps) const;
|
|
127
|
+
|
|
128
|
+
virtual double MaxCurvature(void) const {return 0;}
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
/// curve given by a rational, quadratic spline (including ellipses)
|
|
133
|
+
class SplineSegment3 : public SplineSegment
|
|
134
|
+
{
|
|
135
|
+
///
|
|
136
|
+
const GeomPoint2d &p1, &p2, &p3;
|
|
137
|
+
public:
|
|
138
|
+
///
|
|
139
|
+
SplineSegment3 (const GeomPoint2d & ap1,
|
|
140
|
+
const GeomPoint2d & ap2,
|
|
141
|
+
const GeomPoint2d & ap3);
|
|
142
|
+
///
|
|
143
|
+
virtual Point<2> GetPoint (double t) const;
|
|
144
|
+
///
|
|
145
|
+
virtual const GeomPoint2d & StartPI () const { return p1; };
|
|
146
|
+
///
|
|
147
|
+
virtual const GeomPoint2d & EndPI () const { return p3; }
|
|
148
|
+
///
|
|
149
|
+
//virtual void PrintCoeff (ostream & ost) const;
|
|
150
|
+
virtual void GetCoeff (Vector & coeffs) const;
|
|
151
|
+
|
|
152
|
+
virtual string GetType(void) const {return "spline3";}
|
|
153
|
+
|
|
154
|
+
const GeomPoint2d & TangentPoint (void) const { return p2; }
|
|
155
|
+
|
|
156
|
+
virtual void LineIntersections (const double a, const double b, const double c,
|
|
157
|
+
NgArray < Point<2> > & points, const double eps) const;
|
|
158
|
+
|
|
159
|
+
virtual double MaxCurvature(void) const;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
// Gundolf Haase 8/26/97
|
|
164
|
+
/// A circle
|
|
165
|
+
class CircleSegment : public SplineSegment
|
|
166
|
+
{
|
|
167
|
+
///
|
|
168
|
+
private:
|
|
169
|
+
const GeomPoint2d &p1, &p2, &p3;
|
|
170
|
+
Point<2> pm;
|
|
171
|
+
double radius, w1,w3;
|
|
172
|
+
public:
|
|
173
|
+
///
|
|
174
|
+
CircleSegment (const GeomPoint2d & ap1,
|
|
175
|
+
const GeomPoint2d & ap2,
|
|
176
|
+
const GeomPoint2d & ap3);
|
|
177
|
+
///
|
|
178
|
+
virtual Point<2> GetPoint (double t) const;
|
|
179
|
+
///
|
|
180
|
+
virtual const GeomPoint2d & StartPI () const { return p1; }
|
|
181
|
+
///
|
|
182
|
+
virtual const GeomPoint2d & EndPI () const { return p3; }
|
|
183
|
+
///
|
|
184
|
+
//virtual void PrintCoeff (ostream & ost) const;
|
|
185
|
+
virtual void GetCoeff (Vector & coeffs) const;
|
|
186
|
+
///
|
|
187
|
+
double Radius() const { return radius; }
|
|
188
|
+
///
|
|
189
|
+
double StartAngle() const { return w1; }
|
|
190
|
+
///
|
|
191
|
+
double EndAngle() const { return w3; }
|
|
192
|
+
///
|
|
193
|
+
const Point<2> & MidPoint(void) const {return pm; }
|
|
194
|
+
|
|
195
|
+
virtual string GetType(void) const {return "circle";}
|
|
196
|
+
|
|
197
|
+
virtual void LineIntersections (const double a, const double b, const double c,
|
|
198
|
+
NgArray < Point<2> > & points, const double eps) const;
|
|
199
|
+
|
|
200
|
+
virtual double MaxCurvature(void) const {return 1./radius;}
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
///
|
|
209
|
+
class DiscretePointsSegment : public SplineSegment
|
|
210
|
+
{
|
|
211
|
+
NgArray<Point<2> > pts;
|
|
212
|
+
GeomPoint2d p1, p2;
|
|
213
|
+
public:
|
|
214
|
+
///
|
|
215
|
+
DiscretePointsSegment (const NgArray<Point<2> > & apts);
|
|
216
|
+
///
|
|
217
|
+
virtual ~DiscretePointsSegment ();
|
|
218
|
+
///
|
|
219
|
+
virtual Point<2> GetPoint (double t) const;
|
|
220
|
+
///
|
|
221
|
+
virtual const GeomPoint2d & StartPI () const { return p1; };
|
|
222
|
+
///
|
|
223
|
+
virtual const GeomPoint2d & EndPI () const { return p2; }
|
|
224
|
+
///
|
|
225
|
+
//virtual void PrintCoeff (ostream & /* ost */) const { ; }
|
|
226
|
+
virtual void GetCoeff (Vector & coeffs) const {;}
|
|
227
|
+
|
|
228
|
+
virtual double MaxCurvature(void) const {return 1;}
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
#endif
|
|
233
|
+
|
|
234
|
+
#endif
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#ifndef FILE_VSGEOM2D
|
|
2
|
+
#define FILE_VSGEOM2D
|
|
3
|
+
|
|
4
|
+
/**************************************************************************/
|
|
5
|
+
/* File: vsgeom2d.hpp */
|
|
6
|
+
/* Author: Joachim Schoeberl */
|
|
7
|
+
/* Date: 05. Jan. 2011 */
|
|
8
|
+
/**************************************************************************/
|
|
9
|
+
|
|
10
|
+
namespace netgen
|
|
11
|
+
{
|
|
12
|
+
|
|
13
|
+
class NGGUI_API VisualSceneGeometry2d : public VisualScene
|
|
14
|
+
{
|
|
15
|
+
const class SplineGeometry2d * geometry2d;
|
|
16
|
+
public:
|
|
17
|
+
VisualSceneGeometry2d ();
|
|
18
|
+
virtual ~VisualSceneGeometry2d ();
|
|
19
|
+
void SetGeometry (const class SplineGeometry2d * ageometry2d) { geometry2d = ageometry2d; }
|
|
20
|
+
virtual void BuildScene (int zoomall = 0);
|
|
21
|
+
virtual void DrawScene ();
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
#endif
|