~corrado-maurini/dolfin/tao

« back to all changes in this revision

Viewing changes to demo/undocumented/dg-advection-diffusion/cpp/Velocity.h

  • Committer: corrado maurini
  • Date: 2012-12-18 12:16:08 UTC
  • mfrom: (6685.78.207 trunk)
  • Revision ID: corrado.maurini@upmc.fr-20121218121608-nk82ly9jgsld9u84
updating with trunk, fix uint in TAO solver and hacking the check for tao FindTAO.cmake

Show diffs side-by-side

added added

removed removed

Lines of Context:
154
154
      
155
155
      // Table(s) of coefficients.
156
156
      static const double coefficients0[6] = \
157
 
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582064, 0.0544331053951817};
 
157
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582063, 0.0544331053951817};
158
158
      
159
159
      // Compute value(s).
160
160
      for (unsigned int r = 0; r < 6; r++)
190
190
      
191
191
      // Table(s) of coefficients.
192
192
      static const double coefficients0[6] = \
193
 
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582063, 0.0544331053951818};
 
193
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582064, 0.0544331053951818};
194
194
      
195
195
      // Compute value(s).
196
196
      for (unsigned int r = 0; r < 6; r++)
489
489
      
490
490
      // Table(s) of coefficients.
491
491
      static const double coefficients0[6] = \
492
 
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582064, 0.0544331053951817};
 
492
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582063, 0.0544331053951817};
493
493
      
494
494
      // Tables of derivatives of the polynomial base (transpose).
495
495
      static const double dmats0[6][6] = \
497
497
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
498
498
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
499
499
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
500
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
500
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
501
501
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
502
502
      
503
503
      static const double dmats1[6][6] = \
505
505
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
506
506
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
507
507
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
508
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
508
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
509
509
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
510
510
      
511
511
      // Compute reference derivatives.
655
655
      
656
656
      // Table(s) of coefficients.
657
657
      static const double coefficients0[6] = \
658
 
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582063, 0.0544331053951818};
 
658
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582064, 0.0544331053951818};
659
659
      
660
660
      // Tables of derivatives of the polynomial base (transpose).
661
661
      static const double dmats0[6][6] = \
663
663
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
664
664
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
665
665
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
666
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
666
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
667
667
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
668
668
      
669
669
      static const double dmats1[6][6] = \
671
671
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
672
672
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
673
673
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
674
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
674
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
675
675
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
676
676
      
677
677
      // Compute reference derivatives.
829
829
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
830
830
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
831
831
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
832
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
832
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
833
833
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
834
834
      
835
835
      static const double dmats1[6][6] = \
837
837
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
838
838
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
839
839
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
840
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
840
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
841
841
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
842
842
      
843
843
      // Compute reference derivatives.
995
995
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
996
996
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
997
997
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
998
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
998
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
999
999
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
1000
1000
      
1001
1001
      static const double dmats1[6][6] = \
1003
1003
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
1004
1004
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
1005
1005
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
1006
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
1006
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
1007
1007
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
1008
1008
      
1009
1009
      // Compute reference derivatives.
1161
1161
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
1162
1162
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1163
1163
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
1164
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
1164
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
1165
1165
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
1166
1166
      
1167
1167
      static const double dmats1[6][6] = \
1169
1169
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
1170
1170
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
1171
1171
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
1172
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
1172
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
1173
1173
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
1174
1174
      
1175
1175
      // Compute reference derivatives.
1327
1327
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
1328
1328
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
1329
1329
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
1330
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
1330
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
1331
1331
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
1332
1332
      
1333
1333
      static const double dmats1[6][6] = \
1335
1335
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
1336
1336
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
1337
1337
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
1338
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
1338
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
1339
1339
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
1340
1340
      
1341
1341
      // Compute reference derivatives.
1775
1775
      
1776
1776
      // Table(s) of coefficients.
1777
1777
      static const double coefficients0[6] = \
1778
 
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582064, 0.0544331053951817};
 
1778
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582063, 0.0544331053951817};
1779
1779
      
1780
1780
      // Compute value(s).
1781
1781
      for (unsigned int r = 0; r < 6; r++)
1811
1811
      
1812
1812
      // Table(s) of coefficients.
1813
1813
      static const double coefficients0[6] = \
1814
 
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582063, 0.0544331053951818};
 
1814
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582064, 0.0544331053951818};
1815
1815
      
1816
1816
      // Compute value(s).
1817
1817
      for (unsigned int r = 0; r < 6; r++)
1991
1991
      
1992
1992
      // Table(s) of coefficients.
1993
1993
      static const double coefficients0[6] = \
1994
 
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582064, 0.0544331053951817};
 
1994
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582063, 0.0544331053951817};
1995
1995
      
1996
1996
      // Compute value(s).
1997
1997
      for (unsigned int r = 0; r < 6; r++)
2027
2027
      
2028
2028
      // Table(s) of coefficients.
2029
2029
      static const double coefficients0[6] = \
2030
 
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582063, 0.0544331053951818};
 
2030
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582064, 0.0544331053951818};
2031
2031
      
2032
2032
      // Compute value(s).
2033
2033
      for (unsigned int r = 0; r < 6; r++)
2329
2329
      
2330
2330
      // Table(s) of coefficients.
2331
2331
      static const double coefficients0[6] = \
2332
 
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582064, 0.0544331053951817};
 
2332
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582063, 0.0544331053951817};
2333
2333
      
2334
2334
      // Tables of derivatives of the polynomial base (transpose).
2335
2335
      static const double dmats0[6][6] = \
2337
2337
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
2338
2338
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2339
2339
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
2340
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
2340
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
2341
2341
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
2342
2342
      
2343
2343
      static const double dmats1[6][6] = \
2345
2345
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
2346
2346
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
2347
2347
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
2348
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
2348
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
2349
2349
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
2350
2350
      
2351
2351
      // Compute reference derivatives.
2495
2495
      
2496
2496
      // Table(s) of coefficients.
2497
2497
      static const double coefficients0[6] = \
2498
 
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582063, 0.0544331053951818};
 
2498
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582064, 0.0544331053951818};
2499
2499
      
2500
2500
      // Tables of derivatives of the polynomial base (transpose).
2501
2501
      static const double dmats0[6][6] = \
2503
2503
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
2504
2504
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2505
2505
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
2506
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
2506
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
2507
2507
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
2508
2508
      
2509
2509
      static const double dmats1[6][6] = \
2511
2511
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
2512
2512
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
2513
2513
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
2514
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
2514
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
2515
2515
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
2516
2516
      
2517
2517
      // Compute reference derivatives.
2669
2669
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
2670
2670
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2671
2671
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
2672
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
2672
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
2673
2673
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
2674
2674
      
2675
2675
      static const double dmats1[6][6] = \
2677
2677
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
2678
2678
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
2679
2679
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
2680
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
2680
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
2681
2681
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
2682
2682
      
2683
2683
      // Compute reference derivatives.
2835
2835
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
2836
2836
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
2837
2837
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
2838
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
2838
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
2839
2839
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
2840
2840
      
2841
2841
      static const double dmats1[6][6] = \
2843
2843
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
2844
2844
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
2845
2845
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
2846
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
2846
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
2847
2847
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
2848
2848
      
2849
2849
      // Compute reference derivatives.
3001
3001
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
3002
3002
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
3003
3003
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
3004
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
3004
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
3005
3005
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
3006
3006
      
3007
3007
      static const double dmats1[6][6] = \
3009
3009
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
3010
3010
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
3011
3011
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
3012
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
3012
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
3013
3013
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
3014
3014
      
3015
3015
      // Compute reference derivatives.
3167
3167
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
3168
3168
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
3169
3169
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
3170
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
3170
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
3171
3171
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
3172
3172
      
3173
3173
      static const double dmats1[6][6] = \
3175
3175
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
3176
3176
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
3177
3177
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
3178
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
3178
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
3179
3179
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
3180
3180
      
3181
3181
      // Compute reference derivatives.
3325
3325
      
3326
3326
      // Table(s) of coefficients.
3327
3327
      static const double coefficients0[6] = \
3328
 
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582064, 0.0544331053951817};
 
3328
      {0.0, -0.173205080756888, -0.1, 0.121716123890037, 0.0942809041582063, 0.0544331053951817};
3329
3329
      
3330
3330
      // Tables of derivatives of the polynomial base (transpose).
3331
3331
      static const double dmats0[6][6] = \
3333
3333
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
3334
3334
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
3335
3335
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
3336
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
3336
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
3337
3337
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
3338
3338
      
3339
3339
      static const double dmats1[6][6] = \
3341
3341
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
3342
3342
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
3343
3343
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
3344
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
3344
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
3345
3345
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
3346
3346
      
3347
3347
      // Compute reference derivatives.
3491
3491
      
3492
3492
      // Table(s) of coefficients.
3493
3493
      static const double coefficients0[6] = \
3494
 
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582063, 0.0544331053951818};
 
3494
      {0.0, 0.173205080756888, -0.1, 0.121716123890037, -0.0942809041582064, 0.0544331053951818};
3495
3495
      
3496
3496
      // Tables of derivatives of the polynomial base (transpose).
3497
3497
      static const double dmats0[6][6] = \
3499
3499
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
3500
3500
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
3501
3501
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
3502
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
3502
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
3503
3503
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
3504
3504
      
3505
3505
      static const double dmats1[6][6] = \
3507
3507
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
3508
3508
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
3509
3509
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
3510
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
3510
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
3511
3511
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
3512
3512
      
3513
3513
      // Compute reference derivatives.
3665
3665
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
3666
3666
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
3667
3667
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
3668
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
3668
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
3669
3669
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
3670
3670
      
3671
3671
      static const double dmats1[6][6] = \
3673
3673
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
3674
3674
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
3675
3675
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
3676
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
3676
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
3677
3677
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
3678
3678
      
3679
3679
      // Compute reference derivatives.
3831
3831
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
3832
3832
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
3833
3833
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
3834
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
3834
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
3835
3835
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
3836
3836
      
3837
3837
      static const double dmats1[6][6] = \
3839
3839
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
3840
3840
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
3841
3841
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
3842
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
3842
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
3843
3843
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
3844
3844
      
3845
3845
      // Compute reference derivatives.
3997
3997
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
3998
3998
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
3999
3999
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
4000
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
4000
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
4001
4001
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
4002
4002
      
4003
4003
      static const double dmats1[6][6] = \
4005
4005
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
4006
4006
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
4007
4007
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
4008
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
4008
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
4009
4009
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
4010
4010
      
4011
4011
      // Compute reference derivatives.
4163
4163
      {4.89897948556635, 0.0, 0.0, 0.0, 0.0, 0.0},
4164
4164
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
4165
4165
      {0.0, 9.48683298050514, 0.0, 0.0, 0.0, 0.0},
4166
 
      {4.0, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
 
4166
      {4, 0.0, 7.07106781186548, 0.0, 0.0, 0.0},
4167
4167
      {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
4168
4168
      
4169
4169
      static const double dmats1[6][6] = \
4171
4171
      {2.44948974278318, 0.0, 0.0, 0.0, 0.0, 0.0},
4172
4172
      {4.24264068711928, 0.0, 0.0, 0.0, 0.0, 0.0},
4173
4173
      {2.58198889747161, 4.74341649025257, -0.912870929175278, 0.0, 0.0, 0.0},
4174
 
      {2, 6.12372435695794, 3.53553390593274, 0.0, 0.0, 0.0},
 
4174
      {2.0, 6.12372435695795, 3.53553390593274, 0.0, 0.0, 0.0},
4175
4175
      {-2.3094010767585, 0.0, 8.16496580927726, 0.0, 0.0, 0.0}};
4176
4176
      
4177
4177
      // Compute reference derivatives.
5222
5222
 
5223
5223
// DOLFIN includes
5224
5224
#include <dolfin/common/NoDeleter.h>
 
5225
#include <dolfin/mesh/Restriction.h>
5225
5226
#include <dolfin/fem/FiniteElement.h>
5226
5227
#include <dolfin/fem/DofMap.h>
5227
5228
#include <dolfin/fem/Form.h>
5238
5239
{
5239
5240
public:
5240
5241
 
 
5242
  //--- Constructors for standard function space, 2 different versions ---
 
5243
 
 
5244
  // Create standard function space (reference version)
5241
5245
  FunctionSpace(const dolfin::Mesh& mesh):
5242
5246
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(mesh),
5243
5247
                          boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new velocity_finite_element_1()))),
5246
5250
    // Do nothing
5247
5251
  }
5248
5252
 
5249
 
  FunctionSpace(dolfin::Mesh& mesh):
5250
 
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(mesh),
5251
 
                          boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new velocity_finite_element_1()))),
5252
 
                          boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dofmap>(new velocity_dofmap_1()), mesh)))
5253
 
  {
5254
 
    // Do nothing
5255
 
  }
5256
 
 
5257
 
  FunctionSpace(boost::shared_ptr<dolfin::Mesh> mesh):
5258
 
    dolfin::FunctionSpace(mesh,
5259
 
                          boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new velocity_finite_element_1()))),
5260
 
                          boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dofmap>(new velocity_dofmap_1()), *mesh)))
5261
 
  {
5262
 
      // Do nothing
5263
 
  }
5264
 
 
 
5253
  // Create standard function space (shared pointer version)
5265
5254
  FunctionSpace(boost::shared_ptr<const dolfin::Mesh> mesh):
5266
5255
    dolfin::FunctionSpace(mesh,
5267
5256
                          boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new velocity_finite_element_1()))),
5268
5257
                          boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dofmap>(new velocity_dofmap_1()), *mesh)))
5269
5258
  {
5270
 
      // Do nothing
5271
 
  }
5272
 
 
 
5259
    // Do nothing
 
5260
  }
 
5261
 
 
5262
  //--- Constructors for restricted function space, 2 different versions ---
 
5263
 
 
5264
  // Create restricted function space (reference version)
 
5265
  FunctionSpace(const dolfin::Restriction& restriction):
 
5266
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction.mesh()),
 
5267
                          boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new velocity_finite_element_1()))),
 
5268
                          boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dofmap>(new velocity_dofmap_1()),
 
5269
                                                                                     reference_to_no_delete_pointer(restriction))))
 
5270
  {
 
5271
    // Do nothing
 
5272
  }
 
5273
 
 
5274
  // Create restricted function space (shared pointer version)
 
5275
  FunctionSpace(boost::shared_ptr<const dolfin::Restriction> restriction):
 
5276
    dolfin::FunctionSpace(dolfin::reference_to_no_delete_pointer(restriction->mesh()),
 
5277
                          boost::shared_ptr<const dolfin::FiniteElement>(new dolfin::FiniteElement(boost::shared_ptr<ufc::finite_element>(new velocity_finite_element_1()))),
 
5278
                          boost::shared_ptr<const dolfin::DofMap>(new dolfin::DofMap(boost::shared_ptr<ufc::dofmap>(new velocity_dofmap_1()),
 
5279
                                                                                     restriction)))
 
5280
  {
 
5281
    // Do nothing
 
5282
  }
 
5283
 
 
5284
  // Copy constructor
5273
5285
  ~FunctionSpace()
5274
5286
  {
5275
5287
  }