ngsolve 6.2.2506.post74.dev0__cp314-cp314-macosx_10_15_universal2.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ngsolve might be problematic. Click here for more details.
- netgen/include/analytic_integrals.hpp +10 -0
- netgen/include/arnoldi.hpp +55 -0
- netgen/include/bandmatrix.hpp +334 -0
- netgen/include/basematrix.hpp +957 -0
- netgen/include/basevector.hpp +1268 -0
- netgen/include/bdbequations.hpp +2805 -0
- netgen/include/bdbintegrator.hpp +1660 -0
- netgen/include/bem_diffops.hpp +475 -0
- netgen/include/bessel.hpp +1064 -0
- netgen/include/bilinearform.hpp +963 -0
- netgen/include/bla.hpp +29 -0
- netgen/include/blockalloc.hpp +95 -0
- netgen/include/blockjacobi.hpp +328 -0
- netgen/include/bspline.hpp +116 -0
- netgen/include/calcinverse.hpp +141 -0
- netgen/include/cg.hpp +368 -0
- netgen/include/chebyshev.hpp +44 -0
- netgen/include/cholesky.hpp +720 -0
- netgen/include/clapack.h +7254 -0
- netgen/include/code_generation.hpp +296 -0
- netgen/include/coefficient.hpp +2033 -0
- netgen/include/coefficient_impl.hpp +19 -0
- netgen/include/coefficient_stdmath.hpp +167 -0
- netgen/include/commutingAMG.hpp +106 -0
- netgen/include/comp.hpp +79 -0
- netgen/include/compatibility.hpp +41 -0
- netgen/include/complex_wrapper.hpp +73 -0
- netgen/include/compressedfespace.hpp +110 -0
- netgen/include/contact.hpp +235 -0
- netgen/include/diagonalmatrix.hpp +154 -0
- netgen/include/differentialoperator.hpp +276 -0
- netgen/include/diffop.hpp +1286 -0
- netgen/include/diffop_impl.hpp +328 -0
- netgen/include/diffopwithfactor.hpp +123 -0
- netgen/include/discontinuous.hpp +84 -0
- netgen/include/dump.hpp +949 -0
- netgen/include/ectypes.hpp +121 -0
- netgen/include/eigen.hpp +60 -0
- netgen/include/eigensystem.hpp +18 -0
- netgen/include/elasticity_equations.hpp +595 -0
- netgen/include/elementbyelement.hpp +195 -0
- netgen/include/elementtopology.hpp +1760 -0
- netgen/include/elementtransformation.hpp +339 -0
- netgen/include/evalfunc.hpp +405 -0
- netgen/include/expr.hpp +1686 -0
- netgen/include/facetfe.hpp +175 -0
- netgen/include/facetfespace.hpp +180 -0
- netgen/include/facethofe.hpp +111 -0
- netgen/include/facetsurffespace.hpp +112 -0
- netgen/include/fe_interfaces.hpp +32 -0
- netgen/include/fem.hpp +87 -0
- netgen/include/fesconvert.hpp +14 -0
- netgen/include/fespace.hpp +1449 -0
- netgen/include/finiteelement.hpp +286 -0
- netgen/include/globalinterfacespace.hpp +77 -0
- netgen/include/globalspace.hpp +115 -0
- netgen/include/gridfunction.hpp +525 -0
- netgen/include/h1amg.hpp +124 -0
- netgen/include/h1hofe.hpp +188 -0
- netgen/include/h1hofe_impl.hpp +1262 -0
- netgen/include/h1hofefo.hpp +148 -0
- netgen/include/h1hofefo_impl.hpp +185 -0
- netgen/include/h1hofespace.hpp +167 -0
- netgen/include/h1lofe.hpp +1240 -0
- netgen/include/h1lumping.hpp +41 -0
- netgen/include/hcurl_equations.hpp +1381 -0
- netgen/include/hcurlcurlfe.hpp +2241 -0
- netgen/include/hcurlcurlfespace.hpp +78 -0
- netgen/include/hcurlfe.hpp +259 -0
- netgen/include/hcurlfe_utils.hpp +107 -0
- netgen/include/hcurlhdiv_dshape.hpp +857 -0
- netgen/include/hcurlhdivfes.hpp +308 -0
- netgen/include/hcurlhofe.hpp +175 -0
- netgen/include/hcurlhofe_impl.hpp +1871 -0
- netgen/include/hcurlhofespace.hpp +193 -0
- netgen/include/hcurllofe.hpp +1146 -0
- netgen/include/hdiv_equations.hpp +880 -0
- netgen/include/hdivdivfe.hpp +2923 -0
- netgen/include/hdivdivsurfacespace.hpp +76 -0
- netgen/include/hdivfe.hpp +206 -0
- netgen/include/hdivfe_utils.hpp +717 -0
- netgen/include/hdivfes.hpp +75 -0
- netgen/include/hdivhofe.hpp +447 -0
- netgen/include/hdivhofe_impl.hpp +1107 -0
- netgen/include/hdivhofefo.hpp +229 -0
- netgen/include/hdivhofespace.hpp +177 -0
- netgen/include/hdivhosurfacefespace.hpp +106 -0
- netgen/include/hdivlofe.hpp +773 -0
- netgen/include/hidden.hpp +74 -0
- netgen/include/householder.hpp +181 -0
- netgen/include/hypre_ams_precond.hpp +123 -0
- netgen/include/hypre_precond.hpp +73 -0
- netgen/include/integrator.hpp +2012 -0
- netgen/include/integratorcf.hpp +253 -0
- netgen/include/interpolate.hpp +49 -0
- netgen/include/intrule.hpp +2542 -0
- netgen/include/intrules_SauterSchwab.hpp +25 -0
- netgen/include/irspace.hpp +49 -0
- netgen/include/jacobi.hpp +153 -0
- netgen/include/kernels.hpp +762 -0
- netgen/include/l2hofe.hpp +194 -0
- netgen/include/l2hofe_impl.hpp +564 -0
- netgen/include/l2hofefo.hpp +542 -0
- netgen/include/l2hofespace.hpp +344 -0
- netgen/include/la.hpp +38 -0
- netgen/include/linearform.hpp +266 -0
- netgen/include/matrix.hpp +2140 -0
- netgen/include/memusage.hpp +41 -0
- netgen/include/meshaccess.hpp +1359 -0
- netgen/include/mgpre.hpp +204 -0
- netgen/include/mp_coefficient.hpp +145 -0
- netgen/include/mptools.hpp +2281 -0
- netgen/include/multigrid.hpp +42 -0
- netgen/include/multivector.hpp +447 -0
- netgen/include/mumpsinverse.hpp +187 -0
- netgen/include/mycomplex.hpp +361 -0
- netgen/include/ng_lapack.hpp +1661 -0
- netgen/include/ngblas.hpp +1232 -0
- netgen/include/ngs_defines.hpp +30 -0
- netgen/include/ngs_stdcpp_include.hpp +106 -0
- netgen/include/ngs_utils.hpp +121 -0
- netgen/include/ngsobject.hpp +1019 -0
- netgen/include/ngsstream.hpp +113 -0
- netgen/include/ngstd.hpp +72 -0
- netgen/include/nodalhofe.hpp +96 -0
- netgen/include/nodalhofe_impl.hpp +141 -0
- netgen/include/normalfacetfe.hpp +223 -0
- netgen/include/normalfacetfespace.hpp +98 -0
- netgen/include/normalfacetsurfacefespace.hpp +84 -0
- netgen/include/order.hpp +251 -0
- netgen/include/parallel_matrices.hpp +222 -0
- netgen/include/paralleldofs.hpp +340 -0
- netgen/include/parallelngs.hpp +23 -0
- netgen/include/parallelvector.hpp +269 -0
- netgen/include/pardisoinverse.hpp +200 -0
- netgen/include/periodic.hpp +129 -0
- netgen/include/plateaufespace.hpp +25 -0
- netgen/include/pml.hpp +275 -0
- netgen/include/pmltrafo.hpp +631 -0
- netgen/include/postproc.hpp +142 -0
- netgen/include/potentialtools.hpp +22 -0
- netgen/include/precomp.hpp +60 -0
- netgen/include/preconditioner.hpp +602 -0
- netgen/include/prolongation.hpp +377 -0
- netgen/include/python_comp.hpp +107 -0
- netgen/include/python_fem.hpp +89 -0
- netgen/include/python_linalg.hpp +58 -0
- netgen/include/python_ngstd.hpp +386 -0
- netgen/include/recursive_pol.hpp +4896 -0
- netgen/include/recursive_pol_tet.hpp +395 -0
- netgen/include/recursive_pol_trig.hpp +492 -0
- netgen/include/reorderedfespace.hpp +81 -0
- netgen/include/sample_sort.hpp +105 -0
- netgen/include/scalarfe.hpp +335 -0
- netgen/include/shapefunction_utils.hpp +113 -0
- netgen/include/simd_complex.hpp +329 -0
- netgen/include/smoother.hpp +253 -0
- netgen/include/solve.hpp +89 -0
- netgen/include/sparsecholesky.hpp +313 -0
- netgen/include/sparsematrix.hpp +1038 -0
- netgen/include/sparsematrix_dyn.hpp +90 -0
- netgen/include/sparsematrix_impl.hpp +1013 -0
- netgen/include/special_matrix.hpp +463 -0
- netgen/include/specialelement.hpp +125 -0
- netgen/include/statushandler.hpp +33 -0
- netgen/include/stringops.hpp +12 -0
- netgen/include/superluinverse.hpp +136 -0
- netgen/include/symbolicintegrator.hpp +850 -0
- netgen/include/symmetricmatrix.hpp +144 -0
- netgen/include/tangentialfacetfe.hpp +224 -0
- netgen/include/tangentialfacetfespace.hpp +91 -0
- netgen/include/tensor.hpp +522 -0
- netgen/include/tensorcoefficient.hpp +446 -0
- netgen/include/tensorproductintegrator.hpp +113 -0
- netgen/include/thcurlfe.hpp +128 -0
- netgen/include/thcurlfe_impl.hpp +380 -0
- netgen/include/thdivfe.hpp +80 -0
- netgen/include/thdivfe_impl.hpp +492 -0
- netgen/include/tpdiffop.hpp +461 -0
- netgen/include/tpfes.hpp +133 -0
- netgen/include/tpintrule.hpp +224 -0
- netgen/include/triangular.hpp +465 -0
- netgen/include/tscalarfe.hpp +245 -0
- netgen/include/tscalarfe_impl.hpp +1029 -0
- netgen/include/umfpackinverse.hpp +148 -0
- netgen/include/vector.hpp +1273 -0
- netgen/include/voxelcoefficientfunction.hpp +41 -0
- netgen/include/vtkoutput.hpp +198 -0
- netgen/include/vvector.hpp +208 -0
- netgen/include/webgui.hpp +92 -0
- netgen/libngbla.dylib +0 -0
- netgen/libngcomp.dylib +0 -0
- netgen/libngfem.dylib +0 -0
- netgen/libngla.dylib +0 -0
- netgen/libngsbem.dylib +0 -0
- netgen/libngsolve.dylib +0 -0
- netgen/libngstd.dylib +0 -0
- ngsolve/TensorProductTools.py +210 -0
- ngsolve/__console.py +94 -0
- ngsolve/__expr.py +181 -0
- ngsolve/__init__.py +148 -0
- ngsolve/__init__.pyi +233 -0
- ngsolve/_scikit_build_core_dependencies.py +30 -0
- ngsolve/bla.pyi +1153 -0
- ngsolve/bvp.py +78 -0
- ngsolve/bvp.pyi +32 -0
- ngsolve/cmake/NGSolveConfig.cmake +102 -0
- ngsolve/cmake/ngsolve-targets-release.cmake +79 -0
- ngsolve/cmake/ngsolve-targets.cmake +163 -0
- ngsolve/comp/__init__.pyi +5449 -0
- ngsolve/comp/pml.pyi +89 -0
- ngsolve/config/__init__.py +1 -0
- ngsolve/config/__init__.pyi +43 -0
- ngsolve/config/__main__.py +4 -0
- ngsolve/config/config.py +60 -0
- ngsolve/config/config.pyi +45 -0
- ngsolve/demos/TensorProduct/__init__.py +0 -0
- ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
- ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
- ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
- ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
- ngsolve/demos/__init__.py +0 -0
- ngsolve/demos/howto/__init__.py +0 -0
- ngsolve/demos/howto/hhj.py +44 -0
- ngsolve/demos/howto/hybrid_dg.py +53 -0
- ngsolve/demos/howto/mixed.py +30 -0
- ngsolve/demos/howto/nonlin.py +29 -0
- ngsolve/demos/howto/pickling.py +26 -0
- ngsolve/demos/howto/pml.py +31 -0
- ngsolve/demos/howto/taskmanager.py +20 -0
- ngsolve/demos/howto/tdnns.py +47 -0
- ngsolve/demos/howto/timeDG-skeleton.py +45 -0
- ngsolve/demos/howto/timeDG.py +38 -0
- ngsolve/demos/howto/timeDGlap.py +42 -0
- ngsolve/demos/howto/timeDGwave.py +61 -0
- ngsolve/demos/intro/__init__.py +0 -0
- ngsolve/demos/intro/adaptive.py +123 -0
- ngsolve/demos/intro/cmagnet.py +59 -0
- ngsolve/demos/intro/elasticity.py +76 -0
- ngsolve/demos/intro/navierstokes.py +74 -0
- ngsolve/demos/intro/poisson.ipynb +170 -0
- ngsolve/demos/intro/poisson.py +41 -0
- ngsolve/demos/mpi/__init__.py +0 -0
- ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
- ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
- ngsolve/demos/mpi/mpi_poisson.py +89 -0
- ngsolve/demos/mpi/mpi_timeDG.py +82 -0
- ngsolve/directsolvers.py +26 -0
- ngsolve/directsolvers.pyi +15 -0
- ngsolve/eigenvalues.py +364 -0
- ngsolve/eigenvalues.pyi +30 -0
- ngsolve/fem.pyi +1647 -0
- ngsolve/internal.py +89 -0
- ngsolve/krylovspace.py +1013 -0
- ngsolve/krylovspace.pyi +298 -0
- ngsolve/la.pyi +1230 -0
- ngsolve/meshes.py +748 -0
- ngsolve/ngs2petsc.py +310 -0
- ngsolve/ngscxx.py +42 -0
- ngsolve/ngslib.so +0 -0
- ngsolve/ngstd.pyi +59 -0
- ngsolve/nonlinearsolvers.py +203 -0
- ngsolve/nonlinearsolvers.pyi +95 -0
- ngsolve/preconditioners.py +11 -0
- ngsolve/preconditioners.pyi +7 -0
- ngsolve/solve.pyi +109 -0
- ngsolve/solve_implementation.py +168 -0
- ngsolve/solve_implementation.pyi +42 -0
- ngsolve/solvers.py +7 -0
- ngsolve/solvers.pyi +14 -0
- ngsolve/timestepping.py +185 -0
- ngsolve/timestepping.pyi +28 -0
- ngsolve/timing.py +108 -0
- ngsolve/timing.pyi +54 -0
- ngsolve/utils.py +167 -0
- ngsolve/utils.pyi +273 -0
- ngsolve/webgui.py +670 -0
- ngsolve-6.2.2506.post74.dev0.data/data/Netgen.icns +0 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngscxx +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsld +13 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsolve.tcl +648 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngspy +2 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.geo +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.vol +240 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.in2d +41 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.vol +614 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.geo +12 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.vol +2560 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.geo +19 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.vol +1832 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.geo +73 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.in2d +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.vol +149 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/METADATA +13 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/RECORD +315 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/WHEEL +5 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/licenses/LICENSE +504 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/top_level.txt +2 -0
ngsolve/timing.py
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import pickle
|
|
3
|
+
from ngsolve import TaskManager
|
|
4
|
+
|
|
5
|
+
class Timing():
|
|
6
|
+
"""
|
|
7
|
+
Class for timing analysis of performance critical functions. Some
|
|
8
|
+
classes export a C++ function as __timing__, which returns a map
|
|
9
|
+
of performance critical parts with their timings. The class can save
|
|
10
|
+
these maps, load them and compare them. It can be saved as a benchmark
|
|
11
|
+
to be compared against.
|
|
12
|
+
|
|
13
|
+
2 overloaded __init__ functions:
|
|
14
|
+
|
|
15
|
+
1. __init__(name,obj,parallel=True,serial=True)
|
|
16
|
+
2. __init__(filename)
|
|
17
|
+
|
|
18
|
+
Parameters
|
|
19
|
+
----------
|
|
20
|
+
|
|
21
|
+
name (str): Name for the timed class (for output formatting and
|
|
22
|
+
saving/loading of results)
|
|
23
|
+
obj (NGSolve object): Some NGSolve class which has the __timing__
|
|
24
|
+
functionality implemented. Currently supported classes:
|
|
25
|
+
FESpace
|
|
26
|
+
filename (str): Filename to load a previously saved Timing
|
|
27
|
+
parallel (bool=True): Time in parallel (using TaskManager)
|
|
28
|
+
serial (bool=True): Time not in parallel (not using TaskManager)
|
|
29
|
+
|
|
30
|
+
"""
|
|
31
|
+
def __init__(self,name=None,obj=None,filename=None,parallel=True,serial=True):
|
|
32
|
+
assert (not name and not obj and filename) or (name and obj and not filename)
|
|
33
|
+
if filename:
|
|
34
|
+
myself = pickle.load(open(filename,"rb"))
|
|
35
|
+
self.timings = myself.timings
|
|
36
|
+
self.name = myself.name
|
|
37
|
+
self.timings_par = myself.timings_par
|
|
38
|
+
else:
|
|
39
|
+
if serial:
|
|
40
|
+
self.timings = obj.__timing__()
|
|
41
|
+
else:
|
|
42
|
+
self.timings = None
|
|
43
|
+
if parallel:
|
|
44
|
+
with TaskManager():
|
|
45
|
+
self.timings_par = obj.__timing__()
|
|
46
|
+
else:
|
|
47
|
+
self.timings_par = None
|
|
48
|
+
self.name = name
|
|
49
|
+
|
|
50
|
+
def __str__(self):
|
|
51
|
+
string = "Timing for " + self.name + ":"
|
|
52
|
+
if self.timings:
|
|
53
|
+
for key, value in self.timings:
|
|
54
|
+
string += "\n" + key + ": " + value
|
|
55
|
+
if self.timings_par:
|
|
56
|
+
for key, value in self.timings_par:
|
|
57
|
+
string += "\n" + key + " parallel: " + value
|
|
58
|
+
return string
|
|
59
|
+
|
|
60
|
+
def Save(self, folder):
|
|
61
|
+
""" Saves the pickled results in folder 'folder' """
|
|
62
|
+
if not os.path.exists(folder):
|
|
63
|
+
os.makedirs(folder)
|
|
64
|
+
if folder[-1] == "/":
|
|
65
|
+
pickle.dump(self,open(folder + self.name + ".dat","wb"))
|
|
66
|
+
else:
|
|
67
|
+
pickle.dump(self,open(folder + "/" + self.name + ".dat","wb"))
|
|
68
|
+
|
|
69
|
+
def CompareTo(self,folder):
|
|
70
|
+
"""
|
|
71
|
+
Compares the timing with the one saved in folder 'folder' with filename
|
|
72
|
+
'name.dat'.
|
|
73
|
+
"""
|
|
74
|
+
try:
|
|
75
|
+
if folder[-1] == "/":
|
|
76
|
+
other = Timing(filename=folder + self.name + ".dat")
|
|
77
|
+
else:
|
|
78
|
+
other = Timing(filename=folder + "/" + self.name + ".dat")
|
|
79
|
+
except:
|
|
80
|
+
raise Exception("Other timing couldn't be loaded!")
|
|
81
|
+
result = []
|
|
82
|
+
dict_self = { key : value for key,value in self.timings }
|
|
83
|
+
dict_other = { key : value for key,value in other.timings }
|
|
84
|
+
for i, val in enumerate(self.timings):
|
|
85
|
+
try:
|
|
86
|
+
result.append((val[0], dict_self[val[0]]/dict_other[val[0]]))
|
|
87
|
+
except KeyError:
|
|
88
|
+
print("WARNING: No timing for '", val[0], "' in other file!")
|
|
89
|
+
dict_self_par = { key : value for key,value in self.timings_par }
|
|
90
|
+
dict_other_par = { key : value for key,value in other.timings_par }
|
|
91
|
+
for i,val in enumerate(self.timings_par):
|
|
92
|
+
try:
|
|
93
|
+
result.append((val[0]+" parallel", dict_self_par[val[0]]/dict_other_par[val[0]]))
|
|
94
|
+
except KeyError:
|
|
95
|
+
print("WARNING: No timing for '",val[0],"' with parallel in other file!")
|
|
96
|
+
return result
|
|
97
|
+
|
|
98
|
+
def CompareToBenchmark(self):
|
|
99
|
+
""" Compares the timing with the one stored as benchmark"""
|
|
100
|
+
return self.CompareTo("benchmark")
|
|
101
|
+
|
|
102
|
+
def SaveBenchmark(self):
|
|
103
|
+
""" Makes the timing the new benchmark for that object. """
|
|
104
|
+
self.Save("benchmark")
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
__all__ = ["Timing"]
|
|
108
|
+
|
ngsolve/timing.pyi
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
import os as os
|
|
3
|
+
import pickle as pickle
|
|
4
|
+
from pyngcore.pyngcore import TaskManager
|
|
5
|
+
__all__: list = ['Timing']
|
|
6
|
+
class Timing:
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
Class for timing analysis of performance critical functions. Some
|
|
10
|
+
classes export a C++ function as __timing__, which returns a map
|
|
11
|
+
of performance critical parts with their timings. The class can save
|
|
12
|
+
these maps, load them and compare them. It can be saved as a benchmark
|
|
13
|
+
to be compared against.
|
|
14
|
+
|
|
15
|
+
2 overloaded __init__ functions:
|
|
16
|
+
|
|
17
|
+
1. __init__(name,obj,parallel=True,serial=True)
|
|
18
|
+
2. __init__(filename)
|
|
19
|
+
|
|
20
|
+
Parameters
|
|
21
|
+
----------
|
|
22
|
+
|
|
23
|
+
name (str): Name for the timed class (for output formatting and
|
|
24
|
+
saving/loading of results)
|
|
25
|
+
obj (NGSolve object): Some NGSolve class which has the __timing__
|
|
26
|
+
functionality implemented. Currently supported classes:
|
|
27
|
+
FESpace
|
|
28
|
+
filename (str): Filename to load a previously saved Timing
|
|
29
|
+
parallel (bool=True): Time in parallel (using TaskManager)
|
|
30
|
+
serial (bool=True): Time not in parallel (not using TaskManager)
|
|
31
|
+
|
|
32
|
+
"""
|
|
33
|
+
def CompareTo(self, folder):
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
Compares the timing with the one saved in folder 'folder' with filename
|
|
37
|
+
'name.dat'.
|
|
38
|
+
"""
|
|
39
|
+
def CompareToBenchmark(self):
|
|
40
|
+
"""
|
|
41
|
+
Compares the timing with the one stored as benchmark
|
|
42
|
+
"""
|
|
43
|
+
def Save(self, folder):
|
|
44
|
+
"""
|
|
45
|
+
Saves the pickled results in folder 'folder'
|
|
46
|
+
"""
|
|
47
|
+
def SaveBenchmark(self):
|
|
48
|
+
"""
|
|
49
|
+
Makes the timing the new benchmark for that object.
|
|
50
|
+
"""
|
|
51
|
+
def __init__(self, name = None, obj = None, filename = None, parallel = True, serial = True):
|
|
52
|
+
...
|
|
53
|
+
def __str__(self):
|
|
54
|
+
...
|
ngsolve/utils.py
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
from ngsolve.ngstd import IntRange
|
|
2
|
+
from ngsolve.fem import *
|
|
3
|
+
from ngsolve.comp import *
|
|
4
|
+
from ngsolve.bla import Norm
|
|
5
|
+
from netgen import TimeFunction, Timer
|
|
6
|
+
|
|
7
|
+
x = CoordCF(0)
|
|
8
|
+
y = CoordCF(1)
|
|
9
|
+
z = CoordCF(2)
|
|
10
|
+
|
|
11
|
+
dx = DifferentialSymbol(VOL)
|
|
12
|
+
ds = DifferentialSymbol(BND)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def Laplace (coef):
|
|
16
|
+
return BFI("laplace", coef=coef)
|
|
17
|
+
|
|
18
|
+
def Mass (coef):
|
|
19
|
+
return BFI("mass", coef=coef)
|
|
20
|
+
|
|
21
|
+
def Source (coef):
|
|
22
|
+
return LFI("source", coef=coef)
|
|
23
|
+
|
|
24
|
+
def Neumann (coef):
|
|
25
|
+
return LFI("neumann", coef=coef)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
# VectorFacet = TangentialFacetFESpace
|
|
29
|
+
def VectorFacet (mesh, **args):
|
|
30
|
+
print ("deprecated warning: VectorFacet is renamed to TangentialFacetFESpace")
|
|
31
|
+
return TangentialFacetFESpace(mesh, **args)
|
|
32
|
+
|
|
33
|
+
def grad(func):
|
|
34
|
+
try:
|
|
35
|
+
# now in C++ code
|
|
36
|
+
# if "normal vector" in str(func):
|
|
37
|
+
# return specialcf.Weingarten(func.dim)
|
|
38
|
+
if func.derivname == "grad":
|
|
39
|
+
return func.Deriv()
|
|
40
|
+
except:
|
|
41
|
+
pass
|
|
42
|
+
add = func.Operator("grad")
|
|
43
|
+
if add:
|
|
44
|
+
return add
|
|
45
|
+
# if func.derivname != "grad":
|
|
46
|
+
raise Exception("cannot form grad")
|
|
47
|
+
# return func.Deriv()
|
|
48
|
+
|
|
49
|
+
def Grad(func):
|
|
50
|
+
""" Jacobi-matrix"""
|
|
51
|
+
# now in C++ code
|
|
52
|
+
# if "normal vector" in str(func):
|
|
53
|
+
# return specialcf.Weingarten(func.dim)
|
|
54
|
+
try:
|
|
55
|
+
return func.Operator("Grad")
|
|
56
|
+
except:
|
|
57
|
+
return grad(func).trans
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def curl(func):
|
|
62
|
+
if func.derivname == "curl":
|
|
63
|
+
return func.Deriv()
|
|
64
|
+
add = func.Operator("curl")
|
|
65
|
+
if add:
|
|
66
|
+
return add
|
|
67
|
+
raise Exception("cannot form curl")
|
|
68
|
+
|
|
69
|
+
def div(func):
|
|
70
|
+
if func.derivname == "div":
|
|
71
|
+
return func.Deriv()
|
|
72
|
+
try:
|
|
73
|
+
return func.Operator("div")
|
|
74
|
+
except:
|
|
75
|
+
pass
|
|
76
|
+
try:
|
|
77
|
+
return Trace(grad(func))
|
|
78
|
+
except:
|
|
79
|
+
pass
|
|
80
|
+
#if func.derivname == "grad" and len(func.dims)==2: # should check for square
|
|
81
|
+
# return Trace(grad(func))
|
|
82
|
+
raise Exception("cannot form div")
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def ConstantCF(val):
|
|
86
|
+
print ("Warning: ConstantCF deprecated, just use CoefficientFunction(val)")
|
|
87
|
+
return CoefficientFunction(val)
|
|
88
|
+
|
|
89
|
+
def DomainConstantCF(values):
|
|
90
|
+
print ("Warning: DomainConstantCF deprecated, just use CoefficientFunction([values])")
|
|
91
|
+
return CoefficientFunction(values)
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def Deviator(mat):
|
|
95
|
+
return mat - 1/mat.dims[0]*Trace(mat)*Id(mat.dims[0])
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def PyId(dim):
|
|
99
|
+
return CoefficientFunction( tuple( [1 if i==j else 0 for i in range(dim) for j in range(dim)]), dims=(dim,dim) )
|
|
100
|
+
|
|
101
|
+
def PyTrace(mat):
|
|
102
|
+
return sum( [mat[i,i] for i in range(mat.dims[0]) ])
|
|
103
|
+
|
|
104
|
+
def PyDet(mat):
|
|
105
|
+
if mat.dims[0] == 1:
|
|
106
|
+
return mat[0,0]
|
|
107
|
+
elif mat.dims[0] == 2:
|
|
108
|
+
return mat[0,0]*mat[1,1]-mat[0,1]*mat[1,0]
|
|
109
|
+
elif mat.dims[0] == 3:
|
|
110
|
+
return mat[0,0]*(mat[1,1]*mat[2,2]-mat[1,2]*mat[2,1]) \
|
|
111
|
+
+mat[1,0]*(mat[2,1]*mat[0,2]-mat[2,2]*mat[0,1]) \
|
|
112
|
+
+mat[2,0]*(mat[0,1]*mat[1,2]-mat[0,2]*mat[1,1])
|
|
113
|
+
|
|
114
|
+
def PyCross(a,b):
|
|
115
|
+
return CoefficientFunction( (a[1]*b[2]-a[2]*b[1],a[2]*b[0]-a[0]*b[2],a[0]*b[1]-a[1]*b[0]) )
|
|
116
|
+
|
|
117
|
+
def PyCof(m):
|
|
118
|
+
if m.dims[0] == 1:
|
|
119
|
+
return CoefficientFunction(1, dims=(1,1))
|
|
120
|
+
elif m.dims[0] == 2:
|
|
121
|
+
return CoefficientFunction( (m[1,1], -m[1,0], -m[0,1], m[0,0]), dims=(2,2) )
|
|
122
|
+
elif m.dims[0] == 3:
|
|
123
|
+
return CoefficientFunction(
|
|
124
|
+
( m[1,1]*m[2,2]-m[2,1]*m[1,2],
|
|
125
|
+
-m[1,0]*m[2,2]+m[2,0]*m[1,2],
|
|
126
|
+
m[1,0]*m[2,1]-m[2,0]*m[1,1],
|
|
127
|
+
|
|
128
|
+
-m[0,1]*m[2,2]+m[2,1]*m[0,2],
|
|
129
|
+
m[0,0]*m[2,2]-m[2,0]*m[0,2],
|
|
130
|
+
-m[0,0]*m[2,1]+m[2,0]*m[0,1],
|
|
131
|
+
|
|
132
|
+
m[0,1]*m[1,2]-m[1,1]*m[0,2],
|
|
133
|
+
-m[0,0]*m[1,2]+m[1,0]*m[0,2],
|
|
134
|
+
m[0,0]*m[1,1]-m[1,0]*m[0,1] ), dims=(3,3) )
|
|
135
|
+
|
|
136
|
+
def PyInv(m):
|
|
137
|
+
return 1/Det(m)*Cof(m).trans
|
|
138
|
+
|
|
139
|
+
def PySym(m):
|
|
140
|
+
return 0.5*(m+m.trans)
|
|
141
|
+
|
|
142
|
+
def PySkew(m):
|
|
143
|
+
return 0.5*(m-m.trans)
|
|
144
|
+
|
|
145
|
+
def OuterProduct(a, b):
|
|
146
|
+
# return CoefficientFunction( (a,), dims=(a.dim,1)) * CoefficientFunction( (b,), dims=(b.dim,1)).trans
|
|
147
|
+
# return CoefficientFunction(a, dims=(a.dim,1)) * CoefficientFunction(b, dims=(1, b.dim))
|
|
148
|
+
return a.Reshape((a.dim,1)) * b.Reshape((1, b.dim))
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
PrivateSpace = Hidden
|
|
152
|
+
# def PrivateSpace(fes):
|
|
153
|
+
# TODO: make space wrapper which also works after refinement
|
|
154
|
+
# fes.SetCouplingType(IntRange(0,fes.ndof), COUPLING_TYPE.HIDDEN_DOF)
|
|
155
|
+
# return Compress(fes)
|
|
156
|
+
# return Hidden(fes)
|
|
157
|
+
|
|
158
|
+
def Normalize (v):
|
|
159
|
+
return 1/Norm(v) * v
|
|
160
|
+
|
|
161
|
+
def printonce (*args):
|
|
162
|
+
from mpi4py.MPI import COMM_WORLD
|
|
163
|
+
if COMM_WORLD.rank == 0:
|
|
164
|
+
print (*args)
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def dt(u): return u.dt
|
ngsolve/utils.pyi
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from netgen import TimeFunction
|
|
3
|
+
from ngsolve.bla import Norm
|
|
4
|
+
import ngsolve.comp
|
|
5
|
+
from ngsolve.comp import APhiHCurlAMG
|
|
6
|
+
from ngsolve.comp import Array_N6ngcomp13COUPLING_TYPEE_S
|
|
7
|
+
from ngsolve.comp import BDDCPreconditioner
|
|
8
|
+
from ngsolve.comp import BDDCPreconditioner_complex
|
|
9
|
+
from ngsolve.comp import BDDCPreconditioner_double
|
|
10
|
+
from ngsolve.comp import BilinearForm
|
|
11
|
+
from ngsolve.comp import BndElementId
|
|
12
|
+
from ngsolve.comp import BoundaryFromVolumeCF
|
|
13
|
+
from ngsolve.comp import COUPLING_TYPE
|
|
14
|
+
from ngsolve.comp import ComponentGridFunction
|
|
15
|
+
from ngsolve.comp import Compress
|
|
16
|
+
from ngsolve.comp import CompressCompound
|
|
17
|
+
from ngsolve.comp import ContactBoundary
|
|
18
|
+
from ngsolve.comp import ConvertOperator
|
|
19
|
+
from ngsolve.comp import DifferentialSymbol
|
|
20
|
+
from ngsolve.comp import Discontinuous
|
|
21
|
+
from ngsolve.comp import DualProxyFunction
|
|
22
|
+
from ngsolve.comp import ElementId
|
|
23
|
+
from ngsolve.comp import ElementRange
|
|
24
|
+
from ngsolve.comp import FESpace
|
|
25
|
+
from ngsolve.comp import FESpaceElement
|
|
26
|
+
from ngsolve.comp import FESpaceElementRange
|
|
27
|
+
from ngsolve.comp import FacetFESpace
|
|
28
|
+
from ngsolve.comp import FacetSurface
|
|
29
|
+
from ngsolve.comp import FlatArray_N6ngcomp13COUPLING_TYPEE_S
|
|
30
|
+
from ngsolve.comp import FromArchiveCF
|
|
31
|
+
from ngsolve.comp import FromArchiveFESpace
|
|
32
|
+
from ngsolve.comp import FromArchiveMesh
|
|
33
|
+
from ngsolve.comp import GlobalInterfaceSpace
|
|
34
|
+
from ngsolve.comp import GlobalSpace
|
|
35
|
+
from ngsolve.comp import GlobalVariables
|
|
36
|
+
from ngsolve.comp import GridFunction
|
|
37
|
+
from ngsolve.comp import GridFunctionC
|
|
38
|
+
from ngsolve.comp import GridFunctionCoefficientFunction
|
|
39
|
+
from ngsolve.comp import GridFunctionD
|
|
40
|
+
from ngsolve.comp import H1
|
|
41
|
+
from ngsolve.comp import H1AMG
|
|
42
|
+
from ngsolve.comp import H1LumpingFESpace
|
|
43
|
+
from ngsolve.comp import HCurl
|
|
44
|
+
from ngsolve.comp import HCurlAMG
|
|
45
|
+
from ngsolve.comp import HCurlCurl
|
|
46
|
+
from ngsolve.comp import HCurlDiv
|
|
47
|
+
from ngsolve.comp import HDiv
|
|
48
|
+
from ngsolve.comp import HDivDiv
|
|
49
|
+
from ngsolve.comp import HDivDivSurface
|
|
50
|
+
from ngsolve.comp import HDivSurface
|
|
51
|
+
from ngsolve.comp import Hidden
|
|
52
|
+
from ngsolve.comp import Hidden as PrivateSpace
|
|
53
|
+
from ngsolve.comp import Integral
|
|
54
|
+
from ngsolve.comp import Integrate
|
|
55
|
+
from ngsolve.comp import IntegrationRuleSpace
|
|
56
|
+
from ngsolve.comp import IntegrationRuleSpaceSurface
|
|
57
|
+
from ngsolve.comp import Interpolate
|
|
58
|
+
from ngsolve.comp import InterpolateProxy
|
|
59
|
+
from ngsolve.comp import KSpaceCoeffs
|
|
60
|
+
from ngsolve.comp import L2
|
|
61
|
+
from ngsolve.comp import LinearForm
|
|
62
|
+
from ngsolve.comp import LocalPreconditioner
|
|
63
|
+
from ngsolve.comp import MatrixFreeOperator
|
|
64
|
+
from ngsolve.comp import MatrixValued
|
|
65
|
+
from ngsolve.comp import Mesh
|
|
66
|
+
from ngsolve.comp import MeshNode
|
|
67
|
+
from ngsolve.comp import MeshNodeRange
|
|
68
|
+
from ngsolve.comp import MultiGridPreconditioner
|
|
69
|
+
from ngsolve.comp import NGS_Object
|
|
70
|
+
from ngsolve.comp import Ngs_Element
|
|
71
|
+
from ngsolve.comp import NodalFESpace
|
|
72
|
+
from ngsolve.comp import NodeId
|
|
73
|
+
from ngsolve.comp import NodeRange
|
|
74
|
+
from ngsolve.comp import NormalFacetFESpace
|
|
75
|
+
from ngsolve.comp import NormalFacetSurface
|
|
76
|
+
from ngsolve.comp import NumberSpace
|
|
77
|
+
from ngsolve.comp import ORDER_POLICY
|
|
78
|
+
from ngsolve.comp import PatchwiseSolve
|
|
79
|
+
from ngsolve.comp import Periodic
|
|
80
|
+
from ngsolve.comp import PlateauFESpace
|
|
81
|
+
from ngsolve.comp import Preconditioner
|
|
82
|
+
from ngsolve.comp import ProductSpace
|
|
83
|
+
from ngsolve.comp import Prolongate
|
|
84
|
+
from ngsolve.comp import ProlongateCoefficientFunction
|
|
85
|
+
from ngsolve.comp import Prolongation
|
|
86
|
+
from ngsolve.comp import ProxyFunction
|
|
87
|
+
from ngsolve.comp import QuasiPeriodicC
|
|
88
|
+
from ngsolve.comp import QuasiPeriodicD
|
|
89
|
+
from ngsolve.comp import Region
|
|
90
|
+
from ngsolve.comp import RegisterPreconditioner
|
|
91
|
+
from ngsolve.comp import Reorder
|
|
92
|
+
from ngsolve.comp import SetHeapSize
|
|
93
|
+
from ngsolve.comp import SetTestoutFile
|
|
94
|
+
from ngsolve.comp import SumOfIntegrals
|
|
95
|
+
from ngsolve.comp import SurfaceL2
|
|
96
|
+
from ngsolve.comp import SymbolTable_D
|
|
97
|
+
from ngsolve.comp import SymbolTable_sp_D
|
|
98
|
+
from ngsolve.comp import SymbolTable_sp_N5ngfem19CoefficientFunctionE
|
|
99
|
+
from ngsolve.comp import SymbolTable_sp_N6ngcomp10LinearFormE
|
|
100
|
+
from ngsolve.comp import SymbolTable_sp_N6ngcomp12BilinearFormE
|
|
101
|
+
from ngsolve.comp import SymbolTable_sp_N6ngcomp12GridFunctionE
|
|
102
|
+
from ngsolve.comp import SymbolTable_sp_N6ngcomp14PreconditionerE
|
|
103
|
+
from ngsolve.comp import SymbolTable_sp_N6ngcomp7FESpaceE
|
|
104
|
+
from ngsolve.comp import SymbolicBFI
|
|
105
|
+
from ngsolve.comp import SymbolicEnergy
|
|
106
|
+
from ngsolve.comp import SymbolicLFI
|
|
107
|
+
from ngsolve.comp import SymbolicTPBFI
|
|
108
|
+
from ngsolve.comp import TangentialFacetFESpace
|
|
109
|
+
from ngsolve.comp import TangentialSurfaceL2
|
|
110
|
+
from ngsolve.comp import TensorProductFESpace
|
|
111
|
+
from ngsolve.comp import TensorProductIntegrate
|
|
112
|
+
from ngsolve.comp import ToArchive
|
|
113
|
+
from ngsolve.comp import Transfer2StdMesh
|
|
114
|
+
from ngsolve.comp import VTKOutput
|
|
115
|
+
from ngsolve.comp import Variation
|
|
116
|
+
from ngsolve.comp import VectorFacetFESpace
|
|
117
|
+
from ngsolve.comp import VectorFacetSurface
|
|
118
|
+
from ngsolve.comp import VectorH1
|
|
119
|
+
from ngsolve.comp import VectorL2
|
|
120
|
+
from ngsolve.comp import VectorNodalFESpace
|
|
121
|
+
from ngsolve.comp import VectorSurfaceL2
|
|
122
|
+
from ngsolve.comp import VectorValued
|
|
123
|
+
from ngsolve.comp import VorB
|
|
124
|
+
from ngsolve.comp import pml
|
|
125
|
+
import ngsolve.fem
|
|
126
|
+
from ngsolve.fem import BFI
|
|
127
|
+
from ngsolve.fem import BSpline
|
|
128
|
+
from ngsolve.fem import BSpline2D
|
|
129
|
+
from ngsolve.fem import BaseMappedIntegrationPoint
|
|
130
|
+
from ngsolve.fem import BlockBFI
|
|
131
|
+
from ngsolve.fem import BlockLFI
|
|
132
|
+
from ngsolve.fem import CacheCF
|
|
133
|
+
from ngsolve.fem import CoefficientFunction
|
|
134
|
+
from ngsolve.fem import Cof
|
|
135
|
+
from ngsolve.fem import CompilePythonModule
|
|
136
|
+
from ngsolve.fem import CompoundBFI
|
|
137
|
+
from ngsolve.fem import CompoundLFI
|
|
138
|
+
from ngsolve.fem import Conj
|
|
139
|
+
from ngsolve.fem import CoordCF
|
|
140
|
+
from ngsolve.fem import CoordinateTrafo
|
|
141
|
+
from ngsolve.fem import Cross
|
|
142
|
+
from ngsolve.fem import Det
|
|
143
|
+
from ngsolve.fem import DifferentialOperator
|
|
144
|
+
from ngsolve.fem import ET
|
|
145
|
+
from ngsolve.fem import Einsum
|
|
146
|
+
from ngsolve.fem import ElementTopology
|
|
147
|
+
from ngsolve.fem import ElementTransformation
|
|
148
|
+
from ngsolve.fem import FiniteElement
|
|
149
|
+
from ngsolve.fem import GenerateL2ElementCode
|
|
150
|
+
from ngsolve.fem import H1FE
|
|
151
|
+
from ngsolve.fem import HCurlFE
|
|
152
|
+
from ngsolve.fem import HDivDivFE
|
|
153
|
+
from ngsolve.fem import HDivFE
|
|
154
|
+
from ngsolve.fem import Id
|
|
155
|
+
from ngsolve.fem import IfPos
|
|
156
|
+
from ngsolve.fem import IntegrationPoint
|
|
157
|
+
from ngsolve.fem import IntegrationRule
|
|
158
|
+
from ngsolve.fem import Inv
|
|
159
|
+
from ngsolve.fem import L2FE
|
|
160
|
+
from ngsolve.fem import LFI
|
|
161
|
+
from ngsolve.fem import LeviCivitaSymbol
|
|
162
|
+
from ngsolve.fem import LoggingCF
|
|
163
|
+
from ngsolve.fem import MeshPoint
|
|
164
|
+
from ngsolve.fem import MinimizationCF
|
|
165
|
+
from ngsolve.fem import MixedFE
|
|
166
|
+
from ngsolve.fem import NODE_TYPE
|
|
167
|
+
from ngsolve.fem import NewtonCF
|
|
168
|
+
from ngsolve.fem import Parameter
|
|
169
|
+
from ngsolve.fem import ParameterC
|
|
170
|
+
from ngsolve.fem import PlaceholderCF
|
|
171
|
+
from ngsolve.fem import PointEvaluationFunctional
|
|
172
|
+
from ngsolve.fem import ScalarFE
|
|
173
|
+
from ngsolve.fem import SetPMLParameters
|
|
174
|
+
from ngsolve.fem import Skew
|
|
175
|
+
from ngsolve.fem import SpecialCFCreator
|
|
176
|
+
from ngsolve.fem import Sym
|
|
177
|
+
from ngsolve.fem import Trace
|
|
178
|
+
from ngsolve.fem import VoxelCoefficient
|
|
179
|
+
from ngsolve.fem import Zero
|
|
180
|
+
from ngsolve.fem import acos
|
|
181
|
+
from ngsolve.fem import asin
|
|
182
|
+
from ngsolve.fem import atan
|
|
183
|
+
from ngsolve.fem import atan2
|
|
184
|
+
from ngsolve.fem import ceil
|
|
185
|
+
from ngsolve.fem import cos
|
|
186
|
+
from ngsolve.fem import cosh
|
|
187
|
+
from ngsolve.fem import erf
|
|
188
|
+
from ngsolve.fem import exp
|
|
189
|
+
from ngsolve.fem import floor
|
|
190
|
+
from ngsolve.fem import log
|
|
191
|
+
from ngsolve.fem import pow
|
|
192
|
+
from ngsolve.fem import sin
|
|
193
|
+
from ngsolve.fem import sinh
|
|
194
|
+
from ngsolve.fem import sqrt
|
|
195
|
+
from ngsolve.fem import tan
|
|
196
|
+
from ngsolve.ngstd import IntRange
|
|
197
|
+
from pyngcore.pyngcore import Timer
|
|
198
|
+
__all__: list[str] = ['APhiHCurlAMG', 'Array_N6ngcomp13COUPLING_TYPEE_S', 'BBBND', 'BBND', 'BDDCPreconditioner', 'BDDCPreconditioner_complex', 'BDDCPreconditioner_double', 'BFI', 'BND', 'BSpline', 'BSpline2D', 'BaseMappedIntegrationPoint', 'BilinearForm', 'BlockBFI', 'BlockLFI', 'BndElementId', 'BoundaryFromVolumeCF', 'CELL', 'COUPLING_TYPE', 'CacheCF', 'CoefficientFunction', 'Cof', 'CompilePythonModule', 'ComponentGridFunction', 'CompoundBFI', 'CompoundLFI', 'Compress', 'CompressCompound', 'Conj', 'ConstantCF', 'ContactBoundary', 'ConvertOperator', 'CoordCF', 'CoordinateTrafo', 'Cross', 'Det', 'Deviator', 'DifferentialOperator', 'DifferentialSymbol', 'Discontinuous', 'DomainConstantCF', 'DualProxyFunction', 'EDGE', 'ELEMENT', 'ET', 'Einsum', 'ElementId', 'ElementRange', 'ElementTopology', 'ElementTransformation', 'FACE', 'FACET', 'FESpace', 'FESpaceElement', 'FESpaceElementRange', 'FacetFESpace', 'FacetSurface', 'FiniteElement', 'FlatArray_N6ngcomp13COUPLING_TYPEE_S', 'FromArchiveCF', 'FromArchiveFESpace', 'FromArchiveMesh', 'GenerateL2ElementCode', 'GlobalInterfaceSpace', 'GlobalSpace', 'GlobalVariables', 'Grad', 'GridFunction', 'GridFunctionC', 'GridFunctionCoefficientFunction', 'GridFunctionD', 'H1', 'H1AMG', 'H1FE', 'H1LumpingFESpace', 'HCurl', 'HCurlAMG', 'HCurlCurl', 'HCurlDiv', 'HCurlFE', 'HDiv', 'HDivDiv', 'HDivDivFE', 'HDivDivSurface', 'HDivFE', 'HDivSurface', 'HEX', 'Hidden', 'Id', 'IfPos', 'IntRange', 'Integral', 'Integrate', 'IntegrationPoint', 'IntegrationRule', 'IntegrationRuleSpace', 'IntegrationRuleSpaceSurface', 'Interpolate', 'InterpolateProxy', 'Inv', 'KSpaceCoeffs', 'L2', 'L2FE', 'LFI', 'Laplace', 'LeviCivitaSymbol', 'LinearForm', 'LocalPreconditioner', 'LoggingCF', 'Mass', 'MatrixFreeOperator', 'MatrixValued', 'Mesh', 'MeshNode', 'MeshNodeRange', 'MeshPoint', 'MinimizationCF', 'MixedFE', 'MultiGridPreconditioner', 'NGS_Object', 'NODE_TYPE', 'Neumann', 'NewtonCF', 'Ngs_Element', 'NodalFESpace', 'NodeId', 'NodeRange', 'Norm', 'NormalFacetFESpace', 'NormalFacetSurface', 'Normalize', 'NumberSpace', 'ORDER_POLICY', 'OuterProduct', 'POINT', 'PRISM', 'PYRAMID', 'Parameter', 'ParameterC', 'PatchwiseSolve', 'Periodic', 'PlaceholderCF', 'PlateauFESpace', 'PointEvaluationFunctional', 'Preconditioner', 'PrivateSpace', 'ProductSpace', 'Prolongate', 'ProlongateCoefficientFunction', 'Prolongation', 'ProxyFunction', 'PyCof', 'PyCross', 'PyDet', 'PyId', 'PyInv', 'PySkew', 'PySym', 'PyTrace', 'QUAD', 'QuasiPeriodicC', 'QuasiPeriodicD', 'Region', 'RegisterPreconditioner', 'Reorder', 'SEGM', 'ScalarFE', 'SetHeapSize', 'SetPMLParameters', 'SetTestoutFile', 'Skew', 'Source', 'SpecialCFCreator', 'SumOfIntegrals', 'SurfaceL2', 'Sym', 'SymbolTable_D', 'SymbolTable_sp_D', 'SymbolTable_sp_N5ngfem19CoefficientFunctionE', 'SymbolTable_sp_N6ngcomp10LinearFormE', 'SymbolTable_sp_N6ngcomp12BilinearFormE', 'SymbolTable_sp_N6ngcomp12GridFunctionE', 'SymbolTable_sp_N6ngcomp14PreconditionerE', 'SymbolTable_sp_N6ngcomp7FESpaceE', 'SymbolicBFI', 'SymbolicEnergy', 'SymbolicLFI', 'SymbolicTPBFI', 'TET', 'TRIG', 'TangentialFacetFESpace', 'TangentialSurfaceL2', 'TensorProductFESpace', 'TensorProductIntegrate', 'TimeFunction', 'Timer', 'ToArchive', 'Trace', 'Transfer2StdMesh', 'VERTEX', 'VOL', 'VTKOutput', 'Variation', 'VectorFacet', 'VectorFacetFESpace', 'VectorFacetSurface', 'VectorH1', 'VectorL2', 'VectorNodalFESpace', 'VectorSurfaceL2', 'VectorValued', 'VorB', 'VoxelCoefficient', 'Zero', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'curl', 'div', 'ds', 'dt', 'dx', 'erf', 'exp', 'floor', 'grad', 'log', 'ngsglobals', 'pml', 'pow', 'printonce', 'sin', 'sinh', 'specialcf', 'sqrt', 'tan', 'x', 'y', 'z']
|
|
199
|
+
def ConstantCF(val):
|
|
200
|
+
...
|
|
201
|
+
def Deviator(mat):
|
|
202
|
+
...
|
|
203
|
+
def DomainConstantCF(values):
|
|
204
|
+
...
|
|
205
|
+
def Grad(func):
|
|
206
|
+
"""
|
|
207
|
+
Jacobi-matrix
|
|
208
|
+
"""
|
|
209
|
+
def Laplace(coef):
|
|
210
|
+
...
|
|
211
|
+
def Mass(coef):
|
|
212
|
+
...
|
|
213
|
+
def Neumann(coef):
|
|
214
|
+
...
|
|
215
|
+
def Normalize(v):
|
|
216
|
+
...
|
|
217
|
+
def OuterProduct(a, b):
|
|
218
|
+
...
|
|
219
|
+
def PyCof(m):
|
|
220
|
+
...
|
|
221
|
+
def PyCross(a, b):
|
|
222
|
+
...
|
|
223
|
+
def PyDet(mat):
|
|
224
|
+
...
|
|
225
|
+
def PyId(dim):
|
|
226
|
+
...
|
|
227
|
+
def PyInv(m):
|
|
228
|
+
...
|
|
229
|
+
def PySkew(m):
|
|
230
|
+
...
|
|
231
|
+
def PySym(m):
|
|
232
|
+
...
|
|
233
|
+
def PyTrace(mat):
|
|
234
|
+
...
|
|
235
|
+
def Source(coef):
|
|
236
|
+
...
|
|
237
|
+
def VectorFacet(mesh, **args):
|
|
238
|
+
...
|
|
239
|
+
def curl(func):
|
|
240
|
+
...
|
|
241
|
+
def div(func):
|
|
242
|
+
...
|
|
243
|
+
def dt(u):
|
|
244
|
+
...
|
|
245
|
+
def grad(func):
|
|
246
|
+
...
|
|
247
|
+
def printonce(*args):
|
|
248
|
+
...
|
|
249
|
+
BBBND: ngsolve.comp.VorB # value = <VorB.BBBND: 3>
|
|
250
|
+
BBND: ngsolve.comp.VorB # value = <VorB.BBND: 2>
|
|
251
|
+
BND: ngsolve.comp.VorB # value = <VorB.BND: 1>
|
|
252
|
+
CELL: ngsolve.fem.NODE_TYPE # value = <NODE_TYPE.CELL: 3>
|
|
253
|
+
EDGE: ngsolve.fem.NODE_TYPE # value = <NODE_TYPE.EDGE: 1>
|
|
254
|
+
ELEMENT: ngsolve.fem.NODE_TYPE # value = <NODE_TYPE.ELEMENT: 4>
|
|
255
|
+
FACE: ngsolve.fem.NODE_TYPE # value = <NODE_TYPE.FACE: 2>
|
|
256
|
+
FACET: ngsolve.fem.NODE_TYPE # value = <NODE_TYPE.FACET: 5>
|
|
257
|
+
HEX: ngsolve.fem.ET # value = <ET.HEX: 24>
|
|
258
|
+
POINT: ngsolve.fem.ET # value = <ET.POINT: 0>
|
|
259
|
+
PRISM: ngsolve.fem.ET # value = <ET.PRISM: 22>
|
|
260
|
+
PYRAMID: ngsolve.fem.ET # value = <ET.PYRAMID: 21>
|
|
261
|
+
QUAD: ngsolve.fem.ET # value = <ET.QUAD: 11>
|
|
262
|
+
SEGM: ngsolve.fem.ET # value = <ET.SEGM: 1>
|
|
263
|
+
TET: ngsolve.fem.ET # value = <ET.TET: 20>
|
|
264
|
+
TRIG: ngsolve.fem.ET # value = <ET.TRIG: 10>
|
|
265
|
+
VERTEX: ngsolve.fem.NODE_TYPE # value = <NODE_TYPE.VERTEX: 0>
|
|
266
|
+
VOL: ngsolve.comp.VorB # value = <VorB.VOL: 0>
|
|
267
|
+
ds: ngsolve.comp.DifferentialSymbol # value = <ngsolve.comp.DifferentialSymbol object>
|
|
268
|
+
dx: ngsolve.comp.DifferentialSymbol # value = <ngsolve.comp.DifferentialSymbol object>
|
|
269
|
+
ngsglobals: ngsolve.comp.GlobalVariables # value = <ngsolve.comp.GlobalVariables object>
|
|
270
|
+
specialcf: ngsolve.fem.SpecialCFCreator # value = <ngsolve.fem.SpecialCFCreator object>
|
|
271
|
+
x: ngsolve.fem.CoefficientFunction # value = <ngsolve.fem.CoefficientFunction object>
|
|
272
|
+
y: ngsolve.fem.CoefficientFunction # value = <ngsolve.fem.CoefficientFunction object>
|
|
273
|
+
z: ngsolve.fem.CoefficientFunction # value = <ngsolve.fem.CoefficientFunction object>
|