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.
Files changed (306) hide show
  1. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngs_nvcc +22 -0
  2. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngs_nvlink +17 -0
  3. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngscxx +15 -0
  4. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngsld +11 -0
  5. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngsolve.tcl +648 -0
  6. ngsolve-6.2.2506.post216.dev0.data/data/bin/ngspy +2 -0
  7. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/analytic_integrals.hpp +10 -0
  8. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/arnoldi.hpp +55 -0
  9. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bandmatrix.hpp +334 -0
  10. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/basematrix.hpp +963 -0
  11. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/basevector.hpp +1268 -0
  12. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bdbequations.hpp +2807 -0
  13. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bdbintegrator.hpp +1660 -0
  14. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bem_diffops.hpp +475 -0
  15. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bessel.hpp +1064 -0
  16. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bilinearform.hpp +966 -0
  17. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bla.hpp +29 -0
  18. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/blockalloc.hpp +95 -0
  19. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/blockjacobi.hpp +328 -0
  20. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/bspline.hpp +116 -0
  21. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/calcinverse.hpp +141 -0
  22. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cg.hpp +368 -0
  23. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/chebyshev.hpp +44 -0
  24. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cholesky.hpp +720 -0
  25. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/clapack.h +7254 -0
  26. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/code_generation.hpp +296 -0
  27. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient.hpp +2033 -0
  28. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient_impl.hpp +19 -0
  29. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/coefficient_stdmath.hpp +167 -0
  30. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/commutingAMG.hpp +106 -0
  31. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/comp.hpp +79 -0
  32. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/compatibility.hpp +41 -0
  33. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/complex_wrapper.hpp +101 -0
  34. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/compressedfespace.hpp +110 -0
  35. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/contact.hpp +239 -0
  36. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_core.hpp +216 -0
  37. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_linalg.hpp +185 -0
  38. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_ngbla.hpp +317 -0
  39. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_ngstd.hpp +414 -0
  40. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/cuda_profiler.hpp +240 -0
  41. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diagonalmatrix.hpp +160 -0
  42. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/differentialoperator.hpp +276 -0
  43. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffop.hpp +1286 -0
  44. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffop_impl.hpp +328 -0
  45. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/diffopwithfactor.hpp +123 -0
  46. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/discontinuous.hpp +84 -0
  47. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/dump.hpp +949 -0
  48. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ectypes.hpp +121 -0
  49. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/eigen.hpp +60 -0
  50. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/eigensystem.hpp +18 -0
  51. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elasticity_equations.hpp +595 -0
  52. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementbyelement.hpp +201 -0
  53. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementtopology.hpp +1760 -0
  54. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/elementtransformation.hpp +339 -0
  55. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/evalfunc.hpp +405 -0
  56. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/expr.hpp +1693 -0
  57. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetfe.hpp +175 -0
  58. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetfespace.hpp +180 -0
  59. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facethofe.hpp +111 -0
  60. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/facetsurffespace.hpp +112 -0
  61. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fe_interfaces.hpp +32 -0
  62. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fem.hpp +87 -0
  63. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fesconvert.hpp +14 -0
  64. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/fespace.hpp +1454 -0
  65. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/finiteelement.hpp +286 -0
  66. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/globalinterfacespace.hpp +77 -0
  67. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/globalspace.hpp +115 -0
  68. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/gridfunction.hpp +525 -0
  69. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1amg.hpp +124 -0
  70. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofe.hpp +188 -0
  71. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofe_impl.hpp +1262 -0
  72. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofefo.hpp +148 -0
  73. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofefo_impl.hpp +185 -0
  74. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1hofespace.hpp +167 -0
  75. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1lofe.hpp +1240 -0
  76. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/h1lumping.hpp +41 -0
  77. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurl_equations.hpp +1381 -0
  78. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlcurlfe.hpp +2241 -0
  79. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlcurlfespace.hpp +78 -0
  80. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlfe.hpp +259 -0
  81. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlfe_utils.hpp +107 -0
  82. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhdiv_dshape.hpp +857 -0
  83. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhdivfes.hpp +308 -0
  84. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofe.hpp +175 -0
  85. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofe_impl.hpp +1871 -0
  86. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurlhofespace.hpp +193 -0
  87. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hcurllofe.hpp +1146 -0
  88. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdiv_equations.hpp +880 -0
  89. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivdivfe.hpp +2923 -0
  90. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivdivsurfacespace.hpp +76 -0
  91. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfe.hpp +206 -0
  92. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfe_utils.hpp +717 -0
  93. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivfes.hpp +75 -0
  94. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofe.hpp +447 -0
  95. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofe_impl.hpp +1107 -0
  96. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofefo.hpp +229 -0
  97. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhofespace.hpp +177 -0
  98. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivhosurfacefespace.hpp +106 -0
  99. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hdivlofe.hpp +773 -0
  100. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hidden.hpp +74 -0
  101. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/householder.hpp +181 -0
  102. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hypre_ams_precond.hpp +123 -0
  103. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/hypre_precond.hpp +73 -0
  104. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/integrator.hpp +2012 -0
  105. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/integratorcf.hpp +253 -0
  106. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/interpolate.hpp +49 -0
  107. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/intrule.hpp +2542 -0
  108. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/intrules_SauterSchwab.hpp +25 -0
  109. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/irspace.hpp +49 -0
  110. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/jacobi.hpp +153 -0
  111. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/kernels.hpp +724 -0
  112. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofe.hpp +194 -0
  113. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofe_impl.hpp +564 -0
  114. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofefo.hpp +542 -0
  115. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/l2hofespace.hpp +344 -0
  116. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/la.hpp +38 -0
  117. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/linalg_kernels.hpp +70 -0
  118. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/linearform.hpp +266 -0
  119. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/matrix.hpp +2145 -0
  120. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/memusage.hpp +41 -0
  121. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/meshaccess.hpp +1359 -0
  122. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mgpre.hpp +204 -0
  123. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mp_coefficient.hpp +145 -0
  124. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mptools.hpp +2281 -0
  125. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/multigrid.hpp +42 -0
  126. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/multivector.hpp +447 -0
  127. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mumpsinverse.hpp +187 -0
  128. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/mycomplex.hpp +361 -0
  129. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ng_lapack.hpp +1661 -0
  130. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngblas.hpp +1232 -0
  131. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_defines.hpp +30 -0
  132. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_stdcpp_include.hpp +106 -0
  133. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngs_utils.hpp +121 -0
  134. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngsobject.hpp +1019 -0
  135. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngsstream.hpp +113 -0
  136. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/ngstd.hpp +72 -0
  137. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/nodalhofe.hpp +96 -0
  138. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/nodalhofe_impl.hpp +141 -0
  139. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetfe.hpp +223 -0
  140. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetfespace.hpp +98 -0
  141. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/normalfacetsurfacefespace.hpp +84 -0
  142. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/order.hpp +251 -0
  143. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallel_matrices.hpp +222 -0
  144. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/paralleldofs.hpp +340 -0
  145. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallelngs.hpp +23 -0
  146. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/parallelvector.hpp +269 -0
  147. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pardisoinverse.hpp +200 -0
  148. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/periodic.hpp +129 -0
  149. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/plateaufespace.hpp +25 -0
  150. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pml.hpp +275 -0
  151. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/pmltrafo.hpp +631 -0
  152. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/postproc.hpp +142 -0
  153. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/potentialtools.hpp +22 -0
  154. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/precomp.hpp +60 -0
  155. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/preconditioner.hpp +602 -0
  156. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/prolongation.hpp +380 -0
  157. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_comp.hpp +107 -0
  158. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_fem.hpp +89 -0
  159. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_linalg.hpp +58 -0
  160. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/python_ngstd.hpp +386 -0
  161. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol.hpp +4896 -0
  162. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol_tet.hpp +395 -0
  163. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/recursive_pol_trig.hpp +492 -0
  164. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/reorderedfespace.hpp +81 -0
  165. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sample_sort.hpp +105 -0
  166. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/scalarfe.hpp +335 -0
  167. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/shapefunction_utils.hpp +113 -0
  168. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/simd_complex.hpp +329 -0
  169. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/smoother.hpp +253 -0
  170. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/solve.hpp +89 -0
  171. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsecholesky.hpp +317 -0
  172. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsefactorization_interface.hpp +159 -0
  173. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix.hpp +1052 -0
  174. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix_dyn.hpp +90 -0
  175. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/sparsematrix_impl.hpp +1055 -0
  176. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/special_matrix.hpp +463 -0
  177. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/specialelement.hpp +125 -0
  178. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/statushandler.hpp +33 -0
  179. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/stringops.hpp +12 -0
  180. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/superluinverse.hpp +136 -0
  181. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/symbolicintegrator.hpp +850 -0
  182. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/symmetricmatrix.hpp +144 -0
  183. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tangentialfacetfe.hpp +224 -0
  184. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tangentialfacetfespace.hpp +91 -0
  185. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensor.hpp +522 -0
  186. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensorcoefficient.hpp +446 -0
  187. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tensorproductintegrator.hpp +113 -0
  188. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thcurlfe.hpp +128 -0
  189. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thcurlfe_impl.hpp +380 -0
  190. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thdivfe.hpp +80 -0
  191. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/thdivfe_impl.hpp +492 -0
  192. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpdiffop.hpp +461 -0
  193. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpfes.hpp +133 -0
  194. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tpintrule.hpp +224 -0
  195. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/triangular.hpp +465 -0
  196. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tscalarfe.hpp +245 -0
  197. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/tscalarfe_impl.hpp +1029 -0
  198. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/umfpackinverse.hpp +148 -0
  199. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/unifiedvector.hpp +103 -0
  200. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vector.hpp +1452 -0
  201. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/voxelcoefficientfunction.hpp +41 -0
  202. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vtkoutput.hpp +198 -0
  203. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/vvector.hpp +208 -0
  204. ngsolve-6.2.2506.post216.dev0.data/data/include/netgen/webgui.hpp +92 -0
  205. ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/NGSolveConfig.cmake +102 -0
  206. ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets-release.cmake +89 -0
  207. ngsolve-6.2.2506.post216.dev0.data/data/lib/cmake/ngsolve/ngsolve-targets.cmake +180 -0
  208. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngbla.so +0 -0
  209. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngcomp.so +0 -0
  210. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngfem.so +0 -0
  211. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngla.so +0 -0
  212. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsbem.so +0 -0
  213. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngscudalib.so +0 -0
  214. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngsolve.so +0 -0
  215. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/netgen_mesher.libs/libngstd.so +0 -0
  216. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/TensorProductTools.py +210 -0
  217. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__console.py +94 -0
  218. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__expr.py +181 -0
  219. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/__init__.py +148 -0
  220. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/_scikit_build_core_dependencies.py +30 -0
  221. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/bvp.py +78 -0
  222. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__init__.py +1 -0
  223. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/__main__.py +4 -0
  224. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/config/config.py +60 -0
  225. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/__init__.py +0 -0
  226. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
  227. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
  228. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
  229. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
  230. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/__init__.py +0 -0
  231. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/__init__.py +0 -0
  232. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hhj.py +44 -0
  233. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/hybrid_dg.py +53 -0
  234. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/mixed.py +30 -0
  235. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/nonlin.py +29 -0
  236. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pickling.py +26 -0
  237. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/pml.py +31 -0
  238. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/taskmanager.py +20 -0
  239. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/tdnns.py +47 -0
  240. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG-skeleton.py +45 -0
  241. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDG.py +38 -0
  242. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGlap.py +42 -0
  243. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/howto/timeDGwave.py +61 -0
  244. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/__init__.py +0 -0
  245. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/adaptive.py +123 -0
  246. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/cmagnet.py +59 -0
  247. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/elasticity.py +76 -0
  248. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/navierstokes.py +74 -0
  249. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.ipynb +170 -0
  250. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/intro/poisson.py +41 -0
  251. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/__init__.py +0 -0
  252. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
  253. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
  254. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_poisson.py +89 -0
  255. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/demos/mpi/mpi_timeDG.py +82 -0
  256. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/directsolvers.py +14 -0
  257. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/eigenvalues.py +364 -0
  258. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/internal.py +89 -0
  259. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/krylovspace.py +1182 -0
  260. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/meshes.py +748 -0
  261. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngs2petsc.py +310 -0
  262. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscuda.so +0 -0
  263. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngscxx.py +42 -0
  264. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/ngslib.so +0 -0
  265. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/nonlinearsolvers.py +203 -0
  266. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/preconditioners.py +11 -0
  267. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solve_implementation.py +168 -0
  268. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solvers/__init__.py +7 -0
  269. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/solvers/cudss.py +112 -0
  270. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/timestepping.py +185 -0
  271. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/timing.py +108 -0
  272. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/utils.py +167 -0
  273. ngsolve-6.2.2506.post216.dev0.data/data/lib/python3.14/site-packages/ngsolve/webgui.py +671 -0
  274. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/beam.geo +17 -0
  275. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/beam.vol +240 -0
  276. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/chip.in2d +41 -0
  277. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/chip.vol +614 -0
  278. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coil.geo +12 -0
  279. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coil.vol +2560 -0
  280. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
  281. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
  282. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/cube.geo +19 -0
  283. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/cube.vol +1832 -0
  284. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
  285. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
  286. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
  287. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
  288. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
  289. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
  290. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
  291. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
  292. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
  293. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
  294. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
  295. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
  296. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
  297. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
  298. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/shaft.geo +73 -0
  299. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
  300. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/square.in2d +17 -0
  301. ngsolve-6.2.2506.post216.dev0.data/data/share/ngsolve/square.vol +149 -0
  302. ngsolve-6.2.2506.post216.dev0.dist-info/METADATA +14 -0
  303. ngsolve-6.2.2506.post216.dev0.dist-info/RECORD +306 -0
  304. ngsolve-6.2.2506.post216.dev0.dist-info/WHEEL +5 -0
  305. ngsolve-6.2.2506.post216.dev0.dist-info/licenses/LICENSE +504 -0
  306. ngsolve-6.2.2506.post216.dev0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,595 @@
1
+ #ifndef FILE_ELASTICITY_EQUATIONS
2
+ #define FILE_ELASTICITY_EQUATIONS
3
+
4
+ /*********************************************************************/
5
+ /* File: elasticity_equations.hpp */
6
+ /* Author: Joachim Schoeberl */
7
+ /* Date: 10. Feb. 2002 */
8
+ /*********************************************************************/
9
+
10
+ namespace ngfem
11
+ {
12
+
13
+
14
+ /*
15
+
16
+ Elasticity integrators:
17
+
18
+ */
19
+
20
+
21
+
22
+
23
+
24
+ /* ******************** Elasticity ************************** */
25
+
26
+
27
+
28
+ /// Elasticity operator $(e_{11},e_{22},2 e_{12})$
29
+ template <int D, typename FEL = ScalarFiniteElement<D> >
30
+ class DiffOpStrain : public DiffOp<DiffOpStrain<D, FEL> >
31
+ {
32
+ };
33
+
34
+ template <typename FEL>
35
+ class DiffOpStrain<2, FEL> : public DiffOp<DiffOpStrain<2, FEL> >
36
+ {
37
+ public:
38
+ enum { DIM = 2 };
39
+ enum { DIM_SPACE = 2 };
40
+ enum { DIM_ELEMENT = 2 };
41
+ enum { DIM_DMAT = 3 };
42
+ enum { DIFFORDER = 1 };
43
+
44
+ template <typename AFEL, typename MIP, typename MAT>
45
+ static void GenerateMatrix (const AFEL & fel, const MIP & mip,
46
+ MAT && mat, LocalHeap & lh)
47
+ {
48
+ HeapReset hr(lh);
49
+ typedef typename remove_reference_t<MAT>::TSCAL TSCAL;
50
+ int nd = fel.GetNDof();
51
+
52
+ FlatMatrixFixHeight<2, TSCAL> grad (nd, lh);
53
+ FlatMatrixFixWidth<2> dshape(nd, lh);
54
+ static_cast<const FEL&>(fel).CalcDShape(mip.IP(), dshape);
55
+ grad = Trans (mip.GetJacobianInverse ()) * Trans (dshape);
56
+ /*
57
+ grad = Trans (mip.GetJacobianInverse ()) *
58
+ Trans (static_cast<const FEL&>(fel).GetDShape(mip.IP(), lh));
59
+ */
60
+ mat.AddSize(3, fel.GetNDof()) = TSCAL (0);
61
+ for (int i = 0; i < nd; i++)
62
+ {
63
+ mat(0, DIM*i ) = grad(0, i);
64
+ mat(1, DIM*i+1) = grad(1, i);
65
+ mat(2, DIM*i ) = grad(1, i);
66
+ mat(2, DIM*i+1) = grad(0, i);
67
+ }
68
+ }
69
+ };
70
+
71
+
72
+
73
+
74
+ template <typename FEL>
75
+ class DiffOpStrain<3, FEL> : public DiffOp<DiffOpStrain<3, FEL> >
76
+ {
77
+ public:
78
+ enum { DIM = 3 };
79
+ enum { DIM_SPACE = 3 };
80
+ enum { DIM_ELEMENT = 3 };
81
+ enum { DIM_DMAT = 6 };
82
+ enum { DIFFORDER = 1 };
83
+
84
+ template <typename AFEL, typename MIP, typename MAT>
85
+ static void GenerateMatrix (const AFEL & fel, const MIP & mip,
86
+ MAT && mat, LocalHeap & lh)
87
+ {
88
+ typedef typename remove_reference_t<MAT>::TSCAL TSCAL;
89
+
90
+ HeapReset hr(lh);
91
+ /*
92
+ mat = TSCAL(0);
93
+ static_cast<const FEL &>(fel).
94
+ CalcDShape (mip.IP(),
95
+ [&](int i, Vec<3> gradref)
96
+ {
97
+ Vec<3,TSCAL> grad =
98
+ Trans (mip.GetJacobianInverse ()) * gradref;
99
+
100
+ mat(0, 3*i ) = grad(0);
101
+ mat(1, 3*i+1) = grad(1);
102
+ mat(2, 3*i+2) = grad(2);
103
+
104
+ mat(3, 3*i ) = grad(1);
105
+ mat(3, 3*i+1) = grad(0);
106
+
107
+ mat(4, 3*i ) = grad(2);
108
+ mat(4, 3*i+2) = grad(0);
109
+
110
+ mat(5, 3*i+1) = grad(2);
111
+ mat(5, 3*i+2) = grad(1);
112
+ });
113
+ */
114
+ int nd = fel.GetNDof();
115
+ FlatMatrixFixHeight<3,TSCAL> grad (nd, lh);
116
+ FlatMatrixFixWidth<3> dshape(nd, lh);
117
+ static_cast<const FEL&>(fel).CalcDShape(mip.IP(), dshape);
118
+ grad = Trans (mip.GetJacobianInverse ()) * Trans (dshape);
119
+
120
+ /*
121
+ grad = Trans (mip.GetJacobianInverse ()) *
122
+ Trans (static_cast<const FEL &>(fel).GetDShape(mip.IP(),lh));
123
+ */
124
+ mat.AddSize(6, nd) = TSCAL (0);
125
+ for (int i = 0; i < nd; i++)
126
+ {
127
+ mat(0, DIM*i ) = grad(0, i);
128
+ mat(1, DIM*i+1) = grad(1, i);
129
+ mat(2, DIM*i+2) = grad(2, i);
130
+
131
+ mat(3, DIM*i ) = grad(1, i);
132
+ mat(3, DIM*i+1) = grad(0, i);
133
+
134
+ mat(4, DIM*i ) = grad(2, i);
135
+ mat(4, DIM*i+2) = grad(0, i);
136
+
137
+ mat(5, DIM*i+1) = grad(2, i);
138
+ mat(5, DIM*i+2) = grad(1, i);
139
+ }
140
+
141
+ }
142
+
143
+
144
+ #ifdef SERVICE
145
+ template <typename AFEL, typename MAT>
146
+ static void GenerateMatrix (const AFEL & fel,
147
+ const MappedIntegrationPoint<3,3> & mip,
148
+ MAT & mat, LocalHeap & lh)
149
+ {
150
+ typedef typename MAT::TSCAL TSCAL;
151
+
152
+ int nd = fel.GetNDof();
153
+ HeapReset hr(lh);
154
+
155
+ mat = TSCAL(0);
156
+ static_cast<const FEL &>(fel).
157
+ CalcMappedDShape (mip,
158
+ [&](int i, Vec<3> grad)
159
+ {
160
+ mat(0, 3*i ) = grad(0);
161
+ mat(1, 3*i+1) = grad(1);
162
+ mat(2, 3*i+2) = grad(2);
163
+
164
+ mat(3, 3*i ) = grad(1);
165
+ mat(3, 3*i+1) = grad(0);
166
+
167
+ mat(4, 3*i ) = grad(2);
168
+ mat(4, 3*i+2) = grad(0);
169
+
170
+ mat(5, 3*i+1) = grad(2);
171
+ mat(5, 3*i+2) = grad(1);
172
+ });
173
+
174
+ /*
175
+ FlatMatrixFixWidth<3> grad (nd, lh);
176
+ static_cast<const FEL &>(fel).CalcMappedDShape (mip, grad);
177
+
178
+ mat = TSCAL (0);
179
+ for (int i = 0; i < nd; i++)
180
+ {
181
+ mat(0, DIM*i ) = grad(i, 0);
182
+ mat(1, DIM*i+1) = grad(i, 1);
183
+ mat(2, DIM*i+2) = grad(i, 2);
184
+
185
+ mat(3, DIM*i ) = grad(i, 1);
186
+ mat(3, DIM*i+1) = grad(i, 0);
187
+
188
+ mat(4, DIM*i ) = grad(i, 2);
189
+ mat(4, DIM*i+2) = grad(i, 0);
190
+
191
+ mat(5, DIM*i+1) = grad(i, 2);
192
+ mat(5, DIM*i+2) = grad(i, 1);
193
+ }
194
+ */
195
+ }
196
+ #endif
197
+ };
198
+
199
+
200
+
201
+ /// 2D plane strain, and 3D
202
+ template <int DIM>
203
+ class ElasticityDMat : public DMatOp<ElasticityDMat<DIM>,DIM*(DIM+1)/2>
204
+ {
205
+ public:
206
+ shared_ptr<CoefficientFunction> coefe;
207
+ shared_ptr<CoefficientFunction> coefnu;
208
+ public:
209
+ enum { DIM_DMAT = (DIM * (DIM+1)) / 2 };
210
+
211
+ ElasticityDMat (shared_ptr<CoefficientFunction> acoefe,
212
+ shared_ptr<CoefficientFunction> acoefnu)
213
+ : coefe(acoefe), coefnu(acoefnu) { ; }
214
+
215
+ template <typename SCAL>
216
+ static Mat<DIM_DMAT,DIM_DMAT,SCAL> GetMatrixType(SCAL s) { return SCAL(0); }
217
+
218
+
219
+ template <typename FEL, typename MIP, typename MAT>
220
+ void GenerateMatrix (const FEL & fel, const MIP & mip,
221
+ MAT & mat, LocalHeap & lh) const
222
+ {
223
+ mat = 0;
224
+ double nu = Evaluate (*coefnu, mip);
225
+ double e = Evaluate (*coefe, mip);
226
+ int i;
227
+ for (i = 0; i < DIM; i++)
228
+ {
229
+ mat(i,i) = 1-nu;
230
+ for (int j = 0; j < i; j++)
231
+ mat(i,j) = mat(j,i) = nu;
232
+ }
233
+ for (i = DIM; i < (DIM*(DIM+1)/2); i++)
234
+ mat(i,i) = 0.5 * (1-2*nu);
235
+
236
+ mat *= (e / ((1 + nu) * (1 - 2 * nu)));
237
+ }
238
+ };
239
+
240
+
241
+ ///
242
+ template <int DIM>
243
+ class OrthotropicElasticityDMat : public DMatOp<OrthotropicElasticityDMat<DIM>,
244
+ DIM*(DIM+1)/2>
245
+ {
246
+ public:
247
+ CoefficientFunction * coefE1; // Young's moduli
248
+ CoefficientFunction * coefE2;
249
+ CoefficientFunction * coefE3;
250
+ CoefficientFunction * coefnu12; // Poisson's ratios (nu21/E2 = nu12/E1, nu31/E3 = nu13/E1, nu32/E3 = nu23/E2)
251
+ CoefficientFunction * coefnu13;
252
+ CoefficientFunction * coefnu23;
253
+ CoefficientFunction * coefG12; // shear moduil
254
+ CoefficientFunction * coefG13;
255
+ CoefficientFunction * coefG23;
256
+ public:
257
+ enum { DIM_DMAT = (DIM * (DIM+1)) / 2 };
258
+
259
+ OrthotropicElasticityDMat (const Array<shared_ptr<CoefficientFunction>> & coefs)
260
+ {
261
+ cerr << "OrthotropicElasticityDMat currently not available" << endl;
262
+ }
263
+ /*
264
+ OrthotropicElasticityDMat (CoefficientFunction * acoefE1,
265
+ CoefficientFunction * acoefE2,
266
+ CoefficientFunction * acoefE3,
267
+ CoefficientFunction * acoefnu12,
268
+ CoefficientFunction * acoefnu13,
269
+ CoefficientFunction * acoefnu23,
270
+ CoefficientFunction * acoefG12,
271
+ CoefficientFunction * acoefG13,
272
+ CoefficientFunction * acoefG23)
273
+ : coefE1(acoefE1), coefE2(acoefE2), coefE3(acoefE3),
274
+ coefnu12(acoefnu12), coefnu13(acoefnu13), coefnu23(acoefnu23),
275
+ coefG12(acoefG12), coefG13(acoefG13), coefG23(acoefG23) { ; }
276
+ */
277
+
278
+ template <typename SCAL>
279
+ static Mat<DIM_DMAT,DIM_DMAT,SCAL> GetMatrixType(SCAL s) { return SCAL(0); }
280
+
281
+ template <typename FEL, typename MIP, typename MAT>
282
+ void GenerateMatrix (const FEL & fel, const MIP & mip,
283
+ MAT & mat, LocalHeap & lh) const
284
+ {
285
+ mat = 0;
286
+ const double E1 = Evaluate (*coefE1, mip);
287
+ const double E2 = Evaluate (*coefE2, mip);
288
+ const double E3 = Evaluate (*coefE3, mip);
289
+
290
+ if(E1 < 1.e-5 || E2 < 1.e-5 || E3 < 1.e-5) return;
291
+
292
+ const double nu12 = Evaluate (*coefnu12, mip);
293
+ const double nu21 = nu12*(E2/E1);
294
+ const double nu13 = Evaluate (*coefnu13, mip);
295
+ const double nu31 = nu13*(E3/E1);
296
+ const double nu23 = Evaluate (*coefnu23, mip);
297
+ const double nu32 = nu23*(E3/E2);
298
+
299
+ if(nu12 < 0 || nu12 > 0.5 || nu21 < 0 || nu21 > 0.5 || nu13 < 0 || nu13 > 0.5 || nu31 < 0 || nu31 > 0.5 || nu23 < 0 || nu23 > 0.5 || nu32 < 0 || nu32 > 0.5)
300
+ {
301
+ cerr << "WARNING: Bad choice for elasticity constants: " << endl
302
+ << "E1 " << E1 << " E2 " << E2 << " E3 " << E3 << endl
303
+ << "nu12 " << nu12 << " nu21 " << nu21 << " nu13 " << nu13 << " nu31 " << nu31 << " nu23 " << nu23 << " nu32 " << nu32 <<endl;
304
+ }
305
+
306
+ const double denom = 1. - nu13*nu32*nu21 - nu12*nu23*nu31 - nu12*nu21 - nu13*nu31 - nu23*nu32;
307
+
308
+ mat(0,0) = E1*(1.-nu23*nu32)/denom;
309
+ mat(1,0) = mat(0,1) = E2*(nu12+nu13*nu32)/denom; mat(1,1) = E2*(1.-nu13*nu31)/denom;
310
+ mat(2,0) = mat(0,2) = E3*(nu13+nu12*nu23)/denom; mat(2,1) = mat(1,2) = E3*(nu23+nu13*nu21)/denom; mat(2,2) = E3*(1.-nu12*nu21)/denom;
311
+
312
+ mat(3,3) = Evaluate (*coefG12, mip);
313
+ mat(4,4) = Evaluate (*coefG13, mip);
314
+ mat(5,5) = Evaluate (*coefG23, mip);
315
+ }
316
+ };
317
+
318
+ /// Orthotropic Elasticity DMat with Cylindrical Coordinates
319
+ template <int DIM>
320
+ class OrthotropicCylElasticityDMat : public DMatOp<OrthotropicElasticityDMat<DIM>,
321
+ DIM*(DIM+1)/2>
322
+ {
323
+ public:
324
+ CoefficientFunction * coefE1; // Young's moduli
325
+ CoefficientFunction * coefE2;
326
+ CoefficientFunction * coefE3;
327
+ CoefficientFunction * coefnu12; // Poisson's ratios (nu21/E2 = nu12/E1, nu31/E3 = nu13/E1, nu32/E3 = nu23/E2)
328
+ CoefficientFunction * coefnu13;
329
+ CoefficientFunction * coefnu23;
330
+ CoefficientFunction * coefG12; // shear moduil
331
+ CoefficientFunction * coefG13;
332
+ CoefficientFunction * coefG23;
333
+ CoefficientFunction * coefUseCyl; // if 1 ... use cylindrical coordinates, if 0 ... standard ortot.
334
+ public:
335
+ enum { DIM_DMAT = (DIM * (DIM+1)) / 2 };
336
+
337
+ OrthotropicCylElasticityDMat (const Array<shared_ptr<CoefficientFunction>> & coefs)
338
+ {
339
+ cerr << "OrthotropicCylElasticityDMat currently not available" << endl;
340
+ }
341
+
342
+
343
+ OrthotropicCylElasticityDMat (CoefficientFunction * acoefE1,
344
+ CoefficientFunction * acoefE2,
345
+ CoefficientFunction * acoefE3,
346
+ CoefficientFunction * acoefnu12,
347
+ CoefficientFunction * acoefnu13,
348
+ CoefficientFunction * acoefnu23,
349
+ CoefficientFunction * acoefG12,
350
+ CoefficientFunction * acoefG13,
351
+ CoefficientFunction * acoefG23,
352
+ CoefficientFunction * acoefUseCyl)
353
+ : coefE1(acoefE1), coefE2(acoefE2), coefE3(acoefE3),
354
+ coefnu12(acoefnu12), coefnu13(acoefnu13), coefnu23(acoefnu23),
355
+ coefG12(acoefG12), coefG13(acoefG13), coefG23(acoefG23), coefUseCyl(acoefUseCyl) { ; }
356
+
357
+
358
+ // template <typename SCAL>
359
+ // static Mat<DIM_DMAT,DIM_DMAT,SCAL> GetMatrixType(SCAL s) { return SCAL(0); }
360
+
361
+
362
+ template <typename FEL, typename MIP, typename MAT>
363
+ void GenerateMatrix (const FEL & fel, const MIP & mip,
364
+ MAT & mat, LocalHeap & lh) const
365
+ {
366
+
367
+ double E1 = Evaluate (*coefE1, mip);
368
+ double E2 = Evaluate (*coefE2, mip);
369
+ double E3 = Evaluate (*coefE3, mip);
370
+
371
+ if(E1 < 1.e-5 || E2 < 1.e-5 || E3 < 1.e-5) return;
372
+
373
+ double nu12 = Evaluate (*coefnu12, mip);
374
+ double nu21 = nu12*(E2/E1);
375
+ double nu13 = Evaluate (*coefnu13, mip);
376
+ double nu31 = nu13*(E3/E1);
377
+ double nu23 = Evaluate (*coefnu23, mip);
378
+ double nu32 = nu23*(E3/E2);
379
+
380
+ const double useCyl = Evaluate (*coefUseCyl, mip);
381
+
382
+ double G12 = Evaluate (*coefG12, mip);
383
+ double G13 = Evaluate (*coefG13, mip);
384
+ double G23 = Evaluate (*coefG23, mip);
385
+
386
+
387
+
388
+ double n1 = mip.GetPoint()(0);
389
+ double n2 = mip.GetPoint()(1);
390
+ const double l = sqrt(n1*n1+n2*n2);
391
+
392
+ n1 /= l; n2 /= l;
393
+
394
+ if(nu12 < 0 || nu12 > 0.5 || nu21 < 0 || nu21 > 0.5 || nu13 < 0 || nu13 > 0.5 || nu31 < 0 || nu31 > 0.5 || nu23 < 0 || nu23 > 0.5 || nu32 < 0 || nu32 > 0.5)
395
+ {
396
+ cerr << "WARNING: Bad choice for elasticity constants: " << endl
397
+ << "E1 " << E1 << " E2 " << E2 << " E3 " << E3 << endl
398
+ << "nu12 " << nu12 << " nu21 " << nu21 << " nu13 " << nu13 << " nu31 " << nu31 << " nu23 " << nu23 << " nu32 " << nu32 <<endl;
399
+ }
400
+
401
+ const double denom = 1. - nu13*nu32*nu21 - nu12*nu23*nu31 - nu12*nu21 - nu13*nu31 - nu23*nu32;
402
+
403
+
404
+
405
+
406
+ MAT aux(mat),transf(mat);
407
+
408
+ aux = 0;
409
+
410
+ aux(0,0) = E1*(1.-nu23*nu32)/denom;
411
+ aux(1,0) = aux(0,1) = E2*(nu12+nu13*nu32)/denom; aux(1,1) = E2*(1.-nu13*nu31)/denom;
412
+ aux(2,0) = aux(0,2) = E3*(nu13+nu12*nu23)/denom; aux(2,1) = aux(1,2) = E3*(nu23+nu13*nu21)/denom; aux(2,2) = E3*(1.-nu12*nu21)/denom;
413
+
414
+ aux(3,3) = G12;
415
+ aux(4,4) = G13;
416
+ aux(5,5) = G23;
417
+
418
+ if(fabs(useCyl) > 0.5)
419
+ {
420
+ transf = 0;
421
+
422
+ transf(0,0) = transf(1,1) = n1*n1; transf(0,1) = transf(1,0) = n2*n2; transf(2,2) = 1.;
423
+ transf(0,3) = 2.*n1*n2; transf(1,3) = -2.*n1*n2;
424
+ transf(3,0) = -n1*n2; transf(3,1) = n1*n2;
425
+ transf(3,3) = n1*n1-n2*n2; transf(4,4) = transf(5,5) = n1; transf(4,5) = n2; transf(5,4) = -n2;
426
+
427
+ mat = Trans(transf)*aux*transf;
428
+ }
429
+ else
430
+ {
431
+ mat = aux;
432
+ }
433
+ }
434
+ };
435
+
436
+
437
+
438
+ ///
439
+ class PlaneStressDMat : public DMatOp<PlaneStressDMat,3>
440
+ {
441
+ CoefficientFunction * coefe;
442
+ CoefficientFunction * coefnu;
443
+ public:
444
+ enum { DIM_DMAT = 3 };
445
+
446
+ PlaneStressDMat (CoefficientFunction * acoefe,
447
+ CoefficientFunction * acoefnu)
448
+ : coefe(acoefe), coefnu(acoefnu) { ; }
449
+
450
+ template <typename FEL, typename MIP, typename MAT>
451
+ void GenerateMatrix (const FEL & fel, const MIP & mip,
452
+ MAT & mat, LocalHeap & lh) const
453
+ {
454
+ mat = 0;
455
+ double nu = Evaluate (*coefnu, mip);
456
+ double e = Evaluate (*coefe, mip);
457
+
458
+ mat(0,0) = mat(1,1) = 1;
459
+ mat(0,1) = mat(1,0) = nu;
460
+ mat(2,2) = (1-nu) / 2;
461
+
462
+ mat *= (e / (1 - nu * nu));
463
+ }
464
+ };
465
+
466
+ ///
467
+ template <int D>
468
+ class ElasticityIntegrator
469
+ : public T_BDBIntegrator<DiffOpStrain<D>, ElasticityDMat<D>, ScalarFiniteElement<D> >
470
+ {
471
+ typedef T_BDBIntegrator<DiffOpStrain<D>, ElasticityDMat<D>, ScalarFiniteElement<D> > BASE;
472
+ public:
473
+ ElasticityIntegrator (shared_ptr<CoefficientFunction> coefe,
474
+ shared_ptr<CoefficientFunction> coefnu)
475
+ : BASE(ElasticityDMat<D> (coefe, coefnu))
476
+ { ; }
477
+
478
+ ElasticityIntegrator (const Array<shared_ptr<CoefficientFunction>> & coeffs)
479
+ : BASE(ElasticityDMat<D> (coeffs[0], coeffs[1]))
480
+ { ; }
481
+
482
+ /*
483
+ static Integrator * Create (Array<CoefficientFunction*> & coeffs)
484
+ {
485
+ return new ElasticityIntegrator (coeffs[0], coeffs[1]);
486
+ }
487
+ */
488
+
489
+ ///
490
+ virtual string Name () const { return "Elasticity"; }
491
+ };
492
+
493
+
494
+ /*
495
+ // for plane stress
496
+ ///
497
+ template <>
498
+ class ElasticityIntegrator <2>
499
+ : public T_BDBIntegrator<DiffOpStrain<2>, PlaneStressDMat, ScalarFiniteElement<D> >
500
+ {
501
+ public:
502
+ ///
503
+ ElasticityIntegrator (CoefficientFunction * coefe,
504
+ CoefficientFunction * coefnu)
505
+ : T_BDBIntegrator<DiffOpStrain<2>, PlaneStressDMat, ScalarFiniteElement<D> >
506
+ (PlaneStressDMat (coefe, coefnu))
507
+ { ; }
508
+
509
+ static Integrator * Create (Array<CoefficientFunction*> & coeffs)
510
+ {
511
+ return new ElasticityIntegrator (coeffs[0], coeffs[1]);
512
+ }
513
+
514
+ ///
515
+ virtual string Name () const { return "Elasticity"; }
516
+ };
517
+ */
518
+
519
+
520
+ ///
521
+ template <int D>
522
+ class OrthotropicElasticityIntegrator
523
+ : public T_BDBIntegrator<DiffOpStrain<D>, OrthotropicElasticityDMat<D>, ScalarFiniteElement<D> >
524
+ {
525
+ typedef T_BDBIntegrator<DiffOpStrain<D>, OrthotropicElasticityDMat<D>, ScalarFiniteElement<D> > BASE;
526
+ public:
527
+ using T_BDBIntegrator<DiffOpStrain<D>, OrthotropicElasticityDMat<D>, ScalarFiniteElement<D> >::T_BDBIntegrator;
528
+ ///
529
+ /*
530
+ OrthotropicElasticityIntegrator (CoefficientFunction * coefE1,
531
+ CoefficientFunction * coefE2,
532
+ CoefficientFunction * coefE3,
533
+ CoefficientFunction * coefnu12,
534
+ CoefficientFunction * coefnu13,
535
+ CoefficientFunction * coefnu23,
536
+ CoefficientFunction * coefG12,
537
+ CoefficientFunction * coefG13,
538
+ CoefficientFunction * coefG23)
539
+ : T_BDBIntegrator<DiffOpStrain<D>, OrthotropicElasticityDMat<D>, ScalarFiniteElement<D> >
540
+ (OrthotropicElasticityDMat<D> (coefE1, coefE2, coefE3, coefnu12, coefnu13, coefnu23, coefG12, coefG13, coefG23))
541
+ { ; }
542
+
543
+ static Integrator * Create (Array<CoefficientFunction*> & coeffs)
544
+ {
545
+ return new OrthotropicElasticityIntegrator (coeffs[0], coeffs[1], coeffs[2], coeffs[3], coeffs[4], coeffs[5], coeffs[6], coeffs[7], coeffs[8]);
546
+ }
547
+ */
548
+
549
+
550
+ ///
551
+ virtual string Name () const { return "OrthotropicElasticity"; }
552
+ };
553
+
554
+
555
+ ///
556
+ template <int D>
557
+ class OrthotropicCylElasticityIntegrator
558
+ : public T_BDBIntegrator<DiffOpStrain<D>, OrthotropicCylElasticityDMat<D>, ScalarFiniteElement<D> >
559
+ {
560
+ typedef T_BDBIntegrator<DiffOpStrain<D>, OrthotropicCylElasticityDMat<D>, ScalarFiniteElement<D> > BASE;
561
+ public:
562
+ using T_BDBIntegrator<DiffOpStrain<D>, OrthotropicCylElasticityDMat<D>, ScalarFiniteElement<D> >::T_BDBIntegrator;
563
+ ///
564
+ /*
565
+ OrthotropicCylElasticityIntegrator (CoefficientFunction * coefE1,
566
+ CoefficientFunction * coefE2,
567
+ CoefficientFunction * coefE3,
568
+ CoefficientFunction * coefnu12,
569
+ CoefficientFunction * coefnu13,
570
+ CoefficientFunction * coefnu23,
571
+ CoefficientFunction * coefG12,
572
+ CoefficientFunction * coefG13,
573
+ CoefficientFunction * coefG23,
574
+ CoefficientFunction * coefUseCyl)
575
+ : T_BDBIntegrator<DiffOpStrain<D>, OrthotropicCylElasticityDMat<D>, ScalarFiniteElement<D> >
576
+ (OrthotropicCylElasticityDMat<D> (coefE1, coefE2, coefE3, coefnu12, coefnu13, coefnu23, coefG12, coefG13, coefG23, coefUseCyl))
577
+ { ; }
578
+
579
+ static Integrator * Create (Array<CoefficientFunction*> & coeffs)
580
+ {
581
+ return new OrthotropicCylElasticityIntegrator (coeffs[0], coeffs[1], coeffs[2], coeffs[3], coeffs[4], coeffs[5], coeffs[6], coeffs[7], coeffs[8], coeffs[9]);
582
+ }
583
+ */
584
+
585
+
586
+ ///
587
+ virtual string Name () const { return "OrthotropicCylElasticity"; }
588
+ };
589
+
590
+ }
591
+
592
+
593
+
594
+
595
+ #endif