~ubuntu-branches/ubuntu/wily/dolfin/wily-proposed

« back to all changes in this revision

Viewing changes to demo/documented/auto-adaptive-poisson/cpp/AdaptivePoisson.h

  • Committer: Package Import Robot
  • Author(s): Johannes Ring
  • Date: 2015-03-17 07:57:11 UTC
  • mfrom: (1.1.18) (19.1.24 experimental)
  • Revision ID: package-import@ubuntu.com-20150317075711-1v207zbty9qmygow
Tags: 1.5.0-1
* New upstream release (closes: #780359).
* debian/control:
  - Bump Standards-Version to 3.9.6 (no changes needed).
  - Bump X-Python-Version to >= 2.7.
  - Update package names for new SONAME 1.5 (libdolfin1.4 ->
    libdolfin1.5, libdolfin1.4-dbg -> libdolfin1.5-dbg and
    libdolfin1.4-dev -> libdolfin1.5-dev).
  - Bump minimum required version for python-instant, python-ufl and
    python-ffc to 1.5.0.
  - Add python-sympy and python-six to Depends for binary package
    python-dolfin.
  - Add dh-python to Build-Depends.
  - Remove libcgal-dev from {Build-}Depends.
* Remove CSGCGALMeshGenerator3D-oom.patch since CGAL is no longer used
  by DOLFIN.
* Move debian/libdolfin1.4.install -> debian/libdolfin1.5.install.
* debian/rules: No longer any non DFSG-free stuff to remove, so update
  get-orig-source target (update debian/watch accordingly).
* Update debian/copyright and debian/copyright_hints.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// This code conforms with the UFC specification version 1.4.0
2
 
// and was automatically generated by FFC version 1.4.0.
 
1
// This code conforms with the UFC specification version 1.5.0
 
2
// and was automatically generated by FFC version 1.5.0.
3
3
//
4
4
// This code was generated with the option '-l dolfin' and
5
5
// contains DOLFIN-specific wrappers that depend on DOLFIN.
810
810
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
811
811
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
812
812
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
813
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
814
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
813
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
814
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
815
815
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
816
816
      
817
817
      static const double dmats1[6][6] = \
818
818
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
819
819
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
820
820
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
821
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
822
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
823
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
821
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
822
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
823
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
824
824
      
825
825
      // Compute reference derivatives.
826
826
      // Declare array of derivatives on FIAT element.
961
961
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
962
962
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
963
963
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
964
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
965
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
964
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
965
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
966
966
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
967
967
      
968
968
      static const double dmats1[6][6] = \
969
969
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
970
970
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
971
971
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
972
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
973
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
974
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
972
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
973
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
974
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
975
975
      
976
976
      // Compute reference derivatives.
977
977
      // Declare array of derivatives on FIAT element.
1112
1112
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1113
1113
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
1114
1114
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1115
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
1116
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
1115
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
1116
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
1117
1117
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
1118
1118
      
1119
1119
      static const double dmats1[6][6] = \
1120
1120
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1121
1121
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
1122
1122
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
1123
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
1124
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
1125
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
1123
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
1124
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
1125
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
1126
1126
      
1127
1127
      // Compute reference derivatives.
1128
1128
      // Declare array of derivatives on FIAT element.
1263
1263
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1264
1264
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
1265
1265
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1266
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
1267
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
1266
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
1267
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
1268
1268
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
1269
1269
      
1270
1270
      static const double dmats1[6][6] = \
1271
1271
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1272
1272
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
1273
1273
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
1274
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
1275
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
1276
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
1274
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
1275
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
1276
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
1277
1277
      
1278
1278
      // Compute reference derivatives.
1279
1279
      // Declare array of derivatives on FIAT element.
1414
1414
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1415
1415
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
1416
1416
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1417
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
1418
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
1417
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
1418
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
1419
1419
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
1420
1420
      
1421
1421
      static const double dmats1[6][6] = \
1422
1422
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1423
1423
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
1424
1424
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
1425
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
1426
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
1427
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
1425
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
1426
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
1427
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
1428
1428
      
1429
1429
      // Compute reference derivatives.
1430
1430
      // Declare array of derivatives on FIAT element.
1565
1565
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1566
1566
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
1567
1567
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1568
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
1569
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
1568
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
1569
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
1570
1570
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
1571
1571
      
1572
1572
      static const double dmats1[6][6] = \
1573
1573
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1574
1574
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
1575
1575
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
1576
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
1577
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
1578
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
1576
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
1577
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
1578
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
1579
1579
      
1580
1580
      // Compute reference derivatives.
1581
1581
      // Declare array of derivatives on FIAT element.
2213
2213
    {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2214
2214
    {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2215
2215
    {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2216
 
    {0.0, 9.48683298050513, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2217
 
    {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
 
2216
    {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
 
2217
    {4, 0.0, 7.07106781186547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2218
2218
    {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2219
 
    {5.29150262212918, 0.0, -2.99332590941915, 13.6626010212795, 0.0, 0.611010092660778, 0.0, 0.0, 0.0, 0.0},
 
2219
    {5.29150262212919, -4.13322096722122e-14, -2.99332590941916, 13.6626010212795, 0.0, 0.611010092660782, 0.0, 0.0, 0.0, 0.0},
2220
2220
    {0.0, 4.38178046004133, 0.0, 0.0, 12.5219806739988, 0.0, 0.0, 0.0, 0.0, 0.0},
2221
 
    {3.46410161513775, 0.0, 7.83836717690617, 0.0, 0.0, 8.4, 0.0, 0.0, 0.0, 0.0},
 
2221
    {3.46410161513776, 0.0, 7.83836717690618, 0.0, 0.0, 8.40000000000001, 0.0, 0.0, 0.0, 0.0},
2222
2222
    {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
2223
2223
    
2224
2224
    static const double dmats1[10][10] = \
2225
2225
    {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2226
2226
    {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2227
2227
    {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2228
 
    {2.58198889747161, 4.74341649025257, -0.912870929175277, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2229
 
    {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2230
 
    {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2231
 
    {2.64575131106459, 5.18459255872628, -1.49666295470957, 6.83130051063973, -1.05830052442584, 0.305505046330389, 0.0, 0.0, 0.0, 0.0},
2232
 
    {2.23606797749979, 2.19089023002067, 2.52982212813471, 8.08290376865476, 6.26099033699941, -1.80739222823013, 0.0, 0.0, 0.0, 0.0},
2233
 
    {1.73205080756887, -5.09116882454314, 3.91918358845309, 0.0, 9.69948452238571, 4.2, 0.0, 0.0, 0.0, 0.0},
2234
 
    {5, 0.0, -2.82842712474619, 0.0, 0.0, 12.1243556529821, 0.0, 0.0, 0.0, 0.0}};
 
2228
    {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
 
2229
    {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
 
2230
    {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
 
2231
    {2.64575131106457, 5.18459255872625, -1.49666295470957, 6.83130051063973, -1.05830052442583, 0.305505046330389, 0.0, 0.0, 0.0, 0.0},
 
2232
    {2.23606797749982, 2.19089023002067, 2.52982212813468, 8.08290376865478, 6.26099033699941, -1.80739222823012, 0.0, 0.0, 0.0, 0.0},
 
2233
    {1.73205080756888, -5.09116882454314, 3.9191835884531, 0.0, 9.69948452238569, 4.20000000000001, 0.0, 0.0, 0.0, 0.0},
 
2234
    {5.00000000000002, 0.0, -2.82842712474623, 0.0, 0.0, 12.1243556529822, 0.0, 0.0, 0.0, 0.0}};
2235
2235
    
2236
2236
    // Compute reference derivatives.
2237
2237
    // Declare array of derivatives on FIAT element.
2811
2811
      // Tables of derivatives of the polynomial base (transpose).
2812
2812
      static const double dmats0[3][3] = \
2813
2813
      {{0.0, 0.0, 0.0},
2814
 
      {4.89897948556636, 0.0, 0.0},
 
2814
      {4.89897948556635, 0.0, 0.0},
2815
2815
      {0.0, 0.0, 0.0}};
2816
2816
      
2817
2817
      static const double dmats1[3][3] = \
2942
2942
      // Tables of derivatives of the polynomial base (transpose).
2943
2943
      static const double dmats0[3][3] = \
2944
2944
      {{0.0, 0.0, 0.0},
2945
 
      {4.89897948556636, 0.0, 0.0},
 
2945
      {4.89897948556635, 0.0, 0.0},
2946
2946
      {0.0, 0.0, 0.0}};
2947
2947
      
2948
2948
      static const double dmats1[3][3] = \
3073
3073
      // Tables of derivatives of the polynomial base (transpose).
3074
3074
      static const double dmats0[3][3] = \
3075
3075
      {{0.0, 0.0, 0.0},
3076
 
      {4.89897948556636, 0.0, 0.0},
 
3076
      {4.89897948556635, 0.0, 0.0},
3077
3077
      {0.0, 0.0, 0.0}};
3078
3078
      
3079
3079
      static const double dmats1[3][3] = \
3858
3858
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
3859
3859
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
3860
3860
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
3861
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
3862
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
3861
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
3862
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
3863
3863
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
3864
3864
      
3865
3865
      static const double dmats1[6][6] = \
3866
3866
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
3867
3867
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
3868
3868
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
3869
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
3870
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
3871
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
3869
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
3870
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
3871
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
3872
3872
      
3873
3873
      // Compute reference derivatives.
3874
3874
      // Declare array of derivatives on FIAT element.
4009
4009
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4010
4010
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
4011
4011
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4012
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
4013
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
4012
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
4013
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
4014
4014
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
4015
4015
      
4016
4016
      static const double dmats1[6][6] = \
4017
4017
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4018
4018
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
4019
4019
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
4020
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
4021
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
4022
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
4020
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
4021
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
4022
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
4023
4023
      
4024
4024
      // Compute reference derivatives.
4025
4025
      // Declare array of derivatives on FIAT element.
4160
4160
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4161
4161
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
4162
4162
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4163
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
4164
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
4163
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
4164
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
4165
4165
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
4166
4166
      
4167
4167
      static const double dmats1[6][6] = \
4168
4168
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4169
4169
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
4170
4170
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
4171
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
4172
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
4173
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
4171
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
4172
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
4173
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
4174
4174
      
4175
4175
      // Compute reference derivatives.
4176
4176
      // Declare array of derivatives on FIAT element.
4311
4311
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4312
4312
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
4313
4313
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4314
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
4315
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
4314
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
4315
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
4316
4316
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
4317
4317
      
4318
4318
      static const double dmats1[6][6] = \
4319
4319
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4320
4320
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
4321
4321
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
4322
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
4323
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
4324
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
4322
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
4323
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
4324
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
4325
4325
      
4326
4326
      // Compute reference derivatives.
4327
4327
      // Declare array of derivatives on FIAT element.
4462
4462
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4463
4463
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
4464
4464
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4465
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
4466
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
4465
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
4466
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
4467
4467
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
4468
4468
      
4469
4469
      static const double dmats1[6][6] = \
4470
4470
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4471
4471
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
4472
4472
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
4473
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
4474
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
4475
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
4473
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
4474
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
4475
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
4476
4476
      
4477
4477
      // Compute reference derivatives.
4478
4478
      // Declare array of derivatives on FIAT element.
4613
4613
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4614
4614
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
4615
4615
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4616
 
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
4617
 
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
4616
      {0.0, 9.48683298050515, 0.0, 0.0, 0.0, 0.0},
 
4617
      {3.99999999999999, 0.0, 7.07106781186547, 0.0, 0.0, 0.0},
4618
4618
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
4619
4619
      
4620
4620
      static const double dmats1[6][6] = \
4621
4621
      {{0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4622
4622
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
4623
4623
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
4624
 
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
4625
 
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
4626
 
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
 
4624
      {2.58198889747162, 4.74341649025257, -0.91287092917528, 0.0, 0.0, 0.0},
 
4625
      {1.99999999999991, 6.12372435695794, 3.53553390593273, 0.0, 0.0, 0.0},
 
4626
      {-2.30940107675849, 0.0, 8.16496580927727, 0.0, 0.0, 0.0}};
4627
4627
      
4628
4628
      // Compute reference derivatives.
4629
4629
      // Declare array of derivatives on FIAT element.
5302
5302
      // Tables of derivatives of the polynomial base (transpose).
5303
5303
      static const double dmats0[3][3] = \
5304
5304
      {{0.0, 0.0, 0.0},
5305
 
      {4.89897948556636, 0.0, 0.0},
 
5305
      {4.89897948556635, 0.0, 0.0},
5306
5306
      {0.0, 0.0, 0.0}};
5307
5307
      
5308
5308
      static const double dmats1[3][3] = \
5433
5433
      // Tables of derivatives of the polynomial base (transpose).
5434
5434
      static const double dmats0[3][3] = \
5435
5435
      {{0.0, 0.0, 0.0},
5436
 
      {4.89897948556636, 0.0, 0.0},
 
5436
      {4.89897948556635, 0.0, 0.0},
5437
5437
      {0.0, 0.0, 0.0}};
5438
5438
      
5439
5439
      static const double dmats1[3][3] = \
5564
5564
      // Tables of derivatives of the polynomial base (transpose).
5565
5565
      static const double dmats0[3][3] = \
5566
5566
      {{0.0, 0.0, 0.0},
5567
 
      {4.89897948556636, 0.0, 0.0},
 
5567
      {4.89897948556635, 0.0, 0.0},
5568
5568
      {0.0, 0.0, 0.0}};
5569
5569
      
5570
5570
      static const double dmats1[3][3] = \
6043
6043
  }
6044
6044
 
6045
6045
  /// Tabulate the coordinates of all dofs on a cell
6046
 
  virtual void tabulate_coordinates(double** dof_coordinates,
 
6046
  virtual void tabulate_coordinates(double* dof_coordinates,
6047
6047
                                    const double* vertex_coordinates) const
6048
6048
  {
6049
 
    dof_coordinates[0][0] = 0.333333333333333*vertex_coordinates[0] + 0.333333333333333*vertex_coordinates[2] + 0.333333333333333*vertex_coordinates[4];
6050
 
    dof_coordinates[0][1] = 0.333333333333333*vertex_coordinates[1] + 0.333333333333333*vertex_coordinates[3] + 0.333333333333333*vertex_coordinates[5];
 
6049
    dof_coordinates[0] = 0.333333333333333*vertex_coordinates[0] + 0.333333333333333*vertex_coordinates[2] + 0.333333333333333*vertex_coordinates[4];
 
6050
    dof_coordinates[1] = 0.333333333333333*vertex_coordinates[1] + 0.333333333333333*vertex_coordinates[3] + 0.333333333333333*vertex_coordinates[5];
6051
6051
  }
6052
6052
 
6053
6053
  /// Return the number of sub dofmaps (for a mixed element)
6255
6255
  }
6256
6256
 
6257
6257
  /// Tabulate the coordinates of all dofs on a cell
6258
 
  virtual void tabulate_coordinates(double** dof_coordinates,
 
6258
  virtual void tabulate_coordinates(double* dof_coordinates,
6259
6259
                                    const double* vertex_coordinates) const
6260
6260
  {
6261
 
    dof_coordinates[0][0] = vertex_coordinates[0];
6262
 
    dof_coordinates[0][1] = vertex_coordinates[1];
6263
 
    dof_coordinates[1][0] = vertex_coordinates[2];
6264
 
    dof_coordinates[1][1] = vertex_coordinates[3];
6265
 
    dof_coordinates[2][0] = vertex_coordinates[4];
6266
 
    dof_coordinates[2][1] = vertex_coordinates[5];
6267
 
    dof_coordinates[3][0] = 0.5*vertex_coordinates[2] + 0.5*vertex_coordinates[4];
6268
 
    dof_coordinates[3][1] = 0.5*vertex_coordinates[3] + 0.5*vertex_coordinates[5];
6269
 
    dof_coordinates[4][0] = 0.5*vertex_coordinates[0] + 0.5*vertex_coordinates[4];
6270
 
    dof_coordinates[4][1] = 0.5*vertex_coordinates[1] + 0.5*vertex_coordinates[5];
6271
 
    dof_coordinates[5][0] = 0.5*vertex_coordinates[0] + 0.5*vertex_coordinates[2];
6272
 
    dof_coordinates[5][1] = 0.5*vertex_coordinates[1] + 0.5*vertex_coordinates[3];
 
6261
    dof_coordinates[0] = vertex_coordinates[0];
 
6262
    dof_coordinates[1] = vertex_coordinates[1];
 
6263
    dof_coordinates[2] = vertex_coordinates[2];
 
6264
    dof_coordinates[3] = vertex_coordinates[3];
 
6265
    dof_coordinates[4] = vertex_coordinates[4];
 
6266
    dof_coordinates[5] = vertex_coordinates[5];
 
6267
    dof_coordinates[6] = 0.5*vertex_coordinates[2] + 0.5*vertex_coordinates[4];
 
6268
    dof_coordinates[7] = 0.5*vertex_coordinates[3] + 0.5*vertex_coordinates[5];
 
6269
    dof_coordinates[8] = 0.5*vertex_coordinates[0] + 0.5*vertex_coordinates[4];
 
6270
    dof_coordinates[9] = 0.5*vertex_coordinates[1] + 0.5*vertex_coordinates[5];
 
6271
    dof_coordinates[10] = 0.5*vertex_coordinates[0] + 0.5*vertex_coordinates[2];
 
6272
    dof_coordinates[11] = 0.5*vertex_coordinates[1] + 0.5*vertex_coordinates[3];
6273
6273
  }
6274
6274
 
6275
6275
  /// Return the number of sub dofmaps (for a mixed element)
6467
6467
  }
6468
6468
 
6469
6469
  /// Tabulate the coordinates of all dofs on a cell
6470
 
  virtual void tabulate_coordinates(double** dof_coordinates,
 
6470
  virtual void tabulate_coordinates(double* dof_coordinates,
6471
6471
                                    const double* vertex_coordinates) const
6472
6472
  {
6473
 
    dof_coordinates[0][0] = 0.333333333333333*vertex_coordinates[0] + 0.333333333333333*vertex_coordinates[2] + 0.333333333333333*vertex_coordinates[4];
6474
 
    dof_coordinates[0][1] = 0.333333333333333*vertex_coordinates[1] + 0.333333333333333*vertex_coordinates[3] + 0.333333333333333*vertex_coordinates[5];
 
6473
    dof_coordinates[0] = 0.333333333333333*vertex_coordinates[0] + 0.333333333333333*vertex_coordinates[2] + 0.333333333333333*vertex_coordinates[4];
 
6474
    dof_coordinates[1] = 0.333333333333333*vertex_coordinates[1] + 0.333333333333333*vertex_coordinates[3] + 0.333333333333333*vertex_coordinates[5];
6475
6475
  }
6476
6476
 
6477
6477
  /// Return the number of sub dofmaps (for a mixed element)
6673
6673
  }
6674
6674
 
6675
6675
  /// Tabulate the coordinates of all dofs on a cell
6676
 
  virtual void tabulate_coordinates(double** dof_coordinates,
 
6676
  virtual void tabulate_coordinates(double* dof_coordinates,
6677
6677
                                    const double* vertex_coordinates) const
6678
6678
  {
6679
 
    dof_coordinates[0][0] = vertex_coordinates[0];
6680
 
    dof_coordinates[0][1] = vertex_coordinates[1];
6681
 
    dof_coordinates[1][0] = vertex_coordinates[2];
6682
 
    dof_coordinates[1][1] = vertex_coordinates[3];
6683
 
    dof_coordinates[2][0] = vertex_coordinates[4];
6684
 
    dof_coordinates[2][1] = vertex_coordinates[5];
 
6679
    dof_coordinates[0] = vertex_coordinates[0];
 
6680
    dof_coordinates[1] = vertex_coordinates[1];
 
6681
    dof_coordinates[2] = vertex_coordinates[2];
 
6682
    dof_coordinates[3] = vertex_coordinates[3];
 
6683
    dof_coordinates[4] = vertex_coordinates[4];
 
6684
    dof_coordinates[5] = vertex_coordinates[5];
6685
6685
  }
6686
6686
 
6687
6687
  /// Return the number of sub dofmaps (for a mixed element)
6934
6934
  }
6935
6935
 
6936
6936
  /// Tabulate the coordinates of all dofs on a cell
6937
 
  virtual void tabulate_coordinates(double** dof_coordinates,
 
6937
  virtual void tabulate_coordinates(double* dof_coordinates,
6938
6938
                                    const double* vertex_coordinates) const
6939
6939
  {
6940
 
    dof_coordinates[0][0] = vertex_coordinates[0];
6941
 
    dof_coordinates[0][1] = vertex_coordinates[1];
6942
 
    dof_coordinates[1][0] = vertex_coordinates[2];
6943
 
    dof_coordinates[1][1] = vertex_coordinates[3];
6944
 
    dof_coordinates[2][0] = vertex_coordinates[4];
6945
 
    dof_coordinates[2][1] = vertex_coordinates[5];
6946
 
    dof_coordinates[3][0] = 0.5*vertex_coordinates[2] + 0.5*vertex_coordinates[4];
6947
 
    dof_coordinates[3][1] = 0.5*vertex_coordinates[3] + 0.5*vertex_coordinates[5];
6948
 
    dof_coordinates[4][0] = 0.5*vertex_coordinates[0] + 0.5*vertex_coordinates[4];
6949
 
    dof_coordinates[4][1] = 0.5*vertex_coordinates[1] + 0.5*vertex_coordinates[5];
6950
 
    dof_coordinates[5][0] = 0.5*vertex_coordinates[0] + 0.5*vertex_coordinates[2];
6951
 
    dof_coordinates[5][1] = 0.5*vertex_coordinates[1] + 0.5*vertex_coordinates[3];
 
6940
    dof_coordinates[0] = vertex_coordinates[0];
 
6941
    dof_coordinates[1] = vertex_coordinates[1];
 
6942
    dof_coordinates[2] = vertex_coordinates[2];
 
6943
    dof_coordinates[3] = vertex_coordinates[3];
 
6944
    dof_coordinates[4] = vertex_coordinates[4];
 
6945
    dof_coordinates[5] = vertex_coordinates[5];
 
6946
    dof_coordinates[6] = 0.5*vertex_coordinates[2] + 0.5*vertex_coordinates[4];
 
6947
    dof_coordinates[7] = 0.5*vertex_coordinates[3] + 0.5*vertex_coordinates[5];
 
6948
    dof_coordinates[8] = 0.5*vertex_coordinates[0] + 0.5*vertex_coordinates[4];
 
6949
    dof_coordinates[9] = 0.5*vertex_coordinates[1] + 0.5*vertex_coordinates[5];
 
6950
    dof_coordinates[10] = 0.5*vertex_coordinates[0] + 0.5*vertex_coordinates[2];
 
6951
    dof_coordinates[11] = 0.5*vertex_coordinates[1] + 0.5*vertex_coordinates[3];
6952
6952
  }
6953
6953
 
6954
6954
  /// Return the number of sub dofmaps (for a mixed element)
7169
7169
  }
7170
7170
 
7171
7171
  /// Tabulate the coordinates of all dofs on a cell
7172
 
  virtual void tabulate_coordinates(double** dof_coordinates,
 
7172
  virtual void tabulate_coordinates(double* dof_coordinates,
7173
7173
                                    const double* vertex_coordinates) const
7174
7174
  {
7175
 
    dof_coordinates[0][0] = vertex_coordinates[0];
7176
 
    dof_coordinates[0][1] = vertex_coordinates[1];
7177
 
    dof_coordinates[1][0] = vertex_coordinates[2];
7178
 
    dof_coordinates[1][1] = vertex_coordinates[3];
7179
 
    dof_coordinates[2][0] = vertex_coordinates[4];
7180
 
    dof_coordinates[2][1] = vertex_coordinates[5];
 
7175
    dof_coordinates[0] = vertex_coordinates[0];
 
7176
    dof_coordinates[1] = vertex_coordinates[1];
 
7177
    dof_coordinates[2] = vertex_coordinates[2];
 
7178
    dof_coordinates[3] = vertex_coordinates[3];
 
7179
    dof_coordinates[4] = vertex_coordinates[4];
 
7180
    dof_coordinates[5] = vertex_coordinates[5];
7181
7181
  }
7182
7182
 
7183
7183
  /// Return the number of sub dofmaps (for a mixed element)
7257
7257
    const double G0_1_1 = det*(K[2]*K[2] + K[3]*K[3]);
7258
7258
    
7259
7259
    // Compute element tensor
7260
 
    A[0] = 0.5*G0_0_0 + 0.5*G0_0_1 + 0.5*G0_1_0 + 0.5*G0_1_1;
7261
 
    A[1] = -0.5*G0_0_0 - 0.5*G0_1_0;
 
7260
    A[0] = 0.499999999999999*G0_0_0 + 0.5*G0_0_1 + 0.5*G0_1_0 + 0.5*G0_1_1;
 
7261
    A[1] = -0.499999999999999*G0_0_0 - 0.5*G0_1_0;
7262
7262
    A[2] = -0.5*G0_0_1 - 0.5*G0_1_1;
7263
 
    A[3] = -0.5*G0_0_0 - 0.5*G0_0_1;
7264
 
    A[4] = 0.5*G0_0_0;
 
7263
    A[3] = -0.499999999999999*G0_0_0 - 0.5*G0_0_1;
 
7264
    A[4] = 0.499999999999999*G0_0_0;
7265
7265
    A[5] = 0.5*G0_0_1;
7266
7266
    A[6] = -0.5*G0_1_0 - 0.5*G0_1_1;
7267
7267
    A[7] = 0.5*G0_1_0;
7404
7404
    {-1.0, 1.0}};
7405
7405
    
7406
7406
    // Array of non-zero columns
 
7407
    static const unsigned int nzc0[2] = {0, 2};
 
7408
    
 
7409
    // Array of non-zero columns
7407
7410
    static const unsigned int nzc1[2] = {0, 1};
7408
7411
    
7409
 
    // Array of non-zero columns
7410
 
    static const unsigned int nzc0[2] = {0, 2};
7411
 
    
7412
7412
    static const double FE1[6][6] = \
7413
7413
    {{-0.0852599980736871, 0.209607191730006, -0.124347193656319, 0.611401985706872, 0.101159138711827, 0.287438875581301},
7414
7414
    {-0.124347193656319, 0.209607191730006, -0.0852599980736871, 0.287438875581301, 0.101159138711827, 0.611401985706872},
7418
7418
    {0.209607191730006, -0.0852599980736871, -0.124347193656319, 0.101159138711827, 0.611401985706872, 0.287438875581301}};
7419
7419
    
7420
7420
    static const double FE1_D01[6][5] = \
7421
 
    {{0.563843963708493, -0.0722665257878755, 2.63611048949637, -0.491577437920616, -2.63611048949637},
7422
 
    {0.0722665257878767, -0.563843963708491, 2.63611048949637, 0.491577437920616, -2.63611048949637},
7423
 
    {0.563843963708492, 1.63611048949637, 0.927733474212123, -2.19995445320486, -0.927733474212123},
7424
 
    {-1.63611048949637, -0.563843963708491, 0.927733474212123, 2.19995445320486, -0.927733474212124},
7425
 
    {0.0722665257878761, 1.63611048949637, 0.436156036291507, -1.70837701528424, -0.436156036291507},
7426
 
    {-1.63611048949637, -0.0722665257878757, 0.436156036291507, 1.70837701528424, -0.436156036291507}};
 
7421
    {{0.563843963708487, -0.0722665257878746, 2.63611048949635, -0.491577437920605, -2.63611048949637},
 
7422
    {0.0722665257878714, -0.563843963708491, 2.63611048949635, 0.491577437920627, -2.63611048949637},
 
7423
    {0.563843963708487, 1.63611048949637, 0.927733474212109, -2.19995445320485, -0.927733474212123},
 
7424
    {-1.63611048949637, -0.563843963708491, 0.927733474212113, 2.19995445320487, -0.927733474212124},
 
7425
    {0.0722665257878706, 1.63611048949637, 0.436156036291493, -1.70837701528423, -0.436156036291507},
 
7426
    {-1.63611048949637, -0.0722665257878746, 0.436156036291497, 1.70837701528425, -0.436156036291507}};
7427
7427
    
7428
7428
    // Array of non-zero columns
7429
7429
    static const unsigned int nzc2[5] = {0, 2, 3, 4, 5};
7430
7430
    
7431
7431
    static const double FE1_D10[6][5] = \
7432
 
    {{0.563843963708493, 1.63611048949637, 0.927733474212123, -0.927733474212123, -2.19995445320486},
7433
 
    {0.0722665257878764, 1.63611048949637, 0.436156036291507, -0.436156036291507, -1.70837701528424},
7434
 
    {0.563843963708493, -0.0722665257878761, 2.63611048949637, -2.63611048949637, -0.491577437920617},
7435
 
    {-1.63611048949637, -0.0722665257878761, 0.436156036291507, -0.436156036291507, 1.70837701528424},
7436
 
    {0.0722665257878763, -0.563843963708493, 2.63611048949637, -2.63611048949637, 0.491577437920616},
7437
 
    {-1.63611048949637, -0.563843963708492, 0.927733474212123, -0.927733474212123, 2.19995445320486}};
 
7432
    {{0.563843963708494, 1.63611048949637, 0.927733474212122, -0.927733474212122, -2.19995445320486},
 
7433
    {0.072266525787878, 1.63611048949637, 0.436156036291507, -0.436156036291507, -1.70837701528425},
 
7434
    {0.563843963708492, -0.0722665257878761, 2.63611048949636, -2.63611048949636, -0.491577437920616},
 
7435
    {-1.63611048949637, -0.0722665257878778, 0.436156036291507, -0.436156036291507, 1.70837701528425},
 
7436
    {0.0722665257878751, -0.563843963708493, 2.63611048949636, -2.63611048949636, 0.491577437920617},
 
7437
    {-1.63611048949637, -0.563843963708494, 0.927733474212122, -0.927733474212122, 2.19995445320486}};
7438
7438
    
7439
7439
    // Array of non-zero columns
7440
7440
    static const unsigned int nzc3[5] = {0, 1, 3, 4, 5};
7732
7732
    static const double FE0_D01[7][1] = \
7733
7733
    {{0.0},
7734
7734
    {0.0},
7735
 
    {-1.90376021590477},
 
7735
    {-1.90376021590478},
7736
7736
    {1.90376021590477},
7737
7737
    {0.0},
7738
7738
    {5.20988266488436},
7739
 
    {-5.20988266488436}};
 
7739
    {-5.20988266488437}};
7740
7740
    
7741
7741
    static const double FE0_D10[7][1] = \
7742
7742
    {{0.0},
7743
7743
    {-1.90376021590477},
7744
7744
    {0.0},
7745
7745
    {1.90376021590477},
7746
 
    {5.20988266488436},
 
7746
    {5.20988266488437},
7747
7747
    {0.0},
7748
7748
    {-5.20988266488436}};
7749
7749
    
7802
7802
      for (unsigned int r = 0; r < 1; r++)
7803
7803
      {
7804
7804
        F1 += FE0[ip][0]*w[3][0];
7805
 
        F4 += FE0_D10[ip][0]*w[3][0];
7806
 
        F5 += FE0_D01[ip][0]*w[3][0];
 
7805
        F2 += FE0_D10[ip][0]*w[3][0];
 
7806
        F3 += FE0_D01[ip][0]*w[3][0];
7807
7807
      } // end loop over 'r'
7808
7808
      
7809
7809
      // Total number of operations to compute function values = 8
7810
7810
      for (unsigned int r = 0; r < 2; r++)
7811
7811
      {
7812
 
        F2 += FE1_D01[ip][r]*w[2][nzc1[r]];
7813
 
        F3 += FE1_D01[ip][r]*w[2][nzc0[r]];
 
7812
        F4 += FE1_D01[ip][r]*w[2][nzc1[r]];
 
7813
        F5 += FE1_D01[ip][r]*w[2][nzc0[r]];
7814
7814
      } // end loop over 'r'
7815
7815
      
7816
7816
      // Total number of operations to compute function values = 6
7822
7822
      // Number of operations to compute ip constants: 24
7823
7823
      double I[3];
7824
7824
      // Number of operations: 5
7825
 
      I[0] = F1*W7[ip]*(F2*G[0] + F3*G[1]);
 
7825
      I[0] = F1*W7[ip]*(F4*G[0] + F5*G[1]);
7826
7826
      
7827
7827
      // Number of operations: 5
7828
 
      I[1] = F1*W7[ip]*(F2*G[2] + F3*G[0]);
 
7828
      I[1] = F1*W7[ip]*(F4*G[2] + F5*G[0]);
7829
7829
      
7830
7830
      // Number of operations: 14
7831
7831
      I[2] = W7[ip]*(F0*F1*det + F2*F4*G[2] + F3*F5*G[1] + G[0]*(F2*F5 + F3*F4));
7832
7832
      
7833
7833
      
7834
 
      // Number of operations for primary indices: 6
7835
 
      for (unsigned int j = 0; j < 3; j++)
7836
 
      {
7837
 
        // Number of operations to compute entry: 2
7838
 
        A[j] += FE1[ip][j]*I[2];
7839
 
      } // end loop over 'j'
7840
 
      
7841
7834
      // Number of operations for primary indices: 8
7842
7835
      for (unsigned int j = 0; j < 2; j++)
7843
7836
      {
7846
7839
        // Number of operations to compute entry: 2
7847
7840
        A[nzc1[j]] += FE1_D01[ip][j]*I[1];
7848
7841
      } // end loop over 'j'
 
7842
      
 
7843
      // Number of operations for primary indices: 6
 
7844
      for (unsigned int j = 0; j < 3; j++)
 
7845
      {
 
7846
        // Number of operations to compute entry: 2
 
7847
        A[j] += FE1[ip][j]*I[2];
 
7848
      } // end loop over 'j'
7849
7849
    } // end loop over 'ip'
7850
7850
  }
7851
7851
 
8125
8125
    
8126
8126
    
8127
8127
    // Compute geometry tensor
8128
 
    const double G0_6 = det*w[0][6]*(1.0);
8129
 
    const double G0_7 = det*w[0][7]*(1.0);
8130
 
    const double G0_8 = det*w[0][8]*(1.0);
8131
 
    const double G0_9 = det*w[0][9]*(1.0);
8132
 
    const double G0_10 = det*w[0][10]*(1.0);
8133
 
    const double G0_11 = det*w[0][11]*(1.0);
8134
 
    const double G1_0 = det*w[0][0]*(1.0);
8135
 
    const double G1_1 = det*w[0][1]*(1.0);
8136
 
    const double G1_2 = det*w[0][2]*(1.0);
8137
 
    const double G1_3 = det*w[0][3]*(1.0);
8138
 
    const double G1_4 = det*w[0][4]*(1.0);
8139
 
    const double G1_5 = det*w[0][5]*(1.0);
 
8128
    const double G0_0 = det*w[0][0]*(1.0);
 
8129
    const double G0_1 = det*w[0][1]*(1.0);
 
8130
    const double G0_2 = det*w[0][2]*(1.0);
 
8131
    const double G0_3 = det*w[0][3]*(1.0);
 
8132
    const double G0_4 = det*w[0][4]*(1.0);
 
8133
    const double G0_5 = det*w[0][5]*(1.0);
 
8134
    const double G1_6 = det*w[0][6]*(1.0);
 
8135
    const double G1_7 = det*w[0][7]*(1.0);
 
8136
    const double G1_8 = det*w[0][8]*(1.0);
 
8137
    const double G1_9 = det*w[0][9]*(1.0);
 
8138
    const double G1_10 = det*w[0][10]*(1.0);
 
8139
    const double G1_11 = det*w[0][11]*(1.0);
8140
8140
    
8141
8141
    // Compute element tensor
8142
8142
    switch (facet_0)
8154
8154
        A[4] = 0.0;
8155
8155
        A[5] = 0.0;
8156
8156
        A[6] = 0.0;
8157
 
        A[7] = 0.15*G1_1 - 0.0166666666666666*G1_2 + 0.2*G1_3;
8158
 
        A[8] = 0.0166666666666666*G1_1 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_3;
 
8157
        A[7] = 0.15*G0_1 - 0.0166666666666666*G0_2 + 0.2*G0_3;
 
8158
        A[8] = 0.0166666666666666*G0_1 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_3;
8159
8159
        A[9] = 0.0;
8160
8160
        A[10] = 0.0;
8161
8161
        A[11] = 0.0;
8162
8162
        A[12] = 0.0;
8163
 
        A[13] = 0.0166666666666666*G1_1 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_3;
8164
 
        A[14] = -0.0166666666666667*G1_1 + 0.15*G1_2 + 0.2*G1_3;
 
8163
        A[13] = 0.0166666666666666*G0_1 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_3;
 
8164
        A[14] = -0.0166666666666667*G0_1 + 0.15*G0_2 + 0.2*G0_3;
8165
8165
        A[15] = 0.0;
8166
8166
        A[16] = 0.0;
8167
8167
        A[17] = 0.0;
8175
8175
        A[25] = 0.0;
8176
8176
        A[26] = 0.0;
8177
8177
        A[27] = 0.0;
8178
 
        A[28] = 0.15*G0_7 - 0.0166666666666666*G0_8 + 0.2*G0_9;
8179
 
        A[29] = 0.0166666666666666*G0_7 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_9;
 
8178
        A[28] = 0.15*G1_7 - 0.0166666666666666*G1_8 + 0.2*G1_9;
 
8179
        A[29] = 0.0166666666666666*G1_7 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_9;
8180
8180
        A[30] = 0.0;
8181
8181
        A[31] = 0.0;
8182
8182
        A[32] = 0.0;
8183
8183
        A[33] = 0.0;
8184
 
        A[34] = 0.0166666666666666*G0_7 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_9;
8185
 
        A[35] = -0.0166666666666667*G0_7 + 0.15*G0_8 + 0.2*G0_9;
 
8184
        A[34] = 0.0166666666666666*G1_7 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_9;
 
8185
        A[35] = -0.0166666666666667*G1_7 + 0.15*G1_8 + 0.2*G1_9;
8186
8186
          break;
8187
8187
        }
8188
8188
      case 1:
8194
8194
        A[4] = 0.0;
8195
8195
        A[5] = 0.0;
8196
8196
        A[6] = 0.0;
8197
 
        A[7] = 0.15*G1_1 - 0.0166666666666666*G1_2 + 0.2*G1_3;
8198
 
        A[8] = 0.0166666666666666*G1_1 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_3;
 
8197
        A[7] = 0.15*G0_1 - 0.0166666666666666*G0_2 + 0.2*G0_3;
 
8198
        A[8] = 0.0166666666666666*G0_1 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_3;
8199
8199
        A[9] = 0.0;
8200
8200
        A[10] = 0.0;
8201
8201
        A[11] = 0.0;
8202
8202
        A[12] = 0.0;
8203
 
        A[13] = 0.0166666666666666*G1_1 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_3;
8204
 
        A[14] = -0.0166666666666667*G1_1 + 0.15*G1_2 + 0.2*G1_3;
 
8203
        A[13] = 0.0166666666666666*G0_1 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_3;
 
8204
        A[14] = -0.0166666666666667*G0_1 + 0.15*G0_2 + 0.2*G0_3;
8205
8205
        A[15] = 0.0;
8206
8206
        A[16] = 0.0;
8207
8207
        A[17] = 0.0;
8208
8208
        A[18] = 0.0;
8209
8209
        A[19] = 0.0;
8210
8210
        A[20] = 0.0;
8211
 
        A[21] = 0.15*G0_6 - 0.0166666666666666*G0_8 + 0.2*G0_10;
 
8211
        A[21] = 0.15*G1_6 - 0.0166666666666666*G1_8 + 0.2*G1_10;
8212
8212
        A[22] = 0.0;
8213
 
        A[23] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_10;
 
8213
        A[23] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_10;
8214
8214
        A[24] = 0.0;
8215
8215
        A[25] = 0.0;
8216
8216
        A[26] = 0.0;
8220
8220
        A[30] = 0.0;
8221
8221
        A[31] = 0.0;
8222
8222
        A[32] = 0.0;
8223
 
        A[33] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_10;
 
8223
        A[33] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_10;
8224
8224
        A[34] = 0.0;
8225
 
        A[35] = -0.0166666666666666*G0_6 + 0.15*G0_8 + 0.2*G0_10;
 
8225
        A[35] = -0.0166666666666666*G1_6 + 0.15*G1_8 + 0.2*G1_10;
8226
8226
          break;
8227
8227
        }
8228
8228
      case 2:
8234
8234
        A[4] = 0.0;
8235
8235
        A[5] = 0.0;
8236
8236
        A[6] = 0.0;
8237
 
        A[7] = 0.15*G1_1 - 0.0166666666666666*G1_2 + 0.2*G1_3;
8238
 
        A[8] = 0.0166666666666666*G1_1 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_3;
 
8237
        A[7] = 0.15*G0_1 - 0.0166666666666666*G0_2 + 0.2*G0_3;
 
8238
        A[8] = 0.0166666666666666*G0_1 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_3;
8239
8239
        A[9] = 0.0;
8240
8240
        A[10] = 0.0;
8241
8241
        A[11] = 0.0;
8242
8242
        A[12] = 0.0;
8243
 
        A[13] = 0.0166666666666666*G1_1 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_3;
8244
 
        A[14] = -0.0166666666666667*G1_1 + 0.15*G1_2 + 0.2*G1_3;
 
8243
        A[13] = 0.0166666666666666*G0_1 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_3;
 
8244
        A[14] = -0.0166666666666667*G0_1 + 0.15*G0_2 + 0.2*G0_3;
8245
8245
        A[15] = 0.0;
8246
8246
        A[16] = 0.0;
8247
8247
        A[17] = 0.0;
8248
8248
        A[18] = 0.0;
8249
8249
        A[19] = 0.0;
8250
8250
        A[20] = 0.0;
8251
 
        A[21] = 0.15*G0_6 - 0.0166666666666666*G0_7 + 0.2*G0_11;
8252
 
        A[22] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_7 + 0.133333333333333*G0_11;
 
8251
        A[21] = 0.15*G1_6 - 0.0166666666666666*G1_7 + 0.2*G1_11;
 
8252
        A[22] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_7 + 0.133333333333333*G1_11;
8253
8253
        A[23] = 0.0;
8254
8254
        A[24] = 0.0;
8255
8255
        A[25] = 0.0;
8256
8256
        A[26] = 0.0;
8257
 
        A[27] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_7 + 0.133333333333333*G0_11;
8258
 
        A[28] = -0.0166666666666667*G0_6 + 0.15*G0_7 + 0.2*G0_11;
 
8257
        A[27] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_7 + 0.133333333333333*G1_11;
 
8258
        A[28] = -0.0166666666666667*G1_6 + 0.15*G1_7 + 0.2*G1_11;
8259
8259
        A[29] = 0.0;
8260
8260
        A[30] = 0.0;
8261
8261
        A[31] = 0.0;
8275
8275
      {
8276
8276
      case 0:
8277
8277
        {
8278
 
          A[0] = 0.15*G1_0 - 0.0166666666666666*G1_2 + 0.2*G1_4;
 
8278
          A[0] = 0.15*G0_0 - 0.0166666666666666*G0_2 + 0.2*G0_4;
8279
8279
        A[1] = 0.0;
8280
 
        A[2] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_4;
 
8280
        A[2] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_4;
8281
8281
        A[3] = 0.0;
8282
8282
        A[4] = 0.0;
8283
8283
        A[5] = 0.0;
8287
8287
        A[9] = 0.0;
8288
8288
        A[10] = 0.0;
8289
8289
        A[11] = 0.0;
8290
 
        A[12] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_4;
 
8290
        A[12] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_4;
8291
8291
        A[13] = 0.0;
8292
 
        A[14] = -0.0166666666666666*G1_0 + 0.15*G1_2 + 0.2*G1_4;
 
8292
        A[14] = -0.0166666666666666*G0_0 + 0.15*G0_2 + 0.2*G0_4;
8293
8293
        A[15] = 0.0;
8294
8294
        A[16] = 0.0;
8295
8295
        A[17] = 0.0;
8303
8303
        A[25] = 0.0;
8304
8304
        A[26] = 0.0;
8305
8305
        A[27] = 0.0;
8306
 
        A[28] = 0.15*G0_7 - 0.0166666666666666*G0_8 + 0.2*G0_9;
8307
 
        A[29] = 0.0166666666666666*G0_7 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_9;
 
8306
        A[28] = 0.15*G1_7 - 0.0166666666666666*G1_8 + 0.2*G1_9;
 
8307
        A[29] = 0.0166666666666666*G1_7 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_9;
8308
8308
        A[30] = 0.0;
8309
8309
        A[31] = 0.0;
8310
8310
        A[32] = 0.0;
8311
8311
        A[33] = 0.0;
8312
 
        A[34] = 0.0166666666666666*G0_7 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_9;
8313
 
        A[35] = -0.0166666666666667*G0_7 + 0.15*G0_8 + 0.2*G0_9;
 
8312
        A[34] = 0.0166666666666666*G1_7 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_9;
 
8313
        A[35] = -0.0166666666666667*G1_7 + 0.15*G1_8 + 0.2*G1_9;
8314
8314
          break;
8315
8315
        }
8316
8316
      case 1:
8317
8317
        {
8318
 
          A[0] = 0.15*G1_0 - 0.0166666666666666*G1_2 + 0.2*G1_4;
 
8318
          A[0] = 0.15*G0_0 - 0.0166666666666666*G0_2 + 0.2*G0_4;
8319
8319
        A[1] = 0.0;
8320
 
        A[2] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_4;
 
8320
        A[2] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_4;
8321
8321
        A[3] = 0.0;
8322
8322
        A[4] = 0.0;
8323
8323
        A[5] = 0.0;
8327
8327
        A[9] = 0.0;
8328
8328
        A[10] = 0.0;
8329
8329
        A[11] = 0.0;
8330
 
        A[12] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_4;
 
8330
        A[12] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_4;
8331
8331
        A[13] = 0.0;
8332
 
        A[14] = -0.0166666666666666*G1_0 + 0.15*G1_2 + 0.2*G1_4;
 
8332
        A[14] = -0.0166666666666666*G0_0 + 0.15*G0_2 + 0.2*G0_4;
8333
8333
        A[15] = 0.0;
8334
8334
        A[16] = 0.0;
8335
8335
        A[17] = 0.0;
8336
8336
        A[18] = 0.0;
8337
8337
        A[19] = 0.0;
8338
8338
        A[20] = 0.0;
8339
 
        A[21] = 0.15*G0_6 - 0.0166666666666666*G0_8 + 0.2*G0_10;
 
8339
        A[21] = 0.15*G1_6 - 0.0166666666666666*G1_8 + 0.2*G1_10;
8340
8340
        A[22] = 0.0;
8341
 
        A[23] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_10;
 
8341
        A[23] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_10;
8342
8342
        A[24] = 0.0;
8343
8343
        A[25] = 0.0;
8344
8344
        A[26] = 0.0;
8348
8348
        A[30] = 0.0;
8349
8349
        A[31] = 0.0;
8350
8350
        A[32] = 0.0;
8351
 
        A[33] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_10;
 
8351
        A[33] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_10;
8352
8352
        A[34] = 0.0;
8353
 
        A[35] = -0.0166666666666666*G0_6 + 0.15*G0_8 + 0.2*G0_10;
 
8353
        A[35] = -0.0166666666666666*G1_6 + 0.15*G1_8 + 0.2*G1_10;
8354
8354
          break;
8355
8355
        }
8356
8356
      case 2:
8357
8357
        {
8358
 
          A[0] = 0.15*G1_0 - 0.0166666666666666*G1_2 + 0.2*G1_4;
 
8358
          A[0] = 0.15*G0_0 - 0.0166666666666666*G0_2 + 0.2*G0_4;
8359
8359
        A[1] = 0.0;
8360
 
        A[2] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_4;
 
8360
        A[2] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_4;
8361
8361
        A[3] = 0.0;
8362
8362
        A[4] = 0.0;
8363
8363
        A[5] = 0.0;
8367
8367
        A[9] = 0.0;
8368
8368
        A[10] = 0.0;
8369
8369
        A[11] = 0.0;
8370
 
        A[12] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_2 + 0.133333333333333*G1_4;
 
8370
        A[12] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_2 + 0.133333333333333*G0_4;
8371
8371
        A[13] = 0.0;
8372
 
        A[14] = -0.0166666666666666*G1_0 + 0.15*G1_2 + 0.2*G1_4;
 
8372
        A[14] = -0.0166666666666666*G0_0 + 0.15*G0_2 + 0.2*G0_4;
8373
8373
        A[15] = 0.0;
8374
8374
        A[16] = 0.0;
8375
8375
        A[17] = 0.0;
8376
8376
        A[18] = 0.0;
8377
8377
        A[19] = 0.0;
8378
8378
        A[20] = 0.0;
8379
 
        A[21] = 0.15*G0_6 - 0.0166666666666666*G0_7 + 0.2*G0_11;
8380
 
        A[22] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_7 + 0.133333333333333*G0_11;
 
8379
        A[21] = 0.15*G1_6 - 0.0166666666666666*G1_7 + 0.2*G1_11;
 
8380
        A[22] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_7 + 0.133333333333333*G1_11;
8381
8381
        A[23] = 0.0;
8382
8382
        A[24] = 0.0;
8383
8383
        A[25] = 0.0;
8384
8384
        A[26] = 0.0;
8385
 
        A[27] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_7 + 0.133333333333333*G0_11;
8386
 
        A[28] = -0.0166666666666667*G0_6 + 0.15*G0_7 + 0.2*G0_11;
 
8385
        A[27] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_7 + 0.133333333333333*G1_11;
 
8386
        A[28] = -0.0166666666666667*G1_6 + 0.15*G1_7 + 0.2*G1_11;
8387
8387
        A[29] = 0.0;
8388
8388
        A[30] = 0.0;
8389
8389
        A[31] = 0.0;
8403
8403
      {
8404
8404
      case 0:
8405
8405
        {
8406
 
          A[0] = 0.15*G1_0 - 0.0166666666666666*G1_1 + 0.2*G1_5;
8407
 
        A[1] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_1 + 0.133333333333333*G1_5;
 
8406
          A[0] = 0.15*G0_0 - 0.0166666666666666*G0_1 + 0.2*G0_5;
 
8407
        A[1] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_1 + 0.133333333333333*G0_5;
8408
8408
        A[2] = 0.0;
8409
8409
        A[3] = 0.0;
8410
8410
        A[4] = 0.0;
8411
8411
        A[5] = 0.0;
8412
 
        A[6] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_1 + 0.133333333333333*G1_5;
8413
 
        A[7] = -0.0166666666666667*G1_0 + 0.15*G1_1 + 0.2*G1_5;
 
8412
        A[6] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_1 + 0.133333333333333*G0_5;
 
8413
        A[7] = -0.0166666666666667*G0_0 + 0.15*G0_1 + 0.2*G0_5;
8414
8414
        A[8] = 0.0;
8415
8415
        A[9] = 0.0;
8416
8416
        A[10] = 0.0;
8431
8431
        A[25] = 0.0;
8432
8432
        A[26] = 0.0;
8433
8433
        A[27] = 0.0;
8434
 
        A[28] = 0.15*G0_7 - 0.0166666666666666*G0_8 + 0.2*G0_9;
8435
 
        A[29] = 0.0166666666666666*G0_7 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_9;
 
8434
        A[28] = 0.15*G1_7 - 0.0166666666666666*G1_8 + 0.2*G1_9;
 
8435
        A[29] = 0.0166666666666666*G1_7 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_9;
8436
8436
        A[30] = 0.0;
8437
8437
        A[31] = 0.0;
8438
8438
        A[32] = 0.0;
8439
8439
        A[33] = 0.0;
8440
 
        A[34] = 0.0166666666666666*G0_7 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_9;
8441
 
        A[35] = -0.0166666666666667*G0_7 + 0.15*G0_8 + 0.2*G0_9;
 
8440
        A[34] = 0.0166666666666666*G1_7 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_9;
 
8441
        A[35] = -0.0166666666666667*G1_7 + 0.15*G1_8 + 0.2*G1_9;
8442
8442
          break;
8443
8443
        }
8444
8444
      case 1:
8445
8445
        {
8446
 
          A[0] = 0.15*G1_0 - 0.0166666666666666*G1_1 + 0.2*G1_5;
8447
 
        A[1] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_1 + 0.133333333333333*G1_5;
 
8446
          A[0] = 0.15*G0_0 - 0.0166666666666666*G0_1 + 0.2*G0_5;
 
8447
        A[1] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_1 + 0.133333333333333*G0_5;
8448
8448
        A[2] = 0.0;
8449
8449
        A[3] = 0.0;
8450
8450
        A[4] = 0.0;
8451
8451
        A[5] = 0.0;
8452
 
        A[6] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_1 + 0.133333333333333*G1_5;
8453
 
        A[7] = -0.0166666666666667*G1_0 + 0.15*G1_1 + 0.2*G1_5;
 
8452
        A[6] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_1 + 0.133333333333333*G0_5;
 
8453
        A[7] = -0.0166666666666667*G0_0 + 0.15*G0_1 + 0.2*G0_5;
8454
8454
        A[8] = 0.0;
8455
8455
        A[9] = 0.0;
8456
8456
        A[10] = 0.0;
8464
8464
        A[18] = 0.0;
8465
8465
        A[19] = 0.0;
8466
8466
        A[20] = 0.0;
8467
 
        A[21] = 0.15*G0_6 - 0.0166666666666666*G0_8 + 0.2*G0_10;
 
8467
        A[21] = 0.15*G1_6 - 0.0166666666666666*G1_8 + 0.2*G1_10;
8468
8468
        A[22] = 0.0;
8469
 
        A[23] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_10;
 
8469
        A[23] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_10;
8470
8470
        A[24] = 0.0;
8471
8471
        A[25] = 0.0;
8472
8472
        A[26] = 0.0;
8476
8476
        A[30] = 0.0;
8477
8477
        A[31] = 0.0;
8478
8478
        A[32] = 0.0;
8479
 
        A[33] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_8 + 0.133333333333333*G0_10;
 
8479
        A[33] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_8 + 0.133333333333333*G1_10;
8480
8480
        A[34] = 0.0;
8481
 
        A[35] = -0.0166666666666666*G0_6 + 0.15*G0_8 + 0.2*G0_10;
 
8481
        A[35] = -0.0166666666666666*G1_6 + 0.15*G1_8 + 0.2*G1_10;
8482
8482
          break;
8483
8483
        }
8484
8484
      case 2:
8485
8485
        {
8486
 
          A[0] = 0.15*G1_0 - 0.0166666666666666*G1_1 + 0.2*G1_5;
8487
 
        A[1] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_1 + 0.133333333333333*G1_5;
 
8486
          A[0] = 0.15*G0_0 - 0.0166666666666666*G0_1 + 0.2*G0_5;
 
8487
        A[1] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_1 + 0.133333333333333*G0_5;
8488
8488
        A[2] = 0.0;
8489
8489
        A[3] = 0.0;
8490
8490
        A[4] = 0.0;
8491
8491
        A[5] = 0.0;
8492
 
        A[6] = 0.0166666666666667*G1_0 + 0.0166666666666667*G1_1 + 0.133333333333333*G1_5;
8493
 
        A[7] = -0.0166666666666667*G1_0 + 0.15*G1_1 + 0.2*G1_5;
 
8492
        A[6] = 0.0166666666666667*G0_0 + 0.0166666666666667*G0_1 + 0.133333333333333*G0_5;
 
8493
        A[7] = -0.0166666666666667*G0_0 + 0.15*G0_1 + 0.2*G0_5;
8494
8494
        A[8] = 0.0;
8495
8495
        A[9] = 0.0;
8496
8496
        A[10] = 0.0;
8504
8504
        A[18] = 0.0;
8505
8505
        A[19] = 0.0;
8506
8506
        A[20] = 0.0;
8507
 
        A[21] = 0.15*G0_6 - 0.0166666666666666*G0_7 + 0.2*G0_11;
8508
 
        A[22] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_7 + 0.133333333333333*G0_11;
 
8507
        A[21] = 0.15*G1_6 - 0.0166666666666666*G1_7 + 0.2*G1_11;
 
8508
        A[22] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_7 + 0.133333333333333*G1_11;
8509
8509
        A[23] = 0.0;
8510
8510
        A[24] = 0.0;
8511
8511
        A[25] = 0.0;
8512
8512
        A[26] = 0.0;
8513
 
        A[27] = 0.0166666666666667*G0_6 + 0.0166666666666667*G0_7 + 0.133333333333333*G0_11;
8514
 
        A[28] = -0.0166666666666667*G0_6 + 0.15*G0_7 + 0.2*G0_11;
 
8513
        A[27] = 0.0166666666666667*G1_6 + 0.0166666666666667*G1_7 + 0.133333333333333*G1_11;
 
8514
        A[28] = -0.0166666666666667*G1_6 + 0.15*G1_7 + 0.2*G1_11;
8515
8515
        A[29] = 0.0;
8516
8516
        A[30] = 0.0;
8517
8517
        A[31] = 0.0;
8604
8604
    {-1.0, 1.0}};
8605
8605
    
8606
8606
    // Array of non-zero columns
 
8607
    static const unsigned int nzc0[2] = {0, 2};
 
8608
    
 
8609
    // Array of non-zero columns
8607
8610
    static const unsigned int nzc1[2] = {0, 1};
8608
8611
    
8609
 
    // Array of non-zero columns
8610
 
    static const unsigned int nzc0[2] = {0, 2};
8611
 
    
8612
8612
    static const double FE2[6][6] = \
8613
8613
    {{-0.074803807748196, 0.517632341987673, -0.0748038077481966, 0.299215230992787, 0.0335448115231483, 0.299215230992784},
8614
8614
    {-0.074803807748196, -0.0748038077481966, 0.517632341987674, 0.299215230992787, 0.299215230992784, 0.0335448115231483},
8618
8618
    {-0.0847304930939778, -0.048208377815512, -0.0482083778155119, 0.795480226200906, 0.192833511262048, 0.192833511262048}};
8619
8619
    
8620
8620
    static const double FE2_D01[6][5] = \
8621
 
    {{0.633695145960921, -0.633695145960916, 3.26739029192183, 0.0, -3.26739029192184},
8622
 
    {0.63369514596092, 2.26739029192184, 0.366304854039083, -2.90108543788276, -0.366304854039083},
8623
 
    {-2.26739029192183, -0.633695145960916, 0.366304854039083, 2.90108543788275, -0.366304854039083},
8624
 
    {-0.78379396366386, 0.78379396366386, 0.432412072672279, 0.0, -0.432412072672279},
8625
 
    {-0.783793963663859, -0.567587927327719, 1.78379396366386, 1.35138189099158, -1.78379396366386},
8626
 
    {0.567587927327721, 0.78379396366386, 1.78379396366386, -1.35138189099158, -1.78379396366386}};
 
8621
    {{0.633695145960915, -0.633695145960916, 3.26739029192182, 0.0, -3.26739029192184},
 
8622
    {0.633695145960915, 2.26739029192184, 0.366304854039066, -2.90108543788275, -0.366304854039082},
 
8623
    {-2.26739029192184, -0.633695145960916, 0.366304854039073, 2.90108543788276, -0.366304854039083},
 
8624
    {-0.783793963663865, 0.783793963663862, 0.432412072672267, 0.0, -0.432412072672279},
 
8625
    {-0.783793963663864, -0.567587927327719, 1.78379396366385, 1.35138189099159, -1.78379396366386},
 
8626
    {0.567587927327715, 0.783793963663862, 1.78379396366385, -1.35138189099157, -1.78379396366386}};
8627
8627
    
8628
8628
    // Array of non-zero columns
8629
8629
    static const unsigned int nzc2[5] = {0, 2, 3, 4, 5};
8630
8630
    
8631
8631
    static const double FE2_D10[6][5] = \
8632
 
    {{0.63369514596092, 2.26739029192184, 0.366304854039083, -0.366304854039083, -2.90108543788276},
8633
 
    {0.633695145960921, -0.633695145960916, 3.26739029192183, -3.26739029192183, 0.0},
8634
 
    {-2.26739029192183, -0.633695145960916, 0.366304854039083, -0.366304854039083, 2.90108543788275},
8635
 
    {-0.78379396366386, -0.56758792732772, 1.78379396366386, -1.78379396366386, 1.35138189099158},
8636
 
    {-0.78379396366386, 0.78379396366386, 0.432412072672279, -0.432412072672279, 0.0},
8637
 
    {0.56758792732772, 0.78379396366386, 1.78379396366386, -1.78379396366386, -1.35138189099158}};
 
8632
    {{0.633695145960923, 2.26739029192184, 0.366304854039083, -0.366304854039083, -2.90108543788276},
 
8633
    {0.633695145960919, -0.633695145960917, 3.26739029192183, -3.26739029192183, 0.0},
 
8634
    {-2.26739029192183, -0.633695145960919, 0.366304854039083, -0.366304854039083, 2.90108543788275},
 
8635
    {-0.78379396366386, -0.567587927327721, 1.78379396366386, -1.78379396366386, 1.35138189099158},
 
8636
    {-0.783793963663859, 0.783793963663859, 0.432412072672279, -0.432412072672279, 0.0},
 
8637
    {0.567587927327721, 0.783793963663861, 1.78379396366386, -1.78379396366386, -1.35138189099158}};
8638
8638
    
8639
8639
    // Array of non-zero columns
8640
8640
    static const unsigned int nzc3[5] = {0, 1, 3, 4, 5};
8670
8670
      // Total number of operations to compute function values = 8
8671
8671
      for (unsigned int r = 0; r < 2; r++)
8672
8672
      {
8673
 
        F3 += FE0_D01[ip][r]*w[2][nzc1[r]];
8674
 
        F4 += FE0_D01[ip][r]*w[2][nzc0[r]];
 
8673
        F5 += FE0_D01[ip][r]*w[2][nzc1[r]];
 
8674
        F6 += FE0_D01[ip][r]*w[2][nzc0[r]];
8675
8675
      } // end loop over 'r'
8676
8676
      
8677
8677
      // Total number of operations to compute function values = 12
8678
8678
      for (unsigned int r = 0; r < 3; r++)
8679
8679
      {
8680
 
        F0 += FE0[ip][r]*w[3][r];
8681
 
        F2 += FE0[ip][r]*w[0][r];
 
8680
        F0 += FE0[ip][r]*w[0][r];
 
8681
        F2 += FE0[ip][r]*w[3][r];
8682
8682
      } // end loop over 'r'
8683
8683
      
8684
8684
      // Total number of operations to compute function values = 20
8685
8685
      for (unsigned int r = 0; r < 5; r++)
8686
8686
      {
8687
 
        F5 += FE2_D10[ip][r]*w[4][nzc3[r]];
8688
 
        F6 += FE2_D01[ip][r]*w[4][nzc2[r]];
 
8687
        F3 += FE2_D10[ip][r]*w[4][nzc3[r]];
 
8688
        F4 += FE2_D01[ip][r]*w[4][nzc2[r]];
8689
8689
      } // end loop over 'r'
8690
8690
      
8691
8691
      // Total number of operations to compute function values = 12
8697
8697
      // Number of operations to compute ip constants: 25
8698
8698
      double I[3];
8699
8699
      // Number of operations: 5
8700
 
      I[0] = F1*W6[ip]*(F3*G[0] + F4*G[1]);
 
8700
      I[0] = F1*W6[ip]*(F5*G[0] + F6*G[1]);
8701
8701
      
8702
8702
      // Number of operations: 5
8703
 
      I[1] = F1*W6[ip]*(F3*G[2] + F4*G[0]);
 
8703
      I[1] = F1*W6[ip]*(F5*G[2] + F6*G[0]);
8704
8704
      
8705
8705
      // Number of operations: 15
8706
 
      I[2] = W6[ip]*(F1*det*(F2 - F0) + F3*F5*G[2] + F4*F6*G[1] + G[0]*(F3*F6 + F4*F5));
8707
 
      
8708
 
      
8709
 
      // Number of operations for primary indices: 6
8710
 
      for (unsigned int j = 0; j < 3; j++)
8711
 
      {
8712
 
        // Number of operations to compute entry: 2
8713
 
        A[j] += FE0[ip][j]*I[2];
8714
 
      } // end loop over 'j'
 
8706
      I[2] = W6[ip]*(F1*det*(F0 - F2) + F3*F5*G[2] + F4*F6*G[1] + G[0]*(F3*F6 + F4*F5));
 
8707
      
8715
8708
      
8716
8709
      // Number of operations for primary indices: 8
8717
8710
      for (unsigned int j = 0; j < 2; j++)
8721
8714
        // Number of operations to compute entry: 2
8722
8715
        A[nzc1[j]] += FE0_D01[ip][j]*I[1];
8723
8716
      } // end loop over 'j'
 
8717
      
 
8718
      // Number of operations for primary indices: 6
 
8719
      for (unsigned int j = 0; j < 3; j++)
 
8720
      {
 
8721
        // Number of operations to compute entry: 2
 
8722
        A[j] += FE0[ip][j]*I[2];
 
8723
      } // end loop over 'j'
8724
8724
    } // end loop over 'ip'
8725
8725
  }
8726
8726
 
9093
9093
    
9094
9094
    
9095
9095
    // Compute geometry tensor
9096
 
    const double G0_3_6 = det*w[2][3]*w[0][6]*(1.0);
9097
 
    const double G0_3_10 = det*w[2][3]*w[0][10]*(1.0);
9098
 
    const double G0_3_11 = det*w[2][3]*w[0][11]*(1.0);
9099
 
    const double G0_4_7 = det*w[2][4]*w[0][7]*(1.0);
9100
 
    const double G0_4_9 = det*w[2][4]*w[0][9]*(1.0);
9101
 
    const double G0_4_11 = det*w[2][4]*w[0][11]*(1.0);
9102
 
    const double G0_5_8 = det*w[2][5]*w[0][8]*(1.0);
9103
 
    const double G0_5_9 = det*w[2][5]*w[0][9]*(1.0);
9104
 
    const double G0_5_10 = det*w[2][5]*w[0][10]*(1.0);
9105
 
    const double G1_3_3 = det*w[2][3]*w[3][3]*(1.0);
9106
 
    const double G1_3_4 = det*w[2][3]*w[3][4]*(1.0);
9107
 
    const double G1_3_5 = det*w[2][3]*w[3][5]*(1.0);
9108
 
    const double G1_4_3 = det*w[2][4]*w[3][3]*(1.0);
9109
 
    const double G1_4_4 = det*w[2][4]*w[3][4]*(1.0);
9110
 
    const double G1_4_5 = det*w[2][4]*w[3][5]*(1.0);
9111
 
    const double G1_5_3 = det*w[2][5]*w[3][3]*(1.0);
9112
 
    const double G1_5_4 = det*w[2][5]*w[3][4]*(1.0);
9113
 
    const double G1_5_5 = det*w[2][5]*w[3][5]*(1.0);
9114
 
    const double G2_0_0 = det*w[2][0]*w[0][0]*(1.0);
9115
 
    const double G2_0_4 = det*w[2][0]*w[0][4]*(1.0);
9116
 
    const double G2_0_5 = det*w[2][0]*w[0][5]*(1.0);
9117
 
    const double G2_1_1 = det*w[2][1]*w[0][1]*(1.0);
9118
 
    const double G2_1_3 = det*w[2][1]*w[0][3]*(1.0);
9119
 
    const double G2_1_5 = det*w[2][1]*w[0][5]*(1.0);
9120
 
    const double G2_2_2 = det*w[2][2]*w[0][2]*(1.0);
9121
 
    const double G2_2_3 = det*w[2][2]*w[0][3]*(1.0);
9122
 
    const double G2_2_4 = det*w[2][2]*w[0][4]*(1.0);
9123
 
    const double G3_0_0 = det*w[2][0]*w[3][0]*(1.0);
9124
 
    const double G3_0_1 = det*w[2][0]*w[3][1]*(1.0);
9125
 
    const double G3_0_2 = det*w[2][0]*w[3][2]*(1.0);
9126
 
    const double G3_1_0 = det*w[2][1]*w[3][0]*(1.0);
9127
 
    const double G3_1_1 = det*w[2][1]*w[3][1]*(1.0);
9128
 
    const double G3_1_2 = det*w[2][1]*w[3][2]*(1.0);
9129
 
    const double G3_2_0 = det*w[2][2]*w[3][0]*(1.0);
9130
 
    const double G3_2_1 = det*w[2][2]*w[3][1]*(1.0);
9131
 
    const double G3_2_2 = det*w[2][2]*w[3][2]*(1.0);
9132
 
    const double G4_3_6 = det*w[2][3]*w[0][6]*(1.0);
9133
 
    const double G4_3_10 = det*w[2][3]*w[0][10]*(1.0);
9134
 
    const double G4_3_11 = det*w[2][3]*w[0][11]*(1.0);
9135
 
    const double G4_4_7 = det*w[2][4]*w[0][7]*(1.0);
9136
 
    const double G4_4_9 = det*w[2][4]*w[0][9]*(1.0);
9137
 
    const double G4_4_11 = det*w[2][4]*w[0][11]*(1.0);
9138
 
    const double G4_5_8 = det*w[2][5]*w[0][8]*(1.0);
9139
 
    const double G4_5_9 = det*w[2][5]*w[0][9]*(1.0);
9140
 
    const double G4_5_10 = det*w[2][5]*w[0][10]*(1.0);
9141
 
    const double G5_3_3 = det*w[2][3]*w[3][3]*(1.0);
9142
 
    const double G5_3_4 = det*w[2][3]*w[3][4]*(1.0);
9143
 
    const double G5_3_5 = det*w[2][3]*w[3][5]*(1.0);
9144
 
    const double G5_4_3 = det*w[2][4]*w[3][3]*(1.0);
9145
 
    const double G5_4_4 = det*w[2][4]*w[3][4]*(1.0);
9146
 
    const double G5_4_5 = det*w[2][4]*w[3][5]*(1.0);
9147
 
    const double G5_5_3 = det*w[2][5]*w[3][3]*(1.0);
9148
 
    const double G5_5_4 = det*w[2][5]*w[3][4]*(1.0);
9149
 
    const double G5_5_5 = det*w[2][5]*w[3][5]*(1.0);
9150
 
    const double G6_0_0 = det*w[2][0]*w[0][0]*(1.0);
9151
 
    const double G6_0_4 = det*w[2][0]*w[0][4]*(1.0);
9152
 
    const double G6_0_5 = det*w[2][0]*w[0][5]*(1.0);
9153
 
    const double G6_1_1 = det*w[2][1]*w[0][1]*(1.0);
9154
 
    const double G6_1_3 = det*w[2][1]*w[0][3]*(1.0);
9155
 
    const double G6_1_5 = det*w[2][1]*w[0][5]*(1.0);
9156
 
    const double G6_2_2 = det*w[2][2]*w[0][2]*(1.0);
9157
 
    const double G6_2_3 = det*w[2][2]*w[0][3]*(1.0);
9158
 
    const double G6_2_4 = det*w[2][2]*w[0][4]*(1.0);
9159
 
    const double G7_0_0 = det*w[2][0]*w[3][0]*(1.0);
9160
 
    const double G7_0_1 = det*w[2][0]*w[3][1]*(1.0);
9161
 
    const double G7_0_2 = det*w[2][0]*w[3][2]*(1.0);
9162
 
    const double G7_1_0 = det*w[2][1]*w[3][0]*(1.0);
9163
 
    const double G7_1_1 = det*w[2][1]*w[3][1]*(1.0);
9164
 
    const double G7_1_2 = det*w[2][1]*w[3][2]*(1.0);
9165
 
    const double G7_2_0 = det*w[2][2]*w[3][0]*(1.0);
9166
 
    const double G7_2_1 = det*w[2][2]*w[3][1]*(1.0);
9167
 
    const double G7_2_2 = det*w[2][2]*w[3][2]*(1.0);
 
9096
    const double G0_0_0 = det*w[3][0]*w[2][0]*(1.0);
 
9097
    const double G0_0_1 = det*w[3][0]*w[2][1]*(1.0);
 
9098
    const double G0_0_2 = det*w[3][0]*w[2][2]*(1.0);
 
9099
    const double G0_1_0 = det*w[3][1]*w[2][0]*(1.0);
 
9100
    const double G0_1_1 = det*w[3][1]*w[2][1]*(1.0);
 
9101
    const double G0_1_2 = det*w[3][1]*w[2][2]*(1.0);
 
9102
    const double G0_2_0 = det*w[3][2]*w[2][0]*(1.0);
 
9103
    const double G0_2_1 = det*w[3][2]*w[2][1]*(1.0);
 
9104
    const double G0_2_2 = det*w[3][2]*w[2][2]*(1.0);
 
9105
    const double G1_0_0 = det*w[3][0]*w[2][0]*(1.0);
 
9106
    const double G1_0_1 = det*w[3][0]*w[2][1]*(1.0);
 
9107
    const double G1_0_2 = det*w[3][0]*w[2][2]*(1.0);
 
9108
    const double G1_1_0 = det*w[3][1]*w[2][0]*(1.0);
 
9109
    const double G1_1_1 = det*w[3][1]*w[2][1]*(1.0);
 
9110
    const double G1_1_2 = det*w[3][1]*w[2][2]*(1.0);
 
9111
    const double G1_2_0 = det*w[3][2]*w[2][0]*(1.0);
 
9112
    const double G1_2_1 = det*w[3][2]*w[2][1]*(1.0);
 
9113
    const double G1_2_2 = det*w[3][2]*w[2][2]*(1.0);
 
9114
    const double G2_0_0 = det*w[0][0]*w[2][0]*(1.0);
 
9115
    const double G2_1_1 = det*w[0][1]*w[2][1]*(1.0);
 
9116
    const double G2_2_2 = det*w[0][2]*w[2][2]*(1.0);
 
9117
    const double G2_3_1 = det*w[0][3]*w[2][1]*(1.0);
 
9118
    const double G2_3_2 = det*w[0][3]*w[2][2]*(1.0);
 
9119
    const double G2_4_0 = det*w[0][4]*w[2][0]*(1.0);
 
9120
    const double G2_4_2 = det*w[0][4]*w[2][2]*(1.0);
 
9121
    const double G2_5_0 = det*w[0][5]*w[2][0]*(1.0);
 
9122
    const double G2_5_1 = det*w[0][5]*w[2][1]*(1.0);
 
9123
    const double G3_0_0 = det*w[0][0]*w[2][0]*(1.0);
 
9124
    const double G3_1_1 = det*w[0][1]*w[2][1]*(1.0);
 
9125
    const double G3_2_2 = det*w[0][2]*w[2][2]*(1.0);
 
9126
    const double G3_3_1 = det*w[0][3]*w[2][1]*(1.0);
 
9127
    const double G3_3_2 = det*w[0][3]*w[2][2]*(1.0);
 
9128
    const double G3_4_0 = det*w[0][4]*w[2][0]*(1.0);
 
9129
    const double G3_4_2 = det*w[0][4]*w[2][2]*(1.0);
 
9130
    const double G3_5_0 = det*w[0][5]*w[2][0]*(1.0);
 
9131
    const double G3_5_1 = det*w[0][5]*w[2][1]*(1.0);
 
9132
    const double G4_3_3 = det*w[3][3]*w[2][3]*(1.0);
 
9133
    const double G4_3_4 = det*w[3][3]*w[2][4]*(1.0);
 
9134
    const double G4_3_5 = det*w[3][3]*w[2][5]*(1.0);
 
9135
    const double G4_4_3 = det*w[3][4]*w[2][3]*(1.0);
 
9136
    const double G4_4_4 = det*w[3][4]*w[2][4]*(1.0);
 
9137
    const double G4_4_5 = det*w[3][4]*w[2][5]*(1.0);
 
9138
    const double G4_5_3 = det*w[3][5]*w[2][3]*(1.0);
 
9139
    const double G4_5_4 = det*w[3][5]*w[2][4]*(1.0);
 
9140
    const double G4_5_5 = det*w[3][5]*w[2][5]*(1.0);
 
9141
    const double G5_3_3 = det*w[3][3]*w[2][3]*(1.0);
 
9142
    const double G5_3_4 = det*w[3][3]*w[2][4]*(1.0);
 
9143
    const double G5_3_5 = det*w[3][3]*w[2][5]*(1.0);
 
9144
    const double G5_4_3 = det*w[3][4]*w[2][3]*(1.0);
 
9145
    const double G5_4_4 = det*w[3][4]*w[2][4]*(1.0);
 
9146
    const double G5_4_5 = det*w[3][4]*w[2][5]*(1.0);
 
9147
    const double G5_5_3 = det*w[3][5]*w[2][3]*(1.0);
 
9148
    const double G5_5_4 = det*w[3][5]*w[2][4]*(1.0);
 
9149
    const double G5_5_5 = det*w[3][5]*w[2][5]*(1.0);
 
9150
    const double G6_6_3 = det*w[0][6]*w[2][3]*(1.0);
 
9151
    const double G6_7_4 = det*w[0][7]*w[2][4]*(1.0);
 
9152
    const double G6_8_5 = det*w[0][8]*w[2][5]*(1.0);
 
9153
    const double G6_9_4 = det*w[0][9]*w[2][4]*(1.0);
 
9154
    const double G6_9_5 = det*w[0][9]*w[2][5]*(1.0);
 
9155
    const double G6_10_3 = det*w[0][10]*w[2][3]*(1.0);
 
9156
    const double G6_10_5 = det*w[0][10]*w[2][5]*(1.0);
 
9157
    const double G6_11_3 = det*w[0][11]*w[2][3]*(1.0);
 
9158
    const double G6_11_4 = det*w[0][11]*w[2][4]*(1.0);
 
9159
    const double G7_6_3 = det*w[0][6]*w[2][3]*(1.0);
 
9160
    const double G7_7_4 = det*w[0][7]*w[2][4]*(1.0);
 
9161
    const double G7_8_5 = det*w[0][8]*w[2][5]*(1.0);
 
9162
    const double G7_9_4 = det*w[0][9]*w[2][4]*(1.0);
 
9163
    const double G7_9_5 = det*w[0][9]*w[2][5]*(1.0);
 
9164
    const double G7_10_3 = det*w[0][10]*w[2][3]*(1.0);
 
9165
    const double G7_10_5 = det*w[0][10]*w[2][5]*(1.0);
 
9166
    const double G7_11_3 = det*w[0][11]*w[2][3]*(1.0);
 
9167
    const double G7_11_4 = det*w[0][11]*w[2][4]*(1.0);
9168
9168
    
9169
9169
    // Compute element tensor
9170
9170
    switch (facet_0)
9175
9175
      {
9176
9176
      case 0:
9177
9177
        {
9178
 
          A[0] = 0.0833333333333332*G4_4_7 + 0.166666666666667*G4_4_9 + 0.0833333333333333*G4_5_8 + 0.166666666666666*G4_5_9 - 0.166666666666667*G5_4_4 - 0.0833333333333333*G5_4_5 - 0.0833333333333333*G5_5_4 - 0.166666666666667*G5_5_5 + 0.0833333333333332*G6_1_1 + 0.166666666666667*G6_1_3 + 0.0833333333333333*G6_2_2 + 0.166666666666666*G6_2_3 - 0.166666666666667*G7_1_1 - 0.0833333333333333*G7_1_2 - 0.0833333333333333*G7_2_1 - 0.166666666666667*G7_2_2;
9179
 
        A[1] = 0.0833333333333332*G0_4_7 + 0.166666666666667*G0_4_9 + 0.0833333333333333*G0_5_8 + 0.166666666666666*G0_5_9 - 0.166666666666667*G1_4_4 - 0.0833333333333333*G1_4_5 - 0.0833333333333333*G1_5_4 - 0.166666666666667*G1_5_5 + 0.0833333333333332*G2_1_1 + 0.166666666666667*G2_1_3 + 0.0833333333333333*G2_2_2 + 0.166666666666666*G2_2_3 - 0.166666666666667*G3_1_1 - 0.0833333333333333*G3_1_2 - 0.0833333333333333*G3_2_1 - 0.166666666666667*G3_2_2;
 
9178
          A[0] = -0.166666666666667*G0_1_1 - 0.0833333333333333*G0_1_2 - 0.0833333333333333*G0_2_1 - 0.166666666666667*G0_2_2 + 0.0833333333333332*G2_1_1 + 0.0833333333333333*G2_2_2 + 0.166666666666667*G2_3_1 + 0.166666666666667*G2_3_2 - 0.166666666666667*G4_4_4 - 0.0833333333333333*G4_4_5 - 0.0833333333333333*G4_5_4 - 0.166666666666667*G4_5_5 + 0.0833333333333332*G6_7_4 + 0.0833333333333333*G6_8_5 + 0.166666666666667*G6_9_4 + 0.166666666666667*G6_9_5;
 
9179
        A[1] = -0.166666666666667*G1_1_1 - 0.0833333333333333*G1_1_2 - 0.0833333333333333*G1_2_1 - 0.166666666666667*G1_2_2 + 0.0833333333333332*G3_1_1 + 0.0833333333333333*G3_2_2 + 0.166666666666667*G3_3_1 + 0.166666666666667*G3_3_2 - 0.166666666666667*G5_4_4 - 0.0833333333333333*G5_4_5 - 0.0833333333333333*G5_5_4 - 0.166666666666667*G5_5_5 + 0.0833333333333332*G7_7_4 + 0.0833333333333333*G7_8_5 + 0.166666666666667*G7_9_4 + 0.166666666666667*G7_9_5;
9180
9180
          break;
9181
9181
        }
9182
9182
      case 1:
9183
9183
        {
9184
 
          A[0] = 0.0833333333333333*G4_3_6 + 0.166666666666667*G4_3_10 + 0.0833333333333333*G4_5_8 + 0.166666666666666*G4_5_10 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_5 - 0.0833333333333333*G5_5_3 - 0.166666666666667*G5_5_5 + 0.0833333333333332*G6_1_1 + 0.166666666666667*G6_1_3 + 0.0833333333333333*G6_2_2 + 0.166666666666666*G6_2_3 - 0.166666666666667*G7_1_1 - 0.0833333333333333*G7_1_2 - 0.0833333333333333*G7_2_1 - 0.166666666666667*G7_2_2;
9185
 
        A[1] = 0.0833333333333333*G0_3_6 + 0.166666666666667*G0_3_10 + 0.0833333333333333*G0_5_8 + 0.166666666666666*G0_5_10 - 0.166666666666667*G1_3_3 - 0.0833333333333333*G1_3_5 - 0.0833333333333333*G1_5_3 - 0.166666666666667*G1_5_5 + 0.0833333333333332*G2_1_1 + 0.166666666666667*G2_1_3 + 0.0833333333333333*G2_2_2 + 0.166666666666666*G2_2_3 - 0.166666666666667*G3_1_1 - 0.0833333333333333*G3_1_2 - 0.0833333333333333*G3_2_1 - 0.166666666666667*G3_2_2;
 
9184
          A[0] = -0.166666666666667*G0_1_1 - 0.0833333333333333*G0_1_2 - 0.0833333333333333*G0_2_1 - 0.166666666666667*G0_2_2 + 0.0833333333333332*G2_1_1 + 0.0833333333333333*G2_2_2 + 0.166666666666667*G2_3_1 + 0.166666666666667*G2_3_2 - 0.166666666666667*G4_3_3 - 0.0833333333333333*G4_3_5 - 0.0833333333333333*G4_5_3 - 0.166666666666667*G4_5_5 + 0.0833333333333333*G6_6_3 + 0.0833333333333333*G6_8_5 + 0.166666666666667*G6_10_3 + 0.166666666666667*G6_10_5;
 
9185
        A[1] = -0.166666666666667*G1_1_1 - 0.0833333333333333*G1_1_2 - 0.0833333333333333*G1_2_1 - 0.166666666666667*G1_2_2 + 0.0833333333333332*G3_1_1 + 0.0833333333333333*G3_2_2 + 0.166666666666667*G3_3_1 + 0.166666666666667*G3_3_2 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_5 - 0.0833333333333333*G5_5_3 - 0.166666666666667*G5_5_5 + 0.0833333333333333*G7_6_3 + 0.0833333333333333*G7_8_5 + 0.166666666666667*G7_10_3 + 0.166666666666667*G7_10_5;
9186
9186
          break;
9187
9187
        }
9188
9188
      case 2:
9189
9189
        {
9190
 
          A[0] = 0.0833333333333333*G4_3_6 + 0.166666666666667*G4_3_11 + 0.0833333333333332*G4_4_7 + 0.166666666666667*G4_4_11 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_4 - 0.0833333333333333*G5_4_3 - 0.166666666666667*G5_4_4 + 0.0833333333333332*G6_1_1 + 0.166666666666667*G6_1_3 + 0.0833333333333333*G6_2_2 + 0.166666666666666*G6_2_3 - 0.166666666666667*G7_1_1 - 0.0833333333333333*G7_1_2 - 0.0833333333333333*G7_2_1 - 0.166666666666667*G7_2_2;
9191
 
        A[1] = 0.0833333333333333*G0_3_6 + 0.166666666666667*G0_3_11 + 0.0833333333333332*G0_4_7 + 0.166666666666667*G0_4_11 - 0.166666666666667*G1_3_3 - 0.0833333333333333*G1_3_4 - 0.0833333333333333*G1_4_3 - 0.166666666666667*G1_4_4 + 0.0833333333333332*G2_1_1 + 0.166666666666667*G2_1_3 + 0.0833333333333333*G2_2_2 + 0.166666666666666*G2_2_3 - 0.166666666666667*G3_1_1 - 0.0833333333333333*G3_1_2 - 0.0833333333333333*G3_2_1 - 0.166666666666667*G3_2_2;
 
9190
          A[0] = -0.166666666666667*G0_1_1 - 0.0833333333333333*G0_1_2 - 0.0833333333333333*G0_2_1 - 0.166666666666667*G0_2_2 + 0.0833333333333332*G2_1_1 + 0.0833333333333333*G2_2_2 + 0.166666666666667*G2_3_1 + 0.166666666666667*G2_3_2 - 0.166666666666667*G4_3_3 - 0.0833333333333333*G4_3_4 - 0.0833333333333333*G4_4_3 - 0.166666666666667*G4_4_4 + 0.0833333333333333*G6_6_3 + 0.0833333333333332*G6_7_4 + 0.166666666666667*G6_11_3 + 0.166666666666667*G6_11_4;
 
9191
        A[1] = -0.166666666666667*G1_1_1 - 0.0833333333333333*G1_1_2 - 0.0833333333333333*G1_2_1 - 0.166666666666667*G1_2_2 + 0.0833333333333332*G3_1_1 + 0.0833333333333333*G3_2_2 + 0.166666666666667*G3_3_1 + 0.166666666666667*G3_3_2 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_4 - 0.0833333333333333*G5_4_3 - 0.166666666666667*G5_4_4 + 0.0833333333333333*G7_6_3 + 0.0833333333333332*G7_7_4 + 0.166666666666667*G7_11_3 + 0.166666666666667*G7_11_4;
9192
9192
          break;
9193
9193
        }
9194
9194
      }
9201
9201
      {
9202
9202
      case 0:
9203
9203
        {
9204
 
          A[0] = 0.0833333333333332*G4_4_7 + 0.166666666666667*G4_4_9 + 0.0833333333333333*G4_5_8 + 0.166666666666666*G4_5_9 - 0.166666666666667*G5_4_4 - 0.0833333333333333*G5_4_5 - 0.0833333333333333*G5_5_4 - 0.166666666666667*G5_5_5 + 0.0833333333333333*G6_0_0 + 0.166666666666667*G6_0_4 + 0.0833333333333333*G6_2_2 + 0.166666666666666*G6_2_4 - 0.166666666666667*G7_0_0 - 0.0833333333333333*G7_0_2 - 0.0833333333333333*G7_2_0 - 0.166666666666667*G7_2_2;
9205
 
        A[1] = 0.0833333333333332*G0_4_7 + 0.166666666666667*G0_4_9 + 0.0833333333333333*G0_5_8 + 0.166666666666666*G0_5_9 - 0.166666666666667*G1_4_4 - 0.0833333333333333*G1_4_5 - 0.0833333333333333*G1_5_4 - 0.166666666666667*G1_5_5 + 0.0833333333333333*G2_0_0 + 0.166666666666667*G2_0_4 + 0.0833333333333333*G2_2_2 + 0.166666666666666*G2_2_4 - 0.166666666666667*G3_0_0 - 0.0833333333333333*G3_0_2 - 0.0833333333333333*G3_2_0 - 0.166666666666667*G3_2_2;
 
9204
          A[0] = -0.166666666666667*G0_0_0 - 0.0833333333333333*G0_0_2 - 0.0833333333333333*G0_2_0 - 0.166666666666667*G0_2_2 + 0.0833333333333333*G2_0_0 + 0.0833333333333333*G2_2_2 + 0.166666666666667*G2_4_0 + 0.166666666666667*G2_4_2 - 0.166666666666667*G4_4_4 - 0.0833333333333333*G4_4_5 - 0.0833333333333333*G4_5_4 - 0.166666666666667*G4_5_5 + 0.0833333333333332*G6_7_4 + 0.0833333333333333*G6_8_5 + 0.166666666666667*G6_9_4 + 0.166666666666667*G6_9_5;
 
9205
        A[1] = -0.166666666666667*G1_0_0 - 0.0833333333333333*G1_0_2 - 0.0833333333333333*G1_2_0 - 0.166666666666667*G1_2_2 + 0.0833333333333333*G3_0_0 + 0.0833333333333333*G3_2_2 + 0.166666666666667*G3_4_0 + 0.166666666666667*G3_4_2 - 0.166666666666667*G5_4_4 - 0.0833333333333333*G5_4_5 - 0.0833333333333333*G5_5_4 - 0.166666666666667*G5_5_5 + 0.0833333333333332*G7_7_4 + 0.0833333333333333*G7_8_5 + 0.166666666666667*G7_9_4 + 0.166666666666667*G7_9_5;
9206
9206
          break;
9207
9207
        }
9208
9208
      case 1:
9209
9209
        {
9210
 
          A[0] = 0.0833333333333333*G4_3_6 + 0.166666666666667*G4_3_10 + 0.0833333333333333*G4_5_8 + 0.166666666666666*G4_5_10 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_5 - 0.0833333333333333*G5_5_3 - 0.166666666666667*G5_5_5 + 0.0833333333333333*G6_0_0 + 0.166666666666667*G6_0_4 + 0.0833333333333333*G6_2_2 + 0.166666666666666*G6_2_4 - 0.166666666666667*G7_0_0 - 0.0833333333333333*G7_0_2 - 0.0833333333333333*G7_2_0 - 0.166666666666667*G7_2_2;
9211
 
        A[1] = 0.0833333333333333*G0_3_6 + 0.166666666666667*G0_3_10 + 0.0833333333333333*G0_5_8 + 0.166666666666666*G0_5_10 - 0.166666666666667*G1_3_3 - 0.0833333333333333*G1_3_5 - 0.0833333333333333*G1_5_3 - 0.166666666666667*G1_5_5 + 0.0833333333333333*G2_0_0 + 0.166666666666667*G2_0_4 + 0.0833333333333333*G2_2_2 + 0.166666666666666*G2_2_4 - 0.166666666666667*G3_0_0 - 0.0833333333333333*G3_0_2 - 0.0833333333333333*G3_2_0 - 0.166666666666667*G3_2_2;
 
9210
          A[0] = -0.166666666666667*G0_0_0 - 0.0833333333333333*G0_0_2 - 0.0833333333333333*G0_2_0 - 0.166666666666667*G0_2_2 + 0.0833333333333333*G2_0_0 + 0.0833333333333333*G2_2_2 + 0.166666666666667*G2_4_0 + 0.166666666666667*G2_4_2 - 0.166666666666667*G4_3_3 - 0.0833333333333333*G4_3_5 - 0.0833333333333333*G4_5_3 - 0.166666666666667*G4_5_5 + 0.0833333333333333*G6_6_3 + 0.0833333333333333*G6_8_5 + 0.166666666666667*G6_10_3 + 0.166666666666667*G6_10_5;
 
9211
        A[1] = -0.166666666666667*G1_0_0 - 0.0833333333333333*G1_0_2 - 0.0833333333333333*G1_2_0 - 0.166666666666667*G1_2_2 + 0.0833333333333333*G3_0_0 + 0.0833333333333333*G3_2_2 + 0.166666666666667*G3_4_0 + 0.166666666666667*G3_4_2 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_5 - 0.0833333333333333*G5_5_3 - 0.166666666666667*G5_5_5 + 0.0833333333333333*G7_6_3 + 0.0833333333333333*G7_8_5 + 0.166666666666667*G7_10_3 + 0.166666666666667*G7_10_5;
9212
9212
          break;
9213
9213
        }
9214
9214
      case 2:
9215
9215
        {
9216
 
          A[0] = 0.0833333333333333*G4_3_6 + 0.166666666666667*G4_3_11 + 0.0833333333333332*G4_4_7 + 0.166666666666667*G4_4_11 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_4 - 0.0833333333333333*G5_4_3 - 0.166666666666667*G5_4_4 + 0.0833333333333333*G6_0_0 + 0.166666666666667*G6_0_4 + 0.0833333333333333*G6_2_2 + 0.166666666666666*G6_2_4 - 0.166666666666667*G7_0_0 - 0.0833333333333333*G7_0_2 - 0.0833333333333333*G7_2_0 - 0.166666666666667*G7_2_2;
9217
 
        A[1] = 0.0833333333333333*G0_3_6 + 0.166666666666667*G0_3_11 + 0.0833333333333332*G0_4_7 + 0.166666666666667*G0_4_11 - 0.166666666666667*G1_3_3 - 0.0833333333333333*G1_3_4 - 0.0833333333333333*G1_4_3 - 0.166666666666667*G1_4_4 + 0.0833333333333333*G2_0_0 + 0.166666666666667*G2_0_4 + 0.0833333333333333*G2_2_2 + 0.166666666666666*G2_2_4 - 0.166666666666667*G3_0_0 - 0.0833333333333333*G3_0_2 - 0.0833333333333333*G3_2_0 - 0.166666666666667*G3_2_2;
 
9216
          A[0] = -0.166666666666667*G0_0_0 - 0.0833333333333333*G0_0_2 - 0.0833333333333333*G0_2_0 - 0.166666666666667*G0_2_2 + 0.0833333333333333*G2_0_0 + 0.0833333333333333*G2_2_2 + 0.166666666666667*G2_4_0 + 0.166666666666667*G2_4_2 - 0.166666666666667*G4_3_3 - 0.0833333333333333*G4_3_4 - 0.0833333333333333*G4_4_3 - 0.166666666666667*G4_4_4 + 0.0833333333333333*G6_6_3 + 0.0833333333333332*G6_7_4 + 0.166666666666667*G6_11_3 + 0.166666666666667*G6_11_4;
 
9217
        A[1] = -0.166666666666667*G1_0_0 - 0.0833333333333333*G1_0_2 - 0.0833333333333333*G1_2_0 - 0.166666666666667*G1_2_2 + 0.0833333333333333*G3_0_0 + 0.0833333333333333*G3_2_2 + 0.166666666666667*G3_4_0 + 0.166666666666667*G3_4_2 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_4 - 0.0833333333333333*G5_4_3 - 0.166666666666667*G5_4_4 + 0.0833333333333333*G7_6_3 + 0.0833333333333332*G7_7_4 + 0.166666666666667*G7_11_3 + 0.166666666666667*G7_11_4;
9218
9218
          break;
9219
9219
        }
9220
9220
      }
9227
9227
      {
9228
9228
      case 0:
9229
9229
        {
9230
 
          A[0] = 0.0833333333333332*G4_4_7 + 0.166666666666667*G4_4_9 + 0.0833333333333333*G4_5_8 + 0.166666666666666*G4_5_9 - 0.166666666666667*G5_4_4 - 0.0833333333333333*G5_4_5 - 0.0833333333333333*G5_5_4 - 0.166666666666667*G5_5_5 + 0.0833333333333333*G6_0_0 + 0.166666666666667*G6_0_5 + 0.0833333333333332*G6_1_1 + 0.166666666666667*G6_1_5 - 0.166666666666667*G7_0_0 - 0.0833333333333333*G7_0_1 - 0.0833333333333333*G7_1_0 - 0.166666666666667*G7_1_1;
9231
 
        A[1] = 0.0833333333333332*G0_4_7 + 0.166666666666667*G0_4_9 + 0.0833333333333333*G0_5_8 + 0.166666666666666*G0_5_9 - 0.166666666666667*G1_4_4 - 0.0833333333333333*G1_4_5 - 0.0833333333333333*G1_5_4 - 0.166666666666667*G1_5_5 + 0.0833333333333333*G2_0_0 + 0.166666666666667*G2_0_5 + 0.0833333333333332*G2_1_1 + 0.166666666666667*G2_1_5 - 0.166666666666667*G3_0_0 - 0.0833333333333333*G3_0_1 - 0.0833333333333333*G3_1_0 - 0.166666666666667*G3_1_1;
 
9230
          A[0] = -0.166666666666667*G0_0_0 - 0.0833333333333333*G0_0_1 - 0.0833333333333333*G0_1_0 - 0.166666666666667*G0_1_1 + 0.0833333333333333*G2_0_0 + 0.0833333333333332*G2_1_1 + 0.166666666666667*G2_5_0 + 0.166666666666667*G2_5_1 - 0.166666666666667*G4_4_4 - 0.0833333333333333*G4_4_5 - 0.0833333333333333*G4_5_4 - 0.166666666666667*G4_5_5 + 0.0833333333333332*G6_7_4 + 0.0833333333333333*G6_8_5 + 0.166666666666667*G6_9_4 + 0.166666666666667*G6_9_5;
 
9231
        A[1] = -0.166666666666667*G1_0_0 - 0.0833333333333333*G1_0_1 - 0.0833333333333333*G1_1_0 - 0.166666666666667*G1_1_1 + 0.0833333333333333*G3_0_0 + 0.0833333333333332*G3_1_1 + 0.166666666666667*G3_5_0 + 0.166666666666667*G3_5_1 - 0.166666666666667*G5_4_4 - 0.0833333333333333*G5_4_5 - 0.0833333333333333*G5_5_4 - 0.166666666666667*G5_5_5 + 0.0833333333333332*G7_7_4 + 0.0833333333333333*G7_8_5 + 0.166666666666667*G7_9_4 + 0.166666666666667*G7_9_5;
9232
9232
          break;
9233
9233
        }
9234
9234
      case 1:
9235
9235
        {
9236
 
          A[0] = 0.0833333333333333*G4_3_6 + 0.166666666666667*G4_3_10 + 0.0833333333333333*G4_5_8 + 0.166666666666666*G4_5_10 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_5 - 0.0833333333333333*G5_5_3 - 0.166666666666667*G5_5_5 + 0.0833333333333333*G6_0_0 + 0.166666666666667*G6_0_5 + 0.0833333333333332*G6_1_1 + 0.166666666666667*G6_1_5 - 0.166666666666667*G7_0_0 - 0.0833333333333333*G7_0_1 - 0.0833333333333333*G7_1_0 - 0.166666666666667*G7_1_1;
9237
 
        A[1] = 0.0833333333333333*G0_3_6 + 0.166666666666667*G0_3_10 + 0.0833333333333333*G0_5_8 + 0.166666666666666*G0_5_10 - 0.166666666666667*G1_3_3 - 0.0833333333333333*G1_3_5 - 0.0833333333333333*G1_5_3 - 0.166666666666667*G1_5_5 + 0.0833333333333333*G2_0_0 + 0.166666666666667*G2_0_5 + 0.0833333333333332*G2_1_1 + 0.166666666666667*G2_1_5 - 0.166666666666667*G3_0_0 - 0.0833333333333333*G3_0_1 - 0.0833333333333333*G3_1_0 - 0.166666666666667*G3_1_1;
 
9236
          A[0] = -0.166666666666667*G0_0_0 - 0.0833333333333333*G0_0_1 - 0.0833333333333333*G0_1_0 - 0.166666666666667*G0_1_1 + 0.0833333333333333*G2_0_0 + 0.0833333333333332*G2_1_1 + 0.166666666666667*G2_5_0 + 0.166666666666667*G2_5_1 - 0.166666666666667*G4_3_3 - 0.0833333333333333*G4_3_5 - 0.0833333333333333*G4_5_3 - 0.166666666666667*G4_5_5 + 0.0833333333333333*G6_6_3 + 0.0833333333333333*G6_8_5 + 0.166666666666667*G6_10_3 + 0.166666666666667*G6_10_5;
 
9237
        A[1] = -0.166666666666667*G1_0_0 - 0.0833333333333333*G1_0_1 - 0.0833333333333333*G1_1_0 - 0.166666666666667*G1_1_1 + 0.0833333333333333*G3_0_0 + 0.0833333333333332*G3_1_1 + 0.166666666666667*G3_5_0 + 0.166666666666667*G3_5_1 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_5 - 0.0833333333333333*G5_5_3 - 0.166666666666667*G5_5_5 + 0.0833333333333333*G7_6_3 + 0.0833333333333333*G7_8_5 + 0.166666666666667*G7_10_3 + 0.166666666666667*G7_10_5;
9238
9238
          break;
9239
9239
        }
9240
9240
      case 2:
9241
9241
        {
9242
 
          A[0] = 0.0833333333333333*G4_3_6 + 0.166666666666667*G4_3_11 + 0.0833333333333332*G4_4_7 + 0.166666666666667*G4_4_11 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_4 - 0.0833333333333333*G5_4_3 - 0.166666666666667*G5_4_4 + 0.0833333333333333*G6_0_0 + 0.166666666666667*G6_0_5 + 0.0833333333333332*G6_1_1 + 0.166666666666667*G6_1_5 - 0.166666666666667*G7_0_0 - 0.0833333333333333*G7_0_1 - 0.0833333333333333*G7_1_0 - 0.166666666666667*G7_1_1;
9243
 
        A[1] = 0.0833333333333333*G0_3_6 + 0.166666666666667*G0_3_11 + 0.0833333333333332*G0_4_7 + 0.166666666666667*G0_4_11 - 0.166666666666667*G1_3_3 - 0.0833333333333333*G1_3_4 - 0.0833333333333333*G1_4_3 - 0.166666666666667*G1_4_4 + 0.0833333333333333*G2_0_0 + 0.166666666666667*G2_0_5 + 0.0833333333333332*G2_1_1 + 0.166666666666667*G2_1_5 - 0.166666666666667*G3_0_0 - 0.0833333333333333*G3_0_1 - 0.0833333333333333*G3_1_0 - 0.166666666666667*G3_1_1;
 
9242
          A[0] = -0.166666666666667*G0_0_0 - 0.0833333333333333*G0_0_1 - 0.0833333333333333*G0_1_0 - 0.166666666666667*G0_1_1 + 0.0833333333333333*G2_0_0 + 0.0833333333333332*G2_1_1 + 0.166666666666667*G2_5_0 + 0.166666666666667*G2_5_1 - 0.166666666666667*G4_3_3 - 0.0833333333333333*G4_3_4 - 0.0833333333333333*G4_4_3 - 0.166666666666667*G4_4_4 + 0.0833333333333333*G6_6_3 + 0.0833333333333332*G6_7_4 + 0.166666666666667*G6_11_3 + 0.166666666666667*G6_11_4;
 
9243
        A[1] = -0.166666666666667*G1_0_0 - 0.0833333333333333*G1_0_1 - 0.0833333333333333*G1_1_0 - 0.166666666666667*G1_1_1 + 0.0833333333333333*G3_0_0 + 0.0833333333333332*G3_1_1 + 0.166666666666667*G3_5_0 + 0.166666666666667*G3_5_1 - 0.166666666666667*G5_3_3 - 0.0833333333333333*G5_3_4 - 0.0833333333333333*G5_4_3 - 0.166666666666667*G5_4_4 + 0.0833333333333333*G7_6_3 + 0.0833333333333332*G7_7_4 + 0.166666666666667*G7_11_3 + 0.166666666666667*G7_11_4;
9244
9244
          break;
9245
9245
        }
9246
9246
      }
9310
9310
    const double G0_1_1 = det*(K[2]*K[2] + K[3]*K[3]);
9311
9311
    
9312
9312
    // Compute element tensor
9313
 
    A[0] = 0.5*G0_0_0 + 0.5*G0_0_1 + 0.5*G0_1_0 + 0.5*G0_1_1;
9314
 
    A[1] = -0.5*G0_0_0 - 0.5*G0_1_0;
 
9313
    A[0] = 0.499999999999999*G0_0_0 + 0.5*G0_0_1 + 0.5*G0_1_0 + 0.5*G0_1_1;
 
9314
    A[1] = -0.499999999999999*G0_0_0 - 0.5*G0_1_0;
9315
9315
    A[2] = -0.5*G0_0_1 - 0.5*G0_1_1;
9316
 
    A[3] = -0.5*G0_0_0 - 0.5*G0_0_1;
9317
 
    A[4] = 0.5*G0_0_0;
 
9316
    A[3] = -0.499999999999999*G0_0_0 - 0.5*G0_0_1;
 
9317
    A[4] = 0.499999999999999*G0_0_0;
9318
9318
    A[5] = 0.5*G0_0_1;
9319
9319
    A[6] = -0.5*G0_1_0 - 0.5*G0_1_1;
9320
9320
    A[7] = 0.5*G0_1_0;
9575
9575
  /// Return a string identifying the form
9576
9576
  virtual const char* signature() const
9577
9577
  {
9578
 
    return "996f902b81205976ede73587192186c9fd9b057164f0036bf925051e4ce236d3afa448345b6b3a7958f9c265483ba7f2701db77c9f0b497566f0fb97007140e6";
 
9578
    return "22988ca63a6060f91b7c480b8ab7bf24c51065b041f895f759d48e86dcf0f01710900a12067f5860e2f8dbc1cfb0e2d74868ae808fddd21a2dee45180a3caa5c";
 
9579
  }
 
9580
 
 
9581
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
9582
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
9583
  {
 
9584
    static const std::vector<std::size_t> position({});
 
9585
    return position[i];
9579
9586
  }
9580
9587
 
9581
9588
  /// Return the rank of the global tensor (r)
9786
9793
  /// Return a string identifying the form
9787
9794
  virtual const char* signature() const
9788
9795
  {
9789
 
    return "382b9803f2a509ae74c16c63bdf4f169f7badc063ce177bbdddb2734e3d32c16d8a809f391e8661c7076ddf293d38a47aaaa21a5cbf54337d67ed1e859993c70";
 
9796
    return "7b2d6d571a3fc8096da034039e9ffc3d34896d27d81e31f6093fb3d04dde0a8718403c574d8648dee47992c1c4ba3d3e01acc0e46f30a86ee27d34cad0424b85";
 
9797
  }
 
9798
 
 
9799
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
9800
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
9801
  {
 
9802
    static const std::vector<std::size_t> position({});
 
9803
    return position[i];
9790
9804
  }
9791
9805
 
9792
9806
  /// Return the rank of the global tensor (r)
9987
10001
  /// Return a string identifying the form
9988
10002
  virtual const char* signature() const
9989
10003
  {
9990
 
    return "6e035dca9d8c4cfc991db0e76f5630afd58ee1f27054a74633cdcce7031cb5bd9579f8e3e13ac55194662a42d680e578a4bc2ee573d5976921af7bd2520c7823";
 
10004
    return "6a19385ca3491801257b4062377ba1d16dd50d1360c0100c4a667e23b10ece3aaf47bdbd3de4bfd0f300f7fba739515284d51087dcc6c0d7ffadc1882ab00a41";
 
10005
  }
 
10006
 
 
10007
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
10008
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
10009
  {
 
10010
    static const std::vector<std::size_t> position({0, 1, 2, 3});
 
10011
    return position[i];
9991
10012
  }
9992
10013
 
9993
10014
  /// Return the rank of the global tensor (r)
10218
10239
  /// Return a string identifying the form
10219
10240
  virtual const char* signature() const
10220
10241
  {
10221
 
    return "67b203854f3ca1f9feac5fc13d4efb8a74a7fda43626869e0658070789e73f79bd72796cb8a56e81cdd5eb5a78de4000403b13f300eb31724ff2d74a8f613902";
 
10242
    return "5f715cd2b90138897df0f27340f0e3c28701f1b8f02d64d3d481872716b2894805c9334298479e7a7bc055ef21d78e745cd85e308de26b63c88e3eccff44c920";
 
10243
  }
 
10244
 
 
10245
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
10246
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
10247
  {
 
10248
    static const std::vector<std::size_t> position({0});
 
10249
    return position[i];
10222
10250
  }
10223
10251
 
10224
10252
  /// Return the rank of the global tensor (r)
10439
10467
  /// Return a string identifying the form
10440
10468
  virtual const char* signature() const
10441
10469
  {
10442
 
    return "262d582e90ac0b556aabf76120c84262cf8eacdf0deef325eaae164dea53db71cf34ae19bc37851a9bbe75ea3b5b8ce05fab5bd50a214f83630342dc10636c62";
 
10470
    return "262e1ea85696b50caeba8b8b3bf08cf748ca5a9743476e2b3d95e7b3aa93c381cda92247a47efafc36e14300ea926b70f7f42d2085571dd68cd77c4a89f2e76a";
 
10471
  }
 
10472
 
 
10473
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
10474
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
10475
  {
 
10476
    static const std::vector<std::size_t> position({0, 1, 2, 3});
 
10477
    return position[i];
10443
10478
  }
10444
10479
 
10445
10480
  /// Return the rank of the global tensor (r)
10680
10715
  /// Return a string identifying the form
10681
10716
  virtual const char* signature() const
10682
10717
  {
10683
 
    return "e42ae4034361a3a536c86cee63a5b8cd51ce72e50484e6cb0b39ea29fe25610b3114d7a8e35e1b7b2de50a46fb89df40008a6ba248887a12af934a86d465e707";
 
10718
    return "4a86d7eeed7126320bed34f866884b960f5dd6c2bfd61cc2e4fea43cbc033cfc1333e6a3891f59cfc17152bcc46412d83bcea94f477471effa8bcd31bbfe16b1";
 
10719
  }
 
10720
 
 
10721
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
10722
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
10723
  {
 
10724
    static const std::vector<std::size_t> position({0});
 
10725
    return position[i];
10684
10726
  }
10685
10727
 
10686
10728
  /// Return the rank of the global tensor (r)
10901
10943
  /// Return a string identifying the form
10902
10944
  virtual const char* signature() const
10903
10945
  {
10904
 
    return "0bd20f5aa0322b2f114265fdb7709713d1fe5f3e18483d8c302ed7577e0a3bc170008fbbde54e3303642ffd332346114a88c418a2c18b071cc1f66f462d0bb01";
 
10946
    return "12ceef6afad4cbf73ce609aad5c02e99c9f5ccbefc26d8acee764fed39fe1c21d2794c886558d5a53771a56a0ad5ce206ddc01943ce89c74328159e703728894";
 
10947
  }
 
10948
 
 
10949
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
10950
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
10951
  {
 
10952
    static const std::vector<std::size_t> position({0, 1, 2, 3, 4});
 
10953
    return position[i];
10905
10954
  }
10906
10955
 
10907
10956
  /// Return the rank of the global tensor (r)
11152
11201
  /// Return a string identifying the form
11153
11202
  virtual const char* signature() const
11154
11203
  {
11155
 
    return "d8e27cee94bb9489ddf24c8b415ef7e35c2cf0f31da9eb510f4fcdbe2dc35719f2874a3c25a41d87a819735bb19961d24b4a0ef32542805b17facd8dcc071c1d";
 
11204
    return "a1f0127a33da284e3775abe2c6ad402f43cb0337d29ad30eed162526b6d0a3bc658ba9e88c905a88cc4f95c8617411a0dcdf8e9bd4b283d21b623a9fb96b920d";
 
11205
  }
 
11206
 
 
11207
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
11208
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
11209
  {
 
11210
    static const std::vector<std::size_t> position({0, 1, 2, 3});
 
11211
    return position[i];
11156
11212
  }
11157
11213
 
11158
11214
  /// Return the rank of the global tensor (r)
11393
11449
  /// Return a string identifying the form
11394
11450
  virtual const char* signature() const
11395
11451
  {
11396
 
    return "996f902b81205976ede73587192186c9fd9b057164f0036bf925051e4ce236d3afa448345b6b3a7958f9c265483ba7f2701db77c9f0b497566f0fb97007140e6";
 
11452
    return "a56ff760d1b2d36392fecaa89295d221b18d120e912a2917bc2e8573297855e6979ab2d877460aedf3ffaa3771279e271eabec6012cb797b652aa5da059b83ed";
 
11453
  }
 
11454
 
 
11455
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
11456
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
11457
  {
 
11458
    static const std::vector<std::size_t> position({});
 
11459
    return position[i];
11397
11460
  }
11398
11461
 
11399
11462
  /// Return the rank of the global tensor (r)
11604
11667
  /// Return a string identifying the form
11605
11668
  virtual const char* signature() const
11606
11669
  {
11607
 
    return "5ee927682358c6c0426041ab22b70a08e5ed403f78f13005173589a5c00c41be670a70ca85fa21afd8fb8bcee737b704b4ee42ec7f4dfef9f5aa6cd90a5c4283";
 
11670
    return "e58507906d4ed11ee413a96a0fc6c639025a4127e4d90f9e99c7bee85f398d70855d6f5e3ae70dcc968b6b0f7967bb5fa54f876c26904fcb75b8950e4bc622c4";
 
11671
  }
 
11672
 
 
11673
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
11674
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
11675
  {
 
11676
    static const std::vector<std::size_t> position({0, 1});
 
11677
    return position[i];
11608
11678
  }
11609
11679
 
11610
11680
  /// Return the rank of the global tensor (r)
11825
11895
  /// Return a string identifying the form
11826
11896
  virtual const char* signature() const
11827
11897
  {
11828
 
    return "48296b40b4112bae76d08039d80fa19c044f0e681d94fac9844b1e50c5b7605ed293905a73630c6269104fd6116b5548e42a6c39d223bed5904d3a91431f4e9a";
 
11898
    return "9993d6ca9cf99f563b68737c2940dad37c25776b1ef177bc5ac304a1d261ad85be05885c5fff342fdbe0e780f4fbcbd3e0dc9d827f9f65a235659180c08cd105";
 
11899
  }
 
11900
 
 
11901
  /// Return original coefficient position for each coefficient (0 <= i < n)
 
11902
  virtual std::size_t original_coefficient_position(std::size_t i) const
 
11903
  {
 
11904
    static const std::vector<std::size_t> position({0});
 
11905
    return position[i];
11829
11906
  }
11830
11907
 
11831
11908
  /// Return the rank of the global tensor (r)
11999
12076
 
12000
12077
// DOLFIN includes
12001
12078
#include <dolfin/common/NoDeleter.h>
12002
 
#include <dolfin/mesh/Restriction.h>
12003
12079
#include <dolfin/fem/FiniteElement.h>
12004
12080
#include <dolfin/fem/DofMap.h>
12005
12081
#include <dolfin/fem/Form.h>
12057
12133
    // Do nothing
12058
12134
  }
12059
12135
 
12060
 
  //--- Constructors for restricted function space, 2 different versions ---
12061
 
 
12062
 
  // Create restricted function space (reference version)
12063
 
  CoefficientSpace___cell_bubble(const dolfin::Restriction& restriction):
12064
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12065
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_2()))),
12066
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_2()),
12067
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12068
 
  {
12069
 
    // Do nothing
12070
 
  }
12071
 
 
12072
 
  // Create restricted function space (shared pointer version)
12073
 
  CoefficientSpace___cell_bubble(std::shared_ptr<const dolfin::Restriction> restriction):
12074
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12075
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_2()))),
12076
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_2()),
12077
 
                                                                                     restriction)))
12078
 
  {
12079
 
    // Do nothing
12080
 
  }
12081
 
 
12082
 
  // Copy constructor
12083
 
  ~CoefficientSpace___cell_bubble()
12084
 
  {
12085
 
  }
12086
 
 
12087
12136
};
12088
12137
 
12089
12138
class CoefficientSpace___cell_cone: public dolfin::FunctionSpace
12131
12180
    // Do nothing
12132
12181
  }
12133
12182
 
12134
 
  //--- Constructors for restricted function space, 2 different versions ---
12135
 
 
12136
 
  // Create restricted function space (reference version)
12137
 
  CoefficientSpace___cell_cone(const dolfin::Restriction& restriction):
12138
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12139
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_1()))),
12140
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_1()),
12141
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12142
 
  {
12143
 
    // Do nothing
12144
 
  }
12145
 
 
12146
 
  // Create restricted function space (shared pointer version)
12147
 
  CoefficientSpace___cell_cone(std::shared_ptr<const dolfin::Restriction> restriction):
12148
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12149
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_1()))),
12150
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_1()),
12151
 
                                                                                     restriction)))
12152
 
  {
12153
 
    // Do nothing
12154
 
  }
12155
 
 
12156
 
  // Copy constructor
12157
 
  ~CoefficientSpace___cell_cone()
12158
 
  {
12159
 
  }
12160
 
 
12161
12183
};
12162
12184
 
12163
12185
class CoefficientSpace___cell_residual: public dolfin::FunctionSpace
12205
12227
    // Do nothing
12206
12228
  }
12207
12229
 
12208
 
  //--- Constructors for restricted function space, 2 different versions ---
12209
 
 
12210
 
  // Create restricted function space (reference version)
12211
 
  CoefficientSpace___cell_residual(const dolfin::Restriction& restriction):
12212
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12213
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
12214
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
12215
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12216
 
  {
12217
 
    // Do nothing
12218
 
  }
12219
 
 
12220
 
  // Create restricted function space (shared pointer version)
12221
 
  CoefficientSpace___cell_residual(std::shared_ptr<const dolfin::Restriction> restriction):
12222
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12223
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
12224
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
12225
 
                                                                                     restriction)))
12226
 
  {
12227
 
    // Do nothing
12228
 
  }
12229
 
 
12230
 
  // Copy constructor
12231
 
  ~CoefficientSpace___cell_residual()
12232
 
  {
12233
 
  }
12234
 
 
12235
12230
};
12236
12231
 
12237
12232
class CoefficientSpace___discrete_dual_solution: public dolfin::FunctionSpace
12279
12274
    // Do nothing
12280
12275
  }
12281
12276
 
12282
 
  //--- Constructors for restricted function space, 2 different versions ---
12283
 
 
12284
 
  // Create restricted function space (reference version)
12285
 
  CoefficientSpace___discrete_dual_solution(const dolfin::Restriction& restriction):
12286
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12287
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12288
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12289
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12290
 
  {
12291
 
    // Do nothing
12292
 
  }
12293
 
 
12294
 
  // Create restricted function space (shared pointer version)
12295
 
  CoefficientSpace___discrete_dual_solution(std::shared_ptr<const dolfin::Restriction> restriction):
12296
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12297
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12298
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12299
 
                                                                                     restriction)))
12300
 
  {
12301
 
    // Do nothing
12302
 
  }
12303
 
 
12304
 
  // Copy constructor
12305
 
  ~CoefficientSpace___discrete_dual_solution()
12306
 
  {
12307
 
  }
12308
 
 
12309
12277
};
12310
12278
 
12311
12279
class CoefficientSpace___discrete_primal_solution: public dolfin::FunctionSpace
12353
12321
    // Do nothing
12354
12322
  }
12355
12323
 
12356
 
  //--- Constructors for restricted function space, 2 different versions ---
12357
 
 
12358
 
  // Create restricted function space (reference version)
12359
 
  CoefficientSpace___discrete_primal_solution(const dolfin::Restriction& restriction):
12360
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12361
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12362
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12363
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12364
 
  {
12365
 
    // Do nothing
12366
 
  }
12367
 
 
12368
 
  // Create restricted function space (shared pointer version)
12369
 
  CoefficientSpace___discrete_primal_solution(std::shared_ptr<const dolfin::Restriction> restriction):
12370
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12371
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12372
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12373
 
                                                                                     restriction)))
12374
 
  {
12375
 
    // Do nothing
12376
 
  }
12377
 
 
12378
 
  // Copy constructor
12379
 
  ~CoefficientSpace___discrete_primal_solution()
12380
 
  {
12381
 
  }
12382
 
 
12383
12324
};
12384
12325
 
12385
12326
class CoefficientSpace___facet_residual: public dolfin::FunctionSpace
12427
12368
    // Do nothing
12428
12369
  }
12429
12370
 
12430
 
  //--- Constructors for restricted function space, 2 different versions ---
12431
 
 
12432
 
  // Create restricted function space (reference version)
12433
 
  CoefficientSpace___facet_residual(const dolfin::Restriction& restriction):
12434
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12435
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
12436
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
12437
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12438
 
  {
12439
 
    // Do nothing
12440
 
  }
12441
 
 
12442
 
  // Create restricted function space (shared pointer version)
12443
 
  CoefficientSpace___facet_residual(std::shared_ptr<const dolfin::Restriction> restriction):
12444
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12445
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
12446
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
12447
 
                                                                                     restriction)))
12448
 
  {
12449
 
    // Do nothing
12450
 
  }
12451
 
 
12452
 
  // Copy constructor
12453
 
  ~CoefficientSpace___facet_residual()
12454
 
  {
12455
 
  }
12456
 
 
12457
12371
};
12458
12372
 
12459
12373
class CoefficientSpace___improved_dual: public dolfin::FunctionSpace
12501
12415
    // Do nothing
12502
12416
  }
12503
12417
 
12504
 
  //--- Constructors for restricted function space, 2 different versions ---
12505
 
 
12506
 
  // Create restricted function space (reference version)
12507
 
  CoefficientSpace___improved_dual(const dolfin::Restriction& restriction):
12508
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12509
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_4()))),
12510
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_4()),
12511
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12512
 
  {
12513
 
    // Do nothing
12514
 
  }
12515
 
 
12516
 
  // Create restricted function space (shared pointer version)
12517
 
  CoefficientSpace___improved_dual(std::shared_ptr<const dolfin::Restriction> restriction):
12518
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12519
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_4()))),
12520
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_4()),
12521
 
                                                                                     restriction)))
12522
 
  {
12523
 
    // Do nothing
12524
 
  }
12525
 
 
12526
 
  // Copy constructor
12527
 
  ~CoefficientSpace___improved_dual()
12528
 
  {
12529
 
  }
12530
 
 
12531
12418
};
12532
12419
 
12533
12420
class CoefficientSpace_f: public dolfin::FunctionSpace
12575
12462
    // Do nothing
12576
12463
  }
12577
12464
 
12578
 
  //--- Constructors for restricted function space, 2 different versions ---
12579
 
 
12580
 
  // Create restricted function space (reference version)
12581
 
  CoefficientSpace_f(const dolfin::Restriction& restriction):
12582
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12583
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12584
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12585
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12586
 
  {
12587
 
    // Do nothing
12588
 
  }
12589
 
 
12590
 
  // Create restricted function space (shared pointer version)
12591
 
  CoefficientSpace_f(std::shared_ptr<const dolfin::Restriction> restriction):
12592
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12593
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12594
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12595
 
                                                                                     restriction)))
12596
 
  {
12597
 
    // Do nothing
12598
 
  }
12599
 
 
12600
 
  // Copy constructor
12601
 
  ~CoefficientSpace_f()
12602
 
  {
12603
 
  }
12604
 
 
12605
12465
};
12606
12466
 
12607
12467
class CoefficientSpace_g: public dolfin::FunctionSpace
12649
12509
    // Do nothing
12650
12510
  }
12651
12511
 
12652
 
  //--- Constructors for restricted function space, 2 different versions ---
12653
 
 
12654
 
  // Create restricted function space (reference version)
12655
 
  CoefficientSpace_g(const dolfin::Restriction& restriction):
12656
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12657
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12658
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12659
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12660
 
  {
12661
 
    // Do nothing
12662
 
  }
12663
 
 
12664
 
  // Create restricted function space (shared pointer version)
12665
 
  CoefficientSpace_g(std::shared_ptr<const dolfin::Restriction> restriction):
12666
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12667
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12668
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12669
 
                                                                                     restriction)))
12670
 
  {
12671
 
    // Do nothing
12672
 
  }
12673
 
 
12674
 
  // Copy constructor
12675
 
  ~CoefficientSpace_g()
12676
 
  {
12677
 
  }
12678
 
 
12679
12512
};
12680
12513
 
12681
12514
class Form_0_FunctionSpace_0: public dolfin::FunctionSpace
12723
12556
    // Do nothing
12724
12557
  }
12725
12558
 
12726
 
  //--- Constructors for restricted function space, 2 different versions ---
12727
 
 
12728
 
  // Create restricted function space (reference version)
12729
 
  Form_0_FunctionSpace_0(const dolfin::Restriction& restriction):
12730
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12731
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12732
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12733
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12734
 
  {
12735
 
    // Do nothing
12736
 
  }
12737
 
 
12738
 
  // Create restricted function space (shared pointer version)
12739
 
  Form_0_FunctionSpace_0(std::shared_ptr<const dolfin::Restriction> restriction):
12740
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12741
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12742
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12743
 
                                                                                     restriction)))
12744
 
  {
12745
 
    // Do nothing
12746
 
  }
12747
 
 
12748
 
  // Copy constructor
12749
 
  ~Form_0_FunctionSpace_0()
12750
 
  {
12751
 
  }
12752
 
 
12753
12559
};
12754
12560
 
12755
12561
class Form_0_FunctionSpace_1: public dolfin::FunctionSpace
12797
12603
    // Do nothing
12798
12604
  }
12799
12605
 
12800
 
  //--- Constructors for restricted function space, 2 different versions ---
12801
 
 
12802
 
  // Create restricted function space (reference version)
12803
 
  Form_0_FunctionSpace_1(const dolfin::Restriction& restriction):
12804
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12805
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12806
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12807
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12808
 
  {
12809
 
    // Do nothing
12810
 
  }
12811
 
 
12812
 
  // Create restricted function space (shared pointer version)
12813
 
  Form_0_FunctionSpace_1(std::shared_ptr<const dolfin::Restriction> restriction):
12814
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12815
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12816
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12817
 
                                                                                     restriction)))
12818
 
  {
12819
 
    // Do nothing
12820
 
  }
12821
 
 
12822
 
  // Copy constructor
12823
 
  ~Form_0_FunctionSpace_1()
12824
 
  {
12825
 
  }
12826
 
 
12827
12606
};
12828
12607
 
12829
12608
class Form_0: public dolfin::Form
12926
12705
    // Do nothing
12927
12706
  }
12928
12707
 
12929
 
  //--- Constructors for restricted function space, 2 different versions ---
12930
 
 
12931
 
  // Create restricted function space (reference version)
12932
 
  Form_1_FunctionSpace_0(const dolfin::Restriction& restriction):
12933
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
12934
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12935
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12936
 
                                                                                     reference_to_no_delete_pointer(restriction))))
12937
 
  {
12938
 
    // Do nothing
12939
 
  }
12940
 
 
12941
 
  // Create restricted function space (shared pointer version)
12942
 
  Form_1_FunctionSpace_0(std::shared_ptr<const dolfin::Restriction> restriction):
12943
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
12944
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
12945
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
12946
 
                                                                                     restriction)))
12947
 
  {
12948
 
    // Do nothing
12949
 
  }
12950
 
 
12951
 
  // Copy constructor
12952
 
  ~Form_1_FunctionSpace_0()
12953
 
  {
12954
 
  }
12955
 
 
12956
12708
};
12957
12709
 
12958
12710
class Form_1: public dolfin::Form
13188
12940
    // Do nothing
13189
12941
  }
13190
12942
 
13191
 
  //--- Constructors for restricted function space, 2 different versions ---
13192
 
 
13193
 
  // Create restricted function space (reference version)
13194
 
  Form_3_FunctionSpace_0(const dolfin::Restriction& restriction):
13195
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
13196
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13197
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13198
 
                                                                                     reference_to_no_delete_pointer(restriction))))
13199
 
  {
13200
 
    // Do nothing
13201
 
  }
13202
 
 
13203
 
  // Create restricted function space (shared pointer version)
13204
 
  Form_3_FunctionSpace_0(std::shared_ptr<const dolfin::Restriction> restriction):
13205
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
13206
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13207
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13208
 
                                                                                     restriction)))
13209
 
  {
13210
 
    // Do nothing
13211
 
  }
13212
 
 
13213
 
  // Copy constructor
13214
 
  ~Form_3_FunctionSpace_0()
13215
 
  {
13216
 
  }
13217
 
 
13218
12943
};
13219
12944
 
13220
12945
class Form_3_FunctionSpace_1: public dolfin::FunctionSpace
13262
12987
    // Do nothing
13263
12988
  }
13264
12989
 
13265
 
  //--- Constructors for restricted function space, 2 different versions ---
13266
 
 
13267
 
  // Create restricted function space (reference version)
13268
 
  Form_3_FunctionSpace_1(const dolfin::Restriction& restriction):
13269
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
13270
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13271
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13272
 
                                                                                     reference_to_no_delete_pointer(restriction))))
13273
 
  {
13274
 
    // Do nothing
13275
 
  }
13276
 
 
13277
 
  // Create restricted function space (shared pointer version)
13278
 
  Form_3_FunctionSpace_1(std::shared_ptr<const dolfin::Restriction> restriction):
13279
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
13280
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13281
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13282
 
                                                                                     restriction)))
13283
 
  {
13284
 
    // Do nothing
13285
 
  }
13286
 
 
13287
 
  // Copy constructor
13288
 
  ~Form_3_FunctionSpace_1()
13289
 
  {
13290
 
  }
13291
 
 
13292
12990
};
13293
12991
 
13294
12992
typedef CoefficientSpace___cell_bubble Form_3_FunctionSpace_2;
13450
13148
    // Do nothing
13451
13149
  }
13452
13150
 
13453
 
  //--- Constructors for restricted function space, 2 different versions ---
13454
 
 
13455
 
  // Create restricted function space (reference version)
13456
 
  Form_4_FunctionSpace_0(const dolfin::Restriction& restriction):
13457
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
13458
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13459
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13460
 
                                                                                     reference_to_no_delete_pointer(restriction))))
13461
 
  {
13462
 
    // Do nothing
13463
 
  }
13464
 
 
13465
 
  // Create restricted function space (shared pointer version)
13466
 
  Form_4_FunctionSpace_0(std::shared_ptr<const dolfin::Restriction> restriction):
13467
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
13468
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13469
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13470
 
                                                                                     restriction)))
13471
 
  {
13472
 
    // Do nothing
13473
 
  }
13474
 
 
13475
 
  // Copy constructor
13476
 
  ~Form_4_FunctionSpace_0()
13477
 
  {
13478
 
  }
13479
 
 
13480
13151
};
13481
13152
 
13482
13153
typedef CoefficientSpace_f Form_4_FunctionSpace_1;
13667
13338
    // Do nothing
13668
13339
  }
13669
13340
 
13670
 
  //--- Constructors for restricted function space, 2 different versions ---
13671
 
 
13672
 
  // Create restricted function space (reference version)
13673
 
  Form_5_FunctionSpace_0(const dolfin::Restriction& restriction):
13674
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
13675
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13676
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13677
 
                                                                                     reference_to_no_delete_pointer(restriction))))
13678
 
  {
13679
 
    // Do nothing
13680
 
  }
13681
 
 
13682
 
  // Create restricted function space (shared pointer version)
13683
 
  Form_5_FunctionSpace_0(std::shared_ptr<const dolfin::Restriction> restriction):
13684
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
13685
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13686
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13687
 
                                                                                     restriction)))
13688
 
  {
13689
 
    // Do nothing
13690
 
  }
13691
 
 
13692
 
  // Copy constructor
13693
 
  ~Form_5_FunctionSpace_0()
13694
 
  {
13695
 
  }
13696
 
 
13697
13341
};
13698
13342
 
13699
13343
class Form_5_FunctionSpace_1: public dolfin::FunctionSpace
13741
13385
    // Do nothing
13742
13386
  }
13743
13387
 
13744
 
  //--- Constructors for restricted function space, 2 different versions ---
13745
 
 
13746
 
  // Create restricted function space (reference version)
13747
 
  Form_5_FunctionSpace_1(const dolfin::Restriction& restriction):
13748
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
13749
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13750
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13751
 
                                                                                     reference_to_no_delete_pointer(restriction))))
13752
 
  {
13753
 
    // Do nothing
13754
 
  }
13755
 
 
13756
 
  // Create restricted function space (shared pointer version)
13757
 
  Form_5_FunctionSpace_1(std::shared_ptr<const dolfin::Restriction> restriction):
13758
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
13759
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13760
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13761
 
                                                                                     restriction)))
13762
 
  {
13763
 
    // Do nothing
13764
 
  }
13765
 
 
13766
 
  // Copy constructor
13767
 
  ~Form_5_FunctionSpace_1()
13768
 
  {
13769
 
  }
13770
 
 
13771
13388
};
13772
13389
 
13773
13390
typedef CoefficientSpace___cell_cone Form_5_FunctionSpace_2;
13929
13546
    // Do nothing
13930
13547
  }
13931
13548
 
13932
 
  //--- Constructors for restricted function space, 2 different versions ---
13933
 
 
13934
 
  // Create restricted function space (reference version)
13935
 
  Form_6_FunctionSpace_0(const dolfin::Restriction& restriction):
13936
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
13937
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13938
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13939
 
                                                                                     reference_to_no_delete_pointer(restriction))))
13940
 
  {
13941
 
    // Do nothing
13942
 
  }
13943
 
 
13944
 
  // Create restricted function space (shared pointer version)
13945
 
  Form_6_FunctionSpace_0(std::shared_ptr<const dolfin::Restriction> restriction):
13946
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
13947
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_3()))),
13948
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_3()),
13949
 
                                                                                     restriction)))
13950
 
  {
13951
 
    // Do nothing
13952
 
  }
13953
 
 
13954
 
  // Copy constructor
13955
 
  ~Form_6_FunctionSpace_0()
13956
 
  {
13957
 
  }
13958
 
 
13959
13549
};
13960
13550
 
13961
13551
typedef CoefficientSpace_f Form_6_FunctionSpace_1;
14158
13748
    // Do nothing
14159
13749
  }
14160
13750
 
14161
 
  //--- Constructors for restricted function space, 2 different versions ---
14162
 
 
14163
 
  // Create restricted function space (reference version)
14164
 
  Form_7_FunctionSpace_0(const dolfin::Restriction& restriction):
14165
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
14166
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_0()))),
14167
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_0()),
14168
 
                                                                                     reference_to_no_delete_pointer(restriction))))
14169
 
  {
14170
 
    // Do nothing
14171
 
  }
14172
 
 
14173
 
  // Create restricted function space (shared pointer version)
14174
 
  Form_7_FunctionSpace_0(std::shared_ptr<const dolfin::Restriction> restriction):
14175
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
14176
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_0()))),
14177
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_0()),
14178
 
                                                                                     restriction)))
14179
 
  {
14180
 
    // Do nothing
14181
 
  }
14182
 
 
14183
 
  // Copy constructor
14184
 
  ~Form_7_FunctionSpace_0()
14185
 
  {
14186
 
  }
14187
 
 
14188
13751
};
14189
13752
 
14190
13753
typedef CoefficientSpace___improved_dual Form_7_FunctionSpace_1;
14375
13938
    // Do nothing
14376
13939
  }
14377
13940
 
14378
 
  //--- Constructors for restricted function space, 2 different versions ---
14379
 
 
14380
 
  // Create restricted function space (reference version)
14381
 
  Form_lhs_FunctionSpace_0(const dolfin::Restriction& restriction):
14382
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
14383
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
14384
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
14385
 
                                                                                     reference_to_no_delete_pointer(restriction))))
14386
 
  {
14387
 
    // Do nothing
14388
 
  }
14389
 
 
14390
 
  // Create restricted function space (shared pointer version)
14391
 
  Form_lhs_FunctionSpace_0(std::shared_ptr<const dolfin::Restriction> restriction):
14392
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
14393
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
14394
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
14395
 
                                                                                     restriction)))
14396
 
  {
14397
 
    // Do nothing
14398
 
  }
14399
 
 
14400
 
  // Copy constructor
14401
 
  ~Form_lhs_FunctionSpace_0()
14402
 
  {
14403
 
  }
14404
 
 
14405
13941
};
14406
13942
 
14407
13943
class Form_lhs_FunctionSpace_1: public dolfin::FunctionSpace
14449
13985
    // Do nothing
14450
13986
  }
14451
13987
 
14452
 
  //--- Constructors for restricted function space, 2 different versions ---
14453
 
 
14454
 
  // Create restricted function space (reference version)
14455
 
  Form_lhs_FunctionSpace_1(const dolfin::Restriction& restriction):
14456
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
14457
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
14458
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
14459
 
                                                                                     reference_to_no_delete_pointer(restriction))))
14460
 
  {
14461
 
    // Do nothing
14462
 
  }
14463
 
 
14464
 
  // Create restricted function space (shared pointer version)
14465
 
  Form_lhs_FunctionSpace_1(std::shared_ptr<const dolfin::Restriction> restriction):
14466
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
14467
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
14468
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
14469
 
                                                                                     restriction)))
14470
 
  {
14471
 
    // Do nothing
14472
 
  }
14473
 
 
14474
 
  // Copy constructor
14475
 
  ~Form_lhs_FunctionSpace_1()
14476
 
  {
14477
 
  }
14478
 
 
14479
13988
};
14480
13989
 
14481
13990
class Form_lhs: public dolfin::Form
14578
14087
    // Do nothing
14579
14088
  }
14580
14089
 
14581
 
  //--- Constructors for restricted function space, 2 different versions ---
14582
 
 
14583
 
  // Create restricted function space (reference version)
14584
 
  Form_rhs_FunctionSpace_0(const dolfin::Restriction& restriction):
14585
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
14586
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
14587
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
14588
 
                                                                                     reference_to_no_delete_pointer(restriction))))
14589
 
  {
14590
 
    // Do nothing
14591
 
  }
14592
 
 
14593
 
  // Create restricted function space (shared pointer version)
14594
 
  Form_rhs_FunctionSpace_0(std::shared_ptr<const dolfin::Restriction> restriction):
14595
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
14596
 
                          std::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(std::shared_ptr<ufc::finite_element>(new adaptivepoisson_finite_element_5()))),
14597
 
                          std::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(std::shared_ptr<ufc::dofmap>(new adaptivepoisson_dofmap_5()),
14598
 
                                                                                     restriction)))
14599
 
  {
14600
 
    // Do nothing
14601
 
  }
14602
 
 
14603
 
  // Copy constructor
14604
 
  ~Form_rhs_FunctionSpace_0()
14605
 
  {
14606
 
  }
14607
 
 
14608
14090
};
14609
14091
 
14610
14092
typedef CoefficientSpace_f Form_rhs_FunctionSpace_1;