ngsolve 6.2.2506.post75.dev0__cp314-cp314-manylinux_2_28_x86_64.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.
- ngsolve-6.2.2506.post75.dev0.data/data/bin/ngs_nvcc +14 -0
- ngsolve-6.2.2506.post75.dev0.data/data/bin/ngs_nvlink +14 -0
- ngsolve-6.2.2506.post75.dev0.data/data/bin/ngscxx +15 -0
- ngsolve-6.2.2506.post75.dev0.data/data/bin/ngsld +11 -0
- ngsolve-6.2.2506.post75.dev0.data/data/bin/ngsolve.tcl +648 -0
- ngsolve-6.2.2506.post75.dev0.data/data/bin/ngspy +2 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/analytic_integrals.hpp +10 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/arnoldi.hpp +55 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bandmatrix.hpp +334 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/basematrix.hpp +957 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/basevector.hpp +1268 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bdbequations.hpp +2805 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bdbintegrator.hpp +1660 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bem_diffops.hpp +475 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bessel.hpp +1064 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bilinearform.hpp +963 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bla.hpp +29 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/blockalloc.hpp +95 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/blockjacobi.hpp +328 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/bspline.hpp +116 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/calcinverse.hpp +141 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cg.hpp +368 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/chebyshev.hpp +44 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cholesky.hpp +720 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/clapack.h +7254 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/code_generation.hpp +296 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/coefficient.hpp +2033 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/coefficient_impl.hpp +19 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/coefficient_stdmath.hpp +167 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/commutingAMG.hpp +106 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/comp.hpp +79 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/compatibility.hpp +41 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/complex_wrapper.hpp +73 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/compressedfespace.hpp +110 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/contact.hpp +235 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cuda_linalg.hpp +175 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cuda_ngbla.hpp +226 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cuda_ngstd.hpp +527 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/cuda_profiler.hpp +240 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/diagonalmatrix.hpp +154 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/differentialoperator.hpp +276 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/diffop.hpp +1286 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/diffop_impl.hpp +328 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/diffopwithfactor.hpp +123 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/discontinuous.hpp +84 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/dump.hpp +949 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ectypes.hpp +121 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/eigen.hpp +60 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/eigensystem.hpp +18 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/elasticity_equations.hpp +595 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/elementbyelement.hpp +195 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/elementtopology.hpp +1760 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/elementtransformation.hpp +339 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/evalfunc.hpp +405 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/expr.hpp +1686 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/facetfe.hpp +175 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/facetfespace.hpp +180 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/facethofe.hpp +111 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/facetsurffespace.hpp +112 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/fe_interfaces.hpp +32 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/fem.hpp +87 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/fesconvert.hpp +14 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/fespace.hpp +1449 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/finiteelement.hpp +286 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/globalinterfacespace.hpp +77 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/globalspace.hpp +115 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/gridfunction.hpp +525 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1amg.hpp +124 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1hofe.hpp +188 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1hofe_impl.hpp +1262 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1hofefo.hpp +148 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1hofefo_impl.hpp +185 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1hofespace.hpp +167 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1lofe.hpp +1240 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/h1lumping.hpp +41 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurl_equations.hpp +1381 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlcurlfe.hpp +2241 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlcurlfespace.hpp +78 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlfe.hpp +259 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlfe_utils.hpp +107 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlhdiv_dshape.hpp +857 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlhdivfes.hpp +308 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlhofe.hpp +175 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlhofe_impl.hpp +1871 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurlhofespace.hpp +193 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hcurllofe.hpp +1146 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdiv_equations.hpp +880 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivdivfe.hpp +2923 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivdivsurfacespace.hpp +76 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivfe.hpp +206 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivfe_utils.hpp +717 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivfes.hpp +75 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivhofe.hpp +447 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivhofe_impl.hpp +1107 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivhofefo.hpp +229 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivhofespace.hpp +177 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivhosurfacefespace.hpp +106 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hdivlofe.hpp +773 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hidden.hpp +74 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/householder.hpp +181 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hypre_ams_precond.hpp +123 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/hypre_precond.hpp +73 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/integrator.hpp +2012 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/integratorcf.hpp +253 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/interpolate.hpp +49 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/intrule.hpp +2542 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/intrules_SauterSchwab.hpp +25 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/irspace.hpp +49 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/jacobi.hpp +153 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/kernels.hpp +762 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/l2hofe.hpp +194 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/l2hofe_impl.hpp +564 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/l2hofefo.hpp +542 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/l2hofespace.hpp +344 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/la.hpp +38 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/linalg_kernels.hpp +102 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/linearform.hpp +266 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/matrix.hpp +2140 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/memusage.hpp +41 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/meshaccess.hpp +1359 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/mgpre.hpp +204 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/mp_coefficient.hpp +145 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/mptools.hpp +2281 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/multigrid.hpp +42 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/multivector.hpp +447 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/mumpsinverse.hpp +187 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/mycomplex.hpp +361 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ng_lapack.hpp +1661 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngblas.hpp +1232 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngs_defines.hpp +30 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngs_stdcpp_include.hpp +106 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngs_utils.hpp +121 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngsobject.hpp +1019 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngsstream.hpp +113 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/ngstd.hpp +72 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/nodalhofe.hpp +96 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/nodalhofe_impl.hpp +141 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/normalfacetfe.hpp +223 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/normalfacetfespace.hpp +98 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/normalfacetsurfacefespace.hpp +84 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/order.hpp +251 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/parallel_matrices.hpp +222 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/paralleldofs.hpp +340 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/parallelngs.hpp +23 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/parallelvector.hpp +269 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/pardisoinverse.hpp +200 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/periodic.hpp +129 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/plateaufespace.hpp +25 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/pml.hpp +275 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/pmltrafo.hpp +631 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/postproc.hpp +142 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/potentialtools.hpp +22 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/precomp.hpp +60 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/preconditioner.hpp +602 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/prolongation.hpp +377 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/python_comp.hpp +107 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/python_fem.hpp +89 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/python_linalg.hpp +58 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/python_ngstd.hpp +386 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/recursive_pol.hpp +4896 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/recursive_pol_tet.hpp +395 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/recursive_pol_trig.hpp +492 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/reorderedfespace.hpp +81 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/sample_sort.hpp +105 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/scalarfe.hpp +335 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/shapefunction_utils.hpp +113 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/simd_complex.hpp +329 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/smoother.hpp +253 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/solve.hpp +89 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/sparsecholesky.hpp +313 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/sparsematrix.hpp +1038 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/sparsematrix_dyn.hpp +90 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/sparsematrix_impl.hpp +1013 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/special_matrix.hpp +463 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/specialelement.hpp +125 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/statushandler.hpp +33 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/stringops.hpp +12 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/superluinverse.hpp +136 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/symbolicintegrator.hpp +850 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/symmetricmatrix.hpp +144 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tangentialfacetfe.hpp +224 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tangentialfacetfespace.hpp +91 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tensor.hpp +522 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tensorcoefficient.hpp +446 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tensorproductintegrator.hpp +113 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/thcurlfe.hpp +128 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/thcurlfe_impl.hpp +380 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/thdivfe.hpp +80 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/thdivfe_impl.hpp +492 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tpdiffop.hpp +461 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tpfes.hpp +133 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tpintrule.hpp +224 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/triangular.hpp +465 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tscalarfe.hpp +245 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/tscalarfe_impl.hpp +1029 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/umfpackinverse.hpp +148 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/unifiedvector.hpp +103 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/vector.hpp +1273 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/voxelcoefficientfunction.hpp +41 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/vtkoutput.hpp +198 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/vvector.hpp +208 -0
- ngsolve-6.2.2506.post75.dev0.data/data/include/netgen/webgui.hpp +92 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/cmake/ngsolve/NGSolveConfig.cmake +102 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets-release.cmake +89 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets.cmake +173 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngbla.so +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngcomp.so +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngfem.so +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngla.so +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsbem.so +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngscudalib.so +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsolve.so +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngstd.so +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/TensorProductTools.py +210 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/__console.py +94 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/__expr.py +181 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/__init__.py +148 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/_scikit_build_core_dependencies.py +30 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/bvp.py +78 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__init__.py +1 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__main__.py +4 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/config.py +60 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/__init__.py +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/__init__.py +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/__init__.py +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hhj.py +44 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hybrid_dg.py +53 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/mixed.py +30 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/nonlin.py +29 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pickling.py +26 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pml.py +31 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/taskmanager.py +20 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/tdnns.py +47 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG-skeleton.py +45 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG.py +38 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGlap.py +42 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGwave.py +61 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/__init__.py +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/adaptive.py +123 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/cmagnet.py +59 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/elasticity.py +76 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/navierstokes.py +74 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.ipynb +170 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.py +41 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/__init__.py +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_poisson.py +89 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_timeDG.py +82 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/directsolvers.py +26 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/eigenvalues.py +364 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/internal.py +89 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/krylovspace.py +1013 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/meshes.py +748 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngs2petsc.py +310 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscuda.so +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscxx.py +42 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngslib.so +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/nonlinearsolvers.py +203 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/preconditioners.py +11 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/solve_implementation.py +168 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/solvers.py +7 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/timestepping.py +185 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/timing.py +108 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/utils.py +167 -0
- ngsolve-6.2.2506.post75.dev0.data/data/lib/python3.14/site-packages/ngsolve/webgui.py +670 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/beam.geo +17 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/beam.vol +240 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/chip.in2d +41 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/chip.vol +614 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/coil.geo +12 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/coil.vol +2560 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/cube.geo +19 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/cube.vol +1832 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/shaft.geo +73 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/square.in2d +17 -0
- ngsolve-6.2.2506.post75.dev0.data/data/share/ngsolve/square.vol +149 -0
- ngsolve-6.2.2506.post75.dev0.dist-info/METADATA +14 -0
- ngsolve-6.2.2506.post75.dev0.dist-info/RECORD +303 -0
- ngsolve-6.2.2506.post75.dev0.dist-info/WHEEL +5 -0
- ngsolve-6.2.2506.post75.dev0.dist-info/licenses/LICENSE +504 -0
- ngsolve-6.2.2506.post75.dev0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
#ifndef FILE_GRIDFUNCTION
|
|
2
|
+
#define FILE_GRIDFUNCTION
|
|
3
|
+
|
|
4
|
+
/*********************************************************************/
|
|
5
|
+
/* File: gridfunction.hpp */
|
|
6
|
+
/* Author: Joachim Schoeberl */
|
|
7
|
+
/* Date: 10. Jul. 2000 */
|
|
8
|
+
/*********************************************************************/
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
#include <meshing/soldata.hpp> // netgen visualization
|
|
12
|
+
#include "fespace.hpp"
|
|
13
|
+
|
|
14
|
+
namespace ngcomp
|
|
15
|
+
{
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GridFunction;
|
|
19
|
+
|
|
20
|
+
class NGS_DLL_HEADER GridFunctionCoefficientFunction : public CoefficientFunctionNoDerivative
|
|
21
|
+
{
|
|
22
|
+
protected:
|
|
23
|
+
shared_ptr<GridFunction> gf_shared_ptr;
|
|
24
|
+
GridFunction* gf;
|
|
25
|
+
shared_ptr<FESpace> fes;
|
|
26
|
+
shared_ptr<DifferentialOperator> diffop[4];
|
|
27
|
+
int comp;
|
|
28
|
+
GridFunctionCoefficientFunction (shared_ptr<DifferentialOperator> adiffop,
|
|
29
|
+
shared_ptr<DifferentialOperator> atrace_diffop = nullptr,
|
|
30
|
+
shared_ptr<DifferentialOperator> attrace_diffop = nullptr,
|
|
31
|
+
shared_ptr<DifferentialOperator> atttrace_diffop = nullptr,
|
|
32
|
+
int acomp = 0);
|
|
33
|
+
public:
|
|
34
|
+
GridFunctionCoefficientFunction () = default;
|
|
35
|
+
GridFunctionCoefficientFunction (shared_ptr<GridFunction> agf, int acomp = 0);
|
|
36
|
+
GridFunctionCoefficientFunction (shared_ptr<GridFunction> agf,
|
|
37
|
+
shared_ptr<DifferentialOperator> adiffop,
|
|
38
|
+
shared_ptr<DifferentialOperator> atrace_diffop = nullptr,
|
|
39
|
+
shared_ptr<DifferentialOperator> attrace_diffop = nullptr,
|
|
40
|
+
shared_ptr<DifferentialOperator> atttrace_diffop = nullptr,
|
|
41
|
+
int acomp = 0);
|
|
42
|
+
GridFunctionCoefficientFunction (shared_ptr<GridFunction> agf,
|
|
43
|
+
shared_ptr<BilinearFormIntegrator> abfi, int acomp = 0);
|
|
44
|
+
GridFunctionCoefficientFunction (shared_ptr<GridFunction> agf, shared_ptr<ProxyFunction> proxy);
|
|
45
|
+
|
|
46
|
+
virtual ~GridFunctionCoefficientFunction ();
|
|
47
|
+
void DoArchive(Archive& ar) override;
|
|
48
|
+
/// scalar valued or vector valued
|
|
49
|
+
virtual bool IsComplex() const;
|
|
50
|
+
virtual int Dimension() const;
|
|
51
|
+
virtual Array<int> Dimensions() const;
|
|
52
|
+
virtual bool DefinedOn (const ElementTransformation & trafo) override;
|
|
53
|
+
void SelectComponent (int acomp) { comp = acomp; }
|
|
54
|
+
const GridFunction & GetGridFunction() const { return *gf; }
|
|
55
|
+
using CoefficientFunction::Evaluate;
|
|
56
|
+
using CoefficientFunctionNoDerivative::Evaluate;
|
|
57
|
+
virtual double Evaluate (const BaseMappedIntegrationPoint & ip) const override;
|
|
58
|
+
virtual Complex EvaluateComplex (const BaseMappedIntegrationPoint & ip) const override;
|
|
59
|
+
|
|
60
|
+
virtual void Evaluate(const BaseMappedIntegrationPoint & ip,
|
|
61
|
+
FlatVector<> result) const override;
|
|
62
|
+
virtual void Evaluate(const BaseMappedIntegrationPoint & ip,
|
|
63
|
+
FlatVector<Complex> result) const override;
|
|
64
|
+
|
|
65
|
+
virtual void Evaluate (const BaseMappedIntegrationRule & ir,
|
|
66
|
+
BareSliceMatrix<double> values) const override;
|
|
67
|
+
virtual void Evaluate (const BaseMappedIntegrationRule & ir,
|
|
68
|
+
BareSliceMatrix<Complex> values) const override;
|
|
69
|
+
virtual void Evaluate (const SIMD_BaseMappedIntegrationRule & ir, BareSliceMatrix<SIMD<double>> values) const override;
|
|
70
|
+
virtual void Evaluate (const SIMD_BaseMappedIntegrationRule & ir, BareSliceMatrix<SIMD<Complex>> values) const override;
|
|
71
|
+
|
|
72
|
+
virtual bool StoreUserData() const override { return true; }
|
|
73
|
+
|
|
74
|
+
virtual void NonZeroPattern (const class ProxyUserData & ud, FlatVector<AutoDiffDiff<1,NonZero>> nonzero) const override
|
|
75
|
+
{
|
|
76
|
+
nonzero = AutoDiffDiff<1,NonZero> (true);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// generation information for pickling:
|
|
80
|
+
bool generated_from_deriv = false;
|
|
81
|
+
string generated_from_operator;
|
|
82
|
+
shared_ptr<GridFunction> GetGridFunctionPtr() const { return gf_shared_ptr; }
|
|
83
|
+
const auto & GetDifferentialOperator (VorB vb) const { return diffop[vb]; }
|
|
84
|
+
|
|
85
|
+
virtual shared_ptr<CoefficientFunction>
|
|
86
|
+
Diff (const CoefficientFunction * var, shared_ptr<CoefficientFunction> dir) const override;
|
|
87
|
+
|
|
88
|
+
shared_ptr<CoefficientFunction> Primary() const override;
|
|
89
|
+
shared_ptr<GridFunctionCoefficientFunction> GetTrace() const;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
Grid-functions
|
|
99
|
+
*/
|
|
100
|
+
class NGS_DLL_HEADER GridFunction
|
|
101
|
+
: public GridFunctionCoefficientFunction // , public NGS_Object
|
|
102
|
+
{
|
|
103
|
+
protected:
|
|
104
|
+
string name;
|
|
105
|
+
Flags flags;
|
|
106
|
+
Flags flaglist;
|
|
107
|
+
/// the finite element space
|
|
108
|
+
shared_ptr<FESpace> fespace;
|
|
109
|
+
/// should we do a prolongation from one multigrid-level to the next ?
|
|
110
|
+
bool nested;
|
|
111
|
+
/// should the GF be updated automatically on an update of the underliying space?
|
|
112
|
+
bool autoupdate;
|
|
113
|
+
/// should we visualize the gridfunction ?
|
|
114
|
+
bool visual;
|
|
115
|
+
/// how many functions
|
|
116
|
+
int multidim;
|
|
117
|
+
/// highest multigrid-level for which Update was called (memory allocation)
|
|
118
|
+
int level_updated = -1;
|
|
119
|
+
|
|
120
|
+
/// used for many right-hand-sides
|
|
121
|
+
int cacheblocksize = 1;
|
|
122
|
+
/// Component gridfunctions living somewhere - need to call update on them
|
|
123
|
+
Array<weak_ptr<GridFunction>> compgfs;
|
|
124
|
+
/// the actual data, array for multi-dim
|
|
125
|
+
Array<shared_ptr<BaseVector>> vec;
|
|
126
|
+
/// component GridFunctions if fespace is a CompoundFESpace
|
|
127
|
+
weak_ptr<GridFunctionCoefficientFunction> derivcf;
|
|
128
|
+
public:
|
|
129
|
+
///
|
|
130
|
+
explicit GridFunction () = default;
|
|
131
|
+
GridFunction (shared_ptr<FESpace> afespace,
|
|
132
|
+
const string & name = "gfu",
|
|
133
|
+
const Flags & flags = Flags());
|
|
134
|
+
///
|
|
135
|
+
virtual ~GridFunction ();
|
|
136
|
+
///
|
|
137
|
+
virtual void Update ();
|
|
138
|
+
///
|
|
139
|
+
bool DoesAutoUpdate () const { return autoupdate; }
|
|
140
|
+
void ConnectAutoUpdate();
|
|
141
|
+
|
|
142
|
+
///
|
|
143
|
+
virtual void DoArchive (Archive & archive) override;
|
|
144
|
+
///
|
|
145
|
+
virtual BaseVector & GetVector (int comp = 0) { return *vec[comp]; }
|
|
146
|
+
virtual const BaseVector & GetVector (int comp = 0) const { return *vec[comp]; }
|
|
147
|
+
///
|
|
148
|
+
virtual shared_ptr<BaseVector> GetVectorPtr (int comp = 0) const { return vec[comp]; }
|
|
149
|
+
auto GetVectors() const { return MultiVector(vec); }
|
|
150
|
+
///
|
|
151
|
+
void SetNested (int anested = 1) { nested = anested; }
|
|
152
|
+
///
|
|
153
|
+
bool GetVisual () const { return visual; }
|
|
154
|
+
///
|
|
155
|
+
void SetVisual (bool avisual = 1) { visual = avisual; }
|
|
156
|
+
|
|
157
|
+
int GetMultiDim () const { return multidim; }
|
|
158
|
+
|
|
159
|
+
/// increase multidim and copy vec to new component
|
|
160
|
+
void AddMultiDimComponent (BaseVector & vec);
|
|
161
|
+
|
|
162
|
+
int GetLevelUpdated() const { return level_updated; }
|
|
163
|
+
///
|
|
164
|
+
|
|
165
|
+
// const FESpace & GetFESpace() const { return *fespace; }
|
|
166
|
+
///
|
|
167
|
+
const shared_ptr<FESpace> & GetFESpace() const { return fespace; }
|
|
168
|
+
///
|
|
169
|
+
const shared_ptr<MeshAccess> & GetMeshAccess() const { return fespace->GetMeshAccess(); }
|
|
170
|
+
///
|
|
171
|
+
virtual string GetClassName () const
|
|
172
|
+
{
|
|
173
|
+
return "GridFunction";
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
void SetName(const string & aname) { name = aname; }
|
|
177
|
+
string GetName () const { return name; }
|
|
178
|
+
|
|
179
|
+
const Flags& GetFlags() const { return flags; }
|
|
180
|
+
Flags& GetFlags() { return flags; }
|
|
181
|
+
|
|
182
|
+
virtual void Interpolate (const CoefficientFunction & cf,
|
|
183
|
+
const Region * reg, int mdcomp, LocalHeap & lh);
|
|
184
|
+
|
|
185
|
+
///
|
|
186
|
+
virtual void PrintReport (ostream & ost) const override;
|
|
187
|
+
///
|
|
188
|
+
virtual Array<MemoryUsage> GetMemoryUsage () const;
|
|
189
|
+
|
|
190
|
+
// void Visualize(const string & name);
|
|
191
|
+
|
|
192
|
+
///
|
|
193
|
+
virtual void SetCacheBlockSize (const int size) {cacheblocksize = size;}
|
|
194
|
+
///
|
|
195
|
+
virtual int GetCacheBlockSize (void) const { return cacheblocksize;}
|
|
196
|
+
///
|
|
197
|
+
virtual bool IsUpdated () const;
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
int GetNComponents () const
|
|
201
|
+
{
|
|
202
|
+
auto compfes = dynamic_pointer_cast<CompoundFESpace>(fespace);
|
|
203
|
+
if(compfes)
|
|
204
|
+
return compfes->GetNSpaces();
|
|
205
|
+
return 0;
|
|
206
|
+
}
|
|
207
|
+
shared_ptr<GridFunction> GetComponent (int compound_comp);
|
|
208
|
+
|
|
209
|
+
[[deprecated("Use GridFunction.Deriv instead!")]]
|
|
210
|
+
shared_ptr<GridFunctionCoefficientFunction> GetDeriv()
|
|
211
|
+
{
|
|
212
|
+
return Deriv();
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
shared_ptr<GridFunctionCoefficientFunction> Deriv()
|
|
216
|
+
{
|
|
217
|
+
auto res = derivcf.lock();
|
|
218
|
+
if(res) return res;
|
|
219
|
+
|
|
220
|
+
// derivcf is not set -> initialize it
|
|
221
|
+
res =
|
|
222
|
+
make_shared<GridFunctionCoefficientFunction> (dynamic_pointer_cast<GridFunction> (shared_from_this()),
|
|
223
|
+
GetFESpace()->GetFluxEvaluator(),
|
|
224
|
+
GetFESpace()->GetFluxEvaluator(BND),
|
|
225
|
+
GetFESpace()->GetFluxEvaluator(BBND));
|
|
226
|
+
res -> generated_from_deriv = true;
|
|
227
|
+
derivcf = res;
|
|
228
|
+
return res;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
shared_ptr<CoefficientFunction> Operator (shared_ptr<DifferentialOperator> diffop) const override;
|
|
232
|
+
shared_ptr<CoefficientFunction> Operator (const string& name) const override;
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
///
|
|
236
|
+
virtual void GetElementVector (FlatArray<int> dnums,
|
|
237
|
+
FlatVector<double> elvec) const
|
|
238
|
+
{ vec[0] -> GetIndirect (dnums, elvec); }
|
|
239
|
+
|
|
240
|
+
///
|
|
241
|
+
virtual void SetElementVector (FlatArray<int> dnums,
|
|
242
|
+
FlatVector<double> elvec)
|
|
243
|
+
{ vec[0] -> SetIndirect (dnums, elvec); }
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
///
|
|
247
|
+
virtual void GetElementVector (int comp,
|
|
248
|
+
FlatArray<int> dnums,
|
|
249
|
+
FlatVector<double> elvec) const
|
|
250
|
+
{ vec[comp] -> GetIndirect (dnums, elvec); }
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
///
|
|
254
|
+
virtual void SetElementVector (int comp,
|
|
255
|
+
FlatArray<int> dnums,
|
|
256
|
+
FlatVector<double> elvec)
|
|
257
|
+
{ vec[comp] -> SetIndirect (dnums, elvec); }
|
|
258
|
+
|
|
259
|
+
///
|
|
260
|
+
virtual void GetElementVector (FlatArray<int> dnums,
|
|
261
|
+
FlatVector<Complex> elvec) const
|
|
262
|
+
{ vec[0] -> GetIndirect (dnums, elvec); }
|
|
263
|
+
|
|
264
|
+
///
|
|
265
|
+
virtual void SetElementVector (FlatArray<int> dnums,
|
|
266
|
+
FlatVector<Complex> elvec)
|
|
267
|
+
{ vec[0] -> SetIndirect (dnums, elvec); }
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
///
|
|
271
|
+
virtual void GetElementVector (int comp,
|
|
272
|
+
FlatArray<int> dnums,
|
|
273
|
+
FlatVector<Complex> elvec) const
|
|
274
|
+
{ vec[comp] -> GetIndirect (dnums, elvec); }
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
///
|
|
278
|
+
virtual void SetElementVector (int comp,
|
|
279
|
+
FlatArray<int> dnums,
|
|
280
|
+
FlatVector<Complex> elvec)
|
|
281
|
+
{ vec[comp] -> SetIndirect (dnums, elvec); }
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
// multidim component, if -1 then all components are loaded/saved
|
|
285
|
+
virtual void Load (istream & ist, int mdcomp = -1) = 0;
|
|
286
|
+
virtual void Save (ostream & ost, int mdcomp = -1) const = 0;
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
inline ostream & operator<< (ostream & ost, const GridFunction & gf)
|
|
291
|
+
{
|
|
292
|
+
gf.PrintReport (ost);
|
|
293
|
+
return ost;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
extern NGS_DLL_HEADER void Visualize(shared_ptr<GridFunction> gf, const string & name);
|
|
298
|
+
|
|
299
|
+
template <class SCAL>
|
|
300
|
+
class NGS_DLL_HEADER S_GridFunction : public GridFunction
|
|
301
|
+
{
|
|
302
|
+
public:
|
|
303
|
+
S_GridFunction () = default;
|
|
304
|
+
S_GridFunction (shared_ptr<FESpace> afespace,
|
|
305
|
+
const string & aname = "gfu",
|
|
306
|
+
const Flags & flags = Flags());
|
|
307
|
+
|
|
308
|
+
// parallel Load/Save by Martin Huber and Lothar Nannen
|
|
309
|
+
virtual void Load (istream & ist, int mdcomp);
|
|
310
|
+
virtual void Save (ostream & ost, int mdcomp) const;
|
|
311
|
+
|
|
312
|
+
virtual void Update ();
|
|
313
|
+
|
|
314
|
+
private:
|
|
315
|
+
template <int N, NODE_TYPE NT> void LoadNodeType (istream & ist, int mdcomp);
|
|
316
|
+
template <int N, NODE_TYPE NT> void SaveNodeType (ostream & ost, int mdcomp) const;
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
template <class TV>
|
|
322
|
+
class NGS_DLL_HEADER T_GridFunction : public S_GridFunction<typename mat_traits<TV>::TSCAL>
|
|
323
|
+
{
|
|
324
|
+
public:
|
|
325
|
+
typedef typename mat_traits<TV>::TSCAL TSCAL;
|
|
326
|
+
|
|
327
|
+
[[deprecated("Use T_GridFunction(shared_ptr<FESpace> ... instead!")]]
|
|
328
|
+
T_GridFunction (const FESpace & afespace,
|
|
329
|
+
const string & aname = "gfu",
|
|
330
|
+
const Flags & flags = Flags())
|
|
331
|
+
: T_GridFunction(shared_ptr<FESpace> (const_cast<FESpace*>(&afespace),NOOP_Deleter), aname, flags)
|
|
332
|
+
{ ; }
|
|
333
|
+
|
|
334
|
+
T_GridFunction (shared_ptr<FESpace> afespace,
|
|
335
|
+
const string & aname = "gfu",
|
|
336
|
+
const Flags & flags = Flags())
|
|
337
|
+
: S_GridFunction<TSCAL> (afespace, aname, flags)
|
|
338
|
+
{ ; }
|
|
339
|
+
|
|
340
|
+
virtual ~T_GridFunction () { ; }
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
extern NGS_DLL_HEADER
|
|
347
|
+
shared_ptr<GridFunction> CreateGridFunction (shared_ptr<FESpace> space,
|
|
348
|
+
const string & name, const Flags & flags);
|
|
349
|
+
|
|
350
|
+
[[deprecated("Use CreateGridFunction(shared_ptr<FESpace> ... instead!")]]
|
|
351
|
+
inline
|
|
352
|
+
shared_ptr<GridFunction> CreateGridFunction (const FESpace * space,
|
|
353
|
+
const string & name, const Flags & flags)
|
|
354
|
+
{
|
|
355
|
+
return
|
|
356
|
+
CreateGridFunction (shared_ptr<FESpace> (const_cast<FESpace*>(space), NOOP_Deleter),
|
|
357
|
+
name, flags);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
class NGS_DLL_HEADER ComponentGridFunction : public GridFunction
|
|
363
|
+
{
|
|
364
|
+
shared_ptr<GridFunction> gf_parent;
|
|
365
|
+
int comp;
|
|
366
|
+
public:
|
|
367
|
+
ComponentGridFunction (shared_ptr<GridFunction> agf_parent, int acomp);
|
|
368
|
+
~ComponentGridFunction () override;
|
|
369
|
+
void Update () override;
|
|
370
|
+
void Load(istream& ist, int mdcomp) override { throw Exception("Load not implemented for ComponentGF"); }
|
|
371
|
+
void Save(ostream& ost, int mdcomp) const override { throw Exception("Save not implemented for ComponentGF"); }
|
|
372
|
+
shared_ptr<GridFunction> GetParent() const { return gf_parent; }
|
|
373
|
+
int GetComponent() const { return comp; }
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
|
|
381
|
+
template <class SCAL>
|
|
382
|
+
class NGS_DLL_HEADER VisualizeGridFunction : public netgen::SolutionData
|
|
383
|
+
{
|
|
384
|
+
shared_ptr<MeshAccess> ma;
|
|
385
|
+
shared_ptr<GridFunction> gf;
|
|
386
|
+
Array<shared_ptr<BilinearFormIntegrator>> bfi2d;
|
|
387
|
+
Array<shared_ptr<BilinearFormIntegrator>> bfi3d;
|
|
388
|
+
bool applyd;
|
|
389
|
+
|
|
390
|
+
public:
|
|
391
|
+
VisualizeGridFunction (shared_ptr<MeshAccess> ama,
|
|
392
|
+
shared_ptr<GridFunction> agf,
|
|
393
|
+
const shared_ptr<BilinearFormIntegrator> abfi2d,
|
|
394
|
+
const shared_ptr<BilinearFormIntegrator> abfi3d,
|
|
395
|
+
bool aapplyd);
|
|
396
|
+
VisualizeGridFunction (shared_ptr<MeshAccess> ama,
|
|
397
|
+
shared_ptr<GridFunction> agf,
|
|
398
|
+
const Array<shared_ptr<BilinearFormIntegrator>> & abfi2d,
|
|
399
|
+
const Array<shared_ptr<BilinearFormIntegrator>> & abfi3d,
|
|
400
|
+
bool aapplyd);
|
|
401
|
+
|
|
402
|
+
virtual ~VisualizeGridFunction ();
|
|
403
|
+
|
|
404
|
+
virtual bool GetValue (int elnr,
|
|
405
|
+
double lam1, double lam2, double lam3,
|
|
406
|
+
double * values) ;
|
|
407
|
+
|
|
408
|
+
virtual bool GetValue (int elnr,
|
|
409
|
+
const double xref[], const double x[], const double dxdxref[],
|
|
410
|
+
double * values) ;
|
|
411
|
+
|
|
412
|
+
virtual bool GetMultiValue (int elnr, int facetnr, int npts,
|
|
413
|
+
const double * xref, int sxref,
|
|
414
|
+
const double * x, int sx,
|
|
415
|
+
const double * dxdxref, int sdxdxref,
|
|
416
|
+
double * values, int svalues);
|
|
417
|
+
|
|
418
|
+
virtual bool GetSurfValue (int elnr, int facetnr,
|
|
419
|
+
double lam1, double lam2,
|
|
420
|
+
double * values) ;
|
|
421
|
+
|
|
422
|
+
virtual bool GetSurfValue (int selnr, int facetnr,
|
|
423
|
+
const double xref[], const double x[], const double dxdxref[],
|
|
424
|
+
double * values);
|
|
425
|
+
|
|
426
|
+
virtual bool GetMultiSurfValue (int selnr, int facetnr, int npts,
|
|
427
|
+
const double * xref, int sxref,
|
|
428
|
+
const double * x, int sx,
|
|
429
|
+
const double * dxdxref, int sdxdxref,
|
|
430
|
+
double * values, int svalues);
|
|
431
|
+
|
|
432
|
+
virtual bool GetMultiSurfValue (size_t selnr, size_t facetnr, size_t npts,
|
|
433
|
+
const SIMD<double> * xref,
|
|
434
|
+
const SIMD<double> * x,
|
|
435
|
+
const SIMD<double> * dxdxref,
|
|
436
|
+
SIMD<double> * values);
|
|
437
|
+
|
|
438
|
+
virtual bool GetSegmentValue (int segnr, double xref, double * values);
|
|
439
|
+
|
|
440
|
+
virtual int GetNumMultiDimComponents ()
|
|
441
|
+
{
|
|
442
|
+
return gf->GetMultiDim();
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
void Analyze(Array<double> & minima, Array<double> & maxima, Array<double> & averages, int component = -1);
|
|
447
|
+
void Analyze(Array<double> & minima, Array<double> & maxima, Array<double> & averages_times_volumes, Array<double> & volumes, int component = -1);
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
};
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
class NGS_DLL_HEADER VisualizeCoefficientFunction : public netgen::SolutionData
|
|
465
|
+
{
|
|
466
|
+
shared_ptr<MeshAccess> ma;
|
|
467
|
+
shared_ptr<CoefficientFunction> cf;
|
|
468
|
+
// LocalHeap lh;
|
|
469
|
+
public:
|
|
470
|
+
VisualizeCoefficientFunction (shared_ptr<MeshAccess> ama,
|
|
471
|
+
shared_ptr<CoefficientFunction> acf);
|
|
472
|
+
|
|
473
|
+
virtual ~VisualizeCoefficientFunction ();
|
|
474
|
+
|
|
475
|
+
virtual bool GetValue (int elnr,
|
|
476
|
+
double lam1, double lam2, double lam3,
|
|
477
|
+
double * values) ;
|
|
478
|
+
|
|
479
|
+
virtual bool GetValue (int elnr,
|
|
480
|
+
const double xref[], const double x[], const double dxdxref[],
|
|
481
|
+
double * values) ;
|
|
482
|
+
|
|
483
|
+
virtual bool GetMultiValue (int elnr, int facetnr, int npts,
|
|
484
|
+
const double * xref, int sxref,
|
|
485
|
+
const double * x, int sx,
|
|
486
|
+
const double * dxdxref, int sdxdxref,
|
|
487
|
+
double * values, int svalues);
|
|
488
|
+
|
|
489
|
+
virtual bool GetSurfValue (int elnr, int facetnr,
|
|
490
|
+
double lam1, double lam2,
|
|
491
|
+
double * values) ;
|
|
492
|
+
|
|
493
|
+
virtual bool GetSurfValue (int selnr, int facetnr,
|
|
494
|
+
const double xref[], const double x[], const double dxdxref[],
|
|
495
|
+
double * values);
|
|
496
|
+
|
|
497
|
+
virtual bool GetMultiSurfValue (int selnr, int facetnr, int npts,
|
|
498
|
+
const double * xref, int sxref,
|
|
499
|
+
const double * x, int sx,
|
|
500
|
+
const double * dxdxref, int sdxdxref,
|
|
501
|
+
double * values, int svalues);
|
|
502
|
+
|
|
503
|
+
virtual bool GetMultiSurfValue (size_t selnr, size_t facetnr, size_t npts,
|
|
504
|
+
const SIMD<double> * xref,
|
|
505
|
+
const SIMD<double> * x,
|
|
506
|
+
const SIMD<double> * dxdxref,
|
|
507
|
+
SIMD<double> * values);
|
|
508
|
+
|
|
509
|
+
virtual bool GetSegmentValue (int segnr, double xref, double * values);
|
|
510
|
+
|
|
511
|
+
void Analyze(Array<double> & minima, Array<double> & maxima, Array<double> & averages, int component = -1);
|
|
512
|
+
void Analyze(Array<double> & minima, Array<double> & maxima, Array<double> & averages_times_volumes, Array<double> & volumes, int component = -1);
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
virtual int GetNumMultiDimComponents ();
|
|
516
|
+
virtual void SetMultiDimComponent (int mc);
|
|
517
|
+
};
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
#endif
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#ifndef H1AMGxx_HPP_
|
|
2
|
+
#define H1AMGxx_HPP_
|
|
3
|
+
|
|
4
|
+
// #include <la.hpp>
|
|
5
|
+
#include <basematrix.hpp>
|
|
6
|
+
#include <sparsematrix.hpp>
|
|
7
|
+
#include <preconditioner.hpp>
|
|
8
|
+
|
|
9
|
+
namespace ngcomp
|
|
10
|
+
{
|
|
11
|
+
using namespace ngla;
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
struct H1AMG_Parameters
|
|
16
|
+
{
|
|
17
|
+
int verbose = 0;
|
|
18
|
+
int smoothing_steps = 3;
|
|
19
|
+
int coarsenings_per_level = 3; // number of binary coarsenings per level
|
|
20
|
+
bool block_smoother = true; // block or point smoother ?
|
|
21
|
+
bool use_smoothed_prolongation = true;
|
|
22
|
+
int max_coarse = 10;
|
|
23
|
+
int max_level = 20;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
template <class SCAL>
|
|
28
|
+
class NGS_DLL_HEADER H1AMG_Matrix : public ngla::BaseMatrix
|
|
29
|
+
{
|
|
30
|
+
size_t size;
|
|
31
|
+
std::shared_ptr<ngla::SparseMatrixTM<SCAL>> mat;
|
|
32
|
+
std::shared_ptr<ngla::BaseBlockJacobiPrecond> smoother;
|
|
33
|
+
std::shared_ptr<ngla::SparseMatrixTM<double>> prolongation, restriction;
|
|
34
|
+
std::shared_ptr<ngla::BaseMatrix> coarse_precond;
|
|
35
|
+
int smoothing_steps = 1;
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
H1AMG_Matrix (std::shared_ptr<ngla::SparseMatrixTM<SCAL>> amat,
|
|
39
|
+
std::shared_ptr<ngcore::BitArray> freedofs,
|
|
40
|
+
ngcore::FlatArray<ngcore::IVec<2>> e2v,
|
|
41
|
+
ngcore::FlatArray<double> edge_weights,
|
|
42
|
+
ngcore::FlatArray<double> vertex_weights,
|
|
43
|
+
const H1AMG_Parameters & param,
|
|
44
|
+
size_t level);
|
|
45
|
+
|
|
46
|
+
virtual int VHeight() const override { return size; }
|
|
47
|
+
virtual int VWidth() const override { return size; }
|
|
48
|
+
virtual bool IsComplex() const override { return is_same<SCAL,Complex>(); }
|
|
49
|
+
|
|
50
|
+
virtual AutoVector CreateRowVector () const override { return mat->CreateColVector(); }
|
|
51
|
+
virtual AutoVector CreateColVector () const override { return mat->CreateRowVector(); }
|
|
52
|
+
|
|
53
|
+
virtual void Mult (const ngla::BaseVector & b, ngla::BaseVector & x) const override;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
template <class SCAL>
|
|
61
|
+
class H1AMG_Preconditioner : public Preconditioner
|
|
62
|
+
{
|
|
63
|
+
shared_ptr<BitArray> freedofs;
|
|
64
|
+
shared_ptr<H1AMG_Matrix<SCAL>> mat;
|
|
65
|
+
|
|
66
|
+
ParallelHashTable<IVec<2>,double> edge_weights_ht;
|
|
67
|
+
ParallelHashTable<IVec<1>,double> vertex_weights_ht;
|
|
68
|
+
|
|
69
|
+
H1AMG_Parameters param;
|
|
70
|
+
|
|
71
|
+
public:
|
|
72
|
+
|
|
73
|
+
static shared_ptr<Preconditioner> CreateBF (shared_ptr<BilinearForm> bfa, const Flags & flags, const string & name)
|
|
74
|
+
{
|
|
75
|
+
if (bfa->GetFESpace()->IsComplex())
|
|
76
|
+
return make_shared<H1AMG_Preconditioner<Complex>> (bfa, flags, name);
|
|
77
|
+
else
|
|
78
|
+
return make_shared<H1AMG_Preconditioner<double>> (bfa, flags, name);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
static DocInfo GetDocu ();
|
|
82
|
+
|
|
83
|
+
H1AMG_Preconditioner (shared_ptr<BilinearForm> abfa, const Flags & aflags,
|
|
84
|
+
const string aname = "H1AMG_cprecond")
|
|
85
|
+
: Preconditioner (abfa, aflags, aname)
|
|
86
|
+
{
|
|
87
|
+
if (is_same<SCAL,double>::value)
|
|
88
|
+
cout << IM(3) << "Create H1AMG" << endl;
|
|
89
|
+
else
|
|
90
|
+
cout << IM(3) << "Create H1AMG, complex" << endl;
|
|
91
|
+
|
|
92
|
+
param.verbose = int(flags.GetNumFlag("verbose", 0));
|
|
93
|
+
param.smoothing_steps = int(flags.GetNumFlag("smoothingsteps", 1));
|
|
94
|
+
param.use_smoothed_prolongation = flags.GetDefineFlagX("smoothedprolongation").IsMaybeTrue();
|
|
95
|
+
param.max_coarse = int(flags.GetNumFlag("maxcoarse", 10));
|
|
96
|
+
param.max_level = int(flags.GetNumFlag("maxlevel", 20));
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
virtual void InitLevel (shared_ptr<BitArray> _freedofs) override
|
|
100
|
+
{
|
|
101
|
+
freedofs = _freedofs;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
virtual void FinalizeLevel (const BaseMatrix * matrix) override;
|
|
105
|
+
|
|
106
|
+
virtual void AddElementMatrix (FlatArray<int> dnums,
|
|
107
|
+
FlatMatrix<SCAL> elmat,
|
|
108
|
+
ElementId id,
|
|
109
|
+
LocalHeap & lh) override;
|
|
110
|
+
|
|
111
|
+
virtual void Update () override { ; }
|
|
112
|
+
|
|
113
|
+
virtual const BaseMatrix & GetMatrix() const override
|
|
114
|
+
{
|
|
115
|
+
return *mat;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
#endif // H1AMG_HPP_
|