ngsolve 6.2.2506.post74.dev0__cp314-cp314-macosx_10_15_universal2.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.
Potentially problematic release.
This version of ngsolve might be problematic. Click here for more details.
- netgen/include/analytic_integrals.hpp +10 -0
- netgen/include/arnoldi.hpp +55 -0
- netgen/include/bandmatrix.hpp +334 -0
- netgen/include/basematrix.hpp +957 -0
- netgen/include/basevector.hpp +1268 -0
- netgen/include/bdbequations.hpp +2805 -0
- netgen/include/bdbintegrator.hpp +1660 -0
- netgen/include/bem_diffops.hpp +475 -0
- netgen/include/bessel.hpp +1064 -0
- netgen/include/bilinearform.hpp +963 -0
- netgen/include/bla.hpp +29 -0
- netgen/include/blockalloc.hpp +95 -0
- netgen/include/blockjacobi.hpp +328 -0
- netgen/include/bspline.hpp +116 -0
- netgen/include/calcinverse.hpp +141 -0
- netgen/include/cg.hpp +368 -0
- netgen/include/chebyshev.hpp +44 -0
- netgen/include/cholesky.hpp +720 -0
- netgen/include/clapack.h +7254 -0
- netgen/include/code_generation.hpp +296 -0
- netgen/include/coefficient.hpp +2033 -0
- netgen/include/coefficient_impl.hpp +19 -0
- netgen/include/coefficient_stdmath.hpp +167 -0
- netgen/include/commutingAMG.hpp +106 -0
- netgen/include/comp.hpp +79 -0
- netgen/include/compatibility.hpp +41 -0
- netgen/include/complex_wrapper.hpp +73 -0
- netgen/include/compressedfespace.hpp +110 -0
- netgen/include/contact.hpp +235 -0
- netgen/include/diagonalmatrix.hpp +154 -0
- netgen/include/differentialoperator.hpp +276 -0
- netgen/include/diffop.hpp +1286 -0
- netgen/include/diffop_impl.hpp +328 -0
- netgen/include/diffopwithfactor.hpp +123 -0
- netgen/include/discontinuous.hpp +84 -0
- netgen/include/dump.hpp +949 -0
- netgen/include/ectypes.hpp +121 -0
- netgen/include/eigen.hpp +60 -0
- netgen/include/eigensystem.hpp +18 -0
- netgen/include/elasticity_equations.hpp +595 -0
- netgen/include/elementbyelement.hpp +195 -0
- netgen/include/elementtopology.hpp +1760 -0
- netgen/include/elementtransformation.hpp +339 -0
- netgen/include/evalfunc.hpp +405 -0
- netgen/include/expr.hpp +1686 -0
- netgen/include/facetfe.hpp +175 -0
- netgen/include/facetfespace.hpp +180 -0
- netgen/include/facethofe.hpp +111 -0
- netgen/include/facetsurffespace.hpp +112 -0
- netgen/include/fe_interfaces.hpp +32 -0
- netgen/include/fem.hpp +87 -0
- netgen/include/fesconvert.hpp +14 -0
- netgen/include/fespace.hpp +1449 -0
- netgen/include/finiteelement.hpp +286 -0
- netgen/include/globalinterfacespace.hpp +77 -0
- netgen/include/globalspace.hpp +115 -0
- netgen/include/gridfunction.hpp +525 -0
- netgen/include/h1amg.hpp +124 -0
- netgen/include/h1hofe.hpp +188 -0
- netgen/include/h1hofe_impl.hpp +1262 -0
- netgen/include/h1hofefo.hpp +148 -0
- netgen/include/h1hofefo_impl.hpp +185 -0
- netgen/include/h1hofespace.hpp +167 -0
- netgen/include/h1lofe.hpp +1240 -0
- netgen/include/h1lumping.hpp +41 -0
- netgen/include/hcurl_equations.hpp +1381 -0
- netgen/include/hcurlcurlfe.hpp +2241 -0
- netgen/include/hcurlcurlfespace.hpp +78 -0
- netgen/include/hcurlfe.hpp +259 -0
- netgen/include/hcurlfe_utils.hpp +107 -0
- netgen/include/hcurlhdiv_dshape.hpp +857 -0
- netgen/include/hcurlhdivfes.hpp +308 -0
- netgen/include/hcurlhofe.hpp +175 -0
- netgen/include/hcurlhofe_impl.hpp +1871 -0
- netgen/include/hcurlhofespace.hpp +193 -0
- netgen/include/hcurllofe.hpp +1146 -0
- netgen/include/hdiv_equations.hpp +880 -0
- netgen/include/hdivdivfe.hpp +2923 -0
- netgen/include/hdivdivsurfacespace.hpp +76 -0
- netgen/include/hdivfe.hpp +206 -0
- netgen/include/hdivfe_utils.hpp +717 -0
- netgen/include/hdivfes.hpp +75 -0
- netgen/include/hdivhofe.hpp +447 -0
- netgen/include/hdivhofe_impl.hpp +1107 -0
- netgen/include/hdivhofefo.hpp +229 -0
- netgen/include/hdivhofespace.hpp +177 -0
- netgen/include/hdivhosurfacefespace.hpp +106 -0
- netgen/include/hdivlofe.hpp +773 -0
- netgen/include/hidden.hpp +74 -0
- netgen/include/householder.hpp +181 -0
- netgen/include/hypre_ams_precond.hpp +123 -0
- netgen/include/hypre_precond.hpp +73 -0
- netgen/include/integrator.hpp +2012 -0
- netgen/include/integratorcf.hpp +253 -0
- netgen/include/interpolate.hpp +49 -0
- netgen/include/intrule.hpp +2542 -0
- netgen/include/intrules_SauterSchwab.hpp +25 -0
- netgen/include/irspace.hpp +49 -0
- netgen/include/jacobi.hpp +153 -0
- netgen/include/kernels.hpp +762 -0
- netgen/include/l2hofe.hpp +194 -0
- netgen/include/l2hofe_impl.hpp +564 -0
- netgen/include/l2hofefo.hpp +542 -0
- netgen/include/l2hofespace.hpp +344 -0
- netgen/include/la.hpp +38 -0
- netgen/include/linearform.hpp +266 -0
- netgen/include/matrix.hpp +2140 -0
- netgen/include/memusage.hpp +41 -0
- netgen/include/meshaccess.hpp +1359 -0
- netgen/include/mgpre.hpp +204 -0
- netgen/include/mp_coefficient.hpp +145 -0
- netgen/include/mptools.hpp +2281 -0
- netgen/include/multigrid.hpp +42 -0
- netgen/include/multivector.hpp +447 -0
- netgen/include/mumpsinverse.hpp +187 -0
- netgen/include/mycomplex.hpp +361 -0
- netgen/include/ng_lapack.hpp +1661 -0
- netgen/include/ngblas.hpp +1232 -0
- netgen/include/ngs_defines.hpp +30 -0
- netgen/include/ngs_stdcpp_include.hpp +106 -0
- netgen/include/ngs_utils.hpp +121 -0
- netgen/include/ngsobject.hpp +1019 -0
- netgen/include/ngsstream.hpp +113 -0
- netgen/include/ngstd.hpp +72 -0
- netgen/include/nodalhofe.hpp +96 -0
- netgen/include/nodalhofe_impl.hpp +141 -0
- netgen/include/normalfacetfe.hpp +223 -0
- netgen/include/normalfacetfespace.hpp +98 -0
- netgen/include/normalfacetsurfacefespace.hpp +84 -0
- netgen/include/order.hpp +251 -0
- netgen/include/parallel_matrices.hpp +222 -0
- netgen/include/paralleldofs.hpp +340 -0
- netgen/include/parallelngs.hpp +23 -0
- netgen/include/parallelvector.hpp +269 -0
- netgen/include/pardisoinverse.hpp +200 -0
- netgen/include/periodic.hpp +129 -0
- netgen/include/plateaufespace.hpp +25 -0
- netgen/include/pml.hpp +275 -0
- netgen/include/pmltrafo.hpp +631 -0
- netgen/include/postproc.hpp +142 -0
- netgen/include/potentialtools.hpp +22 -0
- netgen/include/precomp.hpp +60 -0
- netgen/include/preconditioner.hpp +602 -0
- netgen/include/prolongation.hpp +377 -0
- netgen/include/python_comp.hpp +107 -0
- netgen/include/python_fem.hpp +89 -0
- netgen/include/python_linalg.hpp +58 -0
- netgen/include/python_ngstd.hpp +386 -0
- netgen/include/recursive_pol.hpp +4896 -0
- netgen/include/recursive_pol_tet.hpp +395 -0
- netgen/include/recursive_pol_trig.hpp +492 -0
- netgen/include/reorderedfespace.hpp +81 -0
- netgen/include/sample_sort.hpp +105 -0
- netgen/include/scalarfe.hpp +335 -0
- netgen/include/shapefunction_utils.hpp +113 -0
- netgen/include/simd_complex.hpp +329 -0
- netgen/include/smoother.hpp +253 -0
- netgen/include/solve.hpp +89 -0
- netgen/include/sparsecholesky.hpp +313 -0
- netgen/include/sparsematrix.hpp +1038 -0
- netgen/include/sparsematrix_dyn.hpp +90 -0
- netgen/include/sparsematrix_impl.hpp +1013 -0
- netgen/include/special_matrix.hpp +463 -0
- netgen/include/specialelement.hpp +125 -0
- netgen/include/statushandler.hpp +33 -0
- netgen/include/stringops.hpp +12 -0
- netgen/include/superluinverse.hpp +136 -0
- netgen/include/symbolicintegrator.hpp +850 -0
- netgen/include/symmetricmatrix.hpp +144 -0
- netgen/include/tangentialfacetfe.hpp +224 -0
- netgen/include/tangentialfacetfespace.hpp +91 -0
- netgen/include/tensor.hpp +522 -0
- netgen/include/tensorcoefficient.hpp +446 -0
- netgen/include/tensorproductintegrator.hpp +113 -0
- netgen/include/thcurlfe.hpp +128 -0
- netgen/include/thcurlfe_impl.hpp +380 -0
- netgen/include/thdivfe.hpp +80 -0
- netgen/include/thdivfe_impl.hpp +492 -0
- netgen/include/tpdiffop.hpp +461 -0
- netgen/include/tpfes.hpp +133 -0
- netgen/include/tpintrule.hpp +224 -0
- netgen/include/triangular.hpp +465 -0
- netgen/include/tscalarfe.hpp +245 -0
- netgen/include/tscalarfe_impl.hpp +1029 -0
- netgen/include/umfpackinverse.hpp +148 -0
- netgen/include/vector.hpp +1273 -0
- netgen/include/voxelcoefficientfunction.hpp +41 -0
- netgen/include/vtkoutput.hpp +198 -0
- netgen/include/vvector.hpp +208 -0
- netgen/include/webgui.hpp +92 -0
- netgen/libngbla.dylib +0 -0
- netgen/libngcomp.dylib +0 -0
- netgen/libngfem.dylib +0 -0
- netgen/libngla.dylib +0 -0
- netgen/libngsbem.dylib +0 -0
- netgen/libngsolve.dylib +0 -0
- netgen/libngstd.dylib +0 -0
- ngsolve/TensorProductTools.py +210 -0
- ngsolve/__console.py +94 -0
- ngsolve/__expr.py +181 -0
- ngsolve/__init__.py +148 -0
- ngsolve/__init__.pyi +233 -0
- ngsolve/_scikit_build_core_dependencies.py +30 -0
- ngsolve/bla.pyi +1153 -0
- ngsolve/bvp.py +78 -0
- ngsolve/bvp.pyi +32 -0
- ngsolve/cmake/NGSolveConfig.cmake +102 -0
- ngsolve/cmake/ngsolve-targets-release.cmake +79 -0
- ngsolve/cmake/ngsolve-targets.cmake +163 -0
- ngsolve/comp/__init__.pyi +5449 -0
- ngsolve/comp/pml.pyi +89 -0
- ngsolve/config/__init__.py +1 -0
- ngsolve/config/__init__.pyi +43 -0
- ngsolve/config/__main__.py +4 -0
- ngsolve/config/config.py +60 -0
- ngsolve/config/config.pyi +45 -0
- ngsolve/demos/TensorProduct/__init__.py +0 -0
- ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
- ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
- ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
- ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
- ngsolve/demos/__init__.py +0 -0
- ngsolve/demos/howto/__init__.py +0 -0
- ngsolve/demos/howto/hhj.py +44 -0
- ngsolve/demos/howto/hybrid_dg.py +53 -0
- ngsolve/demos/howto/mixed.py +30 -0
- ngsolve/demos/howto/nonlin.py +29 -0
- ngsolve/demos/howto/pickling.py +26 -0
- ngsolve/demos/howto/pml.py +31 -0
- ngsolve/demos/howto/taskmanager.py +20 -0
- ngsolve/demos/howto/tdnns.py +47 -0
- ngsolve/demos/howto/timeDG-skeleton.py +45 -0
- ngsolve/demos/howto/timeDG.py +38 -0
- ngsolve/demos/howto/timeDGlap.py +42 -0
- ngsolve/demos/howto/timeDGwave.py +61 -0
- ngsolve/demos/intro/__init__.py +0 -0
- ngsolve/demos/intro/adaptive.py +123 -0
- ngsolve/demos/intro/cmagnet.py +59 -0
- ngsolve/demos/intro/elasticity.py +76 -0
- ngsolve/demos/intro/navierstokes.py +74 -0
- ngsolve/demos/intro/poisson.ipynb +170 -0
- ngsolve/demos/intro/poisson.py +41 -0
- ngsolve/demos/mpi/__init__.py +0 -0
- ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
- ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
- ngsolve/demos/mpi/mpi_poisson.py +89 -0
- ngsolve/demos/mpi/mpi_timeDG.py +82 -0
- ngsolve/directsolvers.py +26 -0
- ngsolve/directsolvers.pyi +15 -0
- ngsolve/eigenvalues.py +364 -0
- ngsolve/eigenvalues.pyi +30 -0
- ngsolve/fem.pyi +1647 -0
- ngsolve/internal.py +89 -0
- ngsolve/krylovspace.py +1013 -0
- ngsolve/krylovspace.pyi +298 -0
- ngsolve/la.pyi +1230 -0
- ngsolve/meshes.py +748 -0
- ngsolve/ngs2petsc.py +310 -0
- ngsolve/ngscxx.py +42 -0
- ngsolve/ngslib.so +0 -0
- ngsolve/ngstd.pyi +59 -0
- ngsolve/nonlinearsolvers.py +203 -0
- ngsolve/nonlinearsolvers.pyi +95 -0
- ngsolve/preconditioners.py +11 -0
- ngsolve/preconditioners.pyi +7 -0
- ngsolve/solve.pyi +109 -0
- ngsolve/solve_implementation.py +168 -0
- ngsolve/solve_implementation.pyi +42 -0
- ngsolve/solvers.py +7 -0
- ngsolve/solvers.pyi +14 -0
- ngsolve/timestepping.py +185 -0
- ngsolve/timestepping.pyi +28 -0
- ngsolve/timing.py +108 -0
- ngsolve/timing.pyi +54 -0
- ngsolve/utils.py +167 -0
- ngsolve/utils.pyi +273 -0
- ngsolve/webgui.py +670 -0
- ngsolve-6.2.2506.post74.dev0.data/data/Netgen.icns +0 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngscxx +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsld +13 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsolve.tcl +648 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngspy +2 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.geo +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.vol +240 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.in2d +41 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.vol +614 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.geo +12 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.vol +2560 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.geo +19 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.vol +1832 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.geo +73 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.in2d +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.vol +149 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/METADATA +13 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/RECORD +315 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/WHEEL +5 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/licenses/LICENSE +504 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/top_level.txt +2 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#ifndef NGSOLVE_VOXELCOEFFICIENTFUNCTION_HPP
|
|
2
|
+
#define NGSOLVE_VOXELCOEFFICIENTFUNCTION_HPP
|
|
3
|
+
|
|
4
|
+
#include "coefficient.hpp"
|
|
5
|
+
|
|
6
|
+
namespace ngfem
|
|
7
|
+
{
|
|
8
|
+
template<typename SCAL>
|
|
9
|
+
class VoxelCoefficientFunction : public CoefficientFunctionNoDerivative
|
|
10
|
+
{
|
|
11
|
+
Array<double> start, end;
|
|
12
|
+
Array<size_t> dim_vals;
|
|
13
|
+
Array<SCAL> values;
|
|
14
|
+
bool linear;
|
|
15
|
+
shared_ptr<CoefficientFunction> trafocf;
|
|
16
|
+
public:
|
|
17
|
+
VoxelCoefficientFunction(const Array<double>& _start,
|
|
18
|
+
const Array<double>& _end,
|
|
19
|
+
const Array<size_t>& _dim_vals,
|
|
20
|
+
Array<SCAL>&& _values,
|
|
21
|
+
bool _linear,
|
|
22
|
+
shared_ptr<CoefficientFunction> trafo=nullptr)
|
|
23
|
+
: CoefficientFunctionNoDerivative(1, is_same_v<SCAL, Complex>),
|
|
24
|
+
start(_start), end(_end), dim_vals(_dim_vals),
|
|
25
|
+
values(std::move(_values)), linear(_linear), trafocf(trafo)
|
|
26
|
+
{ ; }
|
|
27
|
+
|
|
28
|
+
using CoefficientFunctionNoDerivative::Evaluate;
|
|
29
|
+
double Evaluate(const BaseMappedIntegrationPoint& ip) const override;
|
|
30
|
+
Complex EvaluateComplex(const BaseMappedIntegrationPoint& ip) const override;
|
|
31
|
+
|
|
32
|
+
void Evaluate(const BaseMappedIntegrationPoint& mip, FlatVector<Complex> values) const override;
|
|
33
|
+
auto GetCArgs() const
|
|
34
|
+
{ return make_tuple(start, end, dim_vals, values, linear); }
|
|
35
|
+
|
|
36
|
+
private:
|
|
37
|
+
SCAL T_Evaluate(const BaseMappedIntegrationPoint& ip) const;
|
|
38
|
+
};
|
|
39
|
+
} // namespace ngfem
|
|
40
|
+
|
|
41
|
+
#endif // NGSOLVE_VOXELCOEFFICIENTFUNCTION_HPP
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
/*********************************************************************/
|
|
4
|
+
/* File: vtkoutput.hpp */
|
|
5
|
+
/* Author: Christoph Lehrenfeld */
|
|
6
|
+
/* Date: 1. June 2014 */
|
|
7
|
+
/*********************************************************************/
|
|
8
|
+
|
|
9
|
+
namespace ngcomp
|
|
10
|
+
{
|
|
11
|
+
|
|
12
|
+
class ValueField : public Array<double>
|
|
13
|
+
{
|
|
14
|
+
int dim = 1;
|
|
15
|
+
string name = "none";
|
|
16
|
+
|
|
17
|
+
public:
|
|
18
|
+
ValueField() { ; };
|
|
19
|
+
NGS_DLL_HEADER ValueField(int adim, string aname);
|
|
20
|
+
void SetDimension(int adim) { dim = adim; }
|
|
21
|
+
int Dimension() { return dim; }
|
|
22
|
+
void SetName(string aname) { name = aname; }
|
|
23
|
+
string Name() { return name; }
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
class BaseVTKOutput
|
|
27
|
+
{
|
|
28
|
+
public:
|
|
29
|
+
virtual ~BaseVTKOutput() { ; }
|
|
30
|
+
virtual void Do(LocalHeap &lh, double time = -1, VorB vb = VOL, const BitArray *drawelems = 0) = 0;
|
|
31
|
+
string lastoutputname = "";
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
struct VTKCell {
|
|
35
|
+
int type = 0;
|
|
36
|
+
ArrayMem<int, ELEMENT_MAXPOINTS> pi;
|
|
37
|
+
|
|
38
|
+
VTKCell() = default;
|
|
39
|
+
|
|
40
|
+
VTKCell & operator=(const VTKCell&other) {
|
|
41
|
+
type = other.type;
|
|
42
|
+
pi.SetSize(other.pi.Size());
|
|
43
|
+
for(auto i : Range(other.pi))
|
|
44
|
+
pi[i] = other.pi[i];
|
|
45
|
+
return *this;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
VTKCell(ELEMENT_TYPE et, int order, const std::map<tuple<int,int,int>, int> &m,
|
|
49
|
+
int i, int j, int k, Vec<3,int> vi={1,0,0}, Vec<3,int> vj={0,1,0}, Vec<3,int> vk={0,0,1});
|
|
50
|
+
|
|
51
|
+
static int GetVtkType(ELEMENT_TYPE et, int order=1);
|
|
52
|
+
|
|
53
|
+
enum VTK_CELL_TYPE
|
|
54
|
+
{
|
|
55
|
+
// Linear cells
|
|
56
|
+
VTK_EMPTY_CELL = 0,
|
|
57
|
+
VTK_VERTEX = 1,
|
|
58
|
+
VTK_POLY_VERTEX = 2,
|
|
59
|
+
VTK_LINE = 3,
|
|
60
|
+
VTK_POLY_LINE = 4,
|
|
61
|
+
VTK_TRIANGLE = 5,
|
|
62
|
+
VTK_TRIANGLE_STRIP = 6,
|
|
63
|
+
VTK_POLYGON = 7,
|
|
64
|
+
VTK_PIXEL = 8,
|
|
65
|
+
VTK_QUAD = 9,
|
|
66
|
+
VTK_TETRA = 10,
|
|
67
|
+
VTK_VOXEL = 11,
|
|
68
|
+
VTK_HEXAHEDRON = 12,
|
|
69
|
+
VTK_WEDGE = 13,
|
|
70
|
+
VTK_PYRAMID = 14,
|
|
71
|
+
VTK_PENTAGONAL_PRISM = 15,
|
|
72
|
+
VTK_HEXAGONAL_PRISM = 16,
|
|
73
|
+
|
|
74
|
+
// Quadratic, isoparametric cells
|
|
75
|
+
VTK_QUADRATIC_EDGE = 21,
|
|
76
|
+
VTK_QUADRATIC_TRIANGLE = 22,
|
|
77
|
+
VTK_QUADRATIC_QUAD = 23,
|
|
78
|
+
VTK_QUADRATIC_POLYGON = 36,
|
|
79
|
+
VTK_QUADRATIC_TETRA = 24,
|
|
80
|
+
VTK_QUADRATIC_HEXAHEDRON = 25,
|
|
81
|
+
VTK_QUADRATIC_WEDGE = 26,
|
|
82
|
+
VTK_QUADRATIC_PYRAMID = 27,
|
|
83
|
+
VTK_BIQUADRATIC_QUAD = 28,
|
|
84
|
+
VTK_TRIQUADRATIC_HEXAHEDRON = 29,
|
|
85
|
+
VTK_TRIQUADRATIC_PYRAMID = 37,
|
|
86
|
+
VTK_QUADRATIC_LINEAR_QUAD = 30,
|
|
87
|
+
VTK_QUADRATIC_LINEAR_WEDGE = 31,
|
|
88
|
+
VTK_BIQUADRATIC_QUADRATIC_WEDGE = 32,
|
|
89
|
+
VTK_BIQUADRATIC_QUADRATIC_HEXAHEDRON = 33,
|
|
90
|
+
VTK_BIQUADRATIC_TRIANGLE = 34,
|
|
91
|
+
|
|
92
|
+
// Cubic, isoparametric cell
|
|
93
|
+
VTK_CUBIC_LINE = 35,
|
|
94
|
+
|
|
95
|
+
// Special class of cells formed by convex group of points
|
|
96
|
+
VTK_CONVEX_POINT_SET = 41,
|
|
97
|
+
|
|
98
|
+
// Polyhedron cell (consisting of polygonal faces)
|
|
99
|
+
VTK_POLYHEDRON = 42,
|
|
100
|
+
|
|
101
|
+
// Higher order cells in parametric form
|
|
102
|
+
VTK_PARAMETRIC_CURVE = 51,
|
|
103
|
+
VTK_PARAMETRIC_SURFACE = 52,
|
|
104
|
+
VTK_PARAMETRIC_TRI_SURFACE = 53,
|
|
105
|
+
VTK_PARAMETRIC_QUAD_SURFACE = 54,
|
|
106
|
+
VTK_PARAMETRIC_TETRA_REGION = 55,
|
|
107
|
+
VTK_PARAMETRIC_HEX_REGION = 56,
|
|
108
|
+
|
|
109
|
+
// Higher order cells
|
|
110
|
+
VTK_HIGHER_ORDER_EDGE = 60,
|
|
111
|
+
VTK_HIGHER_ORDER_TRIANGLE = 61,
|
|
112
|
+
VTK_HIGHER_ORDER_QUAD = 62,
|
|
113
|
+
VTK_HIGHER_ORDER_POLYGON = 63,
|
|
114
|
+
VTK_HIGHER_ORDER_TETRAHEDRON = 64,
|
|
115
|
+
VTK_HIGHER_ORDER_WEDGE = 65,
|
|
116
|
+
VTK_HIGHER_ORDER_PYRAMID = 66,
|
|
117
|
+
VTK_HIGHER_ORDER_HEXAHEDRON = 67,
|
|
118
|
+
|
|
119
|
+
// Arbitrary order Lagrange elements (formulated separated from generic higher order cells)
|
|
120
|
+
VTK_LAGRANGE_CURVE = 68,
|
|
121
|
+
VTK_LAGRANGE_TRIANGLE = 69,
|
|
122
|
+
VTK_LAGRANGE_QUADRILATERAL = 70,
|
|
123
|
+
VTK_LAGRANGE_TETRAHEDRON = 71,
|
|
124
|
+
VTK_LAGRANGE_HEXAHEDRON = 72,
|
|
125
|
+
VTK_LAGRANGE_WEDGE = 73,
|
|
126
|
+
VTK_LAGRANGE_PYRAMID = 74,
|
|
127
|
+
|
|
128
|
+
// Arbitrary order Bezier elements (formulated separated from generic higher order cells)
|
|
129
|
+
VTK_BEZIER_CURVE = 75,
|
|
130
|
+
VTK_BEZIER_TRIANGLE = 76,
|
|
131
|
+
VTK_BEZIER_QUADRILATERAL = 77,
|
|
132
|
+
VTK_BEZIER_TETRAHEDRON = 78,
|
|
133
|
+
VTK_BEZIER_HEXAHEDRON = 79,
|
|
134
|
+
VTK_BEZIER_WEDGE = 80,
|
|
135
|
+
VTK_BEZIER_PYRAMID = 81,
|
|
136
|
+
|
|
137
|
+
VTK_NUMBER_OF_CELL_TYPES
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
template <int D>
|
|
142
|
+
class VTKOutput : public BaseVTKOutput
|
|
143
|
+
{
|
|
144
|
+
protected:
|
|
145
|
+
shared_ptr<MeshAccess> ma = nullptr;
|
|
146
|
+
Array<shared_ptr<CoefficientFunction>> coefs;
|
|
147
|
+
Array<string> fieldnames;
|
|
148
|
+
|
|
149
|
+
string filename;
|
|
150
|
+
int subdivision, r;
|
|
151
|
+
double h;
|
|
152
|
+
int order = 1;
|
|
153
|
+
int only_element = -1;
|
|
154
|
+
string floatsize = "double";
|
|
155
|
+
bool legacy = false;
|
|
156
|
+
Array<shared_ptr<ValueField>>
|
|
157
|
+
value_field;
|
|
158
|
+
Array<Vec<D>> points;
|
|
159
|
+
Array<VTKCell> cells;
|
|
160
|
+
|
|
161
|
+
int output_cnt = 0;
|
|
162
|
+
std::vector<double> times = {0};
|
|
163
|
+
shared_ptr<ofstream> fileout;
|
|
164
|
+
|
|
165
|
+
public:
|
|
166
|
+
VTKOutput(const Array<shared_ptr<CoefficientFunction>> &,
|
|
167
|
+
const Flags &, shared_ptr<MeshAccess>);
|
|
168
|
+
|
|
169
|
+
VTKOutput(shared_ptr<MeshAccess>, const Array<shared_ptr<CoefficientFunction>> &,
|
|
170
|
+
const Array<string> &, string, int, int, string, bool, int);
|
|
171
|
+
virtual ~VTKOutput() { ; }
|
|
172
|
+
|
|
173
|
+
void ResetArrays();
|
|
174
|
+
|
|
175
|
+
void FillReferenceTrig(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
|
|
176
|
+
void FillReferenceQuad(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
|
|
177
|
+
void FillReferenceTet(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
|
|
178
|
+
void FillReferenceHex(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
|
|
179
|
+
void FillReferencePrism(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
|
|
180
|
+
void FillReferencePyramid(Array<IntegrationPoint> &ref_coords, Array<VTKCell> &ref_elems);
|
|
181
|
+
// void FillReferenceData3D(Array<IntegrationPoint> & ref_coords, Array<INT<D+1>> & ref_tets);
|
|
182
|
+
// XML Methods
|
|
183
|
+
void PrintPoints(int *offset, stringstream *appenddata);
|
|
184
|
+
void PrintCells(int *offset, stringstream *appenddata);
|
|
185
|
+
void PrintCellTypes(VorB vb, int *offset, stringstream *appenddata, const BitArray *drawelems = nullptr);
|
|
186
|
+
void PrintFieldData(int *offset, stringstream *appenddata);
|
|
187
|
+
|
|
188
|
+
void PrintAppended(stringstream *appenddata);
|
|
189
|
+
void PvdFile(string filename, int index);
|
|
190
|
+
// Legacy Methods
|
|
191
|
+
void PrintPointsLegacy();
|
|
192
|
+
void PrintCellsLegacy();
|
|
193
|
+
void PrintCellTypesLegacy(VorB vb, const BitArray *drawelems = nullptr);
|
|
194
|
+
void PrintFieldDataLegacy();
|
|
195
|
+
virtual void Do(LocalHeap &lh, double time = -1, VorB vb = VOL, const BitArray *drawelems = 0);
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
#ifndef FILE_VVECTOR
|
|
2
|
+
#define FILE_VVECTOR
|
|
3
|
+
|
|
4
|
+
#include "basevector.hpp"
|
|
5
|
+
|
|
6
|
+
namespace ngla
|
|
7
|
+
{
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
template <class T> class VFlatVector;
|
|
11
|
+
template <class T> class VVector;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
template <typename TSCAL = double>
|
|
17
|
+
class NGS_DLL_HEADER S_BaseVectorPtr : virtual public S_BaseVector<TSCAL>
|
|
18
|
+
{
|
|
19
|
+
protected:
|
|
20
|
+
TSCAL * pdata;
|
|
21
|
+
int es; // entry size in in term of TSCALs
|
|
22
|
+
bool ownmem;
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
S_BaseVectorPtr (size_t as, int aes, void * adata) throw()
|
|
26
|
+
{
|
|
27
|
+
this->size = as;
|
|
28
|
+
es = aes;
|
|
29
|
+
pdata = static_cast<TSCAL*> (adata);
|
|
30
|
+
ownmem = false;
|
|
31
|
+
this->entrysize = es * sizeof(TSCAL) / sizeof(double);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
S_BaseVectorPtr (size_t as, int aes)
|
|
35
|
+
{
|
|
36
|
+
this->size = as;
|
|
37
|
+
es = aes;
|
|
38
|
+
pdata = new TSCAL[as*aes];
|
|
39
|
+
ownmem = true;
|
|
40
|
+
GetMemoryTracer().Alloc(sizeof(TSCAL) * as * aes);
|
|
41
|
+
this->entrysize = es * sizeof(TSCAL) / sizeof(double);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
void SetSize (size_t as)
|
|
45
|
+
{
|
|
46
|
+
if (ownmem)
|
|
47
|
+
{
|
|
48
|
+
GetMemoryTracer().Free(sizeof(TSCAL) * this->size * es);
|
|
49
|
+
delete [] pdata;
|
|
50
|
+
}
|
|
51
|
+
this->size = as;
|
|
52
|
+
pdata = new TSCAL[as*es];
|
|
53
|
+
ownmem = true;
|
|
54
|
+
GetMemoryTracer().Alloc(sizeof(TSCAL) * as * es);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
void AssignMemory (size_t as, void * adata)
|
|
58
|
+
{
|
|
59
|
+
this->size = as;
|
|
60
|
+
this->pdata = static_cast<TSCAL*> (adata);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
virtual ~S_BaseVectorPtr ();
|
|
64
|
+
|
|
65
|
+
virtual void * Memory () const throw() override
|
|
66
|
+
{
|
|
67
|
+
return pdata;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
virtual Array<MemoryUsage> GetMemoryUsage () const override;
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
// virtual AutoVector Range (size_t begin, size_t end) const override;
|
|
74
|
+
virtual AutoVector Range (T_Range<size_t> range) const override;
|
|
75
|
+
|
|
76
|
+
template<typename TIND, typename std::enable_if<std::is_integral<TIND>::value, int>::type = 0>
|
|
77
|
+
FlatVector<TSCAL> operator() (TIND i) const
|
|
78
|
+
{
|
|
79
|
+
return FlatVector<TSCAL> (es, pdata+i*es);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
virtual AutoVector CreateVector () const override;
|
|
83
|
+
virtual unique_ptr<MultiVector> CreateMultiVector (size_t cnt) const override;
|
|
84
|
+
|
|
85
|
+
virtual ostream & Print (ostream & ost) const override;
|
|
86
|
+
using BaseVector::GetMemoryTracer;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
extern template class S_BaseVectorPtr<double>;
|
|
91
|
+
extern template class S_BaseVectorPtr<Complex>;
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
A specific vector based on Vector.
|
|
98
|
+
*/
|
|
99
|
+
template <typename T = double>
|
|
100
|
+
class VFlatVector : virtual public S_BaseVectorPtr<typename mat_traits<T>::TSCAL>
|
|
101
|
+
{
|
|
102
|
+
public:
|
|
103
|
+
typedef typename mat_traits<T>::TSCAL TSCAL;
|
|
104
|
+
enum { ES = sizeof(T) / sizeof(TSCAL) };
|
|
105
|
+
|
|
106
|
+
explicit VFlatVector () throw()
|
|
107
|
+
: S_BaseVectorPtr<TSCAL> (0, ES, NULL)
|
|
108
|
+
{ ; }
|
|
109
|
+
|
|
110
|
+
explicit VFlatVector (size_t as, T * adata) throw()
|
|
111
|
+
: S_BaseVectorPtr<TSCAL> (as, ES, (void*)adata)
|
|
112
|
+
{ ; }
|
|
113
|
+
|
|
114
|
+
VFlatVector (FlatVector<T> fv)
|
|
115
|
+
: S_BaseVectorPtr<TSCAL> (fv.Size(), ES, fv.Data())
|
|
116
|
+
{ ; }
|
|
117
|
+
|
|
118
|
+
VFlatVector & operator= (TSCAL s1)
|
|
119
|
+
{
|
|
120
|
+
BaseVector::operator= (s1);
|
|
121
|
+
return *this;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
template <typename T2>
|
|
125
|
+
VFlatVector & operator= (const VVecExpr<T2> & v)
|
|
126
|
+
{
|
|
127
|
+
BaseVector::operator= (v);
|
|
128
|
+
return *this;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
FlatVector<T> FV () const throw()
|
|
132
|
+
{
|
|
133
|
+
return FlatVector<T> (this->size, this->pdata);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
T & operator() (size_t i) const
|
|
137
|
+
{
|
|
138
|
+
return static_cast<T*> (static_cast<void*> (this->pdata))[i];
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
A specific vector based on Vector.
|
|
150
|
+
*/
|
|
151
|
+
template <typename T = double>
|
|
152
|
+
class VVector : virtual public S_BaseVectorPtr<typename mat_traits<T>::TSCAL>
|
|
153
|
+
{
|
|
154
|
+
public:
|
|
155
|
+
typedef typename mat_traits<T>::TSCAL TSCAL;
|
|
156
|
+
enum { ES = sizeof(T) / sizeof(TSCAL) };
|
|
157
|
+
|
|
158
|
+
explicit VVector (size_t as)
|
|
159
|
+
: S_BaseVectorPtr<TSCAL> (as, ES)
|
|
160
|
+
{ ; }
|
|
161
|
+
|
|
162
|
+
explicit VVector (const VVector & v2)
|
|
163
|
+
: S_BaseVectorPtr<TSCAL> (v2.Size(), ES)
|
|
164
|
+
{
|
|
165
|
+
*this = v2;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// virtual ~VVector() { ; }
|
|
169
|
+
|
|
170
|
+
VVector & operator= (TSCAL s1)
|
|
171
|
+
{
|
|
172
|
+
BaseVector::operator= (s1);
|
|
173
|
+
return *this;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
VVector & operator= (const VVector & v2)
|
|
177
|
+
{
|
|
178
|
+
BaseVector::operator= (v2);
|
|
179
|
+
return *this;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
template <typename T2>
|
|
183
|
+
VVector & operator= (const VVecExpr<T2> & v)
|
|
184
|
+
{
|
|
185
|
+
BaseVector::operator= (v);
|
|
186
|
+
return *this;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
using S_BaseVectorPtr<TSCAL> :: FV;
|
|
190
|
+
|
|
191
|
+
FlatVector<T> FV () const throw()
|
|
192
|
+
{
|
|
193
|
+
return FlatVector<T> (this->size, (T*)this->pdata);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
T & operator() (size_t i) const
|
|
197
|
+
{
|
|
198
|
+
return static_cast<T*> (static_cast<void*> (this->pdata))[i];
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
extern template class VVector<double>;
|
|
203
|
+
extern template class VVector<Complex>;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
#endif
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
#ifndef FILE_WEBGUI_HPP_INCLUDED
|
|
2
|
+
#define FILE_WEBGUI_HPP_INCLUDED
|
|
3
|
+
|
|
4
|
+
#include <core/archive.hpp>
|
|
5
|
+
|
|
6
|
+
// #include "comp.hpp"
|
|
7
|
+
#include "meshaccess.hpp"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
namespace webgui {
|
|
11
|
+
using namespace ngcomp;
|
|
12
|
+
|
|
13
|
+
struct WebguiArchiveData {
|
|
14
|
+
shared_ptr<MeshAccess> mesh;
|
|
15
|
+
shared_ptr<CoefficientFunction> cf;
|
|
16
|
+
|
|
17
|
+
WebguiArchiveData() = default;
|
|
18
|
+
|
|
19
|
+
WebguiArchiveData(shared_ptr<MeshAccess> mesh, shared_ptr<CoefficientFunction> cf)
|
|
20
|
+
: mesh(mesh), cf(cf) { }
|
|
21
|
+
|
|
22
|
+
shared_ptr<MeshAccess> GetMeshAccess() { return mesh; }
|
|
23
|
+
|
|
24
|
+
void DoArchive(Archive & ar) {
|
|
25
|
+
shared_ptr<netgen::NetgenGeometry> geo;
|
|
26
|
+
if(ar.Output())
|
|
27
|
+
{
|
|
28
|
+
geo = mesh->GetNetgenMesh()->GetGeometry();
|
|
29
|
+
mesh->GetNetgenMesh()->SetGeometry(nullptr);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
ar & mesh & cf;
|
|
33
|
+
|
|
34
|
+
if(ar.Output())
|
|
35
|
+
mesh->GetNetgenMesh()->SetGeometry(geo);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
struct WebguiData {
|
|
40
|
+
int mesh_dim, order2d, order3d;
|
|
41
|
+
double funcmin, funcmax, mesh_radius;
|
|
42
|
+
vector<double> mesh_center;
|
|
43
|
+
bool draw_vol, draw_surf, show_wireframe, show_mesh;
|
|
44
|
+
|
|
45
|
+
vector<string> Bezier_trig_points, Bezier_points, points3d;
|
|
46
|
+
vector<string> objects, names, edges;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
unique_ptr<WebguiData> GenerateWebguiData(shared_ptr<MeshAccess> ma,
|
|
50
|
+
shared_ptr<CoefficientFunction> cf,
|
|
51
|
+
int order = 1);
|
|
52
|
+
|
|
53
|
+
template<typename T>
|
|
54
|
+
string ToArchive(shared_ptr<T> obj, bool binary=true) {
|
|
55
|
+
auto ss = make_shared<stringstream>();
|
|
56
|
+
shared_ptr<netgen::NetgenGeometry> geo;
|
|
57
|
+
if constexpr(is_same_v<T, netgen::Mesh>)
|
|
58
|
+
{
|
|
59
|
+
geo = obj->GetGeometry();
|
|
60
|
+
obj->SetGeometry(nullptr);
|
|
61
|
+
}
|
|
62
|
+
if(binary) {
|
|
63
|
+
BinaryOutArchive ar(ss);
|
|
64
|
+
ar & obj;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
TextOutArchive ar(ss);
|
|
68
|
+
ar & obj;
|
|
69
|
+
}
|
|
70
|
+
if constexpr(is_same_v<T, netgen::Mesh>)
|
|
71
|
+
obj->SetGeometry(geo);
|
|
72
|
+
return ss->str();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
template<typename T>
|
|
76
|
+
shared_ptr<T> FromArchive(string s, bool binary=true) {
|
|
77
|
+
auto ss = make_shared<stringstream>(s);
|
|
78
|
+
shared_ptr<T> obj;
|
|
79
|
+
if(binary) {
|
|
80
|
+
BinaryInArchive ar(ss);
|
|
81
|
+
ar & obj;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
TextInArchive ar(ss);
|
|
85
|
+
ar & obj;
|
|
86
|
+
}
|
|
87
|
+
return obj;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
} // namespace webgui
|
|
91
|
+
|
|
92
|
+
#endif // FILE_WEBGUI_HPP_INCLUDED
|
netgen/libngbla.dylib
ADDED
|
Binary file
|
netgen/libngcomp.dylib
ADDED
|
Binary file
|
netgen/libngfem.dylib
ADDED
|
Binary file
|
netgen/libngla.dylib
ADDED
|
Binary file
|
netgen/libngsbem.dylib
ADDED
|
Binary file
|
netgen/libngsolve.dylib
ADDED
|
Binary file
|
netgen/libngstd.dylib
ADDED
|
Binary file
|