ddfem 1.0.6__py3-none-any.whl → 1.0.8__py3-none-any.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 (83) hide show
  1. ddfem/__main__.py +43 -7
  2. ddfem/data/2.11.dev20250709/boundary.modules +9 -0
  3. ddfem/data/2.11.dev20250709/femscheme_ddd4458a70dff1f9762ec5a96ca4ba9c.cc +43 -0
  4. ddfem/data/2.11.dev20250709/femspace_90f0a9524a8cb701e8ee5027b7658a0e_0faf32f13b591f4f60f83c591507b9be.cc +40 -0
  5. ddfem/data/2.11.dev20250709/geometry.modules +84 -0
  6. ddfem/data/2.11.dev20250709/hierarchicalgrid_966e2a5c8356c5b278ccd3acad180f0a.cc +30 -0
  7. ddfem/data/{integrands_cf38a832d97016edac4179e31ea45a48v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/integrands_2e5e6f48655bd358419554a0857f697bv1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +21 -21
  8. ddfem/data/{integrands_472696f050a50e3f5017ab5ecdab564bv1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/integrands_563572f4cb20b041e8198ba7d5f88584v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +21 -21
  9. ddfem/data/{integrands_1da925f6548e47811d4ee37ac8afd85ev1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/integrands_5e1afa60a15644998389a84306246ea5v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +19 -19
  10. ddfem/data/2.11.dev20250709/integrands_ed7208bd651abb351e34c9990e0313bcv1_3_a524c1196983e65de1c06d7d6afdeb44.cc +427 -0
  11. ddfem/data/{integrands_5d65834d43b1dbae0ceafbcc9ec60542v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/integrands_f3ca00a2ef95c9a48de9ec1b807b1b30v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +25 -25
  12. ddfem/data/2.11.dev20250709/intro.modules +109 -0
  13. ddfem/data/{localfunction_33933b99fbea8227fedf6cfb180ea878_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_82d7cb9338bf118426fac2abf41a91a4_a524c1196983e65de1c06d7d6afdeb44.cc} +22 -22
  14. ddfem/data/2.11.dev20250709/localfunction_c5ebc4ae4b5d3bad6be770eb08c50d08_19659fe2f2f74bcfb5d532f1a0d38be9.cc +1131 -0
  15. ddfem/data/2.11.dev20250709/localfunction_e4557ecff74fe5b37313674e67db2782_a524c1196983e65de1c06d7d6afdeb44.cc +135 -0
  16. ddfem/data/{localfunction_e85b93fe9b8fcd40ee82782fc600b65b_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_e69118a51208cfab8a028711e966e76c_19659fe2f2f74bcfb5d532f1a0d38be9.cc} +78 -89
  17. ddfem/data/2.11.dev20250709/localfunction_f4583c5cc10d24a8bdedf7510ce9da7b_a524c1196983e65de1c06d7d6afdeb44.cc +299 -0
  18. ddfem/data/2.11.dev20250709/localfunction_fc22d5adaf3b9563160dc2aec55e8ba1_19659fe2f2f74bcfb5d532f1a0d38be9.cc +113 -0
  19. ddfem/data/2.11.dev20250709/transformers.modules +13 -0
  20. ddfem/data/2.11.dev20250709/yaspcoordinates_dim2_ctdouble.cc +55 -0
  21. ddfem/data/generate.py +19 -4
  22. ddfem/geometry/__init__.py +2 -0
  23. ddfem/plot.py +6 -3
  24. {ddfem-1.0.6.dist-info → ddfem-1.0.8.dist-info}/METADATA +14 -5
  25. ddfem-1.0.8.dist-info/RECORD +96 -0
  26. ddfem/data/integrands_00ee9b3b89e4e44212e5b7ad7948a24ev1_3_a524c1196983e65de1c06d7d6afdeb44.cc +0 -587
  27. ddfem/data/integrands_3a7c822d5ac1692781ee4bcf2964fce7v1_3_a524c1196983e65de1c06d7d6afdeb44.cc +0 -409
  28. ddfem/data/integrands_9fbeb56ff6a7df9b8535d767ca7725d6v1_3_a524c1196983e65de1c06d7d6afdeb44.cc +0 -588
  29. ddfem/data/localfunction_0cb4ca9e24e2891510640b0737aaab21_a524c1196983e65de1c06d7d6afdeb44.cc +0 -170
  30. ddfem/data/localfunction_0f7b2106478c5d2af781b1f377a180d2_a524c1196983e65de1c06d7d6afdeb44.cc +0 -393
  31. ddfem/data/localfunction_2021505441469e99dd3c9b164e083239_a524c1196983e65de1c06d7d6afdeb44.cc +0 -620
  32. ddfem/data/localfunction_22e797a8f3e8c322f33c41e07bd15165_a524c1196983e65de1c06d7d6afdeb44.cc +0 -1445
  33. ddfem/data/localfunction_2a97db5a6a479d02138a836cb0890cf2_a524c1196983e65de1c06d7d6afdeb44.cc +0 -173
  34. ddfem/data/localfunction_32613626342183eafa360dc1f0f18924_a524c1196983e65de1c06d7d6afdeb44.cc +0 -1425
  35. ddfem/data/localfunction_4484607e3f9bd9999dbd7bb9d595a7b2_a524c1196983e65de1c06d7d6afdeb44.cc +0 -173
  36. ddfem/data/localfunction_6363af791dde11d699a9a3d876cc5d9a_a524c1196983e65de1c06d7d6afdeb44.cc +0 -549
  37. ddfem/data/localfunction_65bda5736a84d4aa0ef2d48ebcc90ed5_a524c1196983e65de1c06d7d6afdeb44.cc +0 -173
  38. ddfem/data/localfunction_762aa49bc5a47ad3d8d8bbde36b42ee5_a524c1196983e65de1c06d7d6afdeb44.cc +0 -723
  39. ddfem/data/localfunction_7d81d496538f240d504e5597484ee746_a524c1196983e65de1c06d7d6afdeb44.cc +0 -462
  40. ddfem/data/localfunction_a46a988b5d8571e80fd401a36d7341b7_a524c1196983e65de1c06d7d6afdeb44.cc +0 -170
  41. ddfem/data/localfunction_a9bb07439605d560b583608f20441342_a524c1196983e65de1c06d7d6afdeb44.cc +0 -173
  42. ddfem/data/localfunction_b20910b6c8d57cb5e6a7ff4b89b91618_a524c1196983e65de1c06d7d6afdeb44.cc +0 -437
  43. ddfem/data/localfunction_d0f33c2dc1ae0e619d85a7621c8e83a6_a524c1196983e65de1c06d7d6afdeb44.cc +0 -325
  44. ddfem/data/localfunction_dd1fb4bd60f2d8b3a062dbbdaedb9fee_a524c1196983e65de1c06d7d6afdeb44.cc +0 -869
  45. ddfem/data/localfunction_e6b6d8d3826590442cc40f3834124254_a524c1196983e65de1c06d7d6afdeb44.cc +0 -553
  46. ddfem-1.0.6.dist-info/RECORD +0 -103
  47. /ddfem/data/{adapt_010e1455a389aa01992af42c0a3f4b14.cc → 2.11.dev20250709/adapt_010e1455a389aa01992af42c0a3f4b14.cc} +0 -0
  48. /ddfem/data/{femscheme_f2a3cb32a864b08c0236366e732fb908.cc → 2.11.dev20250709/femscheme_f2a3cb32a864b08c0236366e732fb908.cc} +0 -0
  49. /ddfem/data/{femspace_4ff9049b6f297245e5d33296d14cd684_d5b136dbe3c5077b69c99b8c322eb563.cc → 2.11.dev20250709/femspace_4ff9049b6f297245e5d33296d14cd684_d5b136dbe3c5077b69c99b8c322eb563.cc} +0 -0
  50. /ddfem/data/{hierarchicalgrid_d827e80243feae36e8b9006bb24207e7.cc → 2.11.dev20250709/hierarchicalgrid_d827e80243feae36e8b9006bb24207e7.cc} +0 -0
  51. /ddfem/data/{indexset_e9c0cdc96a4fc702a0969c29910954e6.cc → 2.11.dev20250709/indexset_e9c0cdc96a4fc702a0969c29910954e6.cc} +0 -0
  52. /ddfem/data/{integrands_008eefa148b772fa3192dd3c1728c140v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/integrands_008eefa148b772fa3192dd3c1728c140v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  53. /ddfem/data/{integrands_2339be3c67df1d67b18125c34ced69c2v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/integrands_2339be3c67df1d67b18125c34ced69c2v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  54. /ddfem/data/{integrands_3bde0abfafcf45a3cff4d1029568ab5cv1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/integrands_3bde0abfafcf45a3cff4d1029568ab5cv1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  55. /ddfem/data/{localfunction_00f2e5593eeb23f01906255d67244f6e_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_00f2e5593eeb23f01906255d67244f6e_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  56. /ddfem/data/{localfunction_10ad0a2d88c74db5f4bf5f81e138974f_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_10ad0a2d88c74db5f4bf5f81e138974f_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  57. /ddfem/data/{localfunction_191355e6250b2d2e260d96f519ad9976_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_191355e6250b2d2e260d96f519ad9976_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  58. /ddfem/data/{localfunction_1d13146d4bff10e178aba773fe2a9f1d_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_1d13146d4bff10e178aba773fe2a9f1d_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  59. /ddfem/data/{localfunction_1d27a90a52b9053192c9cc902283f79b_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_1d27a90a52b9053192c9cc902283f79b_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  60. /ddfem/data/{localfunction_228c55d163ca194a905826bcc20fcbc0_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_228c55d163ca194a905826bcc20fcbc0_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  61. /ddfem/data/{localfunction_3e323e81c52891c0ecb656eac273e52f_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_3e323e81c52891c0ecb656eac273e52f_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  62. /ddfem/data/{localfunction_42ff56710f3bd510798ecabb32a6cbf0_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_42ff56710f3bd510798ecabb32a6cbf0_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  63. /ddfem/data/{localfunction_42ff56710f3bd510798ecabb32a6cbf0_af122c1df944c95cd395ec0f91d0f970.cc → 2.11.dev20250709/localfunction_42ff56710f3bd510798ecabb32a6cbf0_af122c1df944c95cd395ec0f91d0f970.cc} +0 -0
  64. /ddfem/data/{localfunction_83d9e6dd70d1c31c973224e210cc36b4_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_83d9e6dd70d1c31c973224e210cc36b4_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  65. /ddfem/data/{localfunction_86a0670f34bf2ac8155423a1c1bc2e75_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_86a0670f34bf2ac8155423a1c1bc2e75_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  66. /ddfem/data/{localfunction_a854465b265a1a51dacb4f71f7eeb06b_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_a854465b265a1a51dacb4f71f7eeb06b_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  67. /ddfem/data/{localfunction_a8c726f728cd35d137188b33301aeef1_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_a8c726f728cd35d137188b33301aeef1_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  68. /ddfem/data/{localfunction_ae8173bdb67b8ea50ce75c3912841100_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_ae8173bdb67b8ea50ce75c3912841100_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  69. /ddfem/data/{localfunction_aeb3d963412cdc65630e0a4c3c0dde0f_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_aeb3d963412cdc65630e0a4c3c0dde0f_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  70. /ddfem/data/{localfunction_b8239bf849ec7c1903f627833e6dac5a_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_b8239bf849ec7c1903f627833e6dac5a_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  71. /ddfem/data/{localfunction_bcafb581216501f273e23c0e26cd57af_af122c1df944c95cd395ec0f91d0f970.cc → 2.11.dev20250709/localfunction_bcafb581216501f273e23c0e26cd57af_af122c1df944c95cd395ec0f91d0f970.cc} +0 -0
  72. /ddfem/data/{localfunction_bdfb7ddf42a423f7d0791458634d4b8f_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_bdfb7ddf42a423f7d0791458634d4b8f_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  73. /ddfem/data/{localfunction_d75993d7ae5919d23117b153e900840d_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_d75993d7ae5919d23117b153e900840d_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  74. /ddfem/data/{localfunction_f4b1d42cbb447375f39ed834570cd3f0_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_f4b1d42cbb447375f39ed834570cd3f0_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  75. /ddfem/data/{localfunction_f626cd43dc8558135fe0b32cde016644_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/localfunction_f626cd43dc8558135fe0b32cde016644_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  76. /ddfem/data/{referenceelements_0fff57b283123cc055345ec95574c857.cc → 2.11.dev20250709/referenceelements_0fff57b283123cc055345ec95574c857.cc} +0 -0
  77. /ddfem/data/{referenceelements_de274310a0055100b832a0e8892b0258.cc → 2.11.dev20250709/referenceelements_de274310a0055100b832a0e8892b0258.cc} +0 -0
  78. /ddfem/data/{referenceelements_f4457f35395151d83a965d4cf5fce70d.cc → 2.11.dev20250709/referenceelements_f4457f35395151d83a965d4cf5fce70d.cc} +0 -0
  79. /ddfem/data/{view_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250709/view_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  80. /ddfem/data/{view_af122c1df944c95cd395ec0f91d0f970.cc → 2.11.dev20250709/view_af122c1df944c95cd395ec0f91d0f970.cc} +0 -0
  81. {ddfem-1.0.6.dist-info → ddfem-1.0.8.dist-info}/WHEEL +0 -0
  82. {ddfem-1.0.6.dist-info → ddfem-1.0.8.dist-info}/licenses/LICENSE +0 -0
  83. {ddfem-1.0.6.dist-info → ddfem-1.0.8.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
- #ifndef GuardIntegrands_1da925f6548e47811d4ee37ac8afd85ev1_3
2
- #define GuardIntegrands_1da925f6548e47811d4ee37ac8afd85ev1_3
1
+ #ifndef GuardIntegrands_5e1afa60a15644998389a84306246ea5v1_3
2
+ #define GuardIntegrands_5e1afa60a15644998389a84306246ea5v1_3
3
3
  #define USING_DUNE_PYTHON 1
4
4
  #include <config.h>
5
5
  #include <dune/alugrid/dgf.hh>
@@ -21,7 +21,7 @@
21
21
  #include <dune/fem/misc/gridfunctionview.hh>
22
22
  #include <dune/fempy/py/integrands.hh>
23
23
 
24
- namespace Integrands_1da925f6548e47811d4ee37ac8afd85ev1_3
24
+ namespace Integrands_5e1afa60a15644998389a84306246ea5v1_3
25
25
  {
26
26
 
27
27
 
@@ -30,7 +30,7 @@ namespace Integrands_1da925f6548e47811d4ee37ac8afd85ev1_3
30
30
  // Integrands
31
31
  // ----------
32
32
 
33
- template< class GridPart, class Coeffbndproj, class Coeffextproj, class Coeffsdfprojfull, class Coeffphidomain, class CoeffsdfprojfullA >
33
+ template< class GridPart, class Coeffbndproj, class Coeffextproj, class Coeffsdfprojfull, class CoeffsdfprojfullA, class Coeffphidomain >
34
34
  struct Integrands
35
35
  {
36
36
  typedef GridPart GridPartType;
@@ -46,21 +46,21 @@ namespace Integrands_1da925f6548e47811d4ee37ac8afd85ev1_3
46
46
  template< std::size_t i >
47
47
  using ConstantsRangeType = typename std::tuple_element_t< i, ConstantTupleType >::element_type;
48
48
  typedef std::tuple< Dune::Fem::GridFunctionSpace< GridPartType, Dune::FieldVector< double, 2 > >, Dune::Fem::GridFunctionSpace< GridPartType, Dune::FieldVector< double, 2 > >, Dune::Fem::GridFunctionSpace< GridPartType, Dune::FieldVector< double, 1 > >, Dune::Fem::GridFunctionSpace< GridPartType, Dune::FieldVector< double, 1 > >, Dune::Fem::GridFunctionSpace< GridPartType, Dune::FieldVector< double, 1 > > > CoefficientFunctionSpaceTupleType;
49
- typedef std::tuple< Coeffbndproj, Coeffextproj, Coeffsdfprojfull, Coeffphidomain, CoeffsdfprojfullA > CoefficientTupleType;
49
+ typedef std::tuple< Coeffbndproj, Coeffextproj, Coeffsdfprojfull, CoeffsdfprojfullA, Coeffphidomain > CoefficientTupleType;
50
50
  template< std::size_t i >
51
51
  using CoefficientFunctionSpaceType = std::tuple_element_t< i, CoefficientFunctionSpaceTupleType >;
52
52
  template< std::size_t i >
53
53
  using CoefficientRangeType = typename CoefficientFunctionSpaceType< i >::RangeType;
54
54
  template< std::size_t i >
55
55
  using CoefficientJacobianRangeType = typename CoefficientFunctionSpaceType< i >::JacobianRangeType;
56
- static constexpr bool gridPartValid = Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<Coeffbndproj>>() && Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<Coeffextproj>>() && Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<Coeffsdfprojfull>>() && Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<Coeffphidomain>>() && Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<CoeffsdfprojfullA>>();
56
+ static constexpr bool gridPartValid = Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<Coeffbndproj>>() && Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<Coeffextproj>>() && Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<Coeffsdfprojfull>>() && Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<CoeffsdfprojfullA>>() && Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<Coeffphidomain>>();
57
57
  template< std::size_t i >
58
58
  using CoefficientType = std::tuple_element_t< i, CoefficientTupleType >;
59
59
  template< std::size_t i >
60
60
  using ConstantType = typename std::tuple_element_t< i, ConstantTupleType >::element_type;
61
61
 
62
- Integrands ( const Coeffbndproj &coeffbndproj, const Coeffextproj &coeffextproj, const Coeffsdfprojfull &coeffsdfprojfull, const Coeffphidomain &coeffphidomain, const CoeffsdfprojfullA &coeffsdfprojfullA, const Dune::Fem::ParameterReader &parameter = Dune::Fem::Parameter::container() )
63
- : coefficients_( Dune::Fem::ConstLocalFunction< Coeffbndproj >( coeffbndproj ), Dune::Fem::ConstLocalFunction< Coeffextproj >( coeffextproj ), Dune::Fem::ConstLocalFunction< Coeffsdfprojfull >( coeffsdfprojfull ), Dune::Fem::ConstLocalFunction< Coeffphidomain >( coeffphidomain ), Dune::Fem::ConstLocalFunction< CoeffsdfprojfullA >( coeffsdfprojfullA ) )
62
+ Integrands ( const Coeffbndproj &coeffbndproj, const Coeffextproj &coeffextproj, const Coeffsdfprojfull &coeffsdfprojfull, const CoeffsdfprojfullA &coeffsdfprojfullA, const Coeffphidomain &coeffphidomain, const Dune::Fem::ParameterReader &parameter = Dune::Fem::Parameter::container() )
63
+ : coefficients_( Dune::Fem::ConstLocalFunction< Coeffbndproj >( coeffbndproj ), Dune::Fem::ConstLocalFunction< Coeffextproj >( coeffextproj ), Dune::Fem::ConstLocalFunction< Coeffsdfprojfull >( coeffsdfprojfull ), Dune::Fem::ConstLocalFunction< CoeffsdfprojfullA >( coeffsdfprojfullA ), Dune::Fem::ConstLocalFunction< Coeffphidomain >( coeffphidomain ) )
64
64
  {
65
65
  std::get< 0 >( constants_ ) = std::make_shared< Conepsilon >( (Conepsilon(0)) );
66
66
  }
@@ -106,7 +106,7 @@ namespace Integrands_1da925f6548e47811d4ee37ac8afd85ev1_3
106
106
  using std::sin;
107
107
  double tmp0 = constant< 0 >();
108
108
  const auto tmp1 = std::pow( tmp0, 3 );
109
- typename CoefficientFunctionSpaceType< 4 >::RangeType tmp2 = evaluateCoefficient< 4 >( x );
109
+ typename CoefficientFunctionSpaceType< 3 >::RangeType tmp2 = evaluateCoefficient< 3 >( x );
110
110
  const auto tmp3 = 1e-10 + tmp2[ 0 ];
111
111
  typename CoefficientFunctionSpaceType< 0 >::RangeType tmp4 = evaluateCoefficient< 0 >( x );
112
112
  const auto tmp5 = 3.141592653589793 * tmp4[ 1 ];
@@ -119,7 +119,7 @@ namespace Integrands_1da925f6548e47811d4ee37ac8afd85ev1_3
119
119
  const auto tmp12 = tmp11[ 0 ] + tmp10;
120
120
  const auto tmp13 = tmp2[ 0 ] * tmp12;
121
121
  const auto tmp14 = tmp13 / tmp3;
122
- typename CoefficientFunctionSpaceType< 3 >::RangeType tmp15 = evaluateCoefficient< 3 >( x );
122
+ typename CoefficientFunctionSpaceType< 4 >::RangeType tmp15 = evaluateCoefficient< 4 >( x );
123
123
  const auto tmp16 = -1 * tmp15[ 0 ];
124
124
  const auto tmp17 = 1 + tmp16;
125
125
  const auto tmp18 = tmp17 * tmp14;
@@ -170,10 +170,10 @@ namespace Integrands_1da925f6548e47811d4ee37ac8afd85ev1_3
170
170
  using std::pow;
171
171
  double tmp0 = constant< 0 >();
172
172
  const auto tmp1 = std::pow( tmp0, 3 );
173
- typename CoefficientFunctionSpaceType< 4 >::RangeType tmp2 = evaluateCoefficient< 4 >( x );
173
+ typename CoefficientFunctionSpaceType< 3 >::RangeType tmp2 = evaluateCoefficient< 3 >( x );
174
174
  const auto tmp3 = 1e-10 + tmp2[ 0 ];
175
175
  const auto tmp4 = tmp2[ 0 ] / tmp3;
176
- typename CoefficientFunctionSpaceType< 3 >::RangeType tmp5 = evaluateCoefficient< 3 >( x );
176
+ typename CoefficientFunctionSpaceType< 4 >::RangeType tmp5 = evaluateCoefficient< 4 >( x );
177
177
  const auto tmp6 = -1 * tmp5[ 0 ];
178
178
  const auto tmp7 = 1 + tmp6;
179
179
  const auto tmp8 = tmp7 * tmp4;
@@ -431,23 +431,23 @@ namespace Integrands_1da925f6548e47811d4ee37ac8afd85ev1_3
431
431
  EntityType entity_;
432
432
  IntersectionType intersection_;
433
433
  ConstantTupleType constants_;
434
- std::tuple< Dune::Fem::ConstLocalFunction< Coeffbndproj >, Dune::Fem::ConstLocalFunction< Coeffextproj >, Dune::Fem::ConstLocalFunction< Coeffsdfprojfull >, Dune::Fem::ConstLocalFunction< Coeffphidomain >, Dune::Fem::ConstLocalFunction< CoeffsdfprojfullA > > coefficients_;
434
+ std::tuple< Dune::Fem::ConstLocalFunction< Coeffbndproj >, Dune::Fem::ConstLocalFunction< Coeffextproj >, Dune::Fem::ConstLocalFunction< Coeffsdfprojfull >, Dune::Fem::ConstLocalFunction< CoeffsdfprojfullA >, Dune::Fem::ConstLocalFunction< Coeffphidomain > > coefficients_;
435
435
  };
436
436
 
437
- } // namespace Integrands_1da925f6548e47811d4ee37ac8afd85ev1_3
437
+ } // namespace Integrands_5e1afa60a15644998389a84306246ea5v1_3
438
438
 
439
- PYBIND11_MODULE( integrands_1da925f6548e47811d4ee37ac8afd85ev1_3_a524c1196983e65de1c06d7d6afdeb44, module )
439
+ PYBIND11_MODULE( integrands_5e1afa60a15644998389a84306246ea5v1_3_a524c1196983e65de1c06d7d6afdeb44, module )
440
440
  {
441
441
  typedef typename Dune::FemPy::GridPart< Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true > > GridPart;
442
- typedef Integrands_1da925f6548e47811d4ee37ac8afd85ev1_3::Integrands< GridPart, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > > > Integrands;
442
+ typedef Integrands_5e1afa60a15644998389a84306246ea5v1_3::Integrands< GridPart, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > > > Integrands;
443
443
  if constexpr( Integrands::gridPartValid )
444
444
  {
445
- auto cls = Dune::Python::insertClass<Integrands>(module,"Integrands",Dune::Python::GenerateTypeName("Integrands_1da925f6548e47811d4ee37ac8afd85ev1_3::Integrands< GridPart, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > > >"), Dune::Python::IncludeFiles({"python/dune/generated/integrands_1da925f6548e47811d4ee37ac8afd85ev1_3_a524c1196983e65de1c06d7d6afdeb44.cc"})).first;
445
+ auto cls = Dune::Python::insertClass<Integrands>(module,"Integrands",Dune::Python::GenerateTypeName("Integrands_5e1afa60a15644998389a84306246ea5v1_3::Integrands< GridPart, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > >, Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > > >"), Dune::Python::IncludeFiles({"python/dune/generated/integrands_5e1afa60a15644998389a84306246ea5v1_3_a524c1196983e65de1c06d7d6afdeb44.cc"})).first;
446
446
  Dune::FemPy::registerIntegrands< Integrands >( module, cls );
447
- cls.def( pybind11::init( [] ( const Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > > &coeffbndproj, const Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > > &coeffextproj, const Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > > &coeffsdfprojfull, const Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > > &coeffphidomain, const Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > > &coeffsdfprojfullA ) { return new Integrands( coeffbndproj, coeffextproj, coeffsdfprojfull, coeffphidomain, coeffsdfprojfullA ); } ), pybind11::keep_alive< 1, 2 >(), pybind11::keep_alive< 1, 3 >(), pybind11::keep_alive< 1, 4 >(), pybind11::keep_alive< 1, 5 >(), pybind11::keep_alive< 1, 6 >() );
447
+ cls.def( pybind11::init( [] ( const Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > > &coeffbndproj, const Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 2 > > &coeffextproj, const Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > > &coeffsdfprojfull, const Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > > &coeffsdfprojfullA, const Dune::FemPy::VirtualizedGridFunction< Dune::FemPy::GridPart<Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true >>, Dune::FieldVector< double, 1 > > &coeffphidomain ) { return new Integrands( coeffbndproj, coeffextproj, coeffsdfprojfull, coeffsdfprojfullA, coeffphidomain ); } ), pybind11::keep_alive< 1, 2 >(), pybind11::keep_alive< 1, 3 >(), pybind11::keep_alive< 1, 4 >(), pybind11::keep_alive< 1, 5 >(), pybind11::keep_alive< 1, 6 >() );
448
448
  cls.def_property( "epsilon", [] ( Integrands &self ) -> Integrands::Conepsilon { return self.conepsilon(); }, [] ( Integrands &self, const Integrands::Conepsilon &v ) { self.conepsilon() = v; } );
449
449
  cls.def_property_readonly( "virtualized", [] ( Integrands& ) -> bool { return true;});
450
450
  cls.def_property_readonly( "hasDirichletBoundary", [] ( Integrands& ) -> bool { return true;});
451
451
  }
452
452
  }
453
- #endif // GuardIntegrands_1da925f6548e47811d4ee37ac8afd85ev1_3
453
+ #endif // GuardIntegrands_5e1afa60a15644998389a84306246ea5v1_3
@@ -0,0 +1,427 @@
1
+ #ifndef GuardIntegrands_ed7208bd651abb351e34c9990e0313bcv1_3
2
+ #define GuardIntegrands_ed7208bd651abb351e34c9990e0313bcv1_3
3
+ #define USING_DUNE_PYTHON 1
4
+ #include <config.h>
5
+ #include <dune/alugrid/dgf.hh>
6
+ #include <dune/alugrid/grid.hh>
7
+ #include <dune/fem/gridpart/adaptiveleafgridpart.hh>
8
+ #include <dune/fem/gridpart/filter/simple.hh>
9
+ #include <dune/fem/gridpart/filteredgridpart.hh>
10
+ #include <dune/fempy/py/gridview.hh>
11
+ #include <dune/python/grid/gridview.hh>
12
+ #include <dune/python/grid/hierarchical.hh>
13
+ #include <cmath>
14
+ #include <tuple>
15
+ #include <dune/python/pybind11/pybind11.h>
16
+ #include <dune/python/pybind11/extensions.h>
17
+ #include <dune/fempy/py/grid/gridpart.hh>
18
+ #include <dune/fempy/geometry/edgelength.hh>
19
+ #include <dune/fempy/py/integrands.hh>
20
+
21
+ namespace Integrands_ed7208bd651abb351e34c9990e0313bcv1_3
22
+ {
23
+
24
+
25
+
26
+
27
+ // Integrands
28
+ // ----------
29
+
30
+ template< class GridPart >
31
+ struct Integrands
32
+ {
33
+ typedef GridPart GridPartType;
34
+ typedef typename GridPartType::GridViewType GridView;
35
+ typedef typename GridView::ctype ctype;
36
+ typedef typename GridPartType::template Codim< 0 >::EntityType EntityType;
37
+ typedef typename GridPartType::IntersectionType IntersectionType;
38
+ typedef typename EntityType::Geometry Geometry;
39
+ typedef typename Geometry::GlobalCoordinate GlobalCoordinateType;
40
+ typedef Dune::Fem::IntersectionSide Side;
41
+ typedef std::tuple<> ConstantTupleType;
42
+ typedef std::tuple<> CoefficientTupleType;
43
+ static constexpr bool gridPartValid = true;
44
+ template< std::size_t i >
45
+ using CoefficientType = std::tuple_element_t< i, CoefficientTupleType >;
46
+ template< std::size_t i >
47
+ using ConstantType = typename std::tuple_element_t< i, ConstantTupleType >::element_type;
48
+
49
+ Integrands ( const Dune::Fem::ParameterReader &parameter = Dune::Fem::Parameter::container() )
50
+ {}
51
+
52
+ bool init ( const EntityType &entity )
53
+ {
54
+ entity_ = entity;
55
+ geometry_.emplace( this->entity().geometry() );
56
+ return true;
57
+ }
58
+
59
+ void unbind ()
60
+ {}
61
+
62
+ bool init ( const IntersectionType &intersection )
63
+ {
64
+ intersection_ = intersection;
65
+ return (intersection.boundary() && init( intersection.inside() ));
66
+ }
67
+ typedef std::tuple< Dune::FieldVector< double, 1 >, Dune::FieldMatrix< double, 1, 2 > > DomainValueType;
68
+ typedef std::tuple< Dune::FieldVector< double, 1 >, Dune::FieldMatrix< double, 1, 2 > > RangeValueType;
69
+ static constexpr bool _nonlinear = false;
70
+
71
+ bool nonlinear () const
72
+ {
73
+ return _nonlinear;
74
+ }
75
+
76
+ template< class Point >
77
+ RangeValueType interior ( const Point &x, const DomainValueType &u ) const
78
+ {
79
+ using std::cosh;
80
+ using std::pow;
81
+ using std::sqrt;
82
+ using std::tanh;
83
+ GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
84
+ const auto tmp1 = tmp0[ 1 ] * tmp0[ 1 ];
85
+ const auto tmp2 = tmp0[ 0 ] * tmp0[ 0 ];
86
+ const auto tmp3 = tmp2 + tmp1;
87
+ const auto tmp4 = 1e-10 + tmp3;
88
+ const auto tmp5 = std::sqrt( tmp4 );
89
+ const auto tmp6 = 2 * tmp5;
90
+ const auto tmp7 = tmp0[ 1 ] + tmp0[ 1 ];
91
+ const auto tmp8 = tmp7 / tmp6;
92
+ const auto tmp9 = -1 * tmp8;
93
+ const auto tmp10 = -1 + tmp5;
94
+ const auto tmp11 = tmp10 * tmp9;
95
+ const auto tmp12 = tmp0[ 1 ] + tmp11;
96
+ const auto tmp13 = tmp12 * tmp12;
97
+ const auto tmp14 = tmp0[ 0 ] + tmp0[ 0 ];
98
+ const auto tmp15 = tmp14 / tmp6;
99
+ const auto tmp16 = -1 * tmp15;
100
+ const auto tmp17 = tmp10 * tmp16;
101
+ const auto tmp18 = tmp0[ 0 ] + tmp17;
102
+ const auto tmp19 = tmp18 * tmp18;
103
+ const auto tmp20 = tmp19 + tmp13;
104
+ const auto tmp21 = 1e-10 + tmp20;
105
+ const auto tmp22 = std::sqrt( tmp21 );
106
+ const auto tmp23 = -1 + tmp22;
107
+ const auto tmp24 = 3 * tmp23;
108
+ const auto tmp25 = tmp24 / 0.225;
109
+ const auto tmp26 = std::tanh( tmp25 );
110
+ const auto tmp27 = -1 * tmp26;
111
+ const auto tmp28 = 1 + tmp27;
112
+ const auto tmp29 = 0.5 * tmp28;
113
+ const auto tmp30 = -1 * tmp29;
114
+ const auto tmp31 = 1 + tmp30;
115
+ const auto tmp32 = tmp31 * tmp29;
116
+ const auto tmp33 = 1e-10 + tmp32;
117
+ const auto tmp34 = 3 * tmp10;
118
+ const auto tmp35 = tmp34 / 0.225;
119
+ const auto tmp36 = 2.0 * tmp35;
120
+ const auto tmp37 = std::cosh( tmp36 );
121
+ const auto tmp38 = 1.0 + tmp37;
122
+ const auto tmp39 = std::cosh( tmp35 );
123
+ const auto tmp40 = 2.0 * tmp39;
124
+ const auto tmp41 = tmp40 / tmp38;
125
+ const auto tmp42 = std::pow( tmp41, 2 );
126
+ const auto tmp43 = 3 * tmp8;
127
+ const auto tmp44 = tmp43 / 0.225;
128
+ const auto tmp45 = tmp44 * tmp42;
129
+ const auto tmp46 = -1 * tmp45;
130
+ const auto tmp47 = 0.5 * tmp46;
131
+ const auto tmp48 = 0.9999999999 * tmp47;
132
+ const auto tmp49 = -1 * tmp48;
133
+ const auto tmp50 = tmp49 * tmp49;
134
+ const auto tmp51 = 3 * tmp15;
135
+ const auto tmp52 = tmp51 / 0.225;
136
+ const auto tmp53 = tmp52 * tmp42;
137
+ const auto tmp54 = -1 * tmp53;
138
+ const auto tmp55 = 0.5 * tmp54;
139
+ const auto tmp56 = 0.9999999999 * tmp55;
140
+ const auto tmp57 = -1 * tmp56;
141
+ const auto tmp58 = tmp57 * tmp57;
142
+ const auto tmp59 = tmp58 + tmp50;
143
+ const auto tmp60 = std::sqrt( tmp59 );
144
+ const auto tmp61 = 10 * tmp18;
145
+ const auto tmp62 = tmp12 * tmp61;
146
+ const auto tmp63 = std::tanh( tmp62 );
147
+ const auto tmp64 = tmp63 / 2;
148
+ const auto tmp65 = -1 * tmp64;
149
+ const auto tmp66 = tmp32 * tmp65;
150
+ const auto tmp67 = tmp66 * tmp60;
151
+ const auto tmp68 = -1 * tmp67;
152
+ const auto tmp69 = tmp68 / tmp33;
153
+ const auto tmp70 = -1 * tmp69;
154
+ const auto tmp71 = -1 * tmp70;
155
+ const auto tmp72 = tmp64 * tmp60;
156
+ const auto tmp73 = -1 * tmp72;
157
+ const auto tmp74 = tmp32 * tmp73;
158
+ const auto tmp75 = tmp74 / tmp33;
159
+ const auto tmp76 = -1 * tmp75;
160
+ const auto tmp77 = std::tanh( tmp35 );
161
+ const auto tmp78 = -1 * tmp77;
162
+ const auto tmp79 = 1 + tmp78;
163
+ const auto tmp80 = 0.5 * tmp79;
164
+ const auto tmp81 = 0.9999999999 * tmp80;
165
+ const auto tmp82 = 1e-10 + tmp81;
166
+ const auto tmp83 = std::get< 0 >( u );
167
+ const auto tmp84 = 0.01 * tmp83[ 0 ];
168
+ const auto tmp85 = -1 * tmp84;
169
+ const auto tmp86 = -1 * (tmp10 <= 0.0 ? 1 : 0.0);
170
+ const auto tmp87 = 1 + tmp86;
171
+ const auto tmp88 = tmp87 * tmp11;
172
+ const auto tmp89 = tmp0[ 1 ] + tmp88;
173
+ const auto tmp90 = tmp89 * tmp89;
174
+ const auto tmp91 = tmp87 * tmp17;
175
+ const auto tmp92 = tmp0[ 0 ] + tmp91;
176
+ const auto tmp93 = tmp92 * tmp92;
177
+ const auto tmp94 = tmp93 + tmp90;
178
+ const auto tmp95 = -1 * tmp94;
179
+ const auto tmp96 = 1 + tmp95;
180
+ const auto tmp97 = 0.1 * tmp96;
181
+ const auto tmp98 = tmp97 + tmp85;
182
+ const auto tmp99 = tmp98 * tmp82;
183
+ const auto tmp100 = tmp99 + tmp76;
184
+ const auto tmp101 = -1 * tmp100;
185
+ const auto tmp102 = tmp101 + tmp71;
186
+ const auto tmp103 = 3 * tmp89;
187
+ const auto tmp104 = tmp83[ 0 ] * tmp103;
188
+ const auto tmp105 = tmp82 * tmp104;
189
+ const auto tmp106 = -1 * tmp105;
190
+ const auto tmp107 = 0.05 * tmp94;
191
+ const auto tmp108 = -1 * tmp107;
192
+ const auto tmp109 = 0.1 + tmp108;
193
+ const auto tmp110 = std::get< 1 >( u );
194
+ const auto tmp111 = (tmp110[ 0 ])[ 0 ] * tmp109;
195
+ const auto tmp112 = tmp82 * tmp111;
196
+ const auto tmp113 = tmp112 + tmp106;
197
+ const auto tmp114 = -1 * tmp92;
198
+ const auto tmp115 = 3 * tmp114;
199
+ const auto tmp116 = tmp83[ 0 ] * tmp115;
200
+ const auto tmp117 = tmp82 * tmp116;
201
+ const auto tmp118 = -1 * tmp117;
202
+ const auto tmp119 = (tmp110[ 0 ])[ 1 ] * tmp109;
203
+ const auto tmp120 = tmp82 * tmp119;
204
+ const auto tmp121 = tmp120 + tmp118;
205
+ return RangeValueType{ { tmp102 }, { { tmp113, tmp121 } } };
206
+ }
207
+
208
+ template< class Point >
209
+ auto linearizedInterior ( const Point &x, const DomainValueType &u ) const
210
+ {
211
+ using std::sqrt;
212
+ using std::tanh;
213
+ GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
214
+ const auto tmp1 = tmp0[ 1 ] * tmp0[ 1 ];
215
+ const auto tmp2 = tmp0[ 0 ] * tmp0[ 0 ];
216
+ const auto tmp3 = tmp2 + tmp1;
217
+ const auto tmp4 = 1e-10 + tmp3;
218
+ const auto tmp5 = std::sqrt( tmp4 );
219
+ const auto tmp6 = -1 + tmp5;
220
+ const auto tmp7 = 3 * tmp6;
221
+ const auto tmp8 = tmp7 / 0.225;
222
+ const auto tmp9 = std::tanh( tmp8 );
223
+ const auto tmp10 = -1 * tmp9;
224
+ const auto tmp11 = 1 + tmp10;
225
+ const auto tmp12 = 0.5 * tmp11;
226
+ const auto tmp13 = 0.9999999999 * tmp12;
227
+ const auto tmp14 = 1e-10 + tmp13;
228
+ const auto tmp15 = -0.01 * tmp14;
229
+ const auto tmp16 = -1 * tmp15;
230
+ const auto tmp17 = 2 * tmp5;
231
+ const auto tmp18 = tmp0[ 1 ] + tmp0[ 1 ];
232
+ const auto tmp19 = tmp18 / tmp17;
233
+ const auto tmp20 = -1 * tmp19;
234
+ const auto tmp21 = tmp6 * tmp20;
235
+ const auto tmp22 = -1 * (tmp6 <= 0.0 ? 1 : 0.0);
236
+ const auto tmp23 = 1 + tmp22;
237
+ const auto tmp24 = tmp23 * tmp21;
238
+ const auto tmp25 = tmp0[ 1 ] + tmp24;
239
+ const auto tmp26 = 3 * tmp25;
240
+ const auto tmp27 = tmp14 * tmp26;
241
+ const auto tmp28 = -1 * tmp27;
242
+ const auto tmp29 = tmp0[ 0 ] + tmp0[ 0 ];
243
+ const auto tmp30 = tmp29 / tmp17;
244
+ const auto tmp31 = -1 * tmp30;
245
+ const auto tmp32 = tmp6 * tmp31;
246
+ const auto tmp33 = tmp23 * tmp32;
247
+ const auto tmp34 = tmp0[ 0 ] + tmp33;
248
+ const auto tmp35 = -1 * tmp34;
249
+ const auto tmp36 = 3 * tmp35;
250
+ const auto tmp37 = tmp14 * tmp36;
251
+ const auto tmp38 = -1 * tmp37;
252
+ const auto tmp39 = tmp25 * tmp25;
253
+ const auto tmp40 = tmp34 * tmp34;
254
+ const auto tmp41 = tmp40 + tmp39;
255
+ const auto tmp42 = 0.05 * tmp41;
256
+ const auto tmp43 = -1 * tmp42;
257
+ const auto tmp44 = 0.1 + tmp43;
258
+ const auto tmp45 = tmp44 * tmp14;
259
+ return [ tmp16, tmp28, tmp38, tmp45 ] ( const DomainValueType &phi ) {
260
+ return RangeValueType{ { tmp16 * (std::get< 0 >( phi ))[ 0 ] }, { { tmp28 * (std::get< 0 >( phi ))[ 0 ] + tmp45 * ((std::get< 1 >( phi ))[ 0 ])[ 0 ], tmp38 * (std::get< 0 >( phi ))[ 0 ] + tmp45 * ((std::get< 1 >( phi ))[ 0 ])[ 1 ] } } };
261
+ };
262
+ }
263
+
264
+ template< class Point >
265
+ RangeValueType boundary ( const Point &x, const DomainValueType &u ) const
266
+ {
267
+ using std::cosh;
268
+ using std::pow;
269
+ using std::sqrt;
270
+ using std::tanh;
271
+ GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
272
+ const auto tmp1 = tmp0[ 1 ] * tmp0[ 1 ];
273
+ const auto tmp2 = tmp0[ 0 ] * tmp0[ 0 ];
274
+ const auto tmp3 = tmp2 + tmp1;
275
+ const auto tmp4 = 1e-10 + tmp3;
276
+ const auto tmp5 = std::sqrt( tmp4 );
277
+ const auto tmp6 = 2 * tmp5;
278
+ const auto tmp7 = tmp0[ 1 ] + tmp0[ 1 ];
279
+ const auto tmp8 = tmp7 / tmp6;
280
+ const auto tmp9 = -1 * tmp8;
281
+ const auto tmp10 = -1 + tmp5;
282
+ const auto tmp11 = tmp10 * tmp9;
283
+ const auto tmp12 = tmp0[ 1 ] + tmp11;
284
+ const auto tmp13 = tmp12 * tmp12;
285
+ const auto tmp14 = tmp0[ 0 ] + tmp0[ 0 ];
286
+ const auto tmp15 = tmp14 / tmp6;
287
+ const auto tmp16 = -1 * tmp15;
288
+ const auto tmp17 = tmp10 * tmp16;
289
+ const auto tmp18 = tmp0[ 0 ] + tmp17;
290
+ const auto tmp19 = tmp18 * tmp18;
291
+ const auto tmp20 = tmp19 + tmp13;
292
+ const auto tmp21 = 1e-10 + tmp20;
293
+ const auto tmp22 = std::sqrt( tmp21 );
294
+ const auto tmp23 = -1 + tmp22;
295
+ const auto tmp24 = 3 * tmp23;
296
+ const auto tmp25 = tmp24 / 0.225;
297
+ const auto tmp26 = std::tanh( tmp25 );
298
+ const auto tmp27 = -1 * tmp26;
299
+ const auto tmp28 = 1 + tmp27;
300
+ const auto tmp29 = 0.5 * tmp28;
301
+ const auto tmp30 = -1 * tmp29;
302
+ const auto tmp31 = 1 + tmp30;
303
+ const auto tmp32 = tmp31 * tmp29;
304
+ const auto tmp33 = 1e-10 + tmp32;
305
+ const auto tmp34 = 3 * tmp10;
306
+ const auto tmp35 = tmp34 / 0.225;
307
+ const auto tmp36 = 2.0 * tmp35;
308
+ const auto tmp37 = std::cosh( tmp36 );
309
+ const auto tmp38 = 1.0 + tmp37;
310
+ const auto tmp39 = std::cosh( tmp35 );
311
+ const auto tmp40 = 2.0 * tmp39;
312
+ const auto tmp41 = tmp40 / tmp38;
313
+ const auto tmp42 = std::pow( tmp41, 2 );
314
+ const auto tmp43 = 3 * tmp8;
315
+ const auto tmp44 = tmp43 / 0.225;
316
+ const auto tmp45 = tmp44 * tmp42;
317
+ const auto tmp46 = -1 * tmp45;
318
+ const auto tmp47 = 0.5 * tmp46;
319
+ const auto tmp48 = 0.9999999999 * tmp47;
320
+ const auto tmp49 = -1 * tmp48;
321
+ const auto tmp50 = tmp49 * tmp49;
322
+ const auto tmp51 = 3 * tmp15;
323
+ const auto tmp52 = tmp51 / 0.225;
324
+ const auto tmp53 = tmp52 * tmp42;
325
+ const auto tmp54 = -1 * tmp53;
326
+ const auto tmp55 = 0.5 * tmp54;
327
+ const auto tmp56 = 0.9999999999 * tmp55;
328
+ const auto tmp57 = -1 * tmp56;
329
+ const auto tmp58 = tmp57 * tmp57;
330
+ const auto tmp59 = tmp58 + tmp50;
331
+ const auto tmp60 = std::sqrt( tmp59 );
332
+ const auto tmp61 = 10 * tmp18;
333
+ const auto tmp62 = tmp12 * tmp61;
334
+ const auto tmp63 = std::tanh( tmp62 );
335
+ const auto tmp64 = tmp63 / 2;
336
+ const auto tmp65 = tmp64 * tmp60;
337
+ const auto tmp66 = -1 * tmp65;
338
+ const auto tmp67 = tmp32 * tmp66;
339
+ const auto tmp68 = tmp67 / tmp33;
340
+ const auto tmp69 = -1 * tmp68;
341
+ const auto tmp70 = -1 * tmp69;
342
+ const auto tmp71 = -1 * tmp64;
343
+ const auto tmp72 = tmp32 * tmp71;
344
+ const auto tmp73 = tmp72 * tmp60;
345
+ const auto tmp74 = -1 * tmp73;
346
+ const auto tmp75 = tmp74 / tmp33;
347
+ const auto tmp76 = -1 * tmp75;
348
+ const auto tmp77 = -1 * tmp76;
349
+ const auto tmp78 = -1 * tmp77;
350
+ const auto tmp79 = tmp78 + tmp70;
351
+ return RangeValueType{ { tmp79 }, { { 0, 0 } } };
352
+ }
353
+
354
+ template< class Point >
355
+ auto linearizedBoundary ( const Point &x, const DomainValueType &u ) const
356
+ {
357
+ return [] ( const DomainValueType &phi ) {
358
+ return RangeValueType{ { 0 }, { { 0, 0 } } };
359
+ };
360
+ }
361
+ typedef Dune::FieldVector< double, 1 > RRangeType;
362
+ typedef Dune::FieldMatrix< double, 1, GridPartType::dimension > RJacobianRangeType;
363
+ typedef Dune::Fem::BoundaryIdProvider< typename GridPartType::GridType > BoundaryIdProviderType;
364
+ typedef std::array<int,1> DirichletComponentType;
365
+
366
+ bool hasDirichletBoundary () const
367
+ {
368
+ return false;
369
+ }
370
+
371
+ bool isDirichletIntersection ( const IntersectionType &intersection, DirichletComponentType &dirichletComponent ) const
372
+ {
373
+ return false;
374
+ }
375
+
376
+ template< class Point >
377
+ void dirichlet ( int bndId, const Point &x, RRangeType &result ) const
378
+ {}
379
+
380
+ template< class Point >
381
+ void dDirichlet ( int bndId, const Point &x, RJacobianRangeType &result ) const
382
+ {}
383
+
384
+ template< std::size_t i >
385
+ const ConstantType< i > &constant () const
386
+ {
387
+ return *std::get< i >( constants_ );
388
+ }
389
+
390
+ template< std::size_t i >
391
+ ConstantType< i > &constant ()
392
+ {
393
+ return *std::get< i >( constants_ );
394
+ }
395
+
396
+ const EntityType &entity () const
397
+ {
398
+ return entity_;
399
+ }
400
+
401
+ const Geometry &geometry () const
402
+ {
403
+ return *geometry_;
404
+ }
405
+ EntityType entity_;
406
+ IntersectionType intersection_;
407
+ std::optional< Geometry > geometry_;
408
+ ConstantTupleType constants_;
409
+ std::tuple< > coefficients_;
410
+ };
411
+
412
+ } // namespace Integrands_ed7208bd651abb351e34c9990e0313bcv1_3
413
+
414
+ PYBIND11_MODULE( integrands_ed7208bd651abb351e34c9990e0313bcv1_3_a524c1196983e65de1c06d7d6afdeb44, module )
415
+ {
416
+ typedef typename Dune::FemPy::GridPart< Dune::Fem::FilteredGridPart< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > >, Dune::Fem::SimpleFilter< Dune::FemPy::GridPart< Dune::Fem::AdaptiveLeafGridPart< Dune::ALUGrid< 2, 2, Dune::simplex > > > >, true > > GridPart;
417
+ typedef Integrands_ed7208bd651abb351e34c9990e0313bcv1_3::Integrands< GridPart > Integrands;
418
+ if constexpr( Integrands::gridPartValid )
419
+ {
420
+ auto cls = Dune::Python::insertClass<Integrands>(module,"Integrands",Dune::Python::GenerateTypeName("Integrands_ed7208bd651abb351e34c9990e0313bcv1_3::Integrands< GridPart >"), Dune::Python::IncludeFiles({"python/dune/generated/integrands_ed7208bd651abb351e34c9990e0313bcv1_3_a524c1196983e65de1c06d7d6afdeb44.cc"})).first;
421
+ Dune::FemPy::registerIntegrands< Integrands >( module, cls );
422
+ cls.def( pybind11::init( [] () { return new Integrands(); } ) );
423
+ cls.def_property_readonly( "virtualized", [] ( Integrands& ) -> bool { return true;});
424
+ cls.def_property_readonly( "hasDirichletBoundary", [] ( Integrands& ) -> bool { return false;});
425
+ }
426
+ }
427
+ #endif // GuardIntegrands_ed7208bd651abb351e34c9990e0313bcv1_3