ddfem 1.0.6__py3-none-any.whl → 1.0.7__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 (68) hide show
  1. ddfem/__main__.py +21 -2
  2. ddfem/data/{integrands_cf38a832d97016edac4179e31ea45a48v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/integrands_35d2bd9aedbe0c70a7d3804f461aa3a2v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +21 -21
  3. ddfem/data/{integrands_1da925f6548e47811d4ee37ac8afd85ev1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/integrands_6da979bc28230b7c9b9703e3f1014016v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +19 -19
  4. ddfem/data/{integrands_5d65834d43b1dbae0ceafbcc9ec60542v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/integrands_8d076606b6431bd52818b74371b326fev1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +25 -25
  5. ddfem/data/{integrands_472696f050a50e3f5017ab5ecdab564bv1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/integrands_c7ee79ef352597693466ebc895f89b17v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +21 -21
  6. ddfem/data/{localfunction_33933b99fbea8227fedf6cfb180ea878_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_82d7cb9338bf118426fac2abf41a91a4_a524c1196983e65de1c06d7d6afdeb44.cc} +22 -22
  7. ddfem/data/{view_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/view_a524c1196983e65de1c06d7d6afdeb44.cc} +1 -1
  8. ddfem/data/{view_af122c1df944c95cd395ec0f91d0f970.cc → 2.11.dev20250326/view_af122c1df944c95cd395ec0f91d0f970.cc} +1 -1
  9. ddfem/data/generate.py +18 -4
  10. {ddfem-1.0.6.dist-info → ddfem-1.0.7.dist-info}/METADATA +4 -2
  11. ddfem-1.0.7.dist-info/RECORD +94 -0
  12. ddfem/data/integrands_00ee9b3b89e4e44212e5b7ad7948a24ev1_3_a524c1196983e65de1c06d7d6afdeb44.cc +0 -587
  13. ddfem/data/integrands_3a7c822d5ac1692781ee4bcf2964fce7v1_3_a524c1196983e65de1c06d7d6afdeb44.cc +0 -409
  14. ddfem/data/integrands_9fbeb56ff6a7df9b8535d767ca7725d6v1_3_a524c1196983e65de1c06d7d6afdeb44.cc +0 -588
  15. ddfem/data/localfunction_22e797a8f3e8c322f33c41e07bd15165_a524c1196983e65de1c06d7d6afdeb44.cc +0 -1445
  16. ddfem/data/localfunction_32613626342183eafa360dc1f0f18924_a524c1196983e65de1c06d7d6afdeb44.cc +0 -1425
  17. ddfem/data/localfunction_762aa49bc5a47ad3d8d8bbde36b42ee5_a524c1196983e65de1c06d7d6afdeb44.cc +0 -723
  18. ddfem/data/localfunction_b20910b6c8d57cb5e6a7ff4b89b91618_a524c1196983e65de1c06d7d6afdeb44.cc +0 -437
  19. ddfem/data/localfunction_dd1fb4bd60f2d8b3a062dbbdaedb9fee_a524c1196983e65de1c06d7d6afdeb44.cc +0 -869
  20. ddfem/data/localfunction_e6b6d8d3826590442cc40f3834124254_a524c1196983e65de1c06d7d6afdeb44.cc +0 -553
  21. ddfem-1.0.6.dist-info/RECORD +0 -103
  22. /ddfem/data/{adapt_010e1455a389aa01992af42c0a3f4b14.cc → 2.11.dev20250326/adapt_010e1455a389aa01992af42c0a3f4b14.cc} +0 -0
  23. /ddfem/data/{femscheme_f2a3cb32a864b08c0236366e732fb908.cc → 2.11.dev20250326/femscheme_f2a3cb32a864b08c0236366e732fb908.cc} +0 -0
  24. /ddfem/data/{femspace_4ff9049b6f297245e5d33296d14cd684_d5b136dbe3c5077b69c99b8c322eb563.cc → 2.11.dev20250326/femspace_4ff9049b6f297245e5d33296d14cd684_d5b136dbe3c5077b69c99b8c322eb563.cc} +0 -0
  25. /ddfem/data/{hierarchicalgrid_d827e80243feae36e8b9006bb24207e7.cc → 2.11.dev20250326/hierarchicalgrid_d827e80243feae36e8b9006bb24207e7.cc} +0 -0
  26. /ddfem/data/{indexset_e9c0cdc96a4fc702a0969c29910954e6.cc → 2.11.dev20250326/indexset_e9c0cdc96a4fc702a0969c29910954e6.cc} +0 -0
  27. /ddfem/data/{integrands_008eefa148b772fa3192dd3c1728c140v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/integrands_008eefa148b772fa3192dd3c1728c140v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  28. /ddfem/data/{integrands_2339be3c67df1d67b18125c34ced69c2v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/integrands_2339be3c67df1d67b18125c34ced69c2v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  29. /ddfem/data/{integrands_3bde0abfafcf45a3cff4d1029568ab5cv1_3_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/integrands_3bde0abfafcf45a3cff4d1029568ab5cv1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  30. /ddfem/data/{localfunction_00f2e5593eeb23f01906255d67244f6e_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_00f2e5593eeb23f01906255d67244f6e_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  31. /ddfem/data/{localfunction_0cb4ca9e24e2891510640b0737aaab21_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_0cb4ca9e24e2891510640b0737aaab21_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  32. /ddfem/data/{localfunction_0f7b2106478c5d2af781b1f377a180d2_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_0f7b2106478c5d2af781b1f377a180d2_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  33. /ddfem/data/{localfunction_10ad0a2d88c74db5f4bf5f81e138974f_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_10ad0a2d88c74db5f4bf5f81e138974f_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  34. /ddfem/data/{localfunction_191355e6250b2d2e260d96f519ad9976_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_191355e6250b2d2e260d96f519ad9976_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  35. /ddfem/data/{localfunction_1d13146d4bff10e178aba773fe2a9f1d_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_1d13146d4bff10e178aba773fe2a9f1d_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  36. /ddfem/data/{localfunction_1d27a90a52b9053192c9cc902283f79b_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_1d27a90a52b9053192c9cc902283f79b_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  37. /ddfem/data/{localfunction_2021505441469e99dd3c9b164e083239_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_2021505441469e99dd3c9b164e083239_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  38. /ddfem/data/{localfunction_228c55d163ca194a905826bcc20fcbc0_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_228c55d163ca194a905826bcc20fcbc0_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  39. /ddfem/data/{localfunction_2a97db5a6a479d02138a836cb0890cf2_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_2a97db5a6a479d02138a836cb0890cf2_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  40. /ddfem/data/{localfunction_3e323e81c52891c0ecb656eac273e52f_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_3e323e81c52891c0ecb656eac273e52f_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  41. /ddfem/data/{localfunction_42ff56710f3bd510798ecabb32a6cbf0_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_42ff56710f3bd510798ecabb32a6cbf0_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  42. /ddfem/data/{localfunction_42ff56710f3bd510798ecabb32a6cbf0_af122c1df944c95cd395ec0f91d0f970.cc → 2.11.dev20250326/localfunction_42ff56710f3bd510798ecabb32a6cbf0_af122c1df944c95cd395ec0f91d0f970.cc} +0 -0
  43. /ddfem/data/{localfunction_4484607e3f9bd9999dbd7bb9d595a7b2_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_4484607e3f9bd9999dbd7bb9d595a7b2_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  44. /ddfem/data/{localfunction_6363af791dde11d699a9a3d876cc5d9a_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_6363af791dde11d699a9a3d876cc5d9a_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  45. /ddfem/data/{localfunction_65bda5736a84d4aa0ef2d48ebcc90ed5_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_65bda5736a84d4aa0ef2d48ebcc90ed5_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  46. /ddfem/data/{localfunction_7d81d496538f240d504e5597484ee746_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_7d81d496538f240d504e5597484ee746_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  47. /ddfem/data/{localfunction_83d9e6dd70d1c31c973224e210cc36b4_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_83d9e6dd70d1c31c973224e210cc36b4_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  48. /ddfem/data/{localfunction_86a0670f34bf2ac8155423a1c1bc2e75_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_86a0670f34bf2ac8155423a1c1bc2e75_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  49. /ddfem/data/{localfunction_a46a988b5d8571e80fd401a36d7341b7_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_a46a988b5d8571e80fd401a36d7341b7_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  50. /ddfem/data/{localfunction_a854465b265a1a51dacb4f71f7eeb06b_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_a854465b265a1a51dacb4f71f7eeb06b_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  51. /ddfem/data/{localfunction_a8c726f728cd35d137188b33301aeef1_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_a8c726f728cd35d137188b33301aeef1_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  52. /ddfem/data/{localfunction_a9bb07439605d560b583608f20441342_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_a9bb07439605d560b583608f20441342_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  53. /ddfem/data/{localfunction_ae8173bdb67b8ea50ce75c3912841100_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_ae8173bdb67b8ea50ce75c3912841100_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  54. /ddfem/data/{localfunction_aeb3d963412cdc65630e0a4c3c0dde0f_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_aeb3d963412cdc65630e0a4c3c0dde0f_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  55. /ddfem/data/{localfunction_b8239bf849ec7c1903f627833e6dac5a_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_b8239bf849ec7c1903f627833e6dac5a_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  56. /ddfem/data/{localfunction_bcafb581216501f273e23c0e26cd57af_af122c1df944c95cd395ec0f91d0f970.cc → 2.11.dev20250326/localfunction_bcafb581216501f273e23c0e26cd57af_af122c1df944c95cd395ec0f91d0f970.cc} +0 -0
  57. /ddfem/data/{localfunction_bdfb7ddf42a423f7d0791458634d4b8f_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_bdfb7ddf42a423f7d0791458634d4b8f_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  58. /ddfem/data/{localfunction_d0f33c2dc1ae0e619d85a7621c8e83a6_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_d0f33c2dc1ae0e619d85a7621c8e83a6_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  59. /ddfem/data/{localfunction_d75993d7ae5919d23117b153e900840d_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_d75993d7ae5919d23117b153e900840d_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  60. /ddfem/data/{localfunction_e85b93fe9b8fcd40ee82782fc600b65b_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_e85b93fe9b8fcd40ee82782fc600b65b_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  61. /ddfem/data/{localfunction_f4b1d42cbb447375f39ed834570cd3f0_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_f4b1d42cbb447375f39ed834570cd3f0_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  62. /ddfem/data/{localfunction_f626cd43dc8558135fe0b32cde016644_a524c1196983e65de1c06d7d6afdeb44.cc → 2.11.dev20250326/localfunction_f626cd43dc8558135fe0b32cde016644_a524c1196983e65de1c06d7d6afdeb44.cc} +0 -0
  63. /ddfem/data/{referenceelements_0fff57b283123cc055345ec95574c857.cc → 2.11.dev20250326/referenceelements_0fff57b283123cc055345ec95574c857.cc} +0 -0
  64. /ddfem/data/{referenceelements_de274310a0055100b832a0e8892b0258.cc → 2.11.dev20250326/referenceelements_de274310a0055100b832a0e8892b0258.cc} +0 -0
  65. /ddfem/data/{referenceelements_f4457f35395151d83a965d4cf5fce70d.cc → 2.11.dev20250326/referenceelements_f4457f35395151d83a965d4cf5fce70d.cc} +0 -0
  66. {ddfem-1.0.6.dist-info → ddfem-1.0.7.dist-info}/WHEEL +0 -0
  67. {ddfem-1.0.6.dist-info → ddfem-1.0.7.dist-info}/licenses/LICENSE +0 -0
  68. {ddfem-1.0.6.dist-info → ddfem-1.0.7.dist-info}/top_level.txt +0 -0
@@ -1,409 +0,0 @@
1
- #ifndef GuardIntegrands_3a7c822d5ac1692781ee4bcf2964fce7v1_3
2
- #define GuardIntegrands_3a7c822d5ac1692781ee4bcf2964fce7v1_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_3a7c822d5ac1692781ee4bcf2964fce7v1_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::sin;
80
- using std::sqrt;
81
- using std::tanh;
82
- GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
83
- const auto tmp1 = tmp0[ 1 ] * tmp0[ 1 ];
84
- const auto tmp2 = tmp0[ 0 ] * tmp0[ 0 ];
85
- const auto tmp3 = tmp2 + tmp1;
86
- const auto tmp4 = std::sqrt( tmp3 );
87
- const auto tmp5 = 2 * tmp4;
88
- const auto tmp6 = tmp0[ 1 ] + tmp0[ 1 ];
89
- const auto tmp7 = tmp6 / tmp5;
90
- const auto tmp8 = -1 * tmp7;
91
- const auto tmp9 = -1 + tmp4;
92
- const auto tmp10 = tmp9 * tmp8;
93
- const auto tmp11 = tmp0[ 1 ] + tmp10;
94
- const auto tmp12 = 3.141592653589793 * tmp11;
95
- const auto tmp13 = std::sin( tmp12 );
96
- const auto tmp14 = tmp0[ 0 ] + tmp0[ 0 ];
97
- const auto tmp15 = tmp14 / tmp5;
98
- const auto tmp16 = -1 * tmp15;
99
- const auto tmp17 = tmp9 * tmp16;
100
- const auto tmp18 = tmp0[ 0 ] + tmp17;
101
- const auto tmp19 = 3.141592653589793 * tmp18;
102
- const auto tmp20 = std::sin( tmp19 );
103
- const auto tmp21 = tmp20 * tmp13;
104
- const auto tmp22 = -1 * tmp21;
105
- const auto tmp23 = std::get< 0 >( u );
106
- const auto tmp24 = tmp23[ 0 ] + tmp22;
107
- const auto tmp25 = -3.1 * tmp24;
108
- const auto tmp26 = 3 * tmp9;
109
- const auto tmp27 = tmp26 / 0.225;
110
- const auto tmp28 = std::tanh( tmp27 );
111
- const auto tmp29 = -1 * tmp28;
112
- const auto tmp30 = 1 + tmp29;
113
- const auto tmp31 = 0.5 * tmp30;
114
- const auto tmp32 = -1 * tmp31;
115
- const auto tmp33 = 1 + tmp32;
116
- const auto tmp34 = tmp33 * tmp25;
117
- const auto tmp35 = tmp34 / 0.011390625000000001;
118
- const auto tmp36 = 0.01 * tmp23[ 0 ];
119
- const auto tmp37 = -1 * tmp36;
120
- const auto tmp38 = -1 * (tmp9 <= 0.0 ? 1 : 0.0);
121
- const auto tmp39 = 1 + tmp38;
122
- const auto tmp40 = tmp39 * tmp10;
123
- const auto tmp41 = tmp0[ 1 ] + tmp40;
124
- const auto tmp42 = tmp41 * tmp41;
125
- const auto tmp43 = tmp39 * tmp17;
126
- const auto tmp44 = tmp0[ 0 ] + tmp43;
127
- const auto tmp45 = tmp44 * tmp44;
128
- const auto tmp46 = tmp45 + tmp42;
129
- const auto tmp47 = -1 * tmp46;
130
- const auto tmp48 = 1 + tmp47;
131
- const auto tmp49 = 0.1 * tmp48;
132
- const auto tmp50 = tmp49 + tmp37;
133
- const auto tmp51 = tmp50 * tmp31;
134
- const auto tmp52 = tmp51 + tmp35;
135
- const auto tmp53 = -1 * tmp52;
136
- const auto tmp54 = 3 * tmp41;
137
- const auto tmp55 = tmp23[ 0 ] * tmp54;
138
- const auto tmp56 = tmp31 * tmp55;
139
- const auto tmp57 = -1 * tmp56;
140
- const auto tmp58 = 0.05 * tmp46;
141
- const auto tmp59 = -1 * tmp58;
142
- const auto tmp60 = 0.1 + tmp59;
143
- const auto tmp61 = tmp60 * tmp31;
144
- const auto tmp62 = std::get< 1 >( u );
145
- const auto tmp63 = (tmp62[ 0 ])[ 0 ] * tmp61;
146
- const auto tmp64 = tmp63 + tmp57;
147
- const auto tmp65 = -1 * tmp44;
148
- const auto tmp66 = 3 * tmp65;
149
- const auto tmp67 = tmp23[ 0 ] * tmp66;
150
- const auto tmp68 = tmp31 * tmp67;
151
- const auto tmp69 = -1 * tmp68;
152
- const auto tmp70 = (tmp62[ 0 ])[ 1 ] * tmp61;
153
- const auto tmp71 = tmp70 + tmp69;
154
- return RangeValueType{ { tmp53 }, { { tmp64, tmp71 } } };
155
- }
156
-
157
- template< class Point >
158
- auto linearizedInterior ( const Point &x, const DomainValueType &u ) const
159
- {
160
- using std::sqrt;
161
- using std::tanh;
162
- GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
163
- const auto tmp1 = tmp0[ 1 ] * tmp0[ 1 ];
164
- const auto tmp2 = tmp0[ 0 ] * tmp0[ 0 ];
165
- const auto tmp3 = tmp2 + tmp1;
166
- const auto tmp4 = std::sqrt( tmp3 );
167
- const auto tmp5 = -1 + tmp4;
168
- const auto tmp6 = 3 * tmp5;
169
- const auto tmp7 = tmp6 / 0.225;
170
- const auto tmp8 = std::tanh( tmp7 );
171
- const auto tmp9 = -1 * tmp8;
172
- const auto tmp10 = 1 + tmp9;
173
- const auto tmp11 = 0.5 * tmp10;
174
- const auto tmp12 = -1 * tmp11;
175
- const auto tmp13 = 1 + tmp12;
176
- const auto tmp14 = -3.1 * tmp13;
177
- const auto tmp15 = tmp14 / 0.011390625000000001;
178
- const auto tmp16 = -0.01 * tmp11;
179
- const auto tmp17 = tmp16 + tmp15;
180
- const auto tmp18 = -1 * tmp17;
181
- const auto tmp19 = 2 * tmp4;
182
- const auto tmp20 = tmp0[ 1 ] + tmp0[ 1 ];
183
- const auto tmp21 = tmp20 / tmp19;
184
- const auto tmp22 = -1 * tmp21;
185
- const auto tmp23 = tmp5 * tmp22;
186
- const auto tmp24 = -1 * (tmp5 <= 0.0 ? 1 : 0.0);
187
- const auto tmp25 = 1 + tmp24;
188
- const auto tmp26 = tmp25 * tmp23;
189
- const auto tmp27 = tmp0[ 1 ] + tmp26;
190
- const auto tmp28 = 3 * tmp27;
191
- const auto tmp29 = tmp28 * tmp11;
192
- const auto tmp30 = -1 * tmp29;
193
- const auto tmp31 = tmp0[ 0 ] + tmp0[ 0 ];
194
- const auto tmp32 = tmp31 / tmp19;
195
- const auto tmp33 = -1 * tmp32;
196
- const auto tmp34 = tmp5 * tmp33;
197
- const auto tmp35 = tmp25 * tmp34;
198
- const auto tmp36 = tmp0[ 0 ] + tmp35;
199
- const auto tmp37 = -1 * tmp36;
200
- const auto tmp38 = 3 * tmp37;
201
- const auto tmp39 = tmp11 * tmp38;
202
- const auto tmp40 = -1 * tmp39;
203
- const auto tmp41 = tmp27 * tmp27;
204
- const auto tmp42 = tmp36 * tmp36;
205
- const auto tmp43 = tmp42 + tmp41;
206
- const auto tmp44 = 0.05 * tmp43;
207
- const auto tmp45 = -1 * tmp44;
208
- const auto tmp46 = 0.1 + tmp45;
209
- const auto tmp47 = tmp46 * tmp11;
210
- return [ tmp18, tmp30, tmp40, tmp47 ] ( const DomainValueType &phi ) {
211
- return RangeValueType{ { tmp18 * (std::get< 0 >( phi ))[ 0 ] }, { { tmp30 * (std::get< 0 >( phi ))[ 0 ] + tmp47 * ((std::get< 1 >( phi ))[ 0 ])[ 0 ], tmp40 * (std::get< 0 >( phi ))[ 0 ] + tmp47 * ((std::get< 1 >( phi ))[ 0 ])[ 1 ] } } };
212
- };
213
- }
214
- typedef Dune::FieldVector< double, 1 > RRangeType;
215
- typedef Dune::FieldMatrix< double, 1, GridPartType::dimension > RJacobianRangeType;
216
- typedef Dune::Fem::BoundaryIdProvider< typename GridPartType::GridType > BoundaryIdProviderType;
217
- typedef std::array<int,1> DirichletComponentType;
218
-
219
- bool hasDirichletBoundary () const
220
- {
221
- return true;
222
- }
223
-
224
- bool isDirichletIntersection ( const IntersectionType &intersection, DirichletComponentType &dirichletComponent ) const
225
- {
226
- const int bndId = BoundaryIdProviderType::boundaryId( intersection );
227
- {
228
- std::fill( dirichletComponent.begin(), dirichletComponent.end(), bndId );
229
- }
230
- switch( bndId )
231
- {
232
- default:
233
- {
234
- {
235
- std::fill( dirichletComponent.begin(), dirichletComponent.end(), 1 );
236
- return true;
237
- }
238
- return false;
239
- }
240
- }
241
- }
242
-
243
- template< class Point >
244
- void dirichlet ( int bndId, const Point &x, RRangeType &result ) const
245
- {
246
- switch( bndId )
247
- {
248
- default:
249
- {
250
- using std::sin;
251
- using std::sqrt;
252
- auto tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
253
- const auto tmp1 = tmp0[ 1 ] * tmp0[ 1 ];
254
- const auto tmp2 = tmp0[ 0 ] * tmp0[ 0 ];
255
- const auto tmp3 = tmp2 + tmp1;
256
- const auto tmp4 = std::sqrt( tmp3 );
257
- const auto tmp5 = 2 * tmp4;
258
- const auto tmp6 = tmp0[ 1 ] + tmp0[ 1 ];
259
- const auto tmp7 = tmp6 / tmp5;
260
- const auto tmp8 = -1 * tmp7;
261
- const auto tmp9 = -1 + tmp4;
262
- const auto tmp10 = tmp9 * tmp8;
263
- const auto tmp11 = tmp0[ 1 ] + tmp10;
264
- const auto tmp12 = 3.141592653589793 * tmp11;
265
- const auto tmp13 = std::sin( tmp12 );
266
- const auto tmp14 = tmp0[ 0 ] + tmp0[ 0 ];
267
- const auto tmp15 = tmp14 / tmp5;
268
- const auto tmp16 = -1 * tmp15;
269
- const auto tmp17 = tmp9 * tmp16;
270
- const auto tmp18 = tmp0[ 0 ] + tmp17;
271
- const auto tmp19 = 3.141592653589793 * tmp18;
272
- const auto tmp20 = std::sin( tmp19 );
273
- const auto tmp21 = tmp20 * tmp13;
274
- result[ 0 ] = tmp21;
275
- }
276
- }
277
- }
278
-
279
- template< class Point >
280
- void dDirichlet ( int bndId, const Point &x, RJacobianRangeType &result ) const
281
- {
282
- switch( bndId )
283
- {
284
- default:
285
- {
286
- using std::cos;
287
- using std::sin;
288
- using std::sqrt;
289
- auto tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
290
- const auto tmp1 = tmp0[ 1 ] * tmp0[ 1 ];
291
- const auto tmp2 = tmp0[ 0 ] * tmp0[ 0 ];
292
- const auto tmp3 = tmp2 + tmp1;
293
- const auto tmp4 = std::sqrt( tmp3 );
294
- const auto tmp5 = 2 * tmp4;
295
- const auto tmp6 = tmp0[ 1 ] + tmp0[ 1 ];
296
- const auto tmp7 = tmp6 / tmp5;
297
- const auto tmp8 = -1 * tmp7;
298
- const auto tmp9 = -1 + tmp4;
299
- const auto tmp10 = tmp9 * tmp8;
300
- const auto tmp11 = tmp0[ 1 ] + tmp10;
301
- const auto tmp12 = 3.141592653589793 * tmp11;
302
- const auto tmp13 = std::sin( tmp12 );
303
- const auto tmp14 = tmp0[ 0 ] + tmp0[ 0 ];
304
- const auto tmp15 = tmp14 / tmp5;
305
- const auto tmp16 = -1 * tmp15;
306
- const auto tmp17 = tmp9 * tmp16;
307
- const auto tmp18 = tmp0[ 0 ] + tmp17;
308
- const auto tmp19 = 3.141592653589793 * tmp18;
309
- const auto tmp20 = std::cos( tmp19 );
310
- const auto tmp21 = tmp16 * tmp15;
311
- const auto tmp22 = 2 * tmp15;
312
- const auto tmp23 = tmp22 * tmp15;
313
- const auto tmp24 = -1 * tmp23;
314
- const auto tmp25 = 2 + tmp24;
315
- const auto tmp26 = tmp25 / tmp5;
316
- const auto tmp27 = -1 * tmp26;
317
- const auto tmp28 = tmp9 * tmp27;
318
- const auto tmp29 = tmp28 + tmp21;
319
- const auto tmp30 = 1 + tmp29;
320
- const auto tmp31 = 3.141592653589793 * tmp30;
321
- const auto tmp32 = tmp31 * tmp20;
322
- const auto tmp33 = tmp32 * tmp13;
323
- const auto tmp34 = std::sin( tmp19 );
324
- const auto tmp35 = std::cos( tmp12 );
325
- const auto tmp36 = tmp8 * tmp15;
326
- const auto tmp37 = tmp22 * tmp7;
327
- const auto tmp38 = -1 * tmp37;
328
- const auto tmp39 = tmp38 / tmp5;
329
- const auto tmp40 = -1 * tmp39;
330
- const auto tmp41 = tmp9 * tmp40;
331
- const auto tmp42 = tmp41 + tmp36;
332
- const auto tmp43 = 3.141592653589793 * tmp42;
333
- const auto tmp44 = tmp43 * tmp35;
334
- const auto tmp45 = tmp44 * tmp34;
335
- const auto tmp46 = tmp45 + tmp33;
336
- const auto tmp47 = tmp16 * tmp7;
337
- const auto tmp48 = 2 * tmp7;
338
- const auto tmp49 = tmp48 * tmp15;
339
- const auto tmp50 = -1 * tmp49;
340
- const auto tmp51 = tmp50 / tmp5;
341
- const auto tmp52 = -1 * tmp51;
342
- const auto tmp53 = tmp9 * tmp52;
343
- const auto tmp54 = tmp53 + tmp47;
344
- const auto tmp55 = 3.141592653589793 * tmp54;
345
- const auto tmp56 = tmp55 * tmp20;
346
- const auto tmp57 = tmp56 * tmp13;
347
- const auto tmp58 = tmp8 * tmp7;
348
- const auto tmp59 = tmp48 * tmp7;
349
- const auto tmp60 = -1 * tmp59;
350
- const auto tmp61 = 2 + tmp60;
351
- const auto tmp62 = tmp61 / tmp5;
352
- const auto tmp63 = -1 * tmp62;
353
- const auto tmp64 = tmp9 * tmp63;
354
- const auto tmp65 = tmp64 + tmp58;
355
- const auto tmp66 = 1 + tmp65;
356
- const auto tmp67 = 3.141592653589793 * tmp66;
357
- const auto tmp68 = tmp67 * tmp35;
358
- const auto tmp69 = tmp68 * tmp34;
359
- const auto tmp70 = tmp69 + tmp57;
360
- (result[ 0 ])[ 0 ] = tmp46;
361
- (result[ 0 ])[ 1 ] = tmp70;
362
- }
363
- }
364
- }
365
-
366
- template< std::size_t i >
367
- const ConstantType< i > &constant () const
368
- {
369
- return *std::get< i >( constants_ );
370
- }
371
-
372
- template< std::size_t i >
373
- ConstantType< i > &constant ()
374
- {
375
- return *std::get< i >( constants_ );
376
- }
377
-
378
- const EntityType &entity () const
379
- {
380
- return entity_;
381
- }
382
-
383
- const Geometry &geometry () const
384
- {
385
- return *geometry_;
386
- }
387
- EntityType entity_;
388
- IntersectionType intersection_;
389
- std::optional< Geometry > geometry_;
390
- ConstantTupleType constants_;
391
- std::tuple< > coefficients_;
392
- };
393
-
394
- } // namespace Integrands_3a7c822d5ac1692781ee4bcf2964fce7v1_3
395
-
396
- PYBIND11_MODULE( integrands_3a7c822d5ac1692781ee4bcf2964fce7v1_3_a524c1196983e65de1c06d7d6afdeb44, module )
397
- {
398
- 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;
399
- typedef Integrands_3a7c822d5ac1692781ee4bcf2964fce7v1_3::Integrands< GridPart > Integrands;
400
- if constexpr( Integrands::gridPartValid )
401
- {
402
- auto cls = Dune::Python::insertClass<Integrands>(module,"Integrands",Dune::Python::GenerateTypeName("Integrands_3a7c822d5ac1692781ee4bcf2964fce7v1_3::Integrands< GridPart >"), Dune::Python::IncludeFiles({"python/dune/generated/integrands_3a7c822d5ac1692781ee4bcf2964fce7v1_3_a524c1196983e65de1c06d7d6afdeb44.cc"})).first;
403
- Dune::FemPy::registerIntegrands< Integrands >( module, cls );
404
- cls.def( pybind11::init( [] () { return new Integrands(); } ) );
405
- cls.def_property_readonly( "virtualized", [] ( Integrands& ) -> bool { return true;});
406
- cls.def_property_readonly( "hasDirichletBoundary", [] ( Integrands& ) -> bool { return true;});
407
- }
408
- }
409
- #endif // GuardIntegrands_3a7c822d5ac1692781ee4bcf2964fce7v1_3