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,211 @@
|
|
|
1
|
+
#ifndef FILE_RULER3
|
|
2
|
+
#define FILE_RULER3
|
|
3
|
+
|
|
4
|
+
namespace netgen
|
|
5
|
+
{
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
3D element generation rule.
|
|
9
|
+
*/
|
|
10
|
+
class vnetrule
|
|
11
|
+
{
|
|
12
|
+
private:
|
|
13
|
+
/// rule is applicable for quality classes above this value
|
|
14
|
+
int quality;
|
|
15
|
+
/// name of rule
|
|
16
|
+
char * name;
|
|
17
|
+
/// point coordinates in reference position
|
|
18
|
+
NgArray<Point3d> points;
|
|
19
|
+
/// old and new faces in reference numbering
|
|
20
|
+
NgArray<Element2d> faces;
|
|
21
|
+
/// additional edges of rule
|
|
22
|
+
NgArray<twoint> edges;
|
|
23
|
+
|
|
24
|
+
/// points of freezone in reference coordinates
|
|
25
|
+
NgArray<Point3d> freezone;
|
|
26
|
+
/// points of freezone in reference coordinates if tolcalss to infty
|
|
27
|
+
NgArray<Point3d> freezonelimit;
|
|
28
|
+
/// point index, if point equal to mappoint, otherwise 0
|
|
29
|
+
NgArray<int> freezonepi;
|
|
30
|
+
/// faces of each convex part of freezone
|
|
31
|
+
NgArray<NgArray<threeint>*> freefaces;
|
|
32
|
+
/// set of points of each convex part of freezone
|
|
33
|
+
NgArray<NgArray<int>*> freesets;
|
|
34
|
+
/// points of transformed freezone
|
|
35
|
+
NgArray<Point3d> transfreezone;
|
|
36
|
+
/// edges of each convex part of freezone
|
|
37
|
+
NgArray<NgArray<twoint>*> freeedges;
|
|
38
|
+
|
|
39
|
+
/// face numbers to be deleted
|
|
40
|
+
NgArray<int> delfaces;
|
|
41
|
+
/// elements to be generated
|
|
42
|
+
NgArray<Element> elements;
|
|
43
|
+
/// tolerances for points and faces (used ??)
|
|
44
|
+
NgArray<double> tolerances, linetolerances;
|
|
45
|
+
/// transformation matrix
|
|
46
|
+
DenseMatrix oldutonewu;
|
|
47
|
+
/// transformation matrix: deviation old point to dev. freezone
|
|
48
|
+
DenseMatrix * oldutofreezone;
|
|
49
|
+
/** transformation matrix: deviation old point to dev. freezone,
|
|
50
|
+
quality class to infinity */
|
|
51
|
+
DenseMatrix * oldutofreezonelimit;
|
|
52
|
+
|
|
53
|
+
// can be deleted:
|
|
54
|
+
// BaseMatrix *outf, *outfl;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
a point is outside of convex part of freezone,
|
|
58
|
+
iff mat * (point, 1) >= 0 for each component (correct ?)
|
|
59
|
+
*/
|
|
60
|
+
NgArray<DenseMatrix*> freefaceinequ;
|
|
61
|
+
///
|
|
62
|
+
NgArray<fourint> orientations;
|
|
63
|
+
/**
|
|
64
|
+
flags specified in rule-description file:
|
|
65
|
+
t .. test rule
|
|
66
|
+
*/
|
|
67
|
+
NgArray<char> flags;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
topological distance of face to base element
|
|
71
|
+
non-connected: > 100 (??)
|
|
72
|
+
*/
|
|
73
|
+
NgArray<int> fnearness;
|
|
74
|
+
NgArray<int> pnearness;
|
|
75
|
+
int maxpnearness;
|
|
76
|
+
|
|
77
|
+
/// number of old points in rule
|
|
78
|
+
int noldp;
|
|
79
|
+
/// number of new poitns in rule
|
|
80
|
+
int noldf;
|
|
81
|
+
/// box containing free-zone
|
|
82
|
+
public:
|
|
83
|
+
// double fzminx, fzmaxx, fzminy, fzmaxy, fzminz, fzmaxz;
|
|
84
|
+
Box3d fzbox;
|
|
85
|
+
|
|
86
|
+
public:
|
|
87
|
+
|
|
88
|
+
///
|
|
89
|
+
vnetrule ();
|
|
90
|
+
///
|
|
91
|
+
~vnetrule ();
|
|
92
|
+
///
|
|
93
|
+
int GetNP () const { return points.Size(); }
|
|
94
|
+
///
|
|
95
|
+
int GetNF () const { return faces.Size(); }
|
|
96
|
+
///
|
|
97
|
+
int GetNE () const { return elements.Size(); }
|
|
98
|
+
///
|
|
99
|
+
int GetNO () const { return orientations.Size(); }
|
|
100
|
+
///
|
|
101
|
+
int GetNEd () const { return edges.Size(); }
|
|
102
|
+
///
|
|
103
|
+
int GetNOldP () const { return noldp; }
|
|
104
|
+
///
|
|
105
|
+
int GetNOldF () const { return noldf; }
|
|
106
|
+
///
|
|
107
|
+
int GetNDelF () const { return delfaces.Size(); }
|
|
108
|
+
///
|
|
109
|
+
int GetQuality () const { return quality; }
|
|
110
|
+
///
|
|
111
|
+
int GetFNearness (int fi) const { return fnearness.Get(fi); }
|
|
112
|
+
///
|
|
113
|
+
int GetPNearness (int pi) const { return pnearness.Get(pi); }
|
|
114
|
+
///
|
|
115
|
+
int GetMaxPNearness () const { return maxpnearness; }
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
///
|
|
119
|
+
const Point3d & GetPoint (int i) const { return points.Get(i); }
|
|
120
|
+
///
|
|
121
|
+
const Element2d & GetFace (int i) const { return faces.Get(i); }
|
|
122
|
+
///
|
|
123
|
+
const Element & GetElement (int i) const { return elements.Get(i); }
|
|
124
|
+
///
|
|
125
|
+
const twoint & GetEdge (int i) const { return edges.Get(i); }
|
|
126
|
+
///
|
|
127
|
+
int GetDelFace (int i) const { return delfaces.Get(i); }
|
|
128
|
+
///
|
|
129
|
+
int IsDelFace (int fn) const;
|
|
130
|
+
|
|
131
|
+
///
|
|
132
|
+
float CalcPointDist (int pi, const Point3d & p) const;
|
|
133
|
+
///
|
|
134
|
+
double PointDistFactor (int pi) const
|
|
135
|
+
{
|
|
136
|
+
return tolerances.Get(pi);
|
|
137
|
+
}
|
|
138
|
+
///
|
|
139
|
+
void SetFreeZoneTransformation (const Vector & allp,
|
|
140
|
+
int tolclass);
|
|
141
|
+
///
|
|
142
|
+
int IsInFreeZone (const Point3d & p) const;
|
|
143
|
+
/**
|
|
144
|
+
0 not in free-zone
|
|
145
|
+
1 in free-zone
|
|
146
|
+
-1 maybe
|
|
147
|
+
*/
|
|
148
|
+
int IsTriangleInFreeZone (const Point3d & p1, const Point3d & p2,
|
|
149
|
+
const Point3d & p3, const NgArray<int> & pi, int newone);
|
|
150
|
+
///
|
|
151
|
+
int IsQuadInFreeZone (const Point3d & p1, const Point3d & p2,
|
|
152
|
+
const Point3d & p3, const Point3d & p4,
|
|
153
|
+
const NgArray<int> & pi, int newone);
|
|
154
|
+
///
|
|
155
|
+
int IsTriangleInFreeSet (const Point3d & p1, const Point3d & p2,
|
|
156
|
+
const Point3d & p3, int fs, const NgArray<int> & pi, int newone);
|
|
157
|
+
|
|
158
|
+
///
|
|
159
|
+
int IsQuadInFreeSet (const Point3d & p1, const Point3d & p2,
|
|
160
|
+
const Point3d & p3, const Point3d & p4,
|
|
161
|
+
int fs, const NgArray<int> & pi, int newone);
|
|
162
|
+
|
|
163
|
+
///
|
|
164
|
+
int ConvexFreeZone () const;
|
|
165
|
+
|
|
166
|
+
/// if t1 and t2 are neighbourtriangles, NTP returns the opposite Point of t1 in t2
|
|
167
|
+
int NeighbourTrianglePoint (const threeint & t1, const threeint & t2) const;
|
|
168
|
+
///
|
|
169
|
+
const Point3d & GetTransFreeZone (int i) { return transfreezone.Get(i); }
|
|
170
|
+
|
|
171
|
+
///
|
|
172
|
+
int GetNP (int fn) const
|
|
173
|
+
{ return faces.Get(fn).GetNP(); }
|
|
174
|
+
///
|
|
175
|
+
PointIndex GetPointNr (int fn, int endp) const
|
|
176
|
+
{ return faces.Get(fn).PNum(endp); }
|
|
177
|
+
///
|
|
178
|
+
PointIndex GetPointNrMod (int fn, int endp) const
|
|
179
|
+
{ return faces.Get(fn).PNumMod(endp); }
|
|
180
|
+
///
|
|
181
|
+
const fourint & GetOrientation (int i) { return orientations.Get(i); }
|
|
182
|
+
|
|
183
|
+
///
|
|
184
|
+
int TestFlag (char flag) const;
|
|
185
|
+
|
|
186
|
+
///
|
|
187
|
+
const DenseMatrix & GetOldUToNewU () const { return oldutonewu; }
|
|
188
|
+
//
|
|
189
|
+
// const DenseMatrix & GetOldUToFreeZone () const { return oldutofreezone; }
|
|
190
|
+
//
|
|
191
|
+
// const DenseMatrix & GetOldUToFreeZoneLimit () const
|
|
192
|
+
// { return oldutofreezonelimit; }
|
|
193
|
+
///
|
|
194
|
+
const char * Name () const { return name; }
|
|
195
|
+
///
|
|
196
|
+
void LoadRule (istream & ist);
|
|
197
|
+
|
|
198
|
+
///
|
|
199
|
+
const NgArray<Point3d> & GetTransFreeZone () { return transfreezone; }
|
|
200
|
+
///
|
|
201
|
+
int TestOk () const;
|
|
202
|
+
|
|
203
|
+
///
|
|
204
|
+
friend void TestRules ();
|
|
205
|
+
///
|
|
206
|
+
// friend void Plot3DRule (const ROT3D & r, char key);
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
} // namespace netgen
|
|
210
|
+
#endif
|
|
211
|
+
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
#ifndef FILE_SOLDATA
|
|
2
|
+
#define FILE_SOLDATA
|
|
3
|
+
|
|
4
|
+
#include <myadt.hpp> // for tAVX
|
|
5
|
+
namespace netgen
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
using namespace std;
|
|
9
|
+
|
|
10
|
+
class SolutionData
|
|
11
|
+
{
|
|
12
|
+
protected:
|
|
13
|
+
|
|
14
|
+
string name;
|
|
15
|
+
int components;
|
|
16
|
+
bool iscomplex;
|
|
17
|
+
|
|
18
|
+
int multidimcomponent;
|
|
19
|
+
|
|
20
|
+
public:
|
|
21
|
+
SolutionData (const string & aname,
|
|
22
|
+
int acomponents = 1, bool aiscomplex = 0)
|
|
23
|
+
: name(aname), components(acomponents), iscomplex(aiscomplex)
|
|
24
|
+
{ ; }
|
|
25
|
+
|
|
26
|
+
virtual ~SolutionData ()
|
|
27
|
+
{ ; }
|
|
28
|
+
|
|
29
|
+
int GetComponents()
|
|
30
|
+
{
|
|
31
|
+
return components;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
bool IsComplex()
|
|
35
|
+
{
|
|
36
|
+
return iscomplex;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
virtual bool GetValue (int /* elnr */,
|
|
40
|
+
double /* lam1 */, double /* lam2 */, double /* lam3 */,
|
|
41
|
+
double * /* values */)
|
|
42
|
+
{
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
virtual bool GetValue (int selnr,
|
|
47
|
+
const double xref[], const double x[], const double dxdxref[],
|
|
48
|
+
double * values)
|
|
49
|
+
{
|
|
50
|
+
return GetValue (selnr, xref[0], xref[1], xref[2], values);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
virtual bool GetMultiValue (int elnr, int facetnr, int npts,
|
|
54
|
+
const double * xref, int sxref,
|
|
55
|
+
const double * x, int sx,
|
|
56
|
+
const double * dxdxref, int sdxdxref,
|
|
57
|
+
double * values, int svalues)
|
|
58
|
+
{
|
|
59
|
+
bool res = false;
|
|
60
|
+
for (int i = 0; i < npts; i++)
|
|
61
|
+
res = GetValue (elnr, &xref[i*sxref], &x[i*sx], &dxdxref[i*sdxdxref], &values[i*svalues]);
|
|
62
|
+
return res;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
virtual bool GetSurfValue (int /* selnr */, int facetnr,
|
|
68
|
+
double /* lam1 */, double /* lam2 */,
|
|
69
|
+
double * /* values */)
|
|
70
|
+
{
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
virtual bool GetSurfValue (int selnr, int facetnr,
|
|
76
|
+
const double xref[], const double x[], const double dxdxref[],
|
|
77
|
+
double * values)
|
|
78
|
+
{
|
|
79
|
+
return GetSurfValue (selnr, facetnr, xref[0], xref[1], values);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
virtual bool GetMultiSurfValue (int selnr, int facetnr, int npts,
|
|
84
|
+
const double * xref, int sxref,
|
|
85
|
+
const double * x, int sx,
|
|
86
|
+
const double * dxdxref, int sdxdxref,
|
|
87
|
+
double * values, int svalues)
|
|
88
|
+
{
|
|
89
|
+
bool res = false;
|
|
90
|
+
for (int i = 0; i < npts; i++)
|
|
91
|
+
res = GetSurfValue (selnr, facetnr, &xref[i*sxref], &x[i*sx], &dxdxref[i*sdxdxref], &values[i*svalues]);
|
|
92
|
+
return res;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
virtual bool GetMultiSurfValue (size_t selnr, size_t facetnr, size_t npts,
|
|
96
|
+
const SIMD<double> * xref,
|
|
97
|
+
const SIMD<double> * x,
|
|
98
|
+
const SIMD<double> * dxdxref,
|
|
99
|
+
SIMD<double> * values)
|
|
100
|
+
{
|
|
101
|
+
cerr << "GetMultiSurfVaue not overloaded for SIMD<double>" << endl;
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
virtual bool GetSegmentValue (int segnr, double xref, double * values)
|
|
106
|
+
{ return false; }
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
virtual int GetNumMultiDimComponents ()
|
|
110
|
+
{
|
|
111
|
+
return 1;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
virtual void SetMultiDimComponent (int mc)
|
|
115
|
+
{
|
|
116
|
+
if (mc >= GetNumMultiDimComponents()) mc = GetNumMultiDimComponents()-1;
|
|
117
|
+
if (mc < 0) mc = 0;
|
|
118
|
+
multidimcomponent = mc;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
class DLL_HEADER MouseEventHandler
|
|
124
|
+
{
|
|
125
|
+
public:
|
|
126
|
+
virtual void DblClick (int elnr, double x, double y, double z) = 0;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
class DLL_HEADER UserVisualizationObject
|
|
131
|
+
{
|
|
132
|
+
public:
|
|
133
|
+
virtual ~UserVisualizationObject() { ; }
|
|
134
|
+
virtual void Draw () = 0;
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
#endif
|
|
141
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#ifndef FILE_SPECIALS
|
|
2
|
+
#define FILE_SPECIALS
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
|
|
6
|
+
Very special implementations ..
|
|
7
|
+
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
namespace netgen {
|
|
11
|
+
///
|
|
12
|
+
DLL_HEADER extern void CutOffAndCombine (Mesh & mesh, const Mesh & othermesh);
|
|
13
|
+
|
|
14
|
+
DLL_HEADER extern void HelmholtzMesh (Mesh & mesh);
|
|
15
|
+
|
|
16
|
+
} // namespace netgen
|
|
17
|
+
#endif
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#ifndef FILE_SURFACEGEOM
|
|
2
|
+
#define FILE_SURFACEGEOM
|
|
3
|
+
|
|
4
|
+
/* *************************************************************************/
|
|
5
|
+
/* File: surfacegeom.hpp */
|
|
6
|
+
/* Author: Michael Neunteufel */
|
|
7
|
+
/* Date: Jun. 2020 */
|
|
8
|
+
/* *************************************************************************/
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
#include <functional>
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
namespace netgen
|
|
15
|
+
{
|
|
16
|
+
|
|
17
|
+
class DLL_HEADER SurfaceGeometry : public NetgenGeometry
|
|
18
|
+
{
|
|
19
|
+
function<Vec<3>(Point<2>)> func;
|
|
20
|
+
double eps=1e-4;
|
|
21
|
+
|
|
22
|
+
private:
|
|
23
|
+
|
|
24
|
+
void CalcHesse(double u, double v, Vec<3>& f_uu, Vec<3>& f_vv, Vec<3>& f_uv) const;
|
|
25
|
+
public:
|
|
26
|
+
|
|
27
|
+
SurfaceGeometry();
|
|
28
|
+
SurfaceGeometry(function<Vec<3>(Point<2>)> func);
|
|
29
|
+
SurfaceGeometry(const SurfaceGeometry& geom);
|
|
30
|
+
SurfaceGeometry& operator =(const SurfaceGeometry& geom)
|
|
31
|
+
{
|
|
32
|
+
func = geom.func;
|
|
33
|
+
eps = geom.eps;
|
|
34
|
+
return *this;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
Array<Vec<3>> GetTangentVectors(double u, double v) const;
|
|
38
|
+
|
|
39
|
+
void GetTangentVectors(double u, double v, Array<Vec<3>>& tang) const;
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
virtual Vec<3> GetNormal(int surfind, const Point<3> & p, const PointGeomInfo* gi) const override;
|
|
43
|
+
|
|
44
|
+
virtual PointGeomInfo ProjectPoint(int surfind, Point<3> & p) const override;
|
|
45
|
+
|
|
46
|
+
virtual void ProjectPointEdge (int surfind, int surfind2, Point<3> & p,
|
|
47
|
+
EdgePointGeomInfo* gi = nullptr) const override;
|
|
48
|
+
|
|
49
|
+
virtual bool ProjectPointGI (int surfind, Point<3> & p, PointGeomInfo & gi) const override;
|
|
50
|
+
|
|
51
|
+
virtual bool CalcPointGeomInfo(int surfind, PointGeomInfo& gi, const Point<3> & p3) const override;
|
|
52
|
+
|
|
53
|
+
virtual void PointBetweenEdge(const Point<3> & p1, const Point<3> & p2, double secpoint,
|
|
54
|
+
int surfi1, int surfi2,
|
|
55
|
+
const EdgePointGeomInfo & ap1,
|
|
56
|
+
const EdgePointGeomInfo & ap2,
|
|
57
|
+
Point<3> & newp, EdgePointGeomInfo & newgi) const override;
|
|
58
|
+
|
|
59
|
+
virtual void PointBetween(const Point<3> & p1, const Point<3> & p2, double secpoint,
|
|
60
|
+
int surfi,
|
|
61
|
+
const PointGeomInfo & gi1,
|
|
62
|
+
const PointGeomInfo & gi2,
|
|
63
|
+
Point<3> & newp, PointGeomInfo & newgi) const override;
|
|
64
|
+
|
|
65
|
+
int GenerateStructuredMesh(shared_ptr<Mesh> & mesh, bool quads, int nx, int ny, bool flip_triangles, const Array<Point<3>>& bbbpts, const Array<string>& bbbnames, const Array<Point<3>>& hppoints, const Array<float>& hpptsfac, const Array<string>& hpbnd, const Array<float>& hpbndfac, Array<double> layer_thickness[4], bool layer_quad);
|
|
66
|
+
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
#endif //SURFACEGEOM
|