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,53 @@
|
|
|
1
|
+
#ifndef FILE_BCFUNCTIONS
|
|
2
|
+
#define FILE_BCFUNCTIONS
|
|
3
|
+
|
|
4
|
+
// Philippose - 14/03/2009
|
|
5
|
+
// Auxiliary functions for OCC Geometry
|
|
6
|
+
// Use this file and the corresponding ".cpp"
|
|
7
|
+
// file to add miscellaneous functionality
|
|
8
|
+
// to the OpenCascade Geometry support in Netgen
|
|
9
|
+
namespace netgen
|
|
10
|
+
{
|
|
11
|
+
/*! \brief Automatically assign boundary conditions for meshes
|
|
12
|
+
|
|
13
|
+
This function allows the boundary condition numbers of a
|
|
14
|
+
mesh created in Netgen to be automatically assigned based on
|
|
15
|
+
the colours of each face.
|
|
16
|
+
|
|
17
|
+
Currently, two algorithms are utilised to assign the BC Properties:
|
|
18
|
+
1. Automatic assignment using a user defined colour profile file
|
|
19
|
+
which defines which RGB colours are to be assigned to which
|
|
20
|
+
BC Property number
|
|
21
|
+
- A default profile file exists in the Netgen folder called
|
|
22
|
+
"netgen.ocf"
|
|
23
|
+
|
|
24
|
+
2. The second algorithm uses the following automated algorithm:
|
|
25
|
+
- Extract all the colours present in the mesh
|
|
26
|
+
- Use colour index 0 (zero) for all faces with no colour defined
|
|
27
|
+
- Calculate the number of faces of the surface mesh for each colour
|
|
28
|
+
- Sort the number of surface elements in ascending order, with the
|
|
29
|
+
colour indices as a index
|
|
30
|
+
- Use the indices of the sorted array as the BC property number
|
|
31
|
+
|
|
32
|
+
Example: If there are 3 colours, present in the mesh and the number
|
|
33
|
+
of surface elements for each colour are:
|
|
34
|
+
- Colour 0: 8500
|
|
35
|
+
- Colour 1: 120
|
|
36
|
+
- Colour 2: 2200
|
|
37
|
+
- Colour 3: 575
|
|
38
|
+
|
|
39
|
+
The above is sorted in ascending order and assigned as BC Properties:
|
|
40
|
+
- BC Prop 0: 120 : Colour 1
|
|
41
|
+
- BC Prop 1: 575 : Colour 3
|
|
42
|
+
- BC Prop 2: 2200 : Colour 2
|
|
43
|
+
- BC Prop 3: 8500 : Colour 0 (no colour defined)
|
|
44
|
+
*/
|
|
45
|
+
//extern void OCCAutoColourBcProps(Mesh & mesh, OCCGeometry & occgeometry, const char *occcolourfile);
|
|
46
|
+
extern DLL_HEADER void AutoColourBcProps(Mesh & mesh, const char *bccolourfile);
|
|
47
|
+
|
|
48
|
+
extern DLL_HEADER void GetFaceColours(Mesh & mesh, NgArray<Vec<4>> & face_colours);
|
|
49
|
+
|
|
50
|
+
extern DLL_HEADER bool ColourMatch(Vec<4> col1, Vec<4> col2, double eps = 2.5e-05);
|
|
51
|
+
}
|
|
52
|
+
#endif
|
|
53
|
+
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#ifndef NETGEN_BISECT_HPP
|
|
2
|
+
#define NETGEN_BISECT_HPP
|
|
3
|
+
|
|
4
|
+
#include <mydefs.hpp>
|
|
5
|
+
#include <general/parthreads.hpp>
|
|
6
|
+
#include "basegeom.hpp"
|
|
7
|
+
#include "meshclass.hpp"
|
|
8
|
+
|
|
9
|
+
namespace netgen
|
|
10
|
+
{
|
|
11
|
+
|
|
12
|
+
class BisectionOptions
|
|
13
|
+
{
|
|
14
|
+
public:
|
|
15
|
+
const char * outfilename;
|
|
16
|
+
const char * mlfilename;
|
|
17
|
+
const char * refinementfilename;
|
|
18
|
+
const char * femcode;
|
|
19
|
+
int maxlevel;
|
|
20
|
+
int usemarkedelements;
|
|
21
|
+
bool refine_hp = false;
|
|
22
|
+
bool refine_p = false;
|
|
23
|
+
bool onlyonce = false;
|
|
24
|
+
NgTaskManager task_manager = &DummyTaskManager;
|
|
25
|
+
NgTracer tracer = &DummyTracer;
|
|
26
|
+
DLL_HEADER BisectionOptions ();
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
class ZRefinementOptions
|
|
30
|
+
{
|
|
31
|
+
public:
|
|
32
|
+
int minref;
|
|
33
|
+
DLL_HEADER ZRefinementOptions();
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
DLL_HEADER extern void BisectTetsCopyMesh (Mesh &, const NetgenGeometry *,
|
|
39
|
+
BisectionOptions & opt);
|
|
40
|
+
|
|
41
|
+
DLL_HEADER extern void ZRefinement (Mesh &, const class NetgenGeometry *,
|
|
42
|
+
ZRefinementOptions & opt);
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class DLL_HEADER Refinement
|
|
49
|
+
{
|
|
50
|
+
const NetgenGeometry& geo;
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
Refinement (const NetgenGeometry& ageo) : geo(ageo) {}
|
|
54
|
+
virtual ~Refinement () {}
|
|
55
|
+
|
|
56
|
+
void Refine (Mesh & mesh) const;
|
|
57
|
+
void Refine (Mesh & mesh);
|
|
58
|
+
void Bisect (Mesh & mesh, class BisectionOptions & opt, NgArray<double> * quality_loss = NULL) const;
|
|
59
|
+
|
|
60
|
+
void MakeSecondOrder (Mesh & mesh) const;
|
|
61
|
+
void MakeSecondOrder (Mesh & mesh);
|
|
62
|
+
|
|
63
|
+
void ValidateSecondOrder (Mesh & mesh);
|
|
64
|
+
void ValidateRefinedMesh (Mesh & mesh,
|
|
65
|
+
NgArray<INDEX_2> & parents);
|
|
66
|
+
|
|
67
|
+
virtual void LocalizeEdgePoints(Mesh & /* mesh */) const {;}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
} // namespace netgen
|
|
71
|
+
|
|
72
|
+
#endif // NETGEN_BISECT_HPP
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#ifndef NETGEN_BOUNDARYLAYER_HPP
|
|
2
|
+
#define NETGEN_BOUNDARYLAYER_HPP
|
|
3
|
+
|
|
4
|
+
#include <core/array.hpp>
|
|
5
|
+
#include <mystdlib.h>
|
|
6
|
+
#include <meshing.hpp>
|
|
7
|
+
|
|
8
|
+
namespace netgen
|
|
9
|
+
{
|
|
10
|
+
|
|
11
|
+
///
|
|
12
|
+
DLL_HEADER extern void InsertVirtualBoundaryLayer (Mesh& mesh);
|
|
13
|
+
|
|
14
|
+
/// Create a typical prismatic boundary layer on the given
|
|
15
|
+
/// surfaces
|
|
16
|
+
|
|
17
|
+
struct SpecialBoundaryPoint
|
|
18
|
+
{
|
|
19
|
+
struct GrowthGroup
|
|
20
|
+
{
|
|
21
|
+
Array<int> faces;
|
|
22
|
+
Vec<3> growth_vector;
|
|
23
|
+
Array<PointIndex> new_points;
|
|
24
|
+
|
|
25
|
+
GrowthGroup (FlatArray<int> faces_, FlatArray<Vec<3>> normals);
|
|
26
|
+
GrowthGroup (const GrowthGroup&) = default;
|
|
27
|
+
GrowthGroup () = default;
|
|
28
|
+
};
|
|
29
|
+
Array<GrowthGroup> growth_groups;
|
|
30
|
+
Vec<3> separating_direction;
|
|
31
|
+
|
|
32
|
+
SpecialBoundaryPoint (const std::map<int, Vec<3>>& normals);
|
|
33
|
+
SpecialBoundaryPoint () = default;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
DLL_HEADER void GenerateBoundaryLayer (Mesh& mesh,
|
|
37
|
+
const BoundaryLayerParameters& blp);
|
|
38
|
+
|
|
39
|
+
DLL_HEADER int /* new_domain_number */ GenerateBoundaryLayer2 (Mesh& mesh, int domain, const Array<double>& thicknesses, bool should_make_new_domain = true, const Array<int>& boundaries = Array<int>{});
|
|
40
|
+
|
|
41
|
+
class BoundaryLayerTool
|
|
42
|
+
{
|
|
43
|
+
public:
|
|
44
|
+
BoundaryLayerTool (Mesh& mesh_, const BoundaryLayerParameters& params_);
|
|
45
|
+
void ProcessParameters ();
|
|
46
|
+
void Perform ();
|
|
47
|
+
|
|
48
|
+
Mesh& mesh;
|
|
49
|
+
MeshTopology& topo;
|
|
50
|
+
BoundaryLayerParameters params;
|
|
51
|
+
Array<Vec<3>, PointIndex> growthvectors;
|
|
52
|
+
std::map<PointIndex, Vec<3>> non_bl_growth_vectors;
|
|
53
|
+
Table<SurfaceElementIndex, PointIndex> p2sel;
|
|
54
|
+
|
|
55
|
+
BitArray domains, is_edge_moved, is_boundary_projected, is_boundary_moved;
|
|
56
|
+
Array<SegmentIndex> moved_segs;
|
|
57
|
+
int max_edge_nr, nfd_old, ndom_old;
|
|
58
|
+
Array<int> new_mat_nrs;
|
|
59
|
+
BitArray moved_surfaces;
|
|
60
|
+
int np, nseg, nse, ne;
|
|
61
|
+
PointIndex first_new_pi;
|
|
62
|
+
double total_height;
|
|
63
|
+
Array<POINTTYPE, PointIndex> point_types;
|
|
64
|
+
|
|
65
|
+
// These parameters are derived from given BoundaryLayerParameters and the Mesh
|
|
66
|
+
Array<double> par_heights;
|
|
67
|
+
Array<int> par_surfid;
|
|
68
|
+
bool insert_only_volume_elements;
|
|
69
|
+
map<string, string> par_new_mat;
|
|
70
|
+
bool have_material_map = false;
|
|
71
|
+
Array<size_t> par_project_boundaries;
|
|
72
|
+
|
|
73
|
+
bool have_single_segments;
|
|
74
|
+
Array<Segment> old_segments, free_segments, segments, new_segments, new_segments_on_moved_bnd;
|
|
75
|
+
Array<Element2d, SurfaceElementIndex> new_sels, new_sels_on_moved_bnd;
|
|
76
|
+
Array<Array<PointIndex>, PointIndex> mapto;
|
|
77
|
+
Array<PointIndex, PointIndex> mapfrom;
|
|
78
|
+
|
|
79
|
+
Array<double> surfacefacs;
|
|
80
|
+
Array<int> si_map;
|
|
81
|
+
|
|
82
|
+
std::map<PointIndex, SpecialBoundaryPoint> special_boundary_points;
|
|
83
|
+
std::map<PointIndex, std::tuple<Vec<3>*, double>> growth_vector_map;
|
|
84
|
+
|
|
85
|
+
// major steps called in Perform()
|
|
86
|
+
void CreateNewFaceDescriptors ();
|
|
87
|
+
void CreateFaceDescriptorsSides ();
|
|
88
|
+
void CalculateGrowthVectors ();
|
|
89
|
+
Array<Array<pair<SegmentIndex, int>>, SegmentIndex> BuildSegMap ();
|
|
90
|
+
|
|
91
|
+
BitArray ProjectGrowthVectorsOnSurface ();
|
|
92
|
+
void InterpolateSurfaceGrowthVectors ();
|
|
93
|
+
void InterpolateGrowthVectors ();
|
|
94
|
+
void LimitGrowthVectorLengths ();
|
|
95
|
+
void FixSurfaceElements ();
|
|
96
|
+
|
|
97
|
+
void InsertNewElements (FlatArray<Array<pair<SegmentIndex, int>>, SegmentIndex> segmap, const BitArray& in_surface_direction);
|
|
98
|
+
void SetDomInOut ();
|
|
99
|
+
void SetDomInOutSides ();
|
|
100
|
+
void AddSegments ();
|
|
101
|
+
void AddSurfaceElements ();
|
|
102
|
+
|
|
103
|
+
Vec<3> getNormal (const Element2d& el)
|
|
104
|
+
{
|
|
105
|
+
auto v0 = mesh[el[0]];
|
|
106
|
+
return Cross(mesh[el[1]] - v0, mesh[el[2]] - v0).Normalize();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
Vec<3> getEdgeTangent (PointIndex pi, int edgenr, FlatArray<Segment*> segs);
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
} // namespace netgen
|
|
113
|
+
#endif // NETGEN_BOUNDARYLAYER_HPP
|