ngsolve 6.2.2506.post216.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.
- ngsolve-6.2.2506.post216.dev0.data/data/bin/ngs_nvcc +22 -0
- ngsolve-6.2.2506.post216.dev0.data/data/bin/ngs_nvlink +17 -0
- ngsolve-6.2.2506.post216.dev0.data/data/bin/ngscxx +15 -0
- ngsolve-6.2.2506.post216.dev0.data/data/bin/ngsld +11 -0
- ngsolve-6.2.2506.post216.dev0.data/data/bin/ngsolve.tcl +648 -0
- ngsolve-6.2.2506.post216.dev0.data/data/bin/ngspy +2 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/analytic_integrals.hpp +10 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/arnoldi.hpp +55 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bandmatrix.hpp +334 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/basematrix.hpp +963 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/basevector.hpp +1268 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bdbequations.hpp +2807 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bdbintegrator.hpp +1660 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bem_diffops.hpp +475 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bessel.hpp +1064 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bilinearform.hpp +966 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bla.hpp +29 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/blockalloc.hpp +95 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/blockjacobi.hpp +328 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bspline.hpp +116 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/calcinverse.hpp +141 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cg.hpp +368 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/chebyshev.hpp +44 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cholesky.hpp +720 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/clapack.h +7254 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/code_generation.hpp +296 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient.hpp +2033 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient_impl.hpp +19 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient_stdmath.hpp +167 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/commutingAMG.hpp +106 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/comp.hpp +79 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/compatibility.hpp +41 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/complex_wrapper.hpp +101 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/compressedfespace.hpp +110 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/contact.hpp +239 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_core.hpp +216 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_linalg.hpp +185 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_ngbla.hpp +317 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_ngstd.hpp +414 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_profiler.hpp +240 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diagonalmatrix.hpp +160 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/differentialoperator.hpp +276 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffop.hpp +1286 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffop_impl.hpp +328 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffopwithfactor.hpp +123 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/discontinuous.hpp +84 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/dump.hpp +949 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ectypes.hpp +121 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/eigen.hpp +60 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/eigensystem.hpp +18 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elasticity_equations.hpp +595 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementbyelement.hpp +201 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementtopology.hpp +1760 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementtransformation.hpp +339 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/evalfunc.hpp +405 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/expr.hpp +1693 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetfe.hpp +175 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetfespace.hpp +180 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facethofe.hpp +111 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetsurffespace.hpp +112 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fe_interfaces.hpp +32 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fem.hpp +87 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fesconvert.hpp +14 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fespace.hpp +1454 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/finiteelement.hpp +286 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/globalinterfacespace.hpp +77 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/globalspace.hpp +115 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/gridfunction.hpp +525 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1amg.hpp +124 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofe.hpp +188 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofe_impl.hpp +1262 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofefo.hpp +148 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofefo_impl.hpp +185 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofespace.hpp +167 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1lofe.hpp +1240 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1lumping.hpp +41 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurl_equations.hpp +1381 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlcurlfe.hpp +2241 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlcurlfespace.hpp +78 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlfe.hpp +259 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlfe_utils.hpp +107 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhdiv_dshape.hpp +857 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhdivfes.hpp +308 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofe.hpp +175 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofe_impl.hpp +1871 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofespace.hpp +193 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurllofe.hpp +1146 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdiv_equations.hpp +880 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivdivfe.hpp +2923 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivdivsurfacespace.hpp +76 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfe.hpp +206 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfe_utils.hpp +717 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfes.hpp +75 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofe.hpp +447 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofe_impl.hpp +1107 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofefo.hpp +229 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofespace.hpp +177 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhosurfacefespace.hpp +106 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivlofe.hpp +773 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hidden.hpp +74 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/householder.hpp +181 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hypre_ams_precond.hpp +123 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hypre_precond.hpp +73 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/integrator.hpp +2012 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/integratorcf.hpp +253 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/interpolate.hpp +49 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/intrule.hpp +2542 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/intrules_SauterSchwab.hpp +25 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/irspace.hpp +49 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/jacobi.hpp +153 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/kernels.hpp +724 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofe.hpp +194 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofe_impl.hpp +564 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofefo.hpp +542 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofespace.hpp +344 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/la.hpp +38 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/linalg_kernels.hpp +70 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/linearform.hpp +266 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/matrix.hpp +2145 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/memusage.hpp +41 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/meshaccess.hpp +1359 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mgpre.hpp +204 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mp_coefficient.hpp +145 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mptools.hpp +2281 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/multigrid.hpp +42 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/multivector.hpp +447 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mumpsinverse.hpp +187 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mycomplex.hpp +361 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ng_lapack.hpp +1661 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngblas.hpp +1232 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_defines.hpp +30 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_stdcpp_include.hpp +106 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_utils.hpp +121 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngsobject.hpp +1019 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngsstream.hpp +113 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngstd.hpp +72 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/nodalhofe.hpp +96 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/nodalhofe_impl.hpp +141 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetfe.hpp +223 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetfespace.hpp +98 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetsurfacefespace.hpp +84 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/order.hpp +251 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallel_matrices.hpp +222 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/paralleldofs.hpp +340 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallelngs.hpp +23 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallelvector.hpp +269 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pardisoinverse.hpp +200 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/periodic.hpp +129 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/plateaufespace.hpp +25 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pml.hpp +275 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pmltrafo.hpp +631 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/postproc.hpp +142 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/potentialtools.hpp +22 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/precomp.hpp +60 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/preconditioner.hpp +602 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/prolongation.hpp +380 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_comp.hpp +107 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_fem.hpp +89 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_linalg.hpp +58 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_ngstd.hpp +386 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol.hpp +4896 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol_tet.hpp +395 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol_trig.hpp +492 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/reorderedfespace.hpp +81 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sample_sort.hpp +105 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/scalarfe.hpp +335 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/shapefunction_utils.hpp +113 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/simd_complex.hpp +329 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/smoother.hpp +253 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/solve.hpp +89 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsecholesky.hpp +317 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsefactorization_interface.hpp +159 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix.hpp +1052 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix_dyn.hpp +90 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix_impl.hpp +1055 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/special_matrix.hpp +463 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/specialelement.hpp +125 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/statushandler.hpp +33 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/stringops.hpp +12 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/superluinverse.hpp +136 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/symbolicintegrator.hpp +850 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/symmetricmatrix.hpp +144 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tangentialfacetfe.hpp +224 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tangentialfacetfespace.hpp +91 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensor.hpp +522 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensorcoefficient.hpp +446 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensorproductintegrator.hpp +113 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thcurlfe.hpp +128 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thcurlfe_impl.hpp +380 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thdivfe.hpp +80 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thdivfe_impl.hpp +492 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpdiffop.hpp +461 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpfes.hpp +133 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpintrule.hpp +224 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/triangular.hpp +465 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tscalarfe.hpp +245 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tscalarfe_impl.hpp +1029 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/umfpackinverse.hpp +148 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/unifiedvector.hpp +103 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vector.hpp +1452 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/voxelcoefficientfunction.hpp +41 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vtkoutput.hpp +198 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vvector.hpp +208 -0
- ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/webgui.hpp +92 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/NGSolveConfig.cmake +102 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets-release.cmake +89 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets.cmake +180 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngbla.so +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngcomp.so +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngfem.so +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngla.so +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsbem.so +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngscudalib.so +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsolve.so +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngstd.so +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/TensorProductTools.py +210 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__console.py +94 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__expr.py +181 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__init__.py +148 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/_scikit_build_core_dependencies.py +30 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/bvp.py +78 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__init__.py +1 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__main__.py +4 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/config.py +60 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/__init__.py +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/__init__.py +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/__init__.py +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hhj.py +44 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hybrid_dg.py +53 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/mixed.py +30 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/nonlin.py +29 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pickling.py +26 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pml.py +31 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/taskmanager.py +20 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/tdnns.py +47 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG-skeleton.py +45 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG.py +38 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGlap.py +42 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGwave.py +61 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/__init__.py +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/adaptive.py +123 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/cmagnet.py +59 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/elasticity.py +76 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/navierstokes.py +74 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.ipynb +170 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.py +41 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/__init__.py +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_poisson.py +89 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_timeDG.py +82 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/directsolvers.py +14 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/eigenvalues.py +364 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/internal.py +89 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/krylovspace.py +1182 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/meshes.py +748 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngs2petsc.py +310 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscuda.so +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscxx.py +42 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngslib.so +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/nonlinearsolvers.py +203 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/preconditioners.py +11 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solve_implementation.py +168 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solvers/__init__.py +7 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solvers/cudss.py +112 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/timestepping.py +185 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/timing.py +108 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/utils.py +167 -0
- ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/webgui.py +671 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/beam.geo +17 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/beam.vol +240 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/chip.in2d +41 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/chip.vol +614 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coil.geo +12 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coil.vol +2560 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/cube.geo +19 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/cube.vol +1832 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/shaft.geo +73 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/square.in2d +17 -0
- ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/square.vol +149 -0
- ngsolve-6.2.2506.post216.dev0.dist-info/METADATA +14 -0
- ngsolve-6.2.2506.post216.dev0.dist-info/RECORD +306 -0
- ngsolve-6.2.2506.post216.dev0.dist-info/WHEEL +5 -0
- ngsolve-6.2.2506.post216.dev0.dist-info/licenses/LICENSE +504 -0
- ngsolve-6.2.2506.post216.dev0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
#ifndef FILE_DIFFOP_IMPL
|
|
2
|
+
#define FILE_DIFFOP_IMPL
|
|
3
|
+
|
|
4
|
+
/*********************************************************************/
|
|
5
|
+
/* File: diffop.hpp */
|
|
6
|
+
/* Author: Joachim Schoeberl */
|
|
7
|
+
/* Date: 24. Nov. 2009 */
|
|
8
|
+
/*********************************************************************/
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
#include "diffop.hpp"
|
|
12
|
+
|
|
13
|
+
namespace ngfem
|
|
14
|
+
{
|
|
15
|
+
|
|
16
|
+
/*
|
|
17
|
+
template <typename DIFFOP>
|
|
18
|
+
T_DifferentialOperator<DIFFOP> :: T_DifferentialOperator()
|
|
19
|
+
: DifferentialOperator(DIFFOP::DIM_DMAT, 1, VorB(int(DIM_SPACE)-int(DIM_ELEMENT)), DIFFOP::DIFFORDER)
|
|
20
|
+
{
|
|
21
|
+
static ngcore::RegisterClassForArchive<ngfem::T_DifferentialOperator<DIFFOP>, DifferentialOperator> reg;
|
|
22
|
+
Array<int> hdims;
|
|
23
|
+
hdims = DIFFOP::GetDimensions();
|
|
24
|
+
SetDimensions ( hdims );
|
|
25
|
+
}
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
template <typename DIFFOP>
|
|
29
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
30
|
+
CalcMatrix (const FiniteElement & bfel,
|
|
31
|
+
const BaseMappedIntegrationPoint & bmip,
|
|
32
|
+
BareSliceMatrix<double,ColMajor> mat,
|
|
33
|
+
LocalHeap & lh) const
|
|
34
|
+
{
|
|
35
|
+
const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE> & mip =
|
|
36
|
+
static_cast<const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE>&> (bmip);
|
|
37
|
+
auto mat2 = mat.Rows<DIM_DMAT>().Cols(DIM*bfel.GetNDof());
|
|
38
|
+
DIFFOP::GenerateMatrix (bfel, mip, mat2, lh);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
template <bool ENABLE_PML>
|
|
43
|
+
class GenerateMatrix_PMLWrapper
|
|
44
|
+
{
|
|
45
|
+
public:
|
|
46
|
+
template <typename DIFFOP, typename FEL, typename MIP, typename MAT>
|
|
47
|
+
static void GenerateMatrix (const FEL & fel, const MIP & mip,
|
|
48
|
+
MAT & mat, LocalHeap & lh)
|
|
49
|
+
{
|
|
50
|
+
DIFFOP::GenerateMatrix (fel, mip, mat, lh);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
template <typename DIFFOP, typename FEL, typename MIR, typename TVX, typename TVY>
|
|
54
|
+
static void ApplyIR (const FEL & fel, const MIR & mir,
|
|
55
|
+
const TVX & x, TVY & flux,
|
|
56
|
+
LocalHeap & lh)
|
|
57
|
+
{
|
|
58
|
+
DIFFOP::ApplyIR (fel, mir, x, flux, lh);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
template <> class GenerateMatrix_PMLWrapper<false>
|
|
63
|
+
{
|
|
64
|
+
public:
|
|
65
|
+
template <typename DIFFOP, typename FEL, typename MIP, typename MAT>
|
|
66
|
+
static void GenerateMatrix (const FEL & fel, const MIP & mip,
|
|
67
|
+
MAT & mat, LocalHeap & lh)
|
|
68
|
+
{
|
|
69
|
+
Exception::Throw("PML not supported for diffop ", DIFFOP::Name(),
|
|
70
|
+
"\nit might be enough to set SUPPORT_PML to true in the diffop");
|
|
71
|
+
}
|
|
72
|
+
template <typename DIFFOP, typename FEL, typename MIR, typename TVX, typename TVY>
|
|
73
|
+
static void ApplyIR (const FEL & fel, const MIR & mir,
|
|
74
|
+
const TVX & x, TVY & y,
|
|
75
|
+
LocalHeap & lh)
|
|
76
|
+
{
|
|
77
|
+
Exception::Throw("PML not supported for diffop ", DIFFOP::Name(),
|
|
78
|
+
" ApplyIR\nit might be enough to set SUPPORT_PML to true in the diffop");
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
template <typename DIFFOP>
|
|
86
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
87
|
+
CalcMatrix (const FiniteElement & bfel,
|
|
88
|
+
const BaseMappedIntegrationPoint & bmip,
|
|
89
|
+
BareSliceMatrix<Complex,ColMajor> mat,
|
|
90
|
+
LocalHeap & lh) const
|
|
91
|
+
{
|
|
92
|
+
if (bmip.IsComplex())
|
|
93
|
+
{
|
|
94
|
+
const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE,Complex> & mip =
|
|
95
|
+
static_cast<const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE,Complex>&> (bmip);
|
|
96
|
+
// DIFFOP::GenerateMatrix (bfel, mip, mat, lh);
|
|
97
|
+
GenerateMatrix_PMLWrapper<DIFFOP::SUPPORT_PML>::template GenerateMatrix<DIFFOP> (bfel, mip, mat, lh);
|
|
98
|
+
}
|
|
99
|
+
else
|
|
100
|
+
{
|
|
101
|
+
const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE> & mip =
|
|
102
|
+
static_cast<const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE>&> (bmip);
|
|
103
|
+
GenerateMatrix_PMLWrapper<DIFFOP::SUPPORT_PML>::template GenerateMatrix<DIFFOP> (bfel, mip, mat, lh);
|
|
104
|
+
// DIFFOP::GenerateMatrix (bfel, mip, mat, lh);
|
|
105
|
+
// throw Exception ("cannot do complex matrix for real mip");
|
|
106
|
+
// ThrowException ("cannot do complex matrix for real mip");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
template <typename DIFFOP>
|
|
111
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
112
|
+
CalcMatrix (const FiniteElement & bfel,
|
|
113
|
+
const BaseMappedIntegrationRule & bmir,
|
|
114
|
+
BareSliceMatrix<double,ColMajor> mat,
|
|
115
|
+
LocalHeap & lh) const
|
|
116
|
+
{
|
|
117
|
+
const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE> & mir =
|
|
118
|
+
static_cast<const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE>&> (bmir);
|
|
119
|
+
DIFFOP::GenerateMatrixIR (bfel, mir, mat, lh);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
template <typename DIFFOP>
|
|
123
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
124
|
+
CalcMatrix (const FiniteElement & bfel,
|
|
125
|
+
const SIMD_BaseMappedIntegrationRule & bmir,
|
|
126
|
+
BareSliceMatrix<SIMD<double>> mat) const
|
|
127
|
+
{
|
|
128
|
+
DIFFOP::GenerateMatrixSIMDIR (bfel, bmir, mat);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
template <typename DIFFOP>
|
|
133
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
134
|
+
Apply (const FiniteElement & bfel,
|
|
135
|
+
const BaseMappedIntegrationPoint & bmip,
|
|
136
|
+
BareSliceVector<double> x,
|
|
137
|
+
FlatVector<double> flux,
|
|
138
|
+
LocalHeap & lh) const
|
|
139
|
+
{
|
|
140
|
+
const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE> & mip =
|
|
141
|
+
static_cast<const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE>&> (bmip);
|
|
142
|
+
DIFFOP::Apply (bfel, mip, x, flux, lh);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
#ifndef FASTCOMPILE
|
|
146
|
+
template <typename DIFFOP>
|
|
147
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
148
|
+
Apply (const FiniteElement & bfel,
|
|
149
|
+
const BaseMappedIntegrationRule & bmir,
|
|
150
|
+
BareSliceVector<double> x,
|
|
151
|
+
BareSliceMatrix<double> flux,
|
|
152
|
+
LocalHeap & lh) const
|
|
153
|
+
{
|
|
154
|
+
const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE> & mir =
|
|
155
|
+
static_cast<const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE>&> (bmir);
|
|
156
|
+
auto fluxsize = flux.AddSize(mir.Size(), DIFFOP::DIM_DMAT);
|
|
157
|
+
DIFFOP::ApplyIR (bfel, mir, x, fluxsize, lh);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
template <typename DIFFOP>
|
|
161
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
162
|
+
Apply (const FiniteElement & bfel,
|
|
163
|
+
const BaseMappedIntegrationPoint & bmip,
|
|
164
|
+
BareSliceVector<Complex> x,
|
|
165
|
+
FlatVector<Complex> flux,
|
|
166
|
+
LocalHeap & lh) const
|
|
167
|
+
{
|
|
168
|
+
const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE> & mip =
|
|
169
|
+
static_cast<const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE>&> (bmip);
|
|
170
|
+
DIFFOP::Apply (bfel, mip, x, flux, lh);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
template <typename DIFFOP>
|
|
174
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
175
|
+
Apply (const FiniteElement & bfel,
|
|
176
|
+
const BaseMappedIntegrationRule & bmir,
|
|
177
|
+
BareSliceVector<Complex> x,
|
|
178
|
+
BareSliceMatrix<Complex> flux,
|
|
179
|
+
LocalHeap & lh) const
|
|
180
|
+
{
|
|
181
|
+
auto fluxsize = flux.AddSize(bmir.Size(), DIFFOP::DIM_DMAT);
|
|
182
|
+
if (bmir.IsComplex())
|
|
183
|
+
{
|
|
184
|
+
const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE,Complex> & mir =
|
|
185
|
+
static_cast<const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE,Complex>&> (bmir);
|
|
186
|
+
|
|
187
|
+
GenerateMatrix_PMLWrapper<DIFFOP::SUPPORT_PML>::template ApplyIR<DIFFOP> (bfel, mir, x, fluxsize, lh);
|
|
188
|
+
// DIFFOP::ApplyIR (bfel, mir, x, flux, lh);
|
|
189
|
+
}
|
|
190
|
+
else
|
|
191
|
+
{
|
|
192
|
+
const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE> & mir =
|
|
193
|
+
static_cast<const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE>&> (bmir);
|
|
194
|
+
DIFFOP::ApplyIR (bfel, mir, x, fluxsize, lh);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
template <typename DIFFOP>
|
|
202
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
203
|
+
Apply (const FiniteElement & bfel,
|
|
204
|
+
const SIMD_BaseMappedIntegrationRule & bmir,
|
|
205
|
+
BareSliceVector<double> x,
|
|
206
|
+
BareSliceMatrix<SIMD<double>> flux) const
|
|
207
|
+
{
|
|
208
|
+
DIFFOP::ApplySIMDIR (bfel, bmir, x, flux);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
template <typename DIFFOP>
|
|
212
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
213
|
+
Apply (const FiniteElement & bfel,
|
|
214
|
+
const SIMD_BaseMappedIntegrationRule & bmir,
|
|
215
|
+
BareSliceVector<Complex> x,
|
|
216
|
+
BareSliceMatrix<SIMD<Complex>> flux) const
|
|
217
|
+
{
|
|
218
|
+
DIFFOP::ApplySIMDIR (bfel, bmir, x, flux);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
template <typename DIFFOP>
|
|
224
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
225
|
+
ApplyTrans (const FiniteElement & bfel,
|
|
226
|
+
const BaseMappedIntegrationPoint & bmip,
|
|
227
|
+
FlatVector<double> flux,
|
|
228
|
+
BareSliceVector<double> x,
|
|
229
|
+
LocalHeap & lh) const
|
|
230
|
+
{
|
|
231
|
+
const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE> & mip =
|
|
232
|
+
static_cast<const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE>&> (bmip);
|
|
233
|
+
DIFFOP::ApplyTrans (bfel, mip, flux, x, lh);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
template <typename DIFFOP>
|
|
237
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
238
|
+
ApplyTrans (const FiniteElement & bfel,
|
|
239
|
+
const BaseMappedIntegrationPoint & bmip,
|
|
240
|
+
FlatVector<Complex> flux,
|
|
241
|
+
BareSliceVector<Complex> x,
|
|
242
|
+
LocalHeap & lh) const
|
|
243
|
+
{
|
|
244
|
+
const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE> & mip =
|
|
245
|
+
static_cast<const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE>&> (bmip);
|
|
246
|
+
DIFFOP::ApplyTrans (bfel, mip, flux, x, lh);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
template <typename DIFFOP>
|
|
250
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
251
|
+
ApplyTrans (const FiniteElement & bfel,
|
|
252
|
+
const BaseMappedIntegrationRule & bmir,
|
|
253
|
+
FlatMatrix<double> flux,
|
|
254
|
+
BareSliceVector<double> x,
|
|
255
|
+
LocalHeap & lh) const
|
|
256
|
+
{
|
|
257
|
+
const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE> & mir =
|
|
258
|
+
static_cast<const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE>&> (bmir);
|
|
259
|
+
DIFFOP::ApplyTransIR (bfel, mir, flux, x, lh);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
template <typename DIFFOP>
|
|
263
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
264
|
+
ApplyTrans (const FiniteElement & bfel,
|
|
265
|
+
const BaseMappedIntegrationRule & bmir,
|
|
266
|
+
FlatMatrix<Complex> flux,
|
|
267
|
+
BareSliceVector<Complex> x,
|
|
268
|
+
LocalHeap & lh) const
|
|
269
|
+
{
|
|
270
|
+
const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE> & mir =
|
|
271
|
+
static_cast<const MappedIntegrationRule<DIM_ELEMENT,DIM_SPACE>&> (bmir);
|
|
272
|
+
DIFFOP::ApplyTransIR (bfel, mir, flux, x, lh);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
template <typename DIFFOP>
|
|
277
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
278
|
+
AddTrans (const FiniteElement & bfel,
|
|
279
|
+
const SIMD_BaseMappedIntegrationRule & bmir,
|
|
280
|
+
BareSliceMatrix<SIMD<double>> flux,
|
|
281
|
+
BareSliceVector<double> x) const
|
|
282
|
+
{
|
|
283
|
+
DIFFOP::AddTransSIMDIR (bfel, bmir, flux, x);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
template <typename DIFFOP>
|
|
287
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
288
|
+
AddTrans (const FiniteElement & bfel,
|
|
289
|
+
const SIMD_BaseMappedIntegrationRule & bmir,
|
|
290
|
+
BareSliceMatrix<SIMD<Complex>> flux,
|
|
291
|
+
BareSliceVector<Complex> x) const
|
|
292
|
+
{
|
|
293
|
+
DIFFOP::AddTransSIMDIR (bfel, bmir, flux, x);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
template <typename DIFFOP>
|
|
297
|
+
int T_DifferentialOperator<DIFFOP> :: DimRef() const
|
|
298
|
+
{
|
|
299
|
+
return DIFFOP::DimRef();
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
template <typename DIFFOP>
|
|
304
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
305
|
+
CalcMatrix (const FiniteElement & fel,
|
|
306
|
+
const IntegrationPoint & ip,
|
|
307
|
+
BareSliceMatrix<double,ColMajor> mat,
|
|
308
|
+
LocalHeap & lh) const
|
|
309
|
+
{
|
|
310
|
+
DIFFOP::GenerateMatrixRef(fel, ip, mat, lh);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
template <typename DIFFOP>
|
|
314
|
+
void T_DifferentialOperator<DIFFOP> ::
|
|
315
|
+
CalcTransformationMatrix (const BaseMappedIntegrationPoint & bmip,
|
|
316
|
+
SliceMatrix<double> trans,
|
|
317
|
+
LocalHeap & lh) const
|
|
318
|
+
{
|
|
319
|
+
const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE> & mip =
|
|
320
|
+
static_cast<const MappedIntegrationPoint<DIM_ELEMENT,DIM_SPACE>&> (bmip);
|
|
321
|
+
DIFFOP::CalcTransformationMatrix(mip, trans, lh);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
#endif
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
#endif
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#ifndef DIFFOPWITHFACTOR_HPP
|
|
2
|
+
#define DIFFOPWITHFACTOR_HPP
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
namespace ngsbem
|
|
7
|
+
{
|
|
8
|
+
using namespace ngfem;
|
|
9
|
+
|
|
10
|
+
class DifferentialOperatorWithFactor : public DifferentialOperator
|
|
11
|
+
{
|
|
12
|
+
shared_ptr<DifferentialOperator> diffop;
|
|
13
|
+
shared_ptr<CoefficientFunction> factor;
|
|
14
|
+
|
|
15
|
+
public:
|
|
16
|
+
DifferentialOperatorWithFactor (shared_ptr<DifferentialOperator> adiffop,
|
|
17
|
+
shared_ptr<CoefficientFunction> afactor)
|
|
18
|
+
: DifferentialOperator(afactor->Dimensions()[0], 1, adiffop->VB(), adiffop->DiffOrder()),
|
|
19
|
+
diffop(adiffop), factor(afactor)
|
|
20
|
+
{
|
|
21
|
+
;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
int DimRef() const override { return diffop->DimRef(); }
|
|
25
|
+
|
|
26
|
+
virtual IntRange UsedDofs(const FiniteElement & fel) const override { return diffop->UsedDofs(fel); }
|
|
27
|
+
|
|
28
|
+
auto BaseDiffOp() const { return diffop; }
|
|
29
|
+
|
|
30
|
+
void CalcMatrix (const FiniteElement & fel,
|
|
31
|
+
const BaseMappedIntegrationPoint & mip,
|
|
32
|
+
BareSliceMatrix<double,ColMajor> mat,
|
|
33
|
+
LocalHeap & lh) const override
|
|
34
|
+
{
|
|
35
|
+
FlatMatrix<double,ColMajor> hmat(diffop->Dim(), fel.GetNDof(), lh);
|
|
36
|
+
diffop -> CalcMatrix (fel, mip, hmat, lh);
|
|
37
|
+
|
|
38
|
+
auto dims = factor->Dimensions();
|
|
39
|
+
FlatMatrix<double> factorx(dims[0], dims[1], lh);
|
|
40
|
+
factor->Evaluate (mip, factorx.AsVector());
|
|
41
|
+
|
|
42
|
+
IntRange used = diffop->UsedDofs(fel);
|
|
43
|
+
mat.Cols(used) = factorx * hmat.Cols(used);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
void CalcMatrix (const FiniteElement & fel,
|
|
47
|
+
const SIMD_BaseMappedIntegrationRule & mir,
|
|
48
|
+
BareSliceMatrix<SIMD<double>> mat) const override
|
|
49
|
+
{
|
|
50
|
+
// *testout << "CalcMatrix SIMD" << endl;
|
|
51
|
+
Matrix<SIMD<double>> hmat (fel.GetNDof()*diffop->Dim(), mir.Size());
|
|
52
|
+
// hmat = SIMD<double>(0.0);
|
|
53
|
+
diffop -> CalcMatrix (fel, mir, hmat);
|
|
54
|
+
|
|
55
|
+
Matrix<SIMD<double>> fac(factor->Dimension(), mir.Size());
|
|
56
|
+
factor -> Evaluate (mir, fac);
|
|
57
|
+
|
|
58
|
+
auto dims = factor -> Dimensions();
|
|
59
|
+
|
|
60
|
+
mat.Rows(fel.GetNDof()*dims[1]).Cols(mir.Size()) = SIMD<double>(0.0);
|
|
61
|
+
|
|
62
|
+
for (size_t i = 0; i < mir.Size(); i++)
|
|
63
|
+
for (size_t j = 0; j < dims[0]; j++)
|
|
64
|
+
for (size_t k = 0; k < dims[1]; k++)
|
|
65
|
+
mat.Col(i).Slice(j,dims[0]) += fac(j*dims[1]+k, i) * hmat.Col(i).Slice(k, dims[1]);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
void CalcMatrix (const FiniteElement & fel,
|
|
70
|
+
const IntegrationPoint & ip,
|
|
71
|
+
BareSliceMatrix<double,ColMajor> mat,
|
|
72
|
+
LocalHeap & lh) const override
|
|
73
|
+
{
|
|
74
|
+
diffop -> CalcMatrix(fel, ip, mat, lh);
|
|
75
|
+
/*
|
|
76
|
+
*testout << "calcmatrix mip" << endl
|
|
77
|
+
<< mat.Rows(Dim()).Cols(fel.GetNDof()) << endl;
|
|
78
|
+
*/
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
void CalcTransformationMatrix (const BaseMappedIntegrationPoint & mip,
|
|
82
|
+
SliceMatrix<double> trans,
|
|
83
|
+
LocalHeap & lh) const override
|
|
84
|
+
{
|
|
85
|
+
HeapReset hr(lh);
|
|
86
|
+
auto dims = factor->Dimensions();
|
|
87
|
+
|
|
88
|
+
FlatMatrix<double> factorx(dims[0], dims[1], lh);
|
|
89
|
+
factor->Evaluate (mip, factorx.AsVector());
|
|
90
|
+
|
|
91
|
+
FlatMatrix<double> basetrans(diffop->Dim(), diffop->DimRef(), lh);
|
|
92
|
+
diffop -> CalcTransformationMatrix(mip, basetrans, lh);
|
|
93
|
+
|
|
94
|
+
trans = factorx * basetrans;
|
|
95
|
+
// *testout << "trans = " << trans << endl;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
void Apply (const FiniteElement & fel,
|
|
100
|
+
const SIMD_BaseMappedIntegrationRule & mir,
|
|
101
|
+
BareSliceVector<double> x,
|
|
102
|
+
BareSliceMatrix<SIMD<double>> flux) const override
|
|
103
|
+
{
|
|
104
|
+
auto dims = factor->Dimensions();
|
|
105
|
+
|
|
106
|
+
Matrix<SIMD<double>> tmpflux(dims[1], mir.Size());
|
|
107
|
+
Matrix<SIMD<double>> factorx(dims[0]*dims[1], mir.Size());
|
|
108
|
+
|
|
109
|
+
diffop -> Apply (fel, mir, x, tmpflux);
|
|
110
|
+
factor -> Evaluate (mir, factorx);
|
|
111
|
+
flux.Rows(0, dims[0]).Cols(0, mir.Size()) = SIMD<double>(0.0);
|
|
112
|
+
for (int i = 0; i < dims[0]; i++)
|
|
113
|
+
for (int j = 0; j < dims[1]; j++)
|
|
114
|
+
flux.Row(i).Range(mir.Size()) += pw_mult(factorx.Row(i*dims[1]+j), tmpflux.Row(j));
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
#endif
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#ifndef FILE_DISCONTINUOUS_
|
|
2
|
+
#define FILE_DISCONTINUOUS_
|
|
3
|
+
|
|
4
|
+
/*********************************************************************/
|
|
5
|
+
/* File: discontinuous.hpp */
|
|
6
|
+
/* Author: Joachim Schoeberl */
|
|
7
|
+
/* Date: Jun 2019 */
|
|
8
|
+
/*********************************************************************/
|
|
9
|
+
|
|
10
|
+
#include "fespace.hpp"
|
|
11
|
+
|
|
12
|
+
namespace ngcomp
|
|
13
|
+
{
|
|
14
|
+
|
|
15
|
+
// A discontinuous wrapper class for fespaces
|
|
16
|
+
|
|
17
|
+
class DiscontinuousFESpace : public FESpace
|
|
18
|
+
{
|
|
19
|
+
protected:
|
|
20
|
+
Array<DofId> first_element_dof;
|
|
21
|
+
shared_ptr<FESpace> space;
|
|
22
|
+
VorB vb;
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
DiscontinuousFESpace (shared_ptr<FESpace> space, const Flags & flags);
|
|
26
|
+
|
|
27
|
+
virtual ~DiscontinuousFESpace () { ; }
|
|
28
|
+
void Update () override;
|
|
29
|
+
|
|
30
|
+
void FinalizeUpdate() override
|
|
31
|
+
{
|
|
32
|
+
space->FinalizeUpdate();
|
|
33
|
+
FESpace::FinalizeUpdate();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
virtual FlatArray<VorB> GetDualShapeNodes (VorB vb) const override
|
|
37
|
+
{
|
|
38
|
+
return space->GetDualShapeNodes(vb);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
virtual string GetClassName() const override { return "Discontinuous" + space->GetClassName(); }
|
|
43
|
+
shared_ptr<FESpace> GetBaseSpace() const { return space; }
|
|
44
|
+
|
|
45
|
+
virtual FiniteElement & GetFE (ElementId ei, Allocator & alloc) const override;
|
|
46
|
+
|
|
47
|
+
// virtual size_t GetNDof () const override { return space->GetNDof(); }
|
|
48
|
+
// virtual size_t GetNDofLevel (int level) const override { return space->GetNDofLevel(level); }
|
|
49
|
+
|
|
50
|
+
virtual void GetDofNrs (ElementId ei, Array<DofId> & dnums) const override;
|
|
51
|
+
virtual void GetDofNrs (NodeId ni, Array<DofId> & dnums) const override;
|
|
52
|
+
|
|
53
|
+
virtual SymbolTable<shared_ptr<DifferentialOperator>> GetAdditionalEvaluators () const override
|
|
54
|
+
{ return space->GetAdditionalEvaluators (); }
|
|
55
|
+
|
|
56
|
+
[[deprecated("Use GetDofNrs(NODE_TYPE(NT_VERTEX,nr) instead")]]
|
|
57
|
+
virtual void GetVertexDofNrs (int vnr, Array<DofId> & dnums) const override;
|
|
58
|
+
|
|
59
|
+
[[deprecated("Use GetDofNrs(NODE_TYPE(NT_EDGE,nr) instead")]]
|
|
60
|
+
virtual void GetEdgeDofNrs (int ednr, Array<DofId> & dnums) const override;
|
|
61
|
+
|
|
62
|
+
virtual void GetFaceDofNrs (int fanr, Array<DofId> & dnums) const override;
|
|
63
|
+
|
|
64
|
+
virtual void GetInnerDofNrs (int elnr, Array<DofId> & dnums) const override
|
|
65
|
+
{ space->GetInnerDofNrs(elnr, dnums); }
|
|
66
|
+
|
|
67
|
+
virtual void VTransformMR (ElementId ei,
|
|
68
|
+
SliceMatrix<double> mat, TRANSFORM_TYPE tt) const override
|
|
69
|
+
{ space-> VTransformMR(ei, mat, tt); }
|
|
70
|
+
virtual void VTransformMC (ElementId ei,
|
|
71
|
+
SliceMatrix<Complex> mat, TRANSFORM_TYPE tt) const override
|
|
72
|
+
{ space->VTransformMC (ei, mat, tt); }
|
|
73
|
+
virtual void VTransformVR (ElementId ei,
|
|
74
|
+
SliceVector<double> vec, TRANSFORM_TYPE tt) const override
|
|
75
|
+
{ space->VTransformVR(ei, vec, tt); }
|
|
76
|
+
virtual void VTransformVC (ElementId ei,
|
|
77
|
+
SliceVector<Complex> vec, TRANSFORM_TYPE tt) const override
|
|
78
|
+
{ space->VTransformVC(ei, vec, tt); }
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
#endif // FILE_DISCONTINUOUS_
|