ddfem 1.0.9__py3-none-any.whl → 1.0.11__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 (89) hide show
  1. ddfem/__init__.py +10 -6
  2. ddfem/__main__.py +12 -13
  3. ddfem/boundary.py +2 -2
  4. ddfem/data/2.11.dev20250709/extra.modules +14 -0
  5. ddfem/data/2.11.dev20250709/femscheme_0bb54cd4f1cd1df2477f5f59393c6a2e.cc +43 -0
  6. ddfem/data/2.11.dev20250709/femscheme_5c9e2700386c07226eb4db155fa5ef14.cc +43 -0
  7. ddfem/data/2.11.dev20250709/femscheme_765ef00d995a939c34bdc0d0cc4847ca.cc +43 -0
  8. ddfem/data/2.11.dev20250709/femspace_11b3436cb033df683615c50d5d4239bd_f14dd0b3b474c0cd816334330f55ad72.cc +45 -0
  9. ddfem/data/2.11.dev20250709/femspace_f4f043307753c8e74af23c94c28a3b0d_438586e783f51d84a82e82b0d8daceea.cc +45 -0
  10. ddfem/data/2.11.dev20250709/{integrands_3bde0abfafcf45a3cff4d1029568ab5cv1_3_a524c1196983e65de1c06d7d6afdeb44.cc → integrands_0003e4cbb961fd653fe295d2c4fa50a7v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +367 -14
  11. ddfem/data/2.11.dev20250709/{integrands_f3ca00a2ef95c9a48de9ec1b807b1b30v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → integrands_0fa4a1c37449cf574971977e10cf682av1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +8 -8
  12. ddfem/data/2.11.dev20250709/{integrands_2e5e6f48655bd358419554a0857f697bv1_3_a524c1196983e65de1c06d7d6afdeb44.cc → integrands_29b696aa653181a57d036f771efa8be9v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +8 -8
  13. ddfem/data/2.11.dev20250709/{integrands_5e1afa60a15644998389a84306246ea5v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → integrands_536f9ba0ea4ecd1f7d4e2bc43ef29d08v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +8 -8
  14. ddfem/data/2.11.dev20250709/{integrands_008eefa148b772fa3192dd3c1728c140v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → integrands_5907ab5c70328c21dd308abf09e529aev1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +8 -8
  15. ddfem/data/2.11.dev20250709/{integrands_563572f4cb20b041e8198ba7d5f88584v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → integrands_68eba4e963a61031a52da3365f515585v1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +8 -8
  16. ddfem/data/2.11.dev20250709/integrands_83927be37e79b291517b827b9ddc1983v1_3_a524c1196983e65de1c06d7d6afdeb44.cc +533 -0
  17. ddfem/data/2.11.dev20250709/integrands_8ed2f23c088e3a3d82a3259b663796c7v1_3_a524c1196983e65de1c06d7d6afdeb44.cc +533 -0
  18. ddfem/data/2.11.dev20250709/integrands_af3bbe7d629df162ef8c570e1503bf62v1_3_a524c1196983e65de1c06d7d6afdeb44.cc +762 -0
  19. ddfem/data/2.11.dev20250709/{integrands_2339be3c67df1d67b18125c34ced69c2v1_3_a524c1196983e65de1c06d7d6afdeb44.cc → integrands_bf510277401791ad5e30831b49a8ed7cv1_3_a524c1196983e65de1c06d7d6afdeb44.cc} +25 -14
  20. ddfem/data/2.11.dev20250709/integrands_d0634430f14d3432dae186e57ec5aecav1_3_a524c1196983e65de1c06d7d6afdeb44.cc +587 -0
  21. ddfem/data/2.11.dev20250709/intro.modules +34 -100
  22. ddfem/data/2.11.dev20250709/{localfunction_10ad0a2d88c74db5f4bf5f81e138974f_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_0cb4ca9e24e2891510640b0737aaab21_a524c1196983e65de1c06d7d6afdeb44.cc} +64 -29
  23. ddfem/data/2.11.dev20250709/localfunction_0f7b2106478c5d2af781b1f377a180d2_a524c1196983e65de1c06d7d6afdeb44.cc +393 -0
  24. ddfem/data/2.11.dev20250709/localfunction_10f9d7a54f79c12d6ca923b9ee56b80d_a524c1196983e65de1c06d7d6afdeb44.cc +324 -0
  25. ddfem/data/2.11.dev20250709/localfunction_10f9d7a54f79c12d6ca923b9ee56b80d_af122c1df944c95cd395ec0f91d0f970.cc +322 -0
  26. ddfem/data/2.11.dev20250709/localfunction_1c20e613977d8cea4cf5227c12aa68a6_a524c1196983e65de1c06d7d6afdeb44.cc +164 -0
  27. ddfem/data/2.11.dev20250709/{localfunction_191355e6250b2d2e260d96f519ad9976_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_217e4bf8b368a7768c4897cf58f71d84_a524c1196983e65de1c06d7d6afdeb44.cc} +14 -14
  28. ddfem/data/2.11.dev20250709/localfunction_22e797a8f3e8c322f33c41e07bd15165_a524c1196983e65de1c06d7d6afdeb44.cc +1445 -0
  29. ddfem/data/2.11.dev20250709/localfunction_2a97db5a6a479d02138a836cb0890cf2_a524c1196983e65de1c06d7d6afdeb44.cc +173 -0
  30. ddfem/data/2.11.dev20250709/localfunction_2e2afc8df6107683d574a8d96d5249f4_af122c1df944c95cd395ec0f91d0f970.cc +512 -0
  31. ddfem/data/2.11.dev20250709/localfunction_32613626342183eafa360dc1f0f18924_a524c1196983e65de1c06d7d6afdeb44.cc +1425 -0
  32. ddfem/data/2.11.dev20250709/localfunction_37174cfc9d6bf565336cac0d2ea785f5_a524c1196983e65de1c06d7d6afdeb44.cc +786 -0
  33. ddfem/data/2.11.dev20250709/{localfunction_d75993d7ae5919d23117b153e900840d_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_3d957c5b2628e5120636b8e3f461bc0d_a524c1196983e65de1c06d7d6afdeb44.cc} +64 -29
  34. ddfem/data/2.11.dev20250709/localfunction_3ecaa105be9e3abddf3a85d8adc5d36f_a524c1196983e65de1c06d7d6afdeb44.cc +697 -0
  35. ddfem/data/2.11.dev20250709/{localfunction_f626cd43dc8558135fe0b32cde016644_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_3ecaf7de7505b53bb0b5fb6d78549387_a524c1196983e65de1c06d7d6afdeb44.cc} +14 -14
  36. ddfem/data/2.11.dev20250709/{localfunction_1d27a90a52b9053192c9cc902283f79b_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_4192604521151252f1c8fa56a1f9f226_a524c1196983e65de1c06d7d6afdeb44.cc} +14 -14
  37. ddfem/data/2.11.dev20250709/localfunction_4484607e3f9bd9999dbd7bb9d595a7b2_a524c1196983e65de1c06d7d6afdeb44.cc +173 -0
  38. ddfem/data/2.11.dev20250709/localfunction_4976bbef3267846b59f3a26497ffe9db_a524c1196983e65de1c06d7d6afdeb44.cc +474 -0
  39. ddfem/data/2.11.dev20250709/{localfunction_a8c726f728cd35d137188b33301aeef1_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_4adfaf8a08fac23151af0b1e790db1f7_a524c1196983e65de1c06d7d6afdeb44.cc} +14 -14
  40. ddfem/data/2.11.dev20250709/{localfunction_00f2e5593eeb23f01906255d67244f6e_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_4f6a526abfe63959f81b09a5796c5eb1_a524c1196983e65de1c06d7d6afdeb44.cc} +44 -29
  41. ddfem/data/2.11.dev20250709/localfunction_5591a2c803b9658084d8f11d44bf3ae1_a524c1196983e65de1c06d7d6afdeb44.cc +485 -0
  42. ddfem/data/2.11.dev20250709/localfunction_6363af791dde11d699a9a3d876cc5d9a_a524c1196983e65de1c06d7d6afdeb44.cc +549 -0
  43. ddfem/data/2.11.dev20250709/localfunction_6363af791dde11d699a9a3d876cc5d9a_af122c1df944c95cd395ec0f91d0f970.cc +547 -0
  44. ddfem/data/2.11.dev20250709/localfunction_65bda5736a84d4aa0ef2d48ebcc90ed5_a524c1196983e65de1c06d7d6afdeb44.cc +173 -0
  45. ddfem/data/2.11.dev20250709/localfunction_6eccfc8fd91ce34d81e7c3962ece5d94_a524c1196983e65de1c06d7d6afdeb44.cc +766 -0
  46. ddfem/data/2.11.dev20250709/localfunction_762aa49bc5a47ad3d8d8bbde36b42ee5_a524c1196983e65de1c06d7d6afdeb44.cc +723 -0
  47. ddfem/data/2.11.dev20250709/localfunction_76e8db0f046ac9e37a793e0bb13eea7b_a524c1196983e65de1c06d7d6afdeb44.cc +292 -0
  48. ddfem/data/2.11.dev20250709/localfunction_7792f4273b0fd848c5a0fc9d6f12683e_a524c1196983e65de1c06d7d6afdeb44.cc +280 -0
  49. ddfem/data/2.11.dev20250709/localfunction_7d81d496538f240d504e5597484ee746_a524c1196983e65de1c06d7d6afdeb44.cc +462 -0
  50. ddfem/data/2.11.dev20250709/localfunction_7f7ef99c50708814ba5a82b0956b0aed_a524c1196983e65de1c06d7d6afdeb44.cc +461 -0
  51. ddfem/data/2.11.dev20250709/localfunction_898de4ae138e0ed305ef1399c66aa10a_a524c1196983e65de1c06d7d6afdeb44.cc +313 -0
  52. ddfem/data/2.11.dev20250709/localfunction_98b04b00bb93b8c6da99c91867e597ca_a524c1196983e65de1c06d7d6afdeb44.cc +639 -0
  53. ddfem/data/2.11.dev20250709/{localfunction_86a0670f34bf2ac8155423a1c1bc2e75_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_a46a988b5d8571e80fd401a36d7341b7_a524c1196983e65de1c06d7d6afdeb44.cc} +64 -29
  54. ddfem/data/2.11.dev20250709/{localfunction_1d13146d4bff10e178aba773fe2a9f1d_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_a99a0c7f35b06ac5a1fa7f081b5e64f9_a524c1196983e65de1c06d7d6afdeb44.cc} +14 -14
  55. ddfem/data/2.11.dev20250709/{localfunction_e4557ecff74fe5b37313674e67db2782_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_a9bb07439605d560b583608f20441342_a524c1196983e65de1c06d7d6afdeb44.cc} +67 -29
  56. ddfem/data/2.11.dev20250709/{localfunction_82d7cb9338bf118426fac2abf41a91a4_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_cda923259a47bb19861404a9fdb64303_a524c1196983e65de1c06d7d6afdeb44.cc} +14 -14
  57. ddfem/data/2.11.dev20250709/localfunction_d0f33c2dc1ae0e619d85a7621c8e83a6_a524c1196983e65de1c06d7d6afdeb44.cc +325 -0
  58. ddfem/data/2.11.dev20250709/localfunction_d3d9b8a21e3075c9ff40117c5244f28e_a524c1196983e65de1c06d7d6afdeb44.cc +381 -0
  59. ddfem/data/2.11.dev20250709/localfunction_d4b9ca85d48735ee01f395a42eaa0cee_af122c1df944c95cd395ec0f91d0f970.cc +774 -0
  60. ddfem/data/2.11.dev20250709/localfunction_dd1fb4bd60f2d8b3a062dbbdaedb9fee_a524c1196983e65de1c06d7d6afdeb44.cc +869 -0
  61. ddfem/data/2.11.dev20250709/localfunction_dd5ab085a9d94f578c1f3d337ea360a3_a524c1196983e65de1c06d7d6afdeb44.cc +161 -0
  62. ddfem/data/2.11.dev20250709/{localfunction_3e323e81c52891c0ecb656eac273e52f_a524c1196983e65de1c06d7d6afdeb44.cc → localfunction_e2b19c5987f9b6fb0cd5453bfa7f4f9f_a524c1196983e65de1c06d7d6afdeb44.cc} +14 -30
  63. ddfem/data/2.11.dev20250709/{localfunction_e69118a51208cfab8a028711e966e76c_19659fe2f2f74bcfb5d532f1a0d38be9.cc → localfunction_e85b93fe9b8fcd40ee82782fc600b65b_a524c1196983e65de1c06d7d6afdeb44.cc} +89 -78
  64. ddfem/data/extra.modules +13 -0
  65. ddfem/examples/beam.py +43 -50
  66. ddfem/examples/chemical_reaction.py +1 -1
  67. ddfem/examples/five_circle_flat.py +42 -28
  68. ddfem/examples/linear_elasticity.py +5 -1
  69. ddfem/examples/triple_circle.py +86 -83
  70. ddfem/examples/triple_circle_beam.py +71 -61
  71. ddfem/geometry/primitive_base.py +1 -1
  72. {ddfem-1.0.9.dist-info → ddfem-1.0.11.dist-info}/METADATA +35 -3
  73. ddfem-1.0.11.dist-info/RECORD +124 -0
  74. ddfem/data/2.11.dev20250709/boundary.modules +0 -9
  75. ddfem/data/2.11.dev20250709/femspace_90f0a9524a8cb701e8ee5027b7658a0e_0faf32f13b591f4f60f83c591507b9be.cc +0 -40
  76. ddfem/data/2.11.dev20250709/geometry.modules +0 -84
  77. ddfem/data/2.11.dev20250709/hierarchicalgrid_966e2a5c8356c5b278ccd3acad180f0a.cc +0 -30
  78. ddfem/data/2.11.dev20250709/localfunction_aeb3d963412cdc65630e0a4c3c0dde0f_a524c1196983e65de1c06d7d6afdeb44.cc +0 -135
  79. ddfem/data/2.11.dev20250709/localfunction_bdfb7ddf42a423f7d0791458634d4b8f_a524c1196983e65de1c06d7d6afdeb44.cc +0 -135
  80. ddfem/data/2.11.dev20250709/localfunction_c5ebc4ae4b5d3bad6be770eb08c50d08_19659fe2f2f74bcfb5d532f1a0d38be9.cc +0 -1131
  81. ddfem/data/2.11.dev20250709/localfunction_f4583c5cc10d24a8bdedf7510ce9da7b_a524c1196983e65de1c06d7d6afdeb44.cc +0 -299
  82. ddfem/data/2.11.dev20250709/localfunction_f4b1d42cbb447375f39ed834570cd3f0_a524c1196983e65de1c06d7d6afdeb44.cc +0 -135
  83. ddfem/data/2.11.dev20250709/localfunction_fc22d5adaf3b9563160dc2aec55e8ba1_19659fe2f2f74bcfb5d532f1a0d38be9.cc +0 -113
  84. ddfem/data/2.11.dev20250709/transformers.modules +0 -13
  85. ddfem/data/2.11.dev20250709/yaspcoordinates_dim2_ctdouble.cc +0 -55
  86. ddfem-1.0.9.dist-info/RECORD +0 -96
  87. {ddfem-1.0.9.dist-info → ddfem-1.0.11.dist-info}/WHEEL +0 -0
  88. {ddfem-1.0.9.dist-info → ddfem-1.0.11.dist-info}/licenses/LICENSE +0 -0
  89. {ddfem-1.0.9.dist-info → ddfem-1.0.11.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,161 @@
1
+ #ifndef GUARD_dd5ab085a9d94f578c1f3d337ea360a3
2
+ #define GUARD_dd5ab085a9d94f578c1f3d337ea360a3
3
+
4
+ #define USING_DUNE_PYTHON 1
5
+ #include <config.h>
6
+ #include <dune/alugrid/dgf.hh>
7
+ #include <dune/alugrid/grid.hh>
8
+ #include <dune/fem/gridpart/adaptiveleafgridpart.hh>
9
+ #include <dune/fem/gridpart/filter/simple.hh>
10
+ #include <dune/fem/gridpart/filteredgridpart.hh>
11
+ #include <dune/fempy/py/gridview.hh>
12
+ #include <dune/python/grid/gridview.hh>
13
+ #include <dune/python/grid/hierarchical.hh>
14
+ #include <dune/fem/function/localfunction/bindable.hh>
15
+ #include <dune/fem/common/intersectionside.hh>
16
+ #include <dune/python/pybind11/pybind11.h>
17
+ #include <dune/python/pybind11/extensions.h>
18
+ #include <dune/fempy/py/grid/gridpart.hh>
19
+ #include <dune/common/exceptions.hh>
20
+ #include <dune/fempy/function/virtualizedgridfunction.hh>
21
+ #include <dune/fempy/py/ufllocalfunction.hh>
22
+
23
+ namespace UFLLocalFunctions_dd5ab085a9d94f578c1f3d337ea360a3
24
+ {
25
+
26
+ // UFLLocalFunction
27
+ // ----------------
28
+
29
+ template< class GridPart, class Coeffu_h >
30
+ struct UFLLocalFunction
31
+ : public Dune::Fem::BindableGridFunctionWithSpace<GridPart,Dune::Dim<2>>
32
+ {
33
+ typedef GridPart GridPartType;
34
+ typedef typename GridPartType::GridViewType GridView;
35
+ typedef typename GridView::ctype ctype;
36
+ typedef Dune::Fem::BindableGridFunctionWithSpace<GridPart,Dune::Dim<2>> BaseType;
37
+ typedef Dune::Fem::GridFunctionSpace<GridPartType,Dune::Dim<2>> FunctionSpaceType;
38
+ typedef typename GridPartType::template Codim< 0 >::EntityType EntityType;
39
+ typedef typename GridPartType::IntersectionType IntersectionType;
40
+ typedef typename EntityType::Geometry Geometry;
41
+ typedef typename Geometry::GlobalCoordinate GlobalCoordinateType;
42
+ typedef Dune::Fem::IntersectionSide Side;
43
+ typedef std::tuple<> ConstantTupleType;
44
+ typedef std::tuple< Dune::Fem::GridFunctionSpace< GridPartType, Dune::FieldVector< double, 2 > > > CoefficientFunctionSpaceTupleType;
45
+ typedef std::tuple< Coeffu_h > CoefficientTupleType;
46
+ template< std::size_t i >
47
+ using CoefficientFunctionSpaceType = std::tuple_element_t< i, CoefficientFunctionSpaceTupleType >;
48
+ template< std::size_t i >
49
+ using CoefficientRangeType = typename CoefficientFunctionSpaceType< i >::RangeType;
50
+ template< std::size_t i >
51
+ using CoefficientJacobianRangeType = typename CoefficientFunctionSpaceType< i >::JacobianRangeType;
52
+ static constexpr bool gridPartValid = Dune::Fem::checkGridPartValid<GridPartType,Dune::Fem::ConstLocalFunction<Coeffu_h>>();
53
+ template< std::size_t i >
54
+ using CoefficientType = std::tuple_element_t< i, CoefficientTupleType >;
55
+ template< std::size_t i >
56
+ using ConstantType = typename std::tuple_element_t< i, ConstantTupleType >::element_type;
57
+ using BaseType::entity;
58
+ using BaseType::geometry;
59
+
60
+ UFLLocalFunction ( const GridPartType &gridPart, const std::string &name, int order, const Coeffu_h &coeffu_h, const Dune::Fem::ParameterReader &parameter = Dune::Fem::Parameter::container() )
61
+ : BaseType(gridPart,name,order),
62
+ coefficients_( Dune::Fem::ConstLocalFunction< Coeffu_h >( coeffu_h ) )
63
+ {}
64
+
65
+ void bind ( const IntersectionType &intersection, Side side )
66
+ {
67
+ BaseType::bind(intersection, side);
68
+ std::get< 0 >( coefficients_ ).bind( this->entity() );
69
+ }
70
+
71
+ void bind ( const EntityType &entity )
72
+ {
73
+ BaseType::bind(entity);
74
+ std::get< 0 >( coefficients_ ).bind( this->entity() );
75
+ }
76
+
77
+ void unbind ()
78
+ {
79
+ BaseType::unbind();
80
+ std::get< 0 >( coefficients_ ).unbind();
81
+ }
82
+
83
+ template< class Point >
84
+ void evaluate ( const Point &x, typename FunctionSpaceType::RangeType &result ) const
85
+ {
86
+ typename CoefficientFunctionSpaceType< 0 >::JacobianRangeType tmp0 = jacobianCoefficient< 0 >( x );
87
+ result[ 0 ] = (tmp0[ 0 ])[ 0 ];
88
+ result[ 1 ] = (tmp0[ 0 ])[ 1 ];
89
+ }
90
+
91
+ template< class Point >
92
+ void jacobian ( const Point &x, typename FunctionSpaceType::JacobianRangeType &result ) const
93
+ {
94
+ typename CoefficientFunctionSpaceType< 0 >::HessianRangeType tmp0 = hessianCoefficient< 0 >( x );
95
+ (result[ 0 ])[ 0 ] = ((tmp0[ 0 ])[ 0 ])[ 0 ];
96
+ (result[ 0 ])[ 1 ] = ((tmp0[ 0 ])[ 0 ])[ 1 ];
97
+ (result[ 1 ])[ 0 ] = ((tmp0[ 0 ])[ 1 ])[ 0 ];
98
+ (result[ 1 ])[ 1 ] = ((tmp0[ 0 ])[ 1 ])[ 1 ];
99
+ }
100
+
101
+ template< class Point >
102
+ void hessian ( const Point &x, typename FunctionSpaceType::HessianRangeType &result ) const
103
+ {
104
+ DUNE_THROW(Dune::NotImplemented,"hessian method could not be generated for local function (TooHighDerivative('CodeGenerator does not allow for third order derivatives, yet.'))");
105
+ result=typename FunctionSpaceType::HessianRangeType(0);
106
+ }
107
+
108
+ template< std::size_t i >
109
+ const ConstantType< i > &constant () const
110
+ {
111
+ return *std::get< i >( constants_ );
112
+ }
113
+
114
+ template< std::size_t i >
115
+ ConstantType< i > &constant ()
116
+ {
117
+ return *std::get< i >( constants_ );
118
+ }
119
+
120
+ template< std::size_t i, class Point >
121
+ typename CoefficientFunctionSpaceType< i >::RangeType evaluateCoefficient ( const Point &x ) const
122
+ {
123
+ typename CoefficientFunctionSpaceType< i >::RangeType result;
124
+ std::get< i >( coefficients_ ).evaluate( x, result );;
125
+ return result;
126
+ }
127
+
128
+ template< std::size_t i, class Point >
129
+ typename CoefficientFunctionSpaceType< i >::JacobianRangeType jacobianCoefficient ( const Point &x ) const
130
+ {
131
+ typename CoefficientFunctionSpaceType< i >::JacobianRangeType result;
132
+ std::get< i >( coefficients_ ).jacobian( x, result );;
133
+ return result;
134
+ }
135
+
136
+ template< std::size_t i, class Point >
137
+ typename CoefficientFunctionSpaceType< i >::HessianRangeType hessianCoefficient ( const Point &x ) const
138
+ {
139
+ typename CoefficientFunctionSpaceType< i >::HessianRangeType result;
140
+ std::get< i >( coefficients_ ).hessian( x, result );;
141
+ return result;
142
+ }
143
+ ConstantTupleType constants_;
144
+ std::tuple< Dune::Fem::ConstLocalFunction< Coeffu_h > > coefficients_;
145
+ };
146
+
147
+ } // namespace UFLLocalFunctions_dd5ab085a9d94f578c1f3d337ea360a3
148
+
149
+ PYBIND11_MODULE( localfunction_dd5ab085a9d94f578c1f3d337ea360a3_a524c1196983e65de1c06d7d6afdeb44, module )
150
+ {
151
+ typedef UFLLocalFunctions_dd5ab085a9d94f578c1f3d337ea360a3::UFLLocalFunction< 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 > >, 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 > > > LocalFunctionType;
152
+ if constexpr( LocalFunctionType::gridPartValid )
153
+ {
154
+ auto cls = Dune::Python::insertClass<LocalFunctionType>(module,"UFLLocalFunction",Dune::Python::GenerateTypeName("UFLLocalFunctions_dd5ab085a9d94f578c1f3d337ea360a3::UFLLocalFunction< 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 > >, 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::Python::IncludeFiles({"python/dune/generated/localfunction_dd5ab085a9d94f578c1f3d337ea360a3_a524c1196983e65de1c06d7d6afdeb44.cc"})).first;
155
+ Dune::FemPy::registerUFLLocalFunction( module, cls );
156
+ cls.def( pybind11::init( [] ( pybind11::object gridView, const std::string &name, int order, 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 > > &coeffu_h ) {return new LocalFunctionType( 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 >>(gridView),name,order, coeffu_h); } ), pybind11::keep_alive< 1, 2 >(), pybind11::keep_alive< 1, 3 >() );
157
+ cls.def_property_readonly( "virtualized", [] ( LocalFunctionType& ) -> bool { return true;});
158
+ }
159
+ }
160
+
161
+ #endif
@@ -1,5 +1,5 @@
1
- #ifndef GUARD_3e323e81c52891c0ecb656eac273e52f
2
- #define GUARD_3e323e81c52891c0ecb656eac273e52f
1
+ #ifndef GUARD_e2b19c5987f9b6fb0cd5453bfa7f4f9f
2
+ #define GUARD_e2b19c5987f9b6fb0cd5453bfa7f4f9f
3
3
 
4
4
  #define USING_DUNE_PYTHON 1
5
5
  #include <config.h>
@@ -19,7 +19,7 @@
19
19
  #include <dune/common/exceptions.hh>
20
20
  #include <dune/fempy/py/ufllocalfunction.hh>
21
21
 
22
- namespace UFLLocalFunctions_3e323e81c52891c0ecb656eac273e52f
22
+ namespace UFLLocalFunctions_e2b19c5987f9b6fb0cd5453bfa7f4f9f
23
23
  {
24
24
 
25
25
  // UFLLocalFunction
@@ -27,22 +27,19 @@ namespace UFLLocalFunctions_3e323e81c52891c0ecb656eac273e52f
27
27
 
28
28
  template< class GridPart >
29
29
  struct UFLLocalFunction
30
- : public Dune::Fem::BindableGridFunctionWithSpace<GridPart,Dune::Dim<1>>
30
+ : public Dune::Fem::BindableGridFunctionWithSpace<GridPart,Dune::Dim<2>>
31
31
  {
32
32
  typedef GridPart GridPartType;
33
33
  typedef typename GridPartType::GridViewType GridView;
34
34
  typedef typename GridView::ctype ctype;
35
- typedef Dune::Fem::BindableGridFunctionWithSpace<GridPart,Dune::Dim<1>> BaseType;
36
- typedef Dune::Fem::GridFunctionSpace<GridPartType,Dune::Dim<1>> FunctionSpaceType;
35
+ typedef Dune::Fem::BindableGridFunctionWithSpace<GridPart,Dune::Dim<2>> BaseType;
36
+ typedef Dune::Fem::GridFunctionSpace<GridPartType,Dune::Dim<2>> FunctionSpaceType;
37
37
  typedef typename GridPartType::template Codim< 0 >::EntityType EntityType;
38
38
  typedef typename GridPartType::IntersectionType IntersectionType;
39
39
  typedef typename EntityType::Geometry Geometry;
40
40
  typedef typename Geometry::GlobalCoordinate GlobalCoordinateType;
41
41
  typedef Dune::Fem::IntersectionSide Side;
42
- typedef double Conc5;
43
- typedef std::tuple< std::shared_ptr< Conc5 > > ConstantTupleType;
44
- template< std::size_t i >
45
- using ConstantsRangeType = typename std::tuple_element_t< i, ConstantTupleType >::element_type;
42
+ typedef std::tuple<> ConstantTupleType;
46
43
  typedef std::tuple<> CoefficientTupleType;
47
44
  static constexpr bool gridPartValid = true;
48
45
  template< std::size_t i >
@@ -54,9 +51,7 @@ struct UFLLocalFunction
54
51
 
55
52
  UFLLocalFunction ( const GridPartType &gridPart, const std::string &name, int order, const Dune::Fem::ParameterReader &parameter = Dune::Fem::Parameter::container() )
56
53
  : BaseType(gridPart,name,order)
57
- {
58
- std::get< 0 >( constants_ ) = std::make_shared< Conc5 >( (Conc5(0)) );
59
- }
54
+ {}
60
55
 
61
56
  void bind ( const IntersectionType &intersection, Side side )
62
57
  {
@@ -76,8 +71,8 @@ struct UFLLocalFunction
76
71
  template< class Point >
77
72
  void evaluate ( const Point &x, typename FunctionSpaceType::RangeType &result ) const
78
73
  {
79
- double tmp0 = constant< 0 >();
80
- result[ 0 ] = tmp0;
74
+ result[ 0 ] = 0.0;
75
+ result[ 1 ] = 0.0;
81
76
  }
82
77
 
83
78
  template< class Point >
@@ -103,31 +98,20 @@ struct UFLLocalFunction
103
98
  {
104
99
  return *std::get< i >( constants_ );
105
100
  }
106
-
107
- const Conc5 &conc5 () const
108
- {
109
- return *std::get< 0 >( constants_ );
110
- }
111
-
112
- Conc5 &conc5 ()
113
- {
114
- return *std::get< 0 >( constants_ );
115
- }
116
101
  ConstantTupleType constants_;
117
102
  std::tuple< > coefficients_;
118
103
  };
119
104
 
120
- } // namespace UFLLocalFunctions_3e323e81c52891c0ecb656eac273e52f
105
+ } // namespace UFLLocalFunctions_e2b19c5987f9b6fb0cd5453bfa7f4f9f
121
106
 
122
- PYBIND11_MODULE( localfunction_3e323e81c52891c0ecb656eac273e52f_a524c1196983e65de1c06d7d6afdeb44, module )
107
+ PYBIND11_MODULE( localfunction_e2b19c5987f9b6fb0cd5453bfa7f4f9f_a524c1196983e65de1c06d7d6afdeb44, module )
123
108
  {
124
- typedef UFLLocalFunctions_3e323e81c52891c0ecb656eac273e52f::UFLLocalFunction< 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 > > > LocalFunctionType;
109
+ typedef UFLLocalFunctions_e2b19c5987f9b6fb0cd5453bfa7f4f9f::UFLLocalFunction< 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 > > > LocalFunctionType;
125
110
  if constexpr( LocalFunctionType::gridPartValid )
126
111
  {
127
- auto cls = Dune::Python::insertClass<LocalFunctionType>(module,"UFLLocalFunction",Dune::Python::GenerateTypeName("UFLLocalFunctions_3e323e81c52891c0ecb656eac273e52f::UFLLocalFunction< 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 > > >"), Dune::Python::IncludeFiles({"python/dune/generated/localfunction_3e323e81c52891c0ecb656eac273e52f_a524c1196983e65de1c06d7d6afdeb44.cc"})).first;
112
+ auto cls = Dune::Python::insertClass<LocalFunctionType>(module,"UFLLocalFunction",Dune::Python::GenerateTypeName("UFLLocalFunctions_e2b19c5987f9b6fb0cd5453bfa7f4f9f::UFLLocalFunction< 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 > > >"), Dune::Python::IncludeFiles({"python/dune/generated/localfunction_e2b19c5987f9b6fb0cd5453bfa7f4f9f_a524c1196983e65de1c06d7d6afdeb44.cc"})).first;
128
113
  Dune::FemPy::registerUFLLocalFunction( module, cls );
129
114
  cls.def( pybind11::init( [] ( pybind11::object gridView, const std::string &name, int order ) {return new LocalFunctionType( 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 >>(gridView),name,order); } ), pybind11::keep_alive< 1, 2 >() );
130
- cls.def_property( "c5", [] ( LocalFunctionType &self ) -> UFLLocalFunctions_3e323e81c52891c0ecb656eac273e52f::UFLLocalFunction< 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 > > >::Conc5 { return self.conc5(); }, [] ( LocalFunctionType &self, const UFLLocalFunctions_3e323e81c52891c0ecb656eac273e52f::UFLLocalFunction< 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 > > >::Conc5 &v ) { self.conc5() = v; } );
131
115
  cls.def_property_readonly( "virtualized", [] ( LocalFunctionType& ) -> bool { return true;});
132
116
  }
133
117
  }
@@ -1,10 +1,15 @@
1
- #ifndef GUARD_e69118a51208cfab8a028711e966e76c
2
- #define GUARD_e69118a51208cfab8a028711e966e76c
1
+ #ifndef GUARD_e85b93fe9b8fcd40ee82782fc600b65b
2
+ #define GUARD_e85b93fe9b8fcd40ee82782fc600b65b
3
3
 
4
4
  #define USING_DUNE_PYTHON 1
5
5
  #include <config.h>
6
- #include <dune/grid/io/file/dgfparser/dgfyasp.hh>
7
- #include <dune/grid/yaspgrid.hh>
6
+ #include <dune/alugrid/dgf.hh>
7
+ #include <dune/alugrid/grid.hh>
8
+ #include <dune/fem/gridpart/adaptiveleafgridpart.hh>
9
+ #include <dune/fem/gridpart/filter/simple.hh>
10
+ #include <dune/fem/gridpart/filteredgridpart.hh>
11
+ #include <dune/fempy/py/gridview.hh>
12
+ #include <dune/python/grid/gridview.hh>
8
13
  #include <dune/python/grid/hierarchical.hh>
9
14
  #include <dune/fem/function/localfunction/bindable.hh>
10
15
  #include <dune/fem/common/intersectionside.hh>
@@ -14,7 +19,7 @@
14
19
  #include <dune/common/exceptions.hh>
15
20
  #include <dune/fempy/py/ufllocalfunction.hh>
16
21
 
17
- namespace UFLLocalFunctions_e69118a51208cfab8a028711e966e76c
22
+ namespace UFLLocalFunctions_e85b93fe9b8fcd40ee82782fc600b65b
18
23
  {
19
24
 
20
25
  // UFLLocalFunction
@@ -66,23 +71,23 @@ struct UFLLocalFunction
66
71
  template< class Point >
67
72
  void evaluate ( const Point &x, typename FunctionSpaceType::RangeType &result ) const
68
73
  {
69
- using std::min;
74
+ using std::max;
70
75
  using std::sqrt;
71
76
  GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
72
- const auto tmp1 = 0.2 + tmp0[ 0 ];
77
+ const auto tmp1 = -0.8 + tmp0[ 1 ];
73
78
  const auto tmp2 = tmp1 * tmp1;
74
- const auto tmp3 = tmp0[ 1 ] * tmp0[ 1 ];
79
+ const auto tmp3 = tmp0[ 0 ] * tmp0[ 0 ];
75
80
  const auto tmp4 = tmp3 + tmp2;
76
81
  const auto tmp5 = 1e-10 + tmp4;
77
82
  const auto tmp6 = std::sqrt( tmp5 );
78
83
  const auto tmp7 = -0.5 + tmp6;
79
- const auto tmp8 = -0.2 + tmp0[ 0 ];
80
- const auto tmp9 = tmp8 * tmp8;
84
+ const auto tmp8 = -1 * tmp7;
85
+ const auto tmp9 = tmp0[ 1 ] * tmp0[ 1 ];
81
86
  const auto tmp10 = tmp3 + tmp9;
82
87
  const auto tmp11 = 1e-10 + tmp10;
83
88
  const auto tmp12 = std::sqrt( tmp11 );
84
- const auto tmp13 = -0.5 + tmp12;
85
- const auto tmp14 = std::min( tmp13, tmp7 );
89
+ const auto tmp13 = -1 + tmp12;
90
+ const auto tmp14 = std::max( tmp13, tmp8 );
86
91
  result[ 0 ] = tmp14;
87
92
  }
88
93
 
@@ -91,38 +96,40 @@ struct UFLLocalFunction
91
96
  {
92
97
  using std::sqrt;
93
98
  GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
94
- const auto tmp1 = 0.2 + tmp0[ 0 ];
99
+ const auto tmp1 = -0.8 + tmp0[ 1 ];
95
100
  const auto tmp2 = tmp1 * tmp1;
96
- const auto tmp3 = tmp0[ 1 ] * tmp0[ 1 ];
101
+ const auto tmp3 = tmp0[ 0 ] * tmp0[ 0 ];
97
102
  const auto tmp4 = tmp3 + tmp2;
98
103
  const auto tmp5 = 1e-10 + tmp4;
99
104
  const auto tmp6 = std::sqrt( tmp5 );
100
105
  const auto tmp7 = -0.5 + tmp6;
101
- const auto tmp8 = -0.2 + tmp0[ 0 ];
102
- const auto tmp9 = tmp8 * tmp8;
106
+ const auto tmp8 = -1 * tmp7;
107
+ const auto tmp9 = tmp0[ 1 ] * tmp0[ 1 ];
103
108
  const auto tmp10 = tmp3 + tmp9;
104
109
  const auto tmp11 = 1e-10 + tmp10;
105
110
  const auto tmp12 = std::sqrt( tmp11 );
106
- const auto tmp13 = -0.5 + tmp12;
111
+ const auto tmp13 = -1 + tmp12;
107
112
  const auto tmp14 = 2 * tmp12;
108
- const auto tmp15 = tmp8 + tmp8;
113
+ const auto tmp15 = tmp0[ 0 ] + tmp0[ 0 ];
109
114
  const auto tmp16 = tmp15 / tmp14;
110
- const auto tmp17 = tmp16 * (tmp13 < tmp7 ? 1 : 0.0);
115
+ const auto tmp17 = tmp16 * (tmp13 > tmp8 ? 1 : 0.0);
111
116
  const auto tmp18 = 2 * tmp6;
112
- const auto tmp19 = tmp1 + tmp1;
113
- const auto tmp20 = tmp19 / tmp18;
114
- const auto tmp21 = -1 * (tmp13 < tmp7 ? 1 : 0.0);
117
+ const auto tmp19 = tmp15 / tmp18;
118
+ const auto tmp20 = -1 * tmp19;
119
+ const auto tmp21 = -1 * (tmp13 > tmp8 ? 1 : 0.0);
115
120
  const auto tmp22 = 1.0 + tmp21;
116
121
  const auto tmp23 = tmp22 * tmp20;
117
122
  const auto tmp24 = tmp23 + tmp17;
118
123
  const auto tmp25 = tmp0[ 1 ] + tmp0[ 1 ];
119
124
  const auto tmp26 = tmp25 / tmp14;
120
- const auto tmp27 = tmp26 * (tmp13 < tmp7 ? 1 : 0.0);
121
- const auto tmp28 = tmp25 / tmp18;
122
- const auto tmp29 = tmp22 * tmp28;
123
- const auto tmp30 = tmp29 + tmp27;
125
+ const auto tmp27 = tmp26 * (tmp13 > tmp8 ? 1 : 0.0);
126
+ const auto tmp28 = tmp1 + tmp1;
127
+ const auto tmp29 = tmp28 / tmp18;
128
+ const auto tmp30 = -1 * tmp29;
129
+ const auto tmp31 = tmp22 * tmp30;
130
+ const auto tmp32 = tmp31 + tmp27;
124
131
  (result[ 0 ])[ 0 ] = tmp24;
125
- (result[ 0 ])[ 1 ] = tmp30;
132
+ (result[ 0 ])[ 1 ] = tmp32;
126
133
  }
127
134
 
128
135
  template< class Point >
@@ -130,37 +137,37 @@ struct UFLLocalFunction
130
137
  {
131
138
  using std::sqrt;
132
139
  GlobalCoordinateType tmp0 = geometry().global( Dune::Fem::coordinate( x ) );
133
- const auto tmp1 = 0.2 + tmp0[ 0 ];
140
+ const auto tmp1 = -0.8 + tmp0[ 1 ];
134
141
  const auto tmp2 = tmp1 * tmp1;
135
- const auto tmp3 = tmp0[ 1 ] * tmp0[ 1 ];
142
+ const auto tmp3 = tmp0[ 0 ] * tmp0[ 0 ];
136
143
  const auto tmp4 = tmp3 + tmp2;
137
144
  const auto tmp5 = 1e-10 + tmp4;
138
145
  const auto tmp6 = std::sqrt( tmp5 );
139
146
  const auto tmp7 = -0.5 + tmp6;
140
- const auto tmp8 = -0.2 + tmp0[ 0 ];
141
- const auto tmp9 = tmp8 * tmp8;
147
+ const auto tmp8 = -1 * tmp7;
148
+ const auto tmp9 = tmp0[ 1 ] * tmp0[ 1 ];
142
149
  const auto tmp10 = tmp3 + tmp9;
143
150
  const auto tmp11 = 1e-10 + tmp10;
144
151
  const auto tmp12 = std::sqrt( tmp11 );
145
- const auto tmp13 = -0.5 + tmp12;
152
+ const auto tmp13 = -1 + tmp12;
146
153
  const auto tmp14 = 2 * tmp12;
147
- const auto tmp15 = tmp8 + tmp8;
154
+ const auto tmp15 = tmp0[ 0 ] + tmp0[ 0 ];
148
155
  const auto tmp16 = tmp15 / tmp14;
149
156
  const auto tmp17 = 2 * tmp16;
150
157
  const auto tmp18 = tmp17 * tmp16;
151
158
  const auto tmp19 = -1 * tmp18;
152
159
  const auto tmp20 = 2 + tmp19;
153
160
  const auto tmp21 = tmp20 / tmp14;
154
- const auto tmp22 = tmp21 * (tmp13 < tmp7 ? 1 : 0.0);
161
+ const auto tmp22 = tmp21 * (tmp13 > tmp8 ? 1 : 0.0);
155
162
  const auto tmp23 = 2 * tmp6;
156
- const auto tmp24 = tmp1 + tmp1;
157
- const auto tmp25 = tmp24 / tmp23;
158
- const auto tmp26 = 2 * tmp25;
159
- const auto tmp27 = tmp26 * tmp25;
160
- const auto tmp28 = -1 * tmp27;
161
- const auto tmp29 = 2 + tmp28;
162
- const auto tmp30 = tmp29 / tmp23;
163
- const auto tmp31 = -1 * (tmp13 < tmp7 ? 1 : 0.0);
163
+ const auto tmp24 = tmp15 / tmp23;
164
+ const auto tmp25 = 2 * tmp24;
165
+ const auto tmp26 = tmp25 * tmp24;
166
+ const auto tmp27 = -1 * tmp26;
167
+ const auto tmp28 = 2 + tmp27;
168
+ const auto tmp29 = tmp28 / tmp23;
169
+ const auto tmp30 = -1 * tmp29;
170
+ const auto tmp31 = -1 * (tmp13 > tmp8 ? 1 : 0.0);
164
171
  const auto tmp32 = 1.0 + tmp31;
165
172
  const auto tmp33 = tmp32 * tmp30;
166
173
  const auto tmp34 = tmp33 + tmp22;
@@ -170,38 +177,42 @@ struct UFLLocalFunction
170
177
  const auto tmp38 = tmp37 * tmp16;
171
178
  const auto tmp39 = -1 * tmp38;
172
179
  const auto tmp40 = tmp39 / tmp14;
173
- const auto tmp41 = tmp40 * (tmp13 < tmp7 ? 1 : 0.0);
174
- const auto tmp42 = tmp35 / tmp23;
175
- const auto tmp43 = 2 * tmp42;
176
- const auto tmp44 = tmp43 * tmp25;
177
- const auto tmp45 = -1 * tmp44;
178
- const auto tmp46 = tmp45 / tmp23;
179
- const auto tmp47 = tmp32 * tmp46;
180
- const auto tmp48 = tmp47 + tmp41;
181
- const auto tmp49 = tmp17 * tmp36;
182
- const auto tmp50 = -1 * tmp49;
183
- const auto tmp51 = tmp50 / tmp14;
184
- const auto tmp52 = tmp51 * (tmp13 < tmp7 ? 1 : 0.0);
185
- const auto tmp53 = tmp26 * tmp42;
186
- const auto tmp54 = -1 * tmp53;
187
- const auto tmp55 = tmp54 / tmp23;
188
- const auto tmp56 = tmp32 * tmp55;
189
- const auto tmp57 = tmp56 + tmp52;
190
- const auto tmp58 = tmp37 * tmp36;
191
- const auto tmp59 = -1 * tmp58;
192
- const auto tmp60 = 2 + tmp59;
193
- const auto tmp61 = tmp60 / tmp14;
194
- const auto tmp62 = tmp61 * (tmp13 < tmp7 ? 1 : 0.0);
195
- const auto tmp63 = tmp43 * tmp42;
196
- const auto tmp64 = -1 * tmp63;
197
- const auto tmp65 = 2 + tmp64;
198
- const auto tmp66 = tmp65 / tmp23;
199
- const auto tmp67 = tmp32 * tmp66;
200
- const auto tmp68 = tmp67 + tmp62;
180
+ const auto tmp41 = tmp40 * (tmp13 > tmp8 ? 1 : 0.0);
181
+ const auto tmp42 = tmp1 + tmp1;
182
+ const auto tmp43 = tmp42 / tmp23;
183
+ const auto tmp44 = 2 * tmp43;
184
+ const auto tmp45 = tmp44 * tmp24;
185
+ const auto tmp46 = -1 * tmp45;
186
+ const auto tmp47 = tmp46 / tmp23;
187
+ const auto tmp48 = -1 * tmp47;
188
+ const auto tmp49 = tmp32 * tmp48;
189
+ const auto tmp50 = tmp49 + tmp41;
190
+ const auto tmp51 = tmp17 * tmp36;
191
+ const auto tmp52 = -1 * tmp51;
192
+ const auto tmp53 = tmp52 / tmp14;
193
+ const auto tmp54 = tmp53 * (tmp13 > tmp8 ? 1 : 0.0);
194
+ const auto tmp55 = tmp25 * tmp43;
195
+ const auto tmp56 = -1 * tmp55;
196
+ const auto tmp57 = tmp56 / tmp23;
197
+ const auto tmp58 = -1 * tmp57;
198
+ const auto tmp59 = tmp32 * tmp58;
199
+ const auto tmp60 = tmp59 + tmp54;
200
+ const auto tmp61 = tmp37 * tmp36;
201
+ const auto tmp62 = -1 * tmp61;
202
+ const auto tmp63 = 2 + tmp62;
203
+ const auto tmp64 = tmp63 / tmp14;
204
+ const auto tmp65 = tmp64 * (tmp13 > tmp8 ? 1 : 0.0);
205
+ const auto tmp66 = tmp44 * tmp43;
206
+ const auto tmp67 = -1 * tmp66;
207
+ const auto tmp68 = 2 + tmp67;
208
+ const auto tmp69 = tmp68 / tmp23;
209
+ const auto tmp70 = -1 * tmp69;
210
+ const auto tmp71 = tmp32 * tmp70;
211
+ const auto tmp72 = tmp71 + tmp65;
201
212
  ((result[ 0 ])[ 0 ])[ 0 ] = tmp34;
202
- ((result[ 0 ])[ 0 ])[ 1 ] = tmp48;
203
- ((result[ 0 ])[ 1 ])[ 0 ] = tmp57;
204
- ((result[ 0 ])[ 1 ])[ 1 ] = tmp68;
213
+ ((result[ 0 ])[ 0 ])[ 1 ] = tmp50;
214
+ ((result[ 0 ])[ 1 ])[ 0 ] = tmp60;
215
+ ((result[ 0 ])[ 1 ])[ 1 ] = tmp72;
205
216
  }
206
217
 
207
218
  template< std::size_t i >
@@ -219,16 +230,16 @@ struct UFLLocalFunction
219
230
  std::tuple< > coefficients_;
220
231
  };
221
232
 
222
- } // namespace UFLLocalFunctions_e69118a51208cfab8a028711e966e76c
233
+ } // namespace UFLLocalFunctions_e85b93fe9b8fcd40ee82782fc600b65b
223
234
 
224
- PYBIND11_MODULE( localfunction_e69118a51208cfab8a028711e966e76c_19659fe2f2f74bcfb5d532f1a0d38be9, module )
235
+ PYBIND11_MODULE( localfunction_e85b93fe9b8fcd40ee82782fc600b65b_a524c1196983e65de1c06d7d6afdeb44, module )
225
236
  {
226
- typedef UFLLocalFunctions_e69118a51208cfab8a028711e966e76c::UFLLocalFunction< typename Dune::FemPy::GridPart< Dune::YaspGrid< 2, Dune::EquidistantOffsetCoordinates< double, 2 > >::LeafGridView > > LocalFunctionType;
237
+ typedef UFLLocalFunctions_e85b93fe9b8fcd40ee82782fc600b65b::UFLLocalFunction< 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 > > > LocalFunctionType;
227
238
  if constexpr( LocalFunctionType::gridPartValid )
228
239
  {
229
- auto cls = Dune::Python::insertClass<LocalFunctionType>(module,"UFLLocalFunction",Dune::Python::GenerateTypeName("UFLLocalFunctions_e69118a51208cfab8a028711e966e76c::UFLLocalFunction< typename Dune::FemPy::GridPart< Dune::YaspGrid< 2, Dune::EquidistantOffsetCoordinates< double, 2 > >::LeafGridView > >"), Dune::Python::IncludeFiles({"python/dune/generated/localfunction_e69118a51208cfab8a028711e966e76c_19659fe2f2f74bcfb5d532f1a0d38be9.cc"})).first;
240
+ auto cls = Dune::Python::insertClass<LocalFunctionType>(module,"UFLLocalFunction",Dune::Python::GenerateTypeName("UFLLocalFunctions_e85b93fe9b8fcd40ee82782fc600b65b::UFLLocalFunction< 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 > > >"), Dune::Python::IncludeFiles({"python/dune/generated/localfunction_e85b93fe9b8fcd40ee82782fc600b65b_a524c1196983e65de1c06d7d6afdeb44.cc"})).first;
230
241
  Dune::FemPy::registerUFLLocalFunction( module, cls );
231
- cls.def( pybind11::init( [] ( pybind11::object gridView, const std::string &name, int order ) {return new LocalFunctionType( Dune::FemPy::gridPart<Dune::YaspGrid< 2, Dune::EquidistantOffsetCoordinates< double, 2 > >::LeafGridView>(gridView),name,order); } ), pybind11::keep_alive< 1, 2 >() );
242
+ cls.def( pybind11::init( [] ( pybind11::object gridView, const std::string &name, int order ) {return new LocalFunctionType( 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 >>(gridView),name,order); } ), pybind11::keep_alive< 1, 2 >() );
232
243
  cls.def_property_readonly( "virtualized", [] ( LocalFunctionType& ) -> bool { return true;});
233
244
  }
234
245
  }
@@ -0,0 +1,13 @@
1
+ femspace_11b3436cb033df683615c50d5d4239bd_f14dd0b3b474c0cd816334330f55ad72.cc
2
+ localfunction_3d957c5b2628e5120636b8e3f461bc0d_a524c1196983e65de1c06d7d6afdeb44.cc
3
+ localfunction_6363af791dde11d699a9a3d876cc5d9a_a524c1196983e65de1c06d7d6afdeb44.cc
4
+ localfunction_762aa49bc5a47ad3d8d8bbde36b42ee5_a524c1196983e65de1c06d7d6afdeb44.cc
5
+ localfunction_e2b19c5987f9b6fb0cd5453bfa7f4f9f_a524c1196983e65de1c06d7d6afdeb44.cc
6
+ femscheme_765ef00d995a939c34bdc0d0cc4847ca.cc
7
+ localfunction_22e797a8f3e8c322f33c41e07bd15165_a524c1196983e65de1c06d7d6afdeb44.cc
8
+ localfunction_32613626342183eafa360dc1f0f18924_a524c1196983e65de1c06d7d6afdeb44.cc
9
+ localfunction_4976bbef3267846b59f3a26497ffe9db_a524c1196983e65de1c06d7d6afdeb44.cc
10
+ localfunction_5591a2c803b9658084d8f11d44bf3ae1_a524c1196983e65de1c06d7d6afdeb44.cc
11
+ localfunction_6363af791dde11d699a9a3d876cc5d9a_af122c1df944c95cd395ec0f91d0f970.cc
12
+ localfunction_d4b9ca85d48735ee01f395a42eaa0cee_af122c1df944c95cd395ec0f91d0f970.cc
13
+ localfunction_dd1fb4bd60f2d8b3a062dbbdaedb9fee_a524c1196983e65de1c06d7d6afdeb44.cc