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,113 @@
|
|
|
1
|
+
#ifndef FILE_EXPLICITCURVE2D
|
|
2
|
+
#define FILE_EXPLICITCURVE2D
|
|
3
|
+
|
|
4
|
+
/**************************************************************************/
|
|
5
|
+
/* File: explicitcurve2d.hh */
|
|
6
|
+
/* Author: Joachim Schoeberl */
|
|
7
|
+
/* Date: 14. Oct. 96 */
|
|
8
|
+
/**************************************************************************/
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
namespace netgen
|
|
12
|
+
{
|
|
13
|
+
|
|
14
|
+
/*
|
|
15
|
+
|
|
16
|
+
Explicit 2D Curve representation
|
|
17
|
+
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
///
|
|
23
|
+
class ExplicitCurve2d : public Curve2d
|
|
24
|
+
{
|
|
25
|
+
public:
|
|
26
|
+
///
|
|
27
|
+
ExplicitCurve2d ();
|
|
28
|
+
|
|
29
|
+
///
|
|
30
|
+
virtual void Project (Point<2> & p) const;
|
|
31
|
+
///
|
|
32
|
+
virtual double ProjectParam (const Point<2> & p) const = 0;
|
|
33
|
+
///
|
|
34
|
+
virtual double NumericalProjectParam (const Point<2> & p, double lb, double ub) const;
|
|
35
|
+
///
|
|
36
|
+
virtual double MinParam () const = 0;
|
|
37
|
+
///
|
|
38
|
+
virtual double MaxParam () const = 0;
|
|
39
|
+
///
|
|
40
|
+
virtual Point<2> Eval (double t) const = 0;
|
|
41
|
+
///
|
|
42
|
+
virtual Vec<2> EvalPrime (double t) const = 0;
|
|
43
|
+
///
|
|
44
|
+
virtual Vec<2> Normal (double t) const;
|
|
45
|
+
///
|
|
46
|
+
virtual void NormalVector (const Point<2> & p, Vec<2> & n) const;
|
|
47
|
+
///
|
|
48
|
+
virtual Vec<2> EvalPrimePrime (double t) const = 0;
|
|
49
|
+
|
|
50
|
+
///
|
|
51
|
+
virtual double MaxCurvature () const;
|
|
52
|
+
///
|
|
53
|
+
virtual double MaxCurvatureLoc (const Point<2> & p, double rad) const;
|
|
54
|
+
|
|
55
|
+
///
|
|
56
|
+
virtual Point<2> CurvCircle (double t) const;
|
|
57
|
+
///
|
|
58
|
+
virtual void Print (ostream & /* str */) const { };
|
|
59
|
+
|
|
60
|
+
///
|
|
61
|
+
virtual int SectionUsed (double /* t */) const { return 1; }
|
|
62
|
+
///
|
|
63
|
+
virtual void Reduce (const Point<2> & /* p */, double /* rad */) { };
|
|
64
|
+
///
|
|
65
|
+
virtual void UnReduce () { };
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
///
|
|
70
|
+
class BSplineCurve2d : public ExplicitCurve2d
|
|
71
|
+
{
|
|
72
|
+
///
|
|
73
|
+
NgArray<Point<2> > points;
|
|
74
|
+
///
|
|
75
|
+
NgArray<int> intervallused;
|
|
76
|
+
///
|
|
77
|
+
int redlevel;
|
|
78
|
+
|
|
79
|
+
public:
|
|
80
|
+
///
|
|
81
|
+
BSplineCurve2d ();
|
|
82
|
+
///
|
|
83
|
+
void AddPoint (const Point<2> & apoint);
|
|
84
|
+
|
|
85
|
+
bool Inside (const Point<2> & p, double & dist) const;
|
|
86
|
+
|
|
87
|
+
///
|
|
88
|
+
virtual double ProjectParam (const Point<2> & p) const;
|
|
89
|
+
///
|
|
90
|
+
virtual double MinParam () const { return 0; }
|
|
91
|
+
///
|
|
92
|
+
virtual double MaxParam () const { return points.Size(); }
|
|
93
|
+
///
|
|
94
|
+
virtual Point<2> Eval (double t) const;
|
|
95
|
+
///
|
|
96
|
+
virtual Vec<2> EvalPrime (double t) const;
|
|
97
|
+
///
|
|
98
|
+
virtual Vec<2> EvalPrimePrime (double t) const;
|
|
99
|
+
///
|
|
100
|
+
virtual void Print (ostream & str) const;
|
|
101
|
+
|
|
102
|
+
///
|
|
103
|
+
virtual int SectionUsed (double t) const;
|
|
104
|
+
///
|
|
105
|
+
virtual void Reduce (const Point<2> & p, double rad);
|
|
106
|
+
///
|
|
107
|
+
virtual void UnReduce ();
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
#endif
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
#ifndef _EXTRUSION_HPP
|
|
2
|
+
#define _EXTRUSION_HPP
|
|
3
|
+
|
|
4
|
+
namespace netgen
|
|
5
|
+
{
|
|
6
|
+
|
|
7
|
+
class Extrusion;
|
|
8
|
+
|
|
9
|
+
class ExtrusionFace : public Surface
|
|
10
|
+
{
|
|
11
|
+
private:
|
|
12
|
+
const SplineSeg<2> * profile;
|
|
13
|
+
const SplineGeometry<3> * path;
|
|
14
|
+
Vec<3> glob_z_direction;
|
|
15
|
+
Array<double> angles;
|
|
16
|
+
|
|
17
|
+
bool deletable;
|
|
18
|
+
int tangential_plane_seg;
|
|
19
|
+
|
|
20
|
+
NgArray< const SplineSeg3<3> * > spline3_path;
|
|
21
|
+
NgArray< const LineSeg<3> * > line_path;
|
|
22
|
+
|
|
23
|
+
mutable NgArray < Vec<3> > x_dir, y_dir, z_dir, loc_z_dir;
|
|
24
|
+
mutable NgArray < Point<3> > p0;
|
|
25
|
+
|
|
26
|
+
mutable Vec<3> profile_tangent;
|
|
27
|
+
mutable double profile_par;
|
|
28
|
+
|
|
29
|
+
mutable Vector profile_spline_coeff;
|
|
30
|
+
|
|
31
|
+
mutable int latest_seg;
|
|
32
|
+
mutable double latest_t;
|
|
33
|
+
mutable Point<2> latest_point2d;
|
|
34
|
+
mutable Point<3> latest_point3d;
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
private:
|
|
38
|
+
void Orthogonalize(const Vec<3> & v1, Vec<3> & v2) const;
|
|
39
|
+
|
|
40
|
+
void Init(void);
|
|
41
|
+
|
|
42
|
+
public:
|
|
43
|
+
double CalcProj(const Point<3> & point3d, Point<2> & point2d,
|
|
44
|
+
int seg) const;
|
|
45
|
+
void CalcProj(const Point<3> & point3d, Point<2> & point2d,
|
|
46
|
+
int & seg, double & t) const;
|
|
47
|
+
|
|
48
|
+
public:
|
|
49
|
+
ExtrusionFace(const SplineSeg<2> * profile_in,
|
|
50
|
+
const SplineGeometry<3> * path_in,
|
|
51
|
+
const Vec<3> & z_direction);
|
|
52
|
+
|
|
53
|
+
ExtrusionFace(const NgArray<double> & raw_data);
|
|
54
|
+
// default constructor for archive
|
|
55
|
+
ExtrusionFace() {}
|
|
56
|
+
|
|
57
|
+
~ExtrusionFace();
|
|
58
|
+
|
|
59
|
+
void DoArchive(Archive& ar) override
|
|
60
|
+
{
|
|
61
|
+
Surface::DoArchive(ar);
|
|
62
|
+
ar & profile & path & glob_z_direction & deletable & spline3_path & line_path &
|
|
63
|
+
x_dir & y_dir & z_dir & loc_z_dir & p0 & profile_tangent & profile_par &
|
|
64
|
+
profile_spline_coeff & latest_seg & latest_t & latest_point2d & latest_point3d;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
int IsIdentic (const Surface & s2, int & inv, double eps) const override;
|
|
68
|
+
|
|
69
|
+
double CalcFunctionValue (const Point<3> & point) const override;
|
|
70
|
+
void CalcGradient (const Point<3> & point, Vec<3> & grad) const override;
|
|
71
|
+
void CalcHesse (const Point<3> & point, Mat<3> & hesse) const override;
|
|
72
|
+
double HesseNorm () const override;
|
|
73
|
+
|
|
74
|
+
double MaxCurvature () const override;
|
|
75
|
+
//virtual double MaxCurvatureLoc (const Point<3> & /* c */ ,
|
|
76
|
+
// double /* rad */) const;
|
|
77
|
+
|
|
78
|
+
void Project (Point<3> & p) const override;
|
|
79
|
+
|
|
80
|
+
Point<3> GetSurfacePoint () const override;
|
|
81
|
+
void Print (ostream & str) const override;
|
|
82
|
+
|
|
83
|
+
void GetTriangleApproximation (TriangleApproximation & tas,
|
|
84
|
+
const Box<3> & boundingbox,
|
|
85
|
+
double facets) const override;
|
|
86
|
+
|
|
87
|
+
const SplineGeometry<3> & GetPath(void) const {return *path;}
|
|
88
|
+
const SplineSeg<2> & GetProfile(void) const {return *profile;}
|
|
89
|
+
|
|
90
|
+
bool BoxIntersectsFace(const Box<3> & box) const;
|
|
91
|
+
|
|
92
|
+
void LineIntersections ( const Point<3> & p,
|
|
93
|
+
const Vec<3> & v,
|
|
94
|
+
const double eps,
|
|
95
|
+
int & before,
|
|
96
|
+
int & after,
|
|
97
|
+
bool & intersecting ) const;
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
bool PointInFace (const Point<3> & p, const double eps) const;
|
|
101
|
+
|
|
102
|
+
INSOLID_TYPE VecInFace ( const Point<3> & p,
|
|
103
|
+
const Vec<3> & v,
|
|
104
|
+
const double eps ) const;
|
|
105
|
+
|
|
106
|
+
const Vec<3> & GetYDir ( void ) const {return y_dir[latest_seg];}
|
|
107
|
+
const Vec<3> & GetProfileTangent (void) const {return profile_tangent;}
|
|
108
|
+
double GetProfilePar(void) const {return profile_par;}
|
|
109
|
+
|
|
110
|
+
void GetRawData(NgArray<double> & data) const;
|
|
111
|
+
|
|
112
|
+
void CalcLocalCoordinates (int seg, double t,
|
|
113
|
+
Vec<3> & ex, Vec<3> & ey, Vec<3> & ez) const;
|
|
114
|
+
|
|
115
|
+
void CalcLocalCoordinatesDeriv (int seg, double t,
|
|
116
|
+
Vec<3> & ex, Vec<3> & ey, Vec<3> & ez,
|
|
117
|
+
Vec<3> & dex, Vec<3> & dey, Vec<3> & dez) const;
|
|
118
|
+
|
|
119
|
+
void DefineTangentialPlane(const Point<3>& ap1,
|
|
120
|
+
const Point<3>& ap2) override;
|
|
121
|
+
void ToPlane(const Point<3>& p3d, Point<2>& p2d,
|
|
122
|
+
double h, int& zone) const override;
|
|
123
|
+
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
class Extrusion : public Primitive
|
|
129
|
+
{
|
|
130
|
+
private:
|
|
131
|
+
shared_ptr<SplineGeometry<3>> path;
|
|
132
|
+
shared_ptr<SplineGeometry<2>> profile; // closed, clockwise oriented curve
|
|
133
|
+
|
|
134
|
+
Vec<3> z_direction;
|
|
135
|
+
|
|
136
|
+
NgArray<ExtrusionFace*> faces;
|
|
137
|
+
|
|
138
|
+
mutable int latestfacenum;
|
|
139
|
+
|
|
140
|
+
public:
|
|
141
|
+
Extrusion(shared_ptr<SplineGeometry<3>> path_in,
|
|
142
|
+
shared_ptr<SplineGeometry<2>> profile_in,
|
|
143
|
+
const Vec<3> & z_dir);
|
|
144
|
+
// default constructor for archive
|
|
145
|
+
Extrusion() {}
|
|
146
|
+
~Extrusion();
|
|
147
|
+
|
|
148
|
+
void DoArchive(Archive& ar) override
|
|
149
|
+
{
|
|
150
|
+
Primitive::DoArchive(ar);
|
|
151
|
+
ar & path & profile & z_direction & faces & latestfacenum;
|
|
152
|
+
}
|
|
153
|
+
INSOLID_TYPE BoxInSolid (const BoxSphere<3> & box) const override;
|
|
154
|
+
INSOLID_TYPE PointInSolid (const Point<3> & p,
|
|
155
|
+
double eps) const override;
|
|
156
|
+
INSOLID_TYPE PointInSolid (const Point<3> & p,
|
|
157
|
+
double eps,
|
|
158
|
+
NgArray<int> * const facenums) const;
|
|
159
|
+
|
|
160
|
+
void GetTangentialSurfaceIndices (const Point<3> & p,
|
|
161
|
+
NgArray<int> & surfind, double eps) const override;
|
|
162
|
+
|
|
163
|
+
INSOLID_TYPE VecInSolid (const Point<3> & p,
|
|
164
|
+
const Vec<3> & v,
|
|
165
|
+
double eps) const override;
|
|
166
|
+
|
|
167
|
+
// checks if lim s->0 lim t->0 p + t(v1 + s v2) in solid
|
|
168
|
+
INSOLID_TYPE VecInSolid2 (const Point<3> & p,
|
|
169
|
+
const Vec<3> & v1,
|
|
170
|
+
const Vec<3> & v2,
|
|
171
|
+
double eps) const override;
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
int GetNSurfaces() const override;
|
|
175
|
+
Surface & GetSurface (int i = 0) override;
|
|
176
|
+
const Surface & GetSurface (int i = 0) const override;
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
void Reduce (const BoxSphere<3> & box) override;
|
|
180
|
+
void UnReduce () override;
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
#endif //_EXTRUSION_HPP
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#ifndef FILE_GENCYL
|
|
2
|
+
#define FILE_GENCYL
|
|
3
|
+
|
|
4
|
+
/**************************************************************************/
|
|
5
|
+
/* File: gencyl.hh */
|
|
6
|
+
/* Author: Joachim Schoeberl */
|
|
7
|
+
/* Date: 14. Oct. 96 */
|
|
8
|
+
/**************************************************************************/
|
|
9
|
+
|
|
10
|
+
namespace netgen
|
|
11
|
+
{
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
/*
|
|
15
|
+
|
|
16
|
+
Generalized Cylinder
|
|
17
|
+
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
///
|
|
22
|
+
class GeneralizedCylinder : public Surface
|
|
23
|
+
{
|
|
24
|
+
///
|
|
25
|
+
ExplicitCurve2d & crosssection;
|
|
26
|
+
///
|
|
27
|
+
Point<3> planep;
|
|
28
|
+
///
|
|
29
|
+
Vec<3> planee1, planee2, planee3;
|
|
30
|
+
|
|
31
|
+
/// Vec<3> ex, ey, ez;
|
|
32
|
+
Vec2d e2x, e2y;
|
|
33
|
+
///
|
|
34
|
+
Point<3> cp;
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
///
|
|
38
|
+
GeneralizedCylinder (ExplicitCurve2d & acrosssection,
|
|
39
|
+
Point<3> ap, Vec<3> ae1, Vec<3> ae2);
|
|
40
|
+
|
|
41
|
+
///
|
|
42
|
+
virtual void Project (Point<3> & p) const;
|
|
43
|
+
|
|
44
|
+
///
|
|
45
|
+
virtual int BoxInSolid (const BoxSphere<3> & box) const;
|
|
46
|
+
/// 0 .. no, 1 .. yes, 2 .. maybe
|
|
47
|
+
|
|
48
|
+
virtual double CalcFunctionValue (const Point<3> & point) const;
|
|
49
|
+
///
|
|
50
|
+
virtual void CalcGradient (const Point<3> & point, Vec<3> & grad) const;
|
|
51
|
+
///
|
|
52
|
+
virtual void CalcHesse (const Point<3> & point, Mat<3> & hesse) const;
|
|
53
|
+
///
|
|
54
|
+
virtual double HesseNorm () const;
|
|
55
|
+
///
|
|
56
|
+
virtual double MaxCurvatureLoc (const Point<3> & c, double rad) const;
|
|
57
|
+
///
|
|
58
|
+
virtual Point<3> GetSurfacePoint () const;
|
|
59
|
+
///
|
|
60
|
+
virtual void Print (ostream & str) const;
|
|
61
|
+
|
|
62
|
+
///
|
|
63
|
+
virtual void Reduce (const BoxSphere<3> & box);
|
|
64
|
+
///
|
|
65
|
+
virtual void UnReduce ();
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
#endif
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#ifndef FILE_GEOML
|
|
2
|
+
#define FILE_GEOML
|
|
3
|
+
|
|
4
|
+
/* *************************************************************************/
|
|
5
|
+
/* File: geoml.hh */
|
|
6
|
+
/* Author: Joachim Schoeberl */
|
|
7
|
+
/* Date: 21. Jun. 98 */
|
|
8
|
+
/* *************************************************************************/
|
|
9
|
+
|
|
10
|
+
#include <geom/geom.hh>
|
|
11
|
+
|
|
12
|
+
#include <geom/solid.hh>
|
|
13
|
+
#include <geom/algprim.hh>
|
|
14
|
+
#include <geom/adtree.hh>
|
|
15
|
+
#include <geom/csgeom.hh>
|
|
16
|
+
#endif
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
|
|
2
|
+
#ifndef FILE_IDENTIFY
|
|
3
|
+
#define FILE_IDENTIFY
|
|
4
|
+
|
|
5
|
+
/**************************************************************************/
|
|
6
|
+
/* File: identify.hh */
|
|
7
|
+
/* Author: Joachim Schoeberl */
|
|
8
|
+
/* Date: 1. Aug. 99 */
|
|
9
|
+
/**************************************************************************/
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
namespace netgen
|
|
13
|
+
{
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
Identify surfaces for periodic b.c. or
|
|
17
|
+
thin domains
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class SpecialPoint;
|
|
22
|
+
class Identification
|
|
23
|
+
{
|
|
24
|
+
protected:
|
|
25
|
+
const CSGeometry & geom;
|
|
26
|
+
// identified faces, index sorted
|
|
27
|
+
INDEX_2_HASHTABLE<int> identfaces;
|
|
28
|
+
int nr;
|
|
29
|
+
|
|
30
|
+
public:
|
|
31
|
+
DLL_HEADER Identification (int anr, const CSGeometry & ageom);
|
|
32
|
+
DLL_HEADER virtual ~Identification ();
|
|
33
|
+
DLL_HEADER virtual void Print (ostream & ost) const = 0;
|
|
34
|
+
DLL_HEADER virtual void GetData (ostream & ost) const = 0;
|
|
35
|
+
|
|
36
|
+
/// obsolete
|
|
37
|
+
// virtual void IdentifySpecialPoints (NgArray<class SpecialPoint> & points);
|
|
38
|
+
|
|
39
|
+
/// can identify both special points (fixed direction)
|
|
40
|
+
/// (identified points, same tangent)
|
|
41
|
+
virtual int Identifiable (const SpecialPoint & sp1, const SpecialPoint & sp2,
|
|
42
|
+
const TABLE<int> & specpoint2solid,
|
|
43
|
+
const TABLE<int> & specpoint2surface) const;
|
|
44
|
+
///
|
|
45
|
+
virtual int Identifiable (const Point<3> & p1, const Point<3> & sp2) const;
|
|
46
|
+
/// is it possible to identify sp1 with some other ?
|
|
47
|
+
virtual int IdentifiableCandidate (const SpecialPoint & sp1) const;
|
|
48
|
+
|
|
49
|
+
/// are points (if connected) by a short edge (direction anyhow) ?
|
|
50
|
+
virtual int ShortEdge (const SpecialPoint & sp1, const SpecialPoint & sp2) const;
|
|
51
|
+
|
|
52
|
+
/// add entries in mesh identification tables
|
|
53
|
+
virtual void IdentifyPoints (class Mesh & mesh);
|
|
54
|
+
|
|
55
|
+
/// add entries to identified faces (based on segment infos)
|
|
56
|
+
virtual void IdentifyFaces (class Mesh & mesh);
|
|
57
|
+
|
|
58
|
+
/// get point on other surface, add entry in mesh identifications
|
|
59
|
+
virtual PointIndex GetIdentifiedPoint (class Mesh & mesh, PointIndex pi1);
|
|
60
|
+
|
|
61
|
+
/// copy surfaces, or fill rectangles
|
|
62
|
+
virtual void BuildSurfaceElements (NgArray<class Segment> & segs,
|
|
63
|
+
class Mesh & mesh,
|
|
64
|
+
const Surface * surf);
|
|
65
|
+
|
|
66
|
+
/// insert volume elements in thin layers
|
|
67
|
+
virtual void BuildVolumeElements (NgArray<class Element2d> & surfels,
|
|
68
|
+
class Mesh & mesh);
|
|
69
|
+
|
|
70
|
+
/// get list of identified faces
|
|
71
|
+
virtual void GetIdentifiedFaces (NgArray<INDEX_2> & idfaces) const;
|
|
72
|
+
|
|
73
|
+
friend ostream & operator<< (ostream & ost, Identification & ident);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class PeriodicIdentification : public Identification
|
|
78
|
+
{
|
|
79
|
+
const Surface * s1;
|
|
80
|
+
const Surface * s2;
|
|
81
|
+
Transformation<3> trafo; // from s1 to s2
|
|
82
|
+
Transformation<3> inv_trafo; // from s2 to s1
|
|
83
|
+
public:
|
|
84
|
+
PeriodicIdentification (int anr,
|
|
85
|
+
const CSGeometry & ageom,
|
|
86
|
+
const Surface * as1,
|
|
87
|
+
const Surface * as2,
|
|
88
|
+
Transformation<3> atrafo = Vec<3>(0,0,0));
|
|
89
|
+
virtual ~PeriodicIdentification () override;
|
|
90
|
+
virtual void Print (ostream & ost) const override;
|
|
91
|
+
virtual void GetData (ostream & ost) const override;
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
// virtual void IdentifySpecialPoints (NgArray<class SpecialPoint> & points);
|
|
95
|
+
virtual int Identifiable (const SpecialPoint & sp1, const SpecialPoint & sp2,
|
|
96
|
+
const TABLE<int> & specpoint2solid,
|
|
97
|
+
const TABLE<int> & specpoint2surface) const override;
|
|
98
|
+
|
|
99
|
+
virtual int Identifiable (const Point<3> & p1, const Point<3> & sp2) const override;
|
|
100
|
+
virtual PointIndex GetIdentifiedPoint (class Mesh & mesh, PointIndex pi1) override;
|
|
101
|
+
virtual void IdentifyPoints (class Mesh & mesh) override;
|
|
102
|
+
virtual void IdentifyFaces (class Mesh & mesh) override;
|
|
103
|
+
virtual void BuildSurfaceElements (NgArray<class Segment> & segs,
|
|
104
|
+
class Mesh & mesh,
|
|
105
|
+
const Surface * surf) override;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
///
|
|
110
|
+
class TopLevelObject;
|
|
111
|
+
class CloseSurfaceIdentification : public Identification
|
|
112
|
+
{
|
|
113
|
+
const Surface * s1;
|
|
114
|
+
const Surface * s2;
|
|
115
|
+
const TopLevelObject * domain;
|
|
116
|
+
///
|
|
117
|
+
int dom_nr;
|
|
118
|
+
/// number of refinement levels (in Z-refinement)
|
|
119
|
+
int ref_levels;
|
|
120
|
+
/// number of refinement levels for layer next to s1 (in Z-refinement)
|
|
121
|
+
int ref_levels_s1;
|
|
122
|
+
/// number of refinement levels for layer next to s2 (in Z-refinement)
|
|
123
|
+
int ref_levels_s2;
|
|
124
|
+
///
|
|
125
|
+
double eps_n;
|
|
126
|
+
Array<double> slices;
|
|
127
|
+
/// used only for domain-local identification:
|
|
128
|
+
NgArray<int> domain_surfaces;
|
|
129
|
+
///
|
|
130
|
+
bool dom_surf_valid;
|
|
131
|
+
|
|
132
|
+
///
|
|
133
|
+
Vec<3> direction;
|
|
134
|
+
///
|
|
135
|
+
bool usedirection;
|
|
136
|
+
public:
|
|
137
|
+
CloseSurfaceIdentification (int anr,
|
|
138
|
+
const CSGeometry & ageom,
|
|
139
|
+
const Surface * as1,
|
|
140
|
+
const Surface * as2,
|
|
141
|
+
const TopLevelObject * adomain,
|
|
142
|
+
const Flags & flags);
|
|
143
|
+
virtual ~CloseSurfaceIdentification ();
|
|
144
|
+
|
|
145
|
+
virtual void Print (ostream & ost) const;
|
|
146
|
+
virtual void GetData (ostream & ost) const;
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
// virtual void IdentifySpecialPoints (NgArray<class SpecialPoint> & points);
|
|
150
|
+
virtual int Identifiable (const SpecialPoint & sp1, const SpecialPoint & sp2,
|
|
151
|
+
const TABLE<int> & specpoint2solid,
|
|
152
|
+
const TABLE<int> & specpoint2surface) const;
|
|
153
|
+
virtual int Identifiable (const Point<3> & p1, const Point<3> & sp2) const;
|
|
154
|
+
virtual int IdentifiableCandidate (const SpecialPoint & sp1) const;
|
|
155
|
+
virtual int ShortEdge (const SpecialPoint & sp1, const SpecialPoint & sp2) const;
|
|
156
|
+
virtual PointIndex GetIdentifiedPoint (class Mesh & mesh, PointIndex pi1);
|
|
157
|
+
const Array<double> & GetSlices () const { return slices; }
|
|
158
|
+
virtual void IdentifyPoints (class Mesh & mesh);
|
|
159
|
+
virtual void IdentifyFaces (class Mesh & mesh);
|
|
160
|
+
virtual void BuildSurfaceElements (NgArray<class Segment> & segs,
|
|
161
|
+
class Mesh & mesh,
|
|
162
|
+
const Surface * surf);
|
|
163
|
+
void BuildSurfaceElements2 (NgArray<class Segment> & segs,
|
|
164
|
+
class Mesh & mesh,
|
|
165
|
+
const Surface * surf);
|
|
166
|
+
|
|
167
|
+
virtual void BuildVolumeElements (NgArray<class Element2d> & surfels,
|
|
168
|
+
class Mesh & mesh);
|
|
169
|
+
|
|
170
|
+
int RefLevels () const { return ref_levels; }
|
|
171
|
+
int RefLevels1 () const { return ref_levels_s1; }
|
|
172
|
+
int RefLevels2 () const { return ref_levels_s2; }
|
|
173
|
+
|
|
174
|
+
bool IsSkewIdentification(void) const {return usedirection;}
|
|
175
|
+
const Vec<3> & GetDirection(void) const {return direction;}
|
|
176
|
+
|
|
177
|
+
const Surface & GetSurface1(void) const
|
|
178
|
+
{ return *s1;}
|
|
179
|
+
const Surface & GetSurface2(void) const
|
|
180
|
+
{ return *s2;}
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
class CloseEdgesIdentification : public Identification
|
|
185
|
+
{
|
|
186
|
+
const Surface * facet;
|
|
187
|
+
const Surface * s1;
|
|
188
|
+
const Surface * s2;
|
|
189
|
+
public:
|
|
190
|
+
CloseEdgesIdentification (int anr,
|
|
191
|
+
const CSGeometry & ageom,
|
|
192
|
+
const Surface * afacet,
|
|
193
|
+
const Surface * as1,
|
|
194
|
+
const Surface * as2);
|
|
195
|
+
virtual ~CloseEdgesIdentification ();
|
|
196
|
+
virtual void Print (ostream & ost) const;
|
|
197
|
+
virtual void GetData (ostream & ost) const;
|
|
198
|
+
|
|
199
|
+
// virtual void IdentifySpecialPoints (NgArray<class SpecialPoint> & points);
|
|
200
|
+
virtual int Identifiable (const SpecialPoint & sp1, const SpecialPoint & sp2,
|
|
201
|
+
const TABLE<int> & specpoint2solid,
|
|
202
|
+
const TABLE<int> & specpoint2surface) const;
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
virtual void IdentifyPoints (class Mesh & mesh);
|
|
206
|
+
virtual void BuildSurfaceElements (NgArray<class Segment> & segs,
|
|
207
|
+
class Mesh & mesh,
|
|
208
|
+
const Surface * surf);
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
#endif
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#ifndef FILE_MANIFOLD
|
|
2
|
+
#define FILE_MANIFOLD
|
|
3
|
+
|
|
4
|
+
/**************************************************************************/
|
|
5
|
+
/* File: manifold.hh */
|
|
6
|
+
/* Author: Joachim Schoeberl */
|
|
7
|
+
/* Date: 7. Aug. 96 */
|
|
8
|
+
/**************************************************************************/
|
|
9
|
+
|
|
10
|
+
namespace netgen
|
|
11
|
+
{
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
Basis class for manifolds in 2d and 3d
|
|
16
|
+
*/
|
|
17
|
+
class Manifold
|
|
18
|
+
{
|
|
19
|
+
public:
|
|
20
|
+
///
|
|
21
|
+
Manifold ();
|
|
22
|
+
///
|
|
23
|
+
virtual ~Manifold ();
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
#endif
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#ifndef FILE_MESHSURF
|
|
2
|
+
#define FILE_MESHSURF
|
|
3
|
+
|
|
4
|
+
namespace netgen
|
|
5
|
+
{
|
|
6
|
+
|
|
7
|
+
///
|
|
8
|
+
class Meshing2Surfaces : public Meshing2
|
|
9
|
+
{
|
|
10
|
+
///
|
|
11
|
+
const Surface & surface;
|
|
12
|
+
|
|
13
|
+
/// should be movec to base ...
|
|
14
|
+
const MeshingParameters & mparam;
|
|
15
|
+
public:
|
|
16
|
+
///
|
|
17
|
+
// Meshing2Surfaces (const Surface & asurf);
|
|
18
|
+
///
|
|
19
|
+
Meshing2Surfaces (const CSGeometry& geo,
|
|
20
|
+
const Surface & asurf,
|
|
21
|
+
const MeshingParameters & mp,
|
|
22
|
+
const Box<3> & aboundingbox);
|
|
23
|
+
|
|
24
|
+
protected:
|
|
25
|
+
///
|
|
26
|
+
void DefineTransformation(const Point<3> & p1,
|
|
27
|
+
const Point<3> & p2,
|
|
28
|
+
const PointGeomInfo * geominfo1,
|
|
29
|
+
const PointGeomInfo * geominfo2) override;
|
|
30
|
+
///
|
|
31
|
+
void TransformToPlain(const Point<3> & locpoint,
|
|
32
|
+
const MultiPointGeomInfo & geominfo,
|
|
33
|
+
Point<2> & plainpoint,
|
|
34
|
+
double h, int & zone) override;
|
|
35
|
+
///
|
|
36
|
+
int TransformFromPlain(const Point<2>& plainpoint,
|
|
37
|
+
Point<3>& locpoint,
|
|
38
|
+
PointGeomInfo & gi,
|
|
39
|
+
double h) override;
|
|
40
|
+
///
|
|
41
|
+
double CalcLocalH(const Point<3> & p, double gh) const override;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
#endif
|
|
46
|
+
|