64
64
/// Return the topological dimension of the cell shape
65
virtual unsigned int topological_dimension() const
65
virtual std::size_t topological_dimension() const
70
70
/// Return the geometric dimension of the cell shape
71
virtual unsigned int geometric_dimension() const
71
virtual std::size_t geometric_dimension() const
76
76
/// Return the dimension of the finite element function space
77
virtual unsigned int space_dimension() const
77
virtual std::size_t space_dimension() const
82
82
/// Return the rank of the value space
83
virtual unsigned int value_rank() const
83
virtual std::size_t value_rank() const
88
88
/// Return the dimension of the value space for axis i
89
virtual unsigned int value_dimension(unsigned int i) const
89
virtual std::size_t value_dimension(std::size_t i) const
94
/// Evaluate basis function i at given point in cell
95
virtual void evaluate_basis(unsigned int i,
94
/// Evaluate basis function i at given point x in cell
95
virtual void evaluate_basis(std::size_t i,
97
const double* coordinates,
98
const ufc::cell& c) const
98
const double* vertex_coordinates,
99
int cell_orientation) const
100
// Extract vertex coordinates
101
const double * const * x = c.coordinates;
103
// Compute Jacobian of affine map from reference cell
104
const double J_00 = x[1][0] - x[0][0];
105
const double J_01 = x[2][0] - x[0][0];
106
const double J_02 = x[3][0] - x[0][0];
107
const double J_10 = x[1][1] - x[0][1];
108
const double J_11 = x[2][1] - x[0][1];
109
const double J_12 = x[3][1] - x[0][1];
110
const double J_20 = x[1][2] - x[0][2];
111
const double J_21 = x[2][2] - x[0][2];
112
const double J_22 = x[3][2] - x[0][2];
114
// Compute sub determinants
115
const double d_00 = J_11*J_22 - J_12*J_21;
116
const double d_01 = J_12*J_20 - J_10*J_22;
117
const double d_02 = J_10*J_21 - J_11*J_20;
118
const double d_10 = J_02*J_21 - J_01*J_22;
119
const double d_11 = J_00*J_22 - J_02*J_20;
120
const double d_12 = J_01*J_20 - J_00*J_21;
121
const double d_20 = J_01*J_12 - J_02*J_11;
122
const double d_21 = J_02*J_10 - J_00*J_12;
123
const double d_22 = J_00*J_11 - J_01*J_10;
125
// Compute determinant of Jacobian
126
double detJ = J_00*d_00 + J_10*d_10 + J_20*d_20;
128
// Compute inverse of Jacobian
103
compute_jacobian_tetrahedron_3d(J, vertex_coordinates);
105
// Compute Jacobian inverse and determinant
108
compute_jacobian_inverse_tetrahedron_3d(K, detJ, J);
130
111
// Compute constants
131
const double C0 = x[3][0] + x[2][0] + x[1][0] - x[0][0];
132
const double C1 = x[3][1] + x[2][1] + x[1][1] - x[0][1];
133
const double C2 = x[3][2] + x[2][2] + x[1][2] - x[0][2];
112
const double C0 = vertex_coordinates[9] + vertex_coordinates[6] + vertex_coordinates[3] - vertex_coordinates[0];
113
const double C1 = vertex_coordinates[10] + vertex_coordinates[7] + vertex_coordinates[4] - vertex_coordinates[1];
114
const double C2 = vertex_coordinates[11] + vertex_coordinates[8] + vertex_coordinates[5] - vertex_coordinates[2];
116
// Compute subdeterminants
117
const double d_00 = J[4]*J[8] - J[5]*J[7];
118
const double d_01 = J[5]*J[6] - J[3]*J[8];
119
const double d_02 = J[3]*J[7] - J[4]*J[6];
120
const double d_10 = J[2]*J[7] - J[1]*J[8];
121
const double d_11 = J[0]*J[8] - J[2]*J[6];
122
const double d_12 = J[1]*J[6] - J[0]*J[7];
123
const double d_20 = J[1]*J[5] - J[2]*J[4];
124
const double d_21 = J[2]*J[3] - J[0]*J[5];
125
const double d_22 = J[0]*J[4] - J[1]*J[3];
135
127
// Get coordinates and map to the reference (FIAT) element
136
double X = (d_00*(2.0*coordinates[0] - C0) + d_10*(2.0*coordinates[1] - C1) + d_20*(2.0*coordinates[2] - C2)) / detJ;
137
double Y = (d_01*(2.0*coordinates[0] - C0) + d_11*(2.0*coordinates[1] - C1) + d_21*(2.0*coordinates[2] - C2)) / detJ;
138
double Z = (d_02*(2.0*coordinates[0] - C0) + d_12*(2.0*coordinates[1] - C1) + d_22*(2.0*coordinates[2] - C2)) / detJ;
128
double X = (d_00*(2.0*x[0] - C0) + d_10*(2.0*x[1] - C1) + d_20*(2.0*x[2] - C2)) / detJ;
129
double Y = (d_01*(2.0*x[0] - C0) + d_11*(2.0*x[1] - C1) + d_21*(2.0*x[2] - C2)) / detJ;
130
double Z = (d_02*(2.0*x[0] - C0) + d_12*(2.0*x[1] - C1) + d_22*(2.0*x[2] - C2)) / detJ;
148
// Array of basisvalues.
140
// Array of basisvalues
149
141
double basisvalues[56] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
151
// Declare helper variables.
143
// Declare helper variables
152
144
double tmp0 = 0.5*(2.0 + Y + Z + 2.0*X);
153
145
double tmp1 = 0.25*(Y + Z)*(Y + Z);
154
146
double tmp2 = 0.5*(1.0 + Z + 2.0*Y);
155
147
double tmp3 = 0.5*(1.0 - Z);
156
148
double tmp4 = tmp3*tmp3;
158
// Compute basisvalues.
150
// Compute basisvalues
159
151
basisvalues[0] = 1.0;
160
152
basisvalues[1] = tmp0;
161
153
basisvalues[4] = 1.5*tmp0*basisvalues[1] - 0.5*tmp1*basisvalues[0];
7877
/// Evaluate all basis functions at given point in cell
7869
/// Evaluate all basis functions at given point x in cell
7878
7870
virtual void evaluate_basis_all(double* values,
7879
const double* coordinates,
7880
const ufc::cell& c) const
7872
const double* vertex_coordinates,
7873
int cell_orientation) const
7882
7875
// Helper variable to hold values of a single dof.
7883
7876
double dof_values = 0.0;
7885
// Loop dofs and call evaluate_basis.
7878
// Loop dofs and call evaluate_basis
7886
7879
for (unsigned int r = 0; r < 56; r++)
7888
evaluate_basis(r, &dof_values, coordinates, c);
7881
evaluate_basis(r, &dof_values, x, vertex_coordinates, cell_orientation);
7889
7882
values[r] = dof_values;
7890
7883
}// end loop over 'r'
7893
/// Evaluate order n derivatives of basis function i at given point in cell
7894
virtual void evaluate_basis_derivatives(unsigned int i,
7886
/// Evaluate order n derivatives of basis function i at given point x in cell
7887
virtual void evaluate_basis_derivatives(std::size_t i,
7896
7889
double* values,
7897
const double* coordinates,
7898
const ufc::cell& c) const
7891
const double* vertex_coordinates,
7892
int cell_orientation) const
7900
// Extract vertex coordinates
7901
const double * const * x = c.coordinates;
7903
// Compute Jacobian of affine map from reference cell
7904
const double J_00 = x[1][0] - x[0][0];
7905
const double J_01 = x[2][0] - x[0][0];
7906
const double J_02 = x[3][0] - x[0][0];
7907
const double J_10 = x[1][1] - x[0][1];
7908
const double J_11 = x[2][1] - x[0][1];
7909
const double J_12 = x[3][1] - x[0][1];
7910
const double J_20 = x[1][2] - x[0][2];
7911
const double J_21 = x[2][2] - x[0][2];
7912
const double J_22 = x[3][2] - x[0][2];
7914
// Compute sub determinants
7915
const double d_00 = J_11*J_22 - J_12*J_21;
7916
const double d_01 = J_12*J_20 - J_10*J_22;
7917
const double d_02 = J_10*J_21 - J_11*J_20;
7918
const double d_10 = J_02*J_21 - J_01*J_22;
7919
const double d_11 = J_00*J_22 - J_02*J_20;
7920
const double d_12 = J_01*J_20 - J_00*J_21;
7921
const double d_20 = J_01*J_12 - J_02*J_11;
7922
const double d_21 = J_02*J_10 - J_00*J_12;
7923
const double d_22 = J_00*J_11 - J_01*J_10;
7925
// Compute determinant of Jacobian
7926
double detJ = J_00*d_00 + J_10*d_10 + J_20*d_20;
7928
// Compute inverse of Jacobian
7929
const double K_00 = d_00 / detJ;
7930
const double K_01 = d_10 / detJ;
7931
const double K_02 = d_20 / detJ;
7932
const double K_10 = d_01 / detJ;
7933
const double K_11 = d_11 / detJ;
7934
const double K_12 = d_21 / detJ;
7935
const double K_20 = d_02 / detJ;
7936
const double K_21 = d_12 / detJ;
7937
const double K_22 = d_22 / detJ;
7896
compute_jacobian_tetrahedron_3d(J, vertex_coordinates);
7898
// Compute Jacobian inverse and determinant
7901
compute_jacobian_inverse_tetrahedron_3d(K, detJ, J);
7939
7904
// Compute constants
7940
const double C0 = x[3][0] + x[2][0] + x[1][0] - x[0][0];
7941
const double C1 = x[3][1] + x[2][1] + x[1][1] - x[0][1];
7942
const double C2 = x[3][2] + x[2][2] + x[1][2] - x[0][2];
7905
const double C0 = vertex_coordinates[9] + vertex_coordinates[6] + vertex_coordinates[3] - vertex_coordinates[0];
7906
const double C1 = vertex_coordinates[10] + vertex_coordinates[7] + vertex_coordinates[4] - vertex_coordinates[1];
7907
const double C2 = vertex_coordinates[11] + vertex_coordinates[8] + vertex_coordinates[5] - vertex_coordinates[2];
7909
// Compute subdeterminants
7910
const double d_00 = J[4]*J[8] - J[5]*J[7];
7911
const double d_01 = J[5]*J[6] - J[3]*J[8];
7912
const double d_02 = J[3]*J[7] - J[4]*J[6];
7913
const double d_10 = J[2]*J[7] - J[1]*J[8];
7914
const double d_11 = J[0]*J[8] - J[2]*J[6];
7915
const double d_12 = J[1]*J[6] - J[0]*J[7];
7916
const double d_20 = J[1]*J[5] - J[2]*J[4];
7917
const double d_21 = J[2]*J[3] - J[0]*J[5];
7918
const double d_22 = J[0]*J[4] - J[1]*J[3];
7944
7920
// Get coordinates and map to the reference (FIAT) element
7945
double X = (d_00*(2.0*coordinates[0] - C0) + d_10*(2.0*coordinates[1] - C1) + d_20*(2.0*coordinates[2] - C2)) / detJ;
7946
double Y = (d_01*(2.0*coordinates[0] - C0) + d_11*(2.0*coordinates[1] - C1) + d_21*(2.0*coordinates[2] - C2)) / detJ;
7947
double Z = (d_02*(2.0*coordinates[0] - C0) + d_12*(2.0*coordinates[1] - C1) + d_22*(2.0*coordinates[2] - C2)) / detJ;
7921
double X = (d_00*(2.0*x[0] - C0) + d_10*(2.0*x[1] - C1) + d_20*(2.0*x[2] - C2)) / detJ;
7922
double Y = (d_01*(2.0*x[0] - C0) + d_11*(2.0*x[1] - C1) + d_21*(2.0*x[2] - C2)) / detJ;
7923
double Z = (d_02*(2.0*x[0] - C0) + d_12*(2.0*x[1] - C1) + d_22*(2.0*x[2] - C2)) / detJ;
7950
7926
// Compute number of derivatives.
38294
38271
/// Evaluate linear functional for dof i on the function f
38295
virtual double evaluate_dof(unsigned int i,
38272
virtual double evaluate_dof(std::size_t i,
38296
38273
const ufc::function& f,
38274
const double* vertex_coordinates,
38275
int cell_orientation,
38297
38276
const ufc::cell& c) const
38299
// Declare variables for result of evaluation.
38278
// Declare variables for result of evaluation
38300
38279
double vals[1];
38302
// Declare variable for physical coordinates.
38281
// Declare variable for physical coordinates
38304
const double * const * x = c.coordinates;
38287
y[0] = vertex_coordinates[0];
38288
y[1] = vertex_coordinates[1];
38289
y[2] = vertex_coordinates[2];
38312
38290
f.evaluate(vals, y, c);
38313
38291
return vals[0];
38296
y[0] = vertex_coordinates[3];
38297
y[1] = vertex_coordinates[4];
38298
y[2] = vertex_coordinates[5];
38321
38299
f.evaluate(vals, y, c);
38322
38300
return vals[0];
38305
y[0] = vertex_coordinates[6];
38306
y[1] = vertex_coordinates[7];
38307
y[2] = vertex_coordinates[8];
38330
38308
f.evaluate(vals, y, c);
38331
38309
return vals[0];
38314
y[0] = vertex_coordinates[9];
38315
y[1] = vertex_coordinates[10];
38316
y[2] = vertex_coordinates[11];
38339
38317
f.evaluate(vals, y, c);
38340
38318
return vals[0];
38345
y[0] = 0.8*x[2][0] + 0.2*x[3][0];
38346
y[1] = 0.8*x[2][1] + 0.2*x[3][1];
38347
y[2] = 0.8*x[2][2] + 0.2*x[3][2];
38323
y[0] = 0.8*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38324
y[1] = 0.8*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38325
y[2] = 0.8*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38348
38326
f.evaluate(vals, y, c);
38349
38327
return vals[0];
38354
y[0] = 0.6*x[2][0] + 0.4*x[3][0];
38355
y[1] = 0.6*x[2][1] + 0.4*x[3][1];
38356
y[2] = 0.6*x[2][2] + 0.4*x[3][2];
38332
y[0] = 0.6*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38333
y[1] = 0.6*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38334
y[2] = 0.6*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
38357
38335
f.evaluate(vals, y, c);
38358
38336
return vals[0];
38363
y[0] = 0.4*x[2][0] + 0.6*x[3][0];
38364
y[1] = 0.4*x[2][1] + 0.6*x[3][1];
38365
y[2] = 0.4*x[2][2] + 0.6*x[3][2];
38341
y[0] = 0.4*vertex_coordinates[6] + 0.6*vertex_coordinates[9];
38342
y[1] = 0.4*vertex_coordinates[7] + 0.6*vertex_coordinates[10];
38343
y[2] = 0.4*vertex_coordinates[8] + 0.6*vertex_coordinates[11];
38366
38344
f.evaluate(vals, y, c);
38367
38345
return vals[0];
38372
y[0] = 0.2*x[2][0] + 0.8*x[3][0];
38373
y[1] = 0.2*x[2][1] + 0.8*x[3][1];
38374
y[2] = 0.2*x[2][2] + 0.8*x[3][2];
38350
y[0] = 0.2*vertex_coordinates[6] + 0.8*vertex_coordinates[9];
38351
y[1] = 0.2*vertex_coordinates[7] + 0.8*vertex_coordinates[10];
38352
y[2] = 0.2*vertex_coordinates[8] + 0.8*vertex_coordinates[11];
38375
38353
f.evaluate(vals, y, c);
38376
38354
return vals[0];
38381
y[0] = 0.8*x[1][0] + 0.2*x[3][0];
38382
y[1] = 0.8*x[1][1] + 0.2*x[3][1];
38383
y[2] = 0.8*x[1][2] + 0.2*x[3][2];
38359
y[0] = 0.8*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
38360
y[1] = 0.8*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
38361
y[2] = 0.8*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
38384
38362
f.evaluate(vals, y, c);
38385
38363
return vals[0];
38390
y[0] = 0.6*x[1][0] + 0.4*x[3][0];
38391
y[1] = 0.6*x[1][1] + 0.4*x[3][1];
38392
y[2] = 0.6*x[1][2] + 0.4*x[3][2];
38368
y[0] = 0.6*vertex_coordinates[3] + 0.4*vertex_coordinates[9];
38369
y[1] = 0.6*vertex_coordinates[4] + 0.4*vertex_coordinates[10];
38370
y[2] = 0.6*vertex_coordinates[5] + 0.4*vertex_coordinates[11];
38393
38371
f.evaluate(vals, y, c);
38394
38372
return vals[0];
38399
y[0] = 0.4*x[1][0] + 0.6*x[3][0];
38400
y[1] = 0.4*x[1][1] + 0.6*x[3][1];
38401
y[2] = 0.4*x[1][2] + 0.6*x[3][2];
38377
y[0] = 0.4*vertex_coordinates[3] + 0.6*vertex_coordinates[9];
38378
y[1] = 0.4*vertex_coordinates[4] + 0.6*vertex_coordinates[10];
38379
y[2] = 0.4*vertex_coordinates[5] + 0.6*vertex_coordinates[11];
38402
38380
f.evaluate(vals, y, c);
38403
38381
return vals[0];
38408
y[0] = 0.2*x[1][0] + 0.8*x[3][0];
38409
y[1] = 0.2*x[1][1] + 0.8*x[3][1];
38410
y[2] = 0.2*x[1][2] + 0.8*x[3][2];
38386
y[0] = 0.2*vertex_coordinates[3] + 0.8*vertex_coordinates[9];
38387
y[1] = 0.2*vertex_coordinates[4] + 0.8*vertex_coordinates[10];
38388
y[2] = 0.2*vertex_coordinates[5] + 0.8*vertex_coordinates[11];
38411
38389
f.evaluate(vals, y, c);
38412
38390
return vals[0];
38417
y[0] = 0.8*x[1][0] + 0.2*x[2][0];
38418
y[1] = 0.8*x[1][1] + 0.2*x[2][1];
38419
y[2] = 0.8*x[1][2] + 0.2*x[2][2];
38395
y[0] = 0.8*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
38396
y[1] = 0.8*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
38397
y[2] = 0.8*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
38420
38398
f.evaluate(vals, y, c);
38421
38399
return vals[0];
38426
y[0] = 0.6*x[1][0] + 0.4*x[2][0];
38427
y[1] = 0.6*x[1][1] + 0.4*x[2][1];
38428
y[2] = 0.6*x[1][2] + 0.4*x[2][2];
38404
y[0] = 0.6*vertex_coordinates[3] + 0.4*vertex_coordinates[6];
38405
y[1] = 0.6*vertex_coordinates[4] + 0.4*vertex_coordinates[7];
38406
y[2] = 0.6*vertex_coordinates[5] + 0.4*vertex_coordinates[8];
38429
38407
f.evaluate(vals, y, c);
38430
38408
return vals[0];
38435
y[0] = 0.4*x[1][0] + 0.6*x[2][0];
38436
y[1] = 0.4*x[1][1] + 0.6*x[2][1];
38437
y[2] = 0.4*x[1][2] + 0.6*x[2][2];
38413
y[0] = 0.4*vertex_coordinates[3] + 0.6*vertex_coordinates[6];
38414
y[1] = 0.4*vertex_coordinates[4] + 0.6*vertex_coordinates[7];
38415
y[2] = 0.4*vertex_coordinates[5] + 0.6*vertex_coordinates[8];
38438
38416
f.evaluate(vals, y, c);
38439
38417
return vals[0];
38444
y[0] = 0.2*x[1][0] + 0.8*x[2][0];
38445
y[1] = 0.2*x[1][1] + 0.8*x[2][1];
38446
y[2] = 0.2*x[1][2] + 0.8*x[2][2];
38422
y[0] = 0.2*vertex_coordinates[3] + 0.8*vertex_coordinates[6];
38423
y[1] = 0.2*vertex_coordinates[4] + 0.8*vertex_coordinates[7];
38424
y[2] = 0.2*vertex_coordinates[5] + 0.8*vertex_coordinates[8];
38447
38425
f.evaluate(vals, y, c);
38448
38426
return vals[0];
38453
y[0] = 0.8*x[0][0] + 0.2*x[3][0];
38454
y[1] = 0.8*x[0][1] + 0.2*x[3][1];
38455
y[2] = 0.8*x[0][2] + 0.2*x[3][2];
38431
y[0] = 0.8*vertex_coordinates[0] + 0.2*vertex_coordinates[9];
38432
y[1] = 0.8*vertex_coordinates[1] + 0.2*vertex_coordinates[10];
38433
y[2] = 0.8*vertex_coordinates[2] + 0.2*vertex_coordinates[11];
38456
38434
f.evaluate(vals, y, c);
38457
38435
return vals[0];
38462
y[0] = 0.6*x[0][0] + 0.4*x[3][0];
38463
y[1] = 0.6*x[0][1] + 0.4*x[3][1];
38464
y[2] = 0.6*x[0][2] + 0.4*x[3][2];
38440
y[0] = 0.6*vertex_coordinates[0] + 0.4*vertex_coordinates[9];
38441
y[1] = 0.6*vertex_coordinates[1] + 0.4*vertex_coordinates[10];
38442
y[2] = 0.6*vertex_coordinates[2] + 0.4*vertex_coordinates[11];
38465
38443
f.evaluate(vals, y, c);
38466
38444
return vals[0];
38471
y[0] = 0.4*x[0][0] + 0.6*x[3][0];
38472
y[1] = 0.4*x[0][1] + 0.6*x[3][1];
38473
y[2] = 0.4*x[0][2] + 0.6*x[3][2];
38449
y[0] = 0.4*vertex_coordinates[0] + 0.6*vertex_coordinates[9];
38450
y[1] = 0.4*vertex_coordinates[1] + 0.6*vertex_coordinates[10];
38451
y[2] = 0.4*vertex_coordinates[2] + 0.6*vertex_coordinates[11];
38474
38452
f.evaluate(vals, y, c);
38475
38453
return vals[0];
38480
y[0] = 0.2*x[0][0] + 0.8*x[3][0];
38481
y[1] = 0.2*x[0][1] + 0.8*x[3][1];
38482
y[2] = 0.2*x[0][2] + 0.8*x[3][2];
38458
y[0] = 0.2*vertex_coordinates[0] + 0.8*vertex_coordinates[9];
38459
y[1] = 0.2*vertex_coordinates[1] + 0.8*vertex_coordinates[10];
38460
y[2] = 0.2*vertex_coordinates[2] + 0.8*vertex_coordinates[11];
38483
38461
f.evaluate(vals, y, c);
38484
38462
return vals[0];
38489
y[0] = 0.8*x[0][0] + 0.2*x[2][0];
38490
y[1] = 0.8*x[0][1] + 0.2*x[2][1];
38491
y[2] = 0.8*x[0][2] + 0.2*x[2][2];
38467
y[0] = 0.8*vertex_coordinates[0] + 0.2*vertex_coordinates[6];
38468
y[1] = 0.8*vertex_coordinates[1] + 0.2*vertex_coordinates[7];
38469
y[2] = 0.8*vertex_coordinates[2] + 0.2*vertex_coordinates[8];
38492
38470
f.evaluate(vals, y, c);
38493
38471
return vals[0];
38498
y[0] = 0.6*x[0][0] + 0.4*x[2][0];
38499
y[1] = 0.6*x[0][1] + 0.4*x[2][1];
38500
y[2] = 0.6*x[0][2] + 0.4*x[2][2];
38476
y[0] = 0.6*vertex_coordinates[0] + 0.4*vertex_coordinates[6];
38477
y[1] = 0.6*vertex_coordinates[1] + 0.4*vertex_coordinates[7];
38478
y[2] = 0.6*vertex_coordinates[2] + 0.4*vertex_coordinates[8];
38501
38479
f.evaluate(vals, y, c);
38502
38480
return vals[0];
38507
y[0] = 0.4*x[0][0] + 0.6*x[2][0];
38508
y[1] = 0.4*x[0][1] + 0.6*x[2][1];
38509
y[2] = 0.4*x[0][2] + 0.6*x[2][2];
38485
y[0] = 0.4*vertex_coordinates[0] + 0.6*vertex_coordinates[6];
38486
y[1] = 0.4*vertex_coordinates[1] + 0.6*vertex_coordinates[7];
38487
y[2] = 0.4*vertex_coordinates[2] + 0.6*vertex_coordinates[8];
38510
38488
f.evaluate(vals, y, c);
38511
38489
return vals[0];
38516
y[0] = 0.2*x[0][0] + 0.8*x[2][0];
38517
y[1] = 0.2*x[0][1] + 0.8*x[2][1];
38518
y[2] = 0.2*x[0][2] + 0.8*x[2][2];
38494
y[0] = 0.2*vertex_coordinates[0] + 0.8*vertex_coordinates[6];
38495
y[1] = 0.2*vertex_coordinates[1] + 0.8*vertex_coordinates[7];
38496
y[2] = 0.2*vertex_coordinates[2] + 0.8*vertex_coordinates[8];
38519
38497
f.evaluate(vals, y, c);
38520
38498
return vals[0];
38525
y[0] = 0.8*x[0][0] + 0.2*x[1][0];
38526
y[1] = 0.8*x[0][1] + 0.2*x[1][1];
38527
y[2] = 0.8*x[0][2] + 0.2*x[1][2];
38503
y[0] = 0.8*vertex_coordinates[0] + 0.2*vertex_coordinates[3];
38504
y[1] = 0.8*vertex_coordinates[1] + 0.2*vertex_coordinates[4];
38505
y[2] = 0.8*vertex_coordinates[2] + 0.2*vertex_coordinates[5];
38528
38506
f.evaluate(vals, y, c);
38529
38507
return vals[0];
38534
y[0] = 0.6*x[0][0] + 0.4*x[1][0];
38535
y[1] = 0.6*x[0][1] + 0.4*x[1][1];
38536
y[2] = 0.6*x[0][2] + 0.4*x[1][2];
38512
y[0] = 0.6*vertex_coordinates[0] + 0.4*vertex_coordinates[3];
38513
y[1] = 0.6*vertex_coordinates[1] + 0.4*vertex_coordinates[4];
38514
y[2] = 0.6*vertex_coordinates[2] + 0.4*vertex_coordinates[5];
38537
38515
f.evaluate(vals, y, c);
38538
38516
return vals[0];
38543
y[0] = 0.4*x[0][0] + 0.6*x[1][0];
38544
y[1] = 0.4*x[0][1] + 0.6*x[1][1];
38545
y[2] = 0.4*x[0][2] + 0.6*x[1][2];
38521
y[0] = 0.4*vertex_coordinates[0] + 0.6*vertex_coordinates[3];
38522
y[1] = 0.4*vertex_coordinates[1] + 0.6*vertex_coordinates[4];
38523
y[2] = 0.4*vertex_coordinates[2] + 0.6*vertex_coordinates[5];
38546
38524
f.evaluate(vals, y, c);
38547
38525
return vals[0];
38552
y[0] = 0.2*x[0][0] + 0.8*x[1][0];
38553
y[1] = 0.2*x[0][1] + 0.8*x[1][1];
38554
y[2] = 0.2*x[0][2] + 0.8*x[1][2];
38530
y[0] = 0.2*vertex_coordinates[0] + 0.8*vertex_coordinates[3];
38531
y[1] = 0.2*vertex_coordinates[1] + 0.8*vertex_coordinates[4];
38532
y[2] = 0.2*vertex_coordinates[2] + 0.8*vertex_coordinates[5];
38555
38533
f.evaluate(vals, y, c);
38556
38534
return vals[0];
38561
y[0] = 0.6*x[1][0] + 0.2*x[2][0] + 0.2*x[3][0];
38562
y[1] = 0.6*x[1][1] + 0.2*x[2][1] + 0.2*x[3][1];
38563
y[2] = 0.6*x[1][2] + 0.2*x[2][2] + 0.2*x[3][2];
38539
y[0] = 0.6*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38540
y[1] = 0.6*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38541
y[2] = 0.6*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38564
38542
f.evaluate(vals, y, c);
38565
38543
return vals[0];
38570
y[0] = 0.4*x[1][0] + 0.4*x[2][0] + 0.2*x[3][0];
38571
y[1] = 0.4*x[1][1] + 0.4*x[2][1] + 0.2*x[3][1];
38572
y[2] = 0.4*x[1][2] + 0.4*x[2][2] + 0.2*x[3][2];
38548
y[0] = 0.4*vertex_coordinates[3] + 0.4*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38549
y[1] = 0.4*vertex_coordinates[4] + 0.4*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38550
y[2] = 0.4*vertex_coordinates[5] + 0.4*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38573
38551
f.evaluate(vals, y, c);
38574
38552
return vals[0];
38579
y[0] = 0.2*x[1][0] + 0.6*x[2][0] + 0.2*x[3][0];
38580
y[1] = 0.2*x[1][1] + 0.6*x[2][1] + 0.2*x[3][1];
38581
y[2] = 0.2*x[1][2] + 0.6*x[2][2] + 0.2*x[3][2];
38557
y[0] = 0.2*vertex_coordinates[3] + 0.6*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38558
y[1] = 0.2*vertex_coordinates[4] + 0.6*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38559
y[2] = 0.2*vertex_coordinates[5] + 0.6*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38582
38560
f.evaluate(vals, y, c);
38583
38561
return vals[0];
38588
y[0] = 0.4*x[1][0] + 0.2*x[2][0] + 0.4*x[3][0];
38589
y[1] = 0.4*x[1][1] + 0.2*x[2][1] + 0.4*x[3][1];
38590
y[2] = 0.4*x[1][2] + 0.2*x[2][2] + 0.4*x[3][2];
38566
y[0] = 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38567
y[1] = 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38568
y[2] = 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
38591
38569
f.evaluate(vals, y, c);
38592
38570
return vals[0];
38597
y[0] = 0.2*x[1][0] + 0.4*x[2][0] + 0.4*x[3][0];
38598
y[1] = 0.2*x[1][1] + 0.4*x[2][1] + 0.4*x[3][1];
38599
y[2] = 0.2*x[1][2] + 0.4*x[2][2] + 0.4*x[3][2];
38575
y[0] = 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38576
y[1] = 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38577
y[2] = 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
38600
38578
f.evaluate(vals, y, c);
38601
38579
return vals[0];
38606
y[0] = 0.2*x[1][0] + 0.2*x[2][0] + 0.6*x[3][0];
38607
y[1] = 0.2*x[1][1] + 0.2*x[2][1] + 0.6*x[3][1];
38608
y[2] = 0.2*x[1][2] + 0.2*x[2][2] + 0.6*x[3][2];
38584
y[0] = 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.6*vertex_coordinates[9];
38585
y[1] = 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.6*vertex_coordinates[10];
38586
y[2] = 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.6*vertex_coordinates[11];
38609
38587
f.evaluate(vals, y, c);
38610
38588
return vals[0];
38615
y[0] = 0.6*x[0][0] + 0.2*x[2][0] + 0.2*x[3][0];
38616
y[1] = 0.6*x[0][1] + 0.2*x[2][1] + 0.2*x[3][1];
38617
y[2] = 0.6*x[0][2] + 0.2*x[2][2] + 0.2*x[3][2];
38593
y[0] = 0.6*vertex_coordinates[0] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38594
y[1] = 0.6*vertex_coordinates[1] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38595
y[2] = 0.6*vertex_coordinates[2] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38618
38596
f.evaluate(vals, y, c);
38619
38597
return vals[0];
38624
y[0] = 0.4*x[0][0] + 0.4*x[2][0] + 0.2*x[3][0];
38625
y[1] = 0.4*x[0][1] + 0.4*x[2][1] + 0.2*x[3][1];
38626
y[2] = 0.4*x[0][2] + 0.4*x[2][2] + 0.2*x[3][2];
38602
y[0] = 0.4*vertex_coordinates[0] + 0.4*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38603
y[1] = 0.4*vertex_coordinates[1] + 0.4*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38604
y[2] = 0.4*vertex_coordinates[2] + 0.4*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38627
38605
f.evaluate(vals, y, c);
38628
38606
return vals[0];
38633
y[0] = 0.2*x[0][0] + 0.6*x[2][0] + 0.2*x[3][0];
38634
y[1] = 0.2*x[0][1] + 0.6*x[2][1] + 0.2*x[3][1];
38635
y[2] = 0.2*x[0][2] + 0.6*x[2][2] + 0.2*x[3][2];
38611
y[0] = 0.2*vertex_coordinates[0] + 0.6*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38612
y[1] = 0.2*vertex_coordinates[1] + 0.6*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38613
y[2] = 0.2*vertex_coordinates[2] + 0.6*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38636
38614
f.evaluate(vals, y, c);
38637
38615
return vals[0];
38642
y[0] = 0.4*x[0][0] + 0.2*x[2][0] + 0.4*x[3][0];
38643
y[1] = 0.4*x[0][1] + 0.2*x[2][1] + 0.4*x[3][1];
38644
y[2] = 0.4*x[0][2] + 0.2*x[2][2] + 0.4*x[3][2];
38620
y[0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38621
y[1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38622
y[2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
38645
38623
f.evaluate(vals, y, c);
38646
38624
return vals[0];
38651
y[0] = 0.2*x[0][0] + 0.4*x[2][0] + 0.4*x[3][0];
38652
y[1] = 0.2*x[0][1] + 0.4*x[2][1] + 0.4*x[3][1];
38653
y[2] = 0.2*x[0][2] + 0.4*x[2][2] + 0.4*x[3][2];
38629
y[0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38630
y[1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38631
y[2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
38654
38632
f.evaluate(vals, y, c);
38655
38633
return vals[0];
38660
y[0] = 0.2*x[0][0] + 0.2*x[2][0] + 0.6*x[3][0];
38661
y[1] = 0.2*x[0][1] + 0.2*x[2][1] + 0.6*x[3][1];
38662
y[2] = 0.2*x[0][2] + 0.2*x[2][2] + 0.6*x[3][2];
38638
y[0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[6] + 0.6*vertex_coordinates[9];
38639
y[1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[7] + 0.6*vertex_coordinates[10];
38640
y[2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[8] + 0.6*vertex_coordinates[11];
38663
38641
f.evaluate(vals, y, c);
38664
38642
return vals[0];
38669
y[0] = 0.6*x[0][0] + 0.2*x[1][0] + 0.2*x[3][0];
38670
y[1] = 0.6*x[0][1] + 0.2*x[1][1] + 0.2*x[3][1];
38671
y[2] = 0.6*x[0][2] + 0.2*x[1][2] + 0.2*x[3][2];
38647
y[0] = 0.6*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
38648
y[1] = 0.6*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
38649
y[2] = 0.6*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
38672
38650
f.evaluate(vals, y, c);
38673
38651
return vals[0];
38678
y[0] = 0.4*x[0][0] + 0.4*x[1][0] + 0.2*x[3][0];
38679
y[1] = 0.4*x[0][1] + 0.4*x[1][1] + 0.2*x[3][1];
38680
y[2] = 0.4*x[0][2] + 0.4*x[1][2] + 0.2*x[3][2];
38656
y[0] = 0.4*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
38657
y[1] = 0.4*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
38658
y[2] = 0.4*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
38681
38659
f.evaluate(vals, y, c);
38682
38660
return vals[0];
38687
y[0] = 0.2*x[0][0] + 0.6*x[1][0] + 0.2*x[3][0];
38688
y[1] = 0.2*x[0][1] + 0.6*x[1][1] + 0.2*x[3][1];
38689
y[2] = 0.2*x[0][2] + 0.6*x[1][2] + 0.2*x[3][2];
38665
y[0] = 0.2*vertex_coordinates[0] + 0.6*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
38666
y[1] = 0.2*vertex_coordinates[1] + 0.6*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
38667
y[2] = 0.2*vertex_coordinates[2] + 0.6*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
38690
38668
f.evaluate(vals, y, c);
38691
38669
return vals[0];
38696
y[0] = 0.4*x[0][0] + 0.2*x[1][0] + 0.4*x[3][0];
38697
y[1] = 0.4*x[0][1] + 0.2*x[1][1] + 0.4*x[3][1];
38698
y[2] = 0.4*x[0][2] + 0.2*x[1][2] + 0.4*x[3][2];
38674
y[0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[9];
38675
y[1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[10];
38676
y[2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[11];
38699
38677
f.evaluate(vals, y, c);
38700
38678
return vals[0];
38705
y[0] = 0.2*x[0][0] + 0.4*x[1][0] + 0.4*x[3][0];
38706
y[1] = 0.2*x[0][1] + 0.4*x[1][1] + 0.4*x[3][1];
38707
y[2] = 0.2*x[0][2] + 0.4*x[1][2] + 0.4*x[3][2];
38683
y[0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.4*vertex_coordinates[9];
38684
y[1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.4*vertex_coordinates[10];
38685
y[2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.4*vertex_coordinates[11];
38708
38686
f.evaluate(vals, y, c);
38709
38687
return vals[0];
38714
y[0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.6*x[3][0];
38715
y[1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.6*x[3][1];
38716
y[2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.6*x[3][2];
38692
y[0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.6*vertex_coordinates[9];
38693
y[1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.6*vertex_coordinates[10];
38694
y[2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.6*vertex_coordinates[11];
38717
38695
f.evaluate(vals, y, c);
38718
38696
return vals[0];
38723
y[0] = 0.6*x[0][0] + 0.2*x[1][0] + 0.2*x[2][0];
38724
y[1] = 0.6*x[0][1] + 0.2*x[1][1] + 0.2*x[2][1];
38725
y[2] = 0.6*x[0][2] + 0.2*x[1][2] + 0.2*x[2][2];
38701
y[0] = 0.6*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
38702
y[1] = 0.6*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
38703
y[2] = 0.6*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
38726
38704
f.evaluate(vals, y, c);
38727
38705
return vals[0];
38732
y[0] = 0.4*x[0][0] + 0.4*x[1][0] + 0.2*x[2][0];
38733
y[1] = 0.4*x[0][1] + 0.4*x[1][1] + 0.2*x[2][1];
38734
y[2] = 0.4*x[0][2] + 0.4*x[1][2] + 0.2*x[2][2];
38710
y[0] = 0.4*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
38711
y[1] = 0.4*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
38712
y[2] = 0.4*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
38735
38713
f.evaluate(vals, y, c);
38736
38714
return vals[0];
38741
y[0] = 0.2*x[0][0] + 0.6*x[1][0] + 0.2*x[2][0];
38742
y[1] = 0.2*x[0][1] + 0.6*x[1][1] + 0.2*x[2][1];
38743
y[2] = 0.2*x[0][2] + 0.6*x[1][2] + 0.2*x[2][2];
38719
y[0] = 0.2*vertex_coordinates[0] + 0.6*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
38720
y[1] = 0.2*vertex_coordinates[1] + 0.6*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
38721
y[2] = 0.2*vertex_coordinates[2] + 0.6*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
38744
38722
f.evaluate(vals, y, c);
38745
38723
return vals[0];
38750
y[0] = 0.4*x[0][0] + 0.2*x[1][0] + 0.4*x[2][0];
38751
y[1] = 0.4*x[0][1] + 0.2*x[1][1] + 0.4*x[2][1];
38752
y[2] = 0.4*x[0][2] + 0.2*x[1][2] + 0.4*x[2][2];
38728
y[0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[6];
38729
y[1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[7];
38730
y[2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[8];
38753
38731
f.evaluate(vals, y, c);
38754
38732
return vals[0];
38759
y[0] = 0.2*x[0][0] + 0.4*x[1][0] + 0.4*x[2][0];
38760
y[1] = 0.2*x[0][1] + 0.4*x[1][1] + 0.4*x[2][1];
38761
y[2] = 0.2*x[0][2] + 0.4*x[1][2] + 0.4*x[2][2];
38737
y[0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.4*vertex_coordinates[6];
38738
y[1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.4*vertex_coordinates[7];
38739
y[2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.4*vertex_coordinates[8];
38762
38740
f.evaluate(vals, y, c);
38763
38741
return vals[0];
38768
y[0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.6*x[2][0];
38769
y[1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.6*x[2][1];
38770
y[2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.6*x[2][2];
38746
y[0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.6*vertex_coordinates[6];
38747
y[1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.6*vertex_coordinates[7];
38748
y[2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.6*vertex_coordinates[8];
38771
38749
f.evaluate(vals, y, c);
38772
38750
return vals[0];
38777
y[0] = 0.4*x[0][0] + 0.2*x[1][0] + 0.2*x[2][0] + 0.2*x[3][0];
38778
y[1] = 0.4*x[0][1] + 0.2*x[1][1] + 0.2*x[2][1] + 0.2*x[3][1];
38779
y[2] = 0.4*x[0][2] + 0.2*x[1][2] + 0.2*x[2][2] + 0.2*x[3][2];
38755
y[0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38756
y[1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38757
y[2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38780
38758
f.evaluate(vals, y, c);
38781
38759
return vals[0];
38786
y[0] = 0.2*x[0][0] + 0.4*x[1][0] + 0.2*x[2][0] + 0.2*x[3][0];
38787
y[1] = 0.2*x[0][1] + 0.4*x[1][1] + 0.2*x[2][1] + 0.2*x[3][1];
38788
y[2] = 0.2*x[0][2] + 0.4*x[1][2] + 0.2*x[2][2] + 0.2*x[3][2];
38764
y[0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38765
y[1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38766
y[2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38789
38767
f.evaluate(vals, y, c);
38790
38768
return vals[0];
38795
y[0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.4*x[2][0] + 0.2*x[3][0];
38796
y[1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.4*x[2][1] + 0.2*x[3][1];
38797
y[2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.4*x[2][2] + 0.2*x[3][2];
38773
y[0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38774
y[1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38775
y[2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38798
38776
f.evaluate(vals, y, c);
38799
38777
return vals[0];
38804
y[0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.2*x[2][0] + 0.4*x[3][0];
38805
y[1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.2*x[2][1] + 0.4*x[3][1];
38806
y[2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.2*x[2][2] + 0.4*x[3][2];
38782
y[0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38783
y[1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38784
y[2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
38807
38785
f.evaluate(vals, y, c);
38808
38786
return vals[0];
38816
38794
/// Evaluate linear functionals for all dofs on the function f
38817
38795
virtual void evaluate_dofs(double* values,
38818
38796
const ufc::function& f,
38797
const double* vertex_coordinates,
38798
int cell_orientation,
38819
38799
const ufc::cell& c) const
38821
// Declare variables for result of evaluation.
38801
// Declare variables for result of evaluation
38822
38802
double vals[1];
38824
// Declare variable for physical coordinates.
38804
// Declare variable for physical coordinates
38826
const double * const * x = c.coordinates;
38806
y[0] = vertex_coordinates[0];
38807
y[1] = vertex_coordinates[1];
38808
y[2] = vertex_coordinates[2];
38830
38809
f.evaluate(vals, y, c);
38831
38810
values[0] = vals[0];
38811
y[0] = vertex_coordinates[3];
38812
y[1] = vertex_coordinates[4];
38813
y[2] = vertex_coordinates[5];
38835
38814
f.evaluate(vals, y, c);
38836
38815
values[1] = vals[0];
38816
y[0] = vertex_coordinates[6];
38817
y[1] = vertex_coordinates[7];
38818
y[2] = vertex_coordinates[8];
38840
38819
f.evaluate(vals, y, c);
38841
38820
values[2] = vals[0];
38821
y[0] = vertex_coordinates[9];
38822
y[1] = vertex_coordinates[10];
38823
y[2] = vertex_coordinates[11];
38845
38824
f.evaluate(vals, y, c);
38846
38825
values[3] = vals[0];
38847
y[0] = 0.8*x[2][0] + 0.2*x[3][0];
38848
y[1] = 0.8*x[2][1] + 0.2*x[3][1];
38849
y[2] = 0.8*x[2][2] + 0.2*x[3][2];
38826
y[0] = 0.8*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38827
y[1] = 0.8*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38828
y[2] = 0.8*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38850
38829
f.evaluate(vals, y, c);
38851
38830
values[4] = vals[0];
38852
y[0] = 0.6*x[2][0] + 0.4*x[3][0];
38853
y[1] = 0.6*x[2][1] + 0.4*x[3][1];
38854
y[2] = 0.6*x[2][2] + 0.4*x[3][2];
38831
y[0] = 0.6*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38832
y[1] = 0.6*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38833
y[2] = 0.6*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
38855
38834
f.evaluate(vals, y, c);
38856
38835
values[5] = vals[0];
38857
y[0] = 0.4*x[2][0] + 0.6*x[3][0];
38858
y[1] = 0.4*x[2][1] + 0.6*x[3][1];
38859
y[2] = 0.4*x[2][2] + 0.6*x[3][2];
38836
y[0] = 0.4*vertex_coordinates[6] + 0.6*vertex_coordinates[9];
38837
y[1] = 0.4*vertex_coordinates[7] + 0.6*vertex_coordinates[10];
38838
y[2] = 0.4*vertex_coordinates[8] + 0.6*vertex_coordinates[11];
38860
38839
f.evaluate(vals, y, c);
38861
38840
values[6] = vals[0];
38862
y[0] = 0.2*x[2][0] + 0.8*x[3][0];
38863
y[1] = 0.2*x[2][1] + 0.8*x[3][1];
38864
y[2] = 0.2*x[2][2] + 0.8*x[3][2];
38841
y[0] = 0.2*vertex_coordinates[6] + 0.8*vertex_coordinates[9];
38842
y[1] = 0.2*vertex_coordinates[7] + 0.8*vertex_coordinates[10];
38843
y[2] = 0.2*vertex_coordinates[8] + 0.8*vertex_coordinates[11];
38865
38844
f.evaluate(vals, y, c);
38866
38845
values[7] = vals[0];
38867
y[0] = 0.8*x[1][0] + 0.2*x[3][0];
38868
y[1] = 0.8*x[1][1] + 0.2*x[3][1];
38869
y[2] = 0.8*x[1][2] + 0.2*x[3][2];
38846
y[0] = 0.8*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
38847
y[1] = 0.8*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
38848
y[2] = 0.8*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
38870
38849
f.evaluate(vals, y, c);
38871
38850
values[8] = vals[0];
38872
y[0] = 0.6*x[1][0] + 0.4*x[3][0];
38873
y[1] = 0.6*x[1][1] + 0.4*x[3][1];
38874
y[2] = 0.6*x[1][2] + 0.4*x[3][2];
38851
y[0] = 0.6*vertex_coordinates[3] + 0.4*vertex_coordinates[9];
38852
y[1] = 0.6*vertex_coordinates[4] + 0.4*vertex_coordinates[10];
38853
y[2] = 0.6*vertex_coordinates[5] + 0.4*vertex_coordinates[11];
38875
38854
f.evaluate(vals, y, c);
38876
38855
values[9] = vals[0];
38877
y[0] = 0.4*x[1][0] + 0.6*x[3][0];
38878
y[1] = 0.4*x[1][1] + 0.6*x[3][1];
38879
y[2] = 0.4*x[1][2] + 0.6*x[3][2];
38856
y[0] = 0.4*vertex_coordinates[3] + 0.6*vertex_coordinates[9];
38857
y[1] = 0.4*vertex_coordinates[4] + 0.6*vertex_coordinates[10];
38858
y[2] = 0.4*vertex_coordinates[5] + 0.6*vertex_coordinates[11];
38880
38859
f.evaluate(vals, y, c);
38881
38860
values[10] = vals[0];
38882
y[0] = 0.2*x[1][0] + 0.8*x[3][0];
38883
y[1] = 0.2*x[1][1] + 0.8*x[3][1];
38884
y[2] = 0.2*x[1][2] + 0.8*x[3][2];
38861
y[0] = 0.2*vertex_coordinates[3] + 0.8*vertex_coordinates[9];
38862
y[1] = 0.2*vertex_coordinates[4] + 0.8*vertex_coordinates[10];
38863
y[2] = 0.2*vertex_coordinates[5] + 0.8*vertex_coordinates[11];
38885
38864
f.evaluate(vals, y, c);
38886
38865
values[11] = vals[0];
38887
y[0] = 0.8*x[1][0] + 0.2*x[2][0];
38888
y[1] = 0.8*x[1][1] + 0.2*x[2][1];
38889
y[2] = 0.8*x[1][2] + 0.2*x[2][2];
38866
y[0] = 0.8*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
38867
y[1] = 0.8*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
38868
y[2] = 0.8*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
38890
38869
f.evaluate(vals, y, c);
38891
38870
values[12] = vals[0];
38892
y[0] = 0.6*x[1][0] + 0.4*x[2][0];
38893
y[1] = 0.6*x[1][1] + 0.4*x[2][1];
38894
y[2] = 0.6*x[1][2] + 0.4*x[2][2];
38871
y[0] = 0.6*vertex_coordinates[3] + 0.4*vertex_coordinates[6];
38872
y[1] = 0.6*vertex_coordinates[4] + 0.4*vertex_coordinates[7];
38873
y[2] = 0.6*vertex_coordinates[5] + 0.4*vertex_coordinates[8];
38895
38874
f.evaluate(vals, y, c);
38896
38875
values[13] = vals[0];
38897
y[0] = 0.4*x[1][0] + 0.6*x[2][0];
38898
y[1] = 0.4*x[1][1] + 0.6*x[2][1];
38899
y[2] = 0.4*x[1][2] + 0.6*x[2][2];
38876
y[0] = 0.4*vertex_coordinates[3] + 0.6*vertex_coordinates[6];
38877
y[1] = 0.4*vertex_coordinates[4] + 0.6*vertex_coordinates[7];
38878
y[2] = 0.4*vertex_coordinates[5] + 0.6*vertex_coordinates[8];
38900
38879
f.evaluate(vals, y, c);
38901
38880
values[14] = vals[0];
38902
y[0] = 0.2*x[1][0] + 0.8*x[2][0];
38903
y[1] = 0.2*x[1][1] + 0.8*x[2][1];
38904
y[2] = 0.2*x[1][2] + 0.8*x[2][2];
38881
y[0] = 0.2*vertex_coordinates[3] + 0.8*vertex_coordinates[6];
38882
y[1] = 0.2*vertex_coordinates[4] + 0.8*vertex_coordinates[7];
38883
y[2] = 0.2*vertex_coordinates[5] + 0.8*vertex_coordinates[8];
38905
38884
f.evaluate(vals, y, c);
38906
38885
values[15] = vals[0];
38907
y[0] = 0.8*x[0][0] + 0.2*x[3][0];
38908
y[1] = 0.8*x[0][1] + 0.2*x[3][1];
38909
y[2] = 0.8*x[0][2] + 0.2*x[3][2];
38886
y[0] = 0.8*vertex_coordinates[0] + 0.2*vertex_coordinates[9];
38887
y[1] = 0.8*vertex_coordinates[1] + 0.2*vertex_coordinates[10];
38888
y[2] = 0.8*vertex_coordinates[2] + 0.2*vertex_coordinates[11];
38910
38889
f.evaluate(vals, y, c);
38911
38890
values[16] = vals[0];
38912
y[0] = 0.6*x[0][0] + 0.4*x[3][0];
38913
y[1] = 0.6*x[0][1] + 0.4*x[3][1];
38914
y[2] = 0.6*x[0][2] + 0.4*x[3][2];
38891
y[0] = 0.6*vertex_coordinates[0] + 0.4*vertex_coordinates[9];
38892
y[1] = 0.6*vertex_coordinates[1] + 0.4*vertex_coordinates[10];
38893
y[2] = 0.6*vertex_coordinates[2] + 0.4*vertex_coordinates[11];
38915
38894
f.evaluate(vals, y, c);
38916
38895
values[17] = vals[0];
38917
y[0] = 0.4*x[0][0] + 0.6*x[3][0];
38918
y[1] = 0.4*x[0][1] + 0.6*x[3][1];
38919
y[2] = 0.4*x[0][2] + 0.6*x[3][2];
38896
y[0] = 0.4*vertex_coordinates[0] + 0.6*vertex_coordinates[9];
38897
y[1] = 0.4*vertex_coordinates[1] + 0.6*vertex_coordinates[10];
38898
y[2] = 0.4*vertex_coordinates[2] + 0.6*vertex_coordinates[11];
38920
38899
f.evaluate(vals, y, c);
38921
38900
values[18] = vals[0];
38922
y[0] = 0.2*x[0][0] + 0.8*x[3][0];
38923
y[1] = 0.2*x[0][1] + 0.8*x[3][1];
38924
y[2] = 0.2*x[0][2] + 0.8*x[3][2];
38901
y[0] = 0.2*vertex_coordinates[0] + 0.8*vertex_coordinates[9];
38902
y[1] = 0.2*vertex_coordinates[1] + 0.8*vertex_coordinates[10];
38903
y[2] = 0.2*vertex_coordinates[2] + 0.8*vertex_coordinates[11];
38925
38904
f.evaluate(vals, y, c);
38926
38905
values[19] = vals[0];
38927
y[0] = 0.8*x[0][0] + 0.2*x[2][0];
38928
y[1] = 0.8*x[0][1] + 0.2*x[2][1];
38929
y[2] = 0.8*x[0][2] + 0.2*x[2][2];
38906
y[0] = 0.8*vertex_coordinates[0] + 0.2*vertex_coordinates[6];
38907
y[1] = 0.8*vertex_coordinates[1] + 0.2*vertex_coordinates[7];
38908
y[2] = 0.8*vertex_coordinates[2] + 0.2*vertex_coordinates[8];
38930
38909
f.evaluate(vals, y, c);
38931
38910
values[20] = vals[0];
38932
y[0] = 0.6*x[0][0] + 0.4*x[2][0];
38933
y[1] = 0.6*x[0][1] + 0.4*x[2][1];
38934
y[2] = 0.6*x[0][2] + 0.4*x[2][2];
38911
y[0] = 0.6*vertex_coordinates[0] + 0.4*vertex_coordinates[6];
38912
y[1] = 0.6*vertex_coordinates[1] + 0.4*vertex_coordinates[7];
38913
y[2] = 0.6*vertex_coordinates[2] + 0.4*vertex_coordinates[8];
38935
38914
f.evaluate(vals, y, c);
38936
38915
values[21] = vals[0];
38937
y[0] = 0.4*x[0][0] + 0.6*x[2][0];
38938
y[1] = 0.4*x[0][1] + 0.6*x[2][1];
38939
y[2] = 0.4*x[0][2] + 0.6*x[2][2];
38916
y[0] = 0.4*vertex_coordinates[0] + 0.6*vertex_coordinates[6];
38917
y[1] = 0.4*vertex_coordinates[1] + 0.6*vertex_coordinates[7];
38918
y[2] = 0.4*vertex_coordinates[2] + 0.6*vertex_coordinates[8];
38940
38919
f.evaluate(vals, y, c);
38941
38920
values[22] = vals[0];
38942
y[0] = 0.2*x[0][0] + 0.8*x[2][0];
38943
y[1] = 0.2*x[0][1] + 0.8*x[2][1];
38944
y[2] = 0.2*x[0][2] + 0.8*x[2][2];
38921
y[0] = 0.2*vertex_coordinates[0] + 0.8*vertex_coordinates[6];
38922
y[1] = 0.2*vertex_coordinates[1] + 0.8*vertex_coordinates[7];
38923
y[2] = 0.2*vertex_coordinates[2] + 0.8*vertex_coordinates[8];
38945
38924
f.evaluate(vals, y, c);
38946
38925
values[23] = vals[0];
38947
y[0] = 0.8*x[0][0] + 0.2*x[1][0];
38948
y[1] = 0.8*x[0][1] + 0.2*x[1][1];
38949
y[2] = 0.8*x[0][2] + 0.2*x[1][2];
38926
y[0] = 0.8*vertex_coordinates[0] + 0.2*vertex_coordinates[3];
38927
y[1] = 0.8*vertex_coordinates[1] + 0.2*vertex_coordinates[4];
38928
y[2] = 0.8*vertex_coordinates[2] + 0.2*vertex_coordinates[5];
38950
38929
f.evaluate(vals, y, c);
38951
38930
values[24] = vals[0];
38952
y[0] = 0.6*x[0][0] + 0.4*x[1][0];
38953
y[1] = 0.6*x[0][1] + 0.4*x[1][1];
38954
y[2] = 0.6*x[0][2] + 0.4*x[1][2];
38931
y[0] = 0.6*vertex_coordinates[0] + 0.4*vertex_coordinates[3];
38932
y[1] = 0.6*vertex_coordinates[1] + 0.4*vertex_coordinates[4];
38933
y[2] = 0.6*vertex_coordinates[2] + 0.4*vertex_coordinates[5];
38955
38934
f.evaluate(vals, y, c);
38956
38935
values[25] = vals[0];
38957
y[0] = 0.4*x[0][0] + 0.6*x[1][0];
38958
y[1] = 0.4*x[0][1] + 0.6*x[1][1];
38959
y[2] = 0.4*x[0][2] + 0.6*x[1][2];
38936
y[0] = 0.4*vertex_coordinates[0] + 0.6*vertex_coordinates[3];
38937
y[1] = 0.4*vertex_coordinates[1] + 0.6*vertex_coordinates[4];
38938
y[2] = 0.4*vertex_coordinates[2] + 0.6*vertex_coordinates[5];
38960
38939
f.evaluate(vals, y, c);
38961
38940
values[26] = vals[0];
38962
y[0] = 0.2*x[0][0] + 0.8*x[1][0];
38963
y[1] = 0.2*x[0][1] + 0.8*x[1][1];
38964
y[2] = 0.2*x[0][2] + 0.8*x[1][2];
38941
y[0] = 0.2*vertex_coordinates[0] + 0.8*vertex_coordinates[3];
38942
y[1] = 0.2*vertex_coordinates[1] + 0.8*vertex_coordinates[4];
38943
y[2] = 0.2*vertex_coordinates[2] + 0.8*vertex_coordinates[5];
38965
38944
f.evaluate(vals, y, c);
38966
38945
values[27] = vals[0];
38967
y[0] = 0.6*x[1][0] + 0.2*x[2][0] + 0.2*x[3][0];
38968
y[1] = 0.6*x[1][1] + 0.2*x[2][1] + 0.2*x[3][1];
38969
y[2] = 0.6*x[1][2] + 0.2*x[2][2] + 0.2*x[3][2];
38946
y[0] = 0.6*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38947
y[1] = 0.6*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38948
y[2] = 0.6*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38970
38949
f.evaluate(vals, y, c);
38971
38950
values[28] = vals[0];
38972
y[0] = 0.4*x[1][0] + 0.4*x[2][0] + 0.2*x[3][0];
38973
y[1] = 0.4*x[1][1] + 0.4*x[2][1] + 0.2*x[3][1];
38974
y[2] = 0.4*x[1][2] + 0.4*x[2][2] + 0.2*x[3][2];
38951
y[0] = 0.4*vertex_coordinates[3] + 0.4*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38952
y[1] = 0.4*vertex_coordinates[4] + 0.4*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38953
y[2] = 0.4*vertex_coordinates[5] + 0.4*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38975
38954
f.evaluate(vals, y, c);
38976
38955
values[29] = vals[0];
38977
y[0] = 0.2*x[1][0] + 0.6*x[2][0] + 0.2*x[3][0];
38978
y[1] = 0.2*x[1][1] + 0.6*x[2][1] + 0.2*x[3][1];
38979
y[2] = 0.2*x[1][2] + 0.6*x[2][2] + 0.2*x[3][2];
38956
y[0] = 0.2*vertex_coordinates[3] + 0.6*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38957
y[1] = 0.2*vertex_coordinates[4] + 0.6*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38958
y[2] = 0.2*vertex_coordinates[5] + 0.6*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
38980
38959
f.evaluate(vals, y, c);
38981
38960
values[30] = vals[0];
38982
y[0] = 0.4*x[1][0] + 0.2*x[2][0] + 0.4*x[3][0];
38983
y[1] = 0.4*x[1][1] + 0.2*x[2][1] + 0.4*x[3][1];
38984
y[2] = 0.4*x[1][2] + 0.2*x[2][2] + 0.4*x[3][2];
38961
y[0] = 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38962
y[1] = 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38963
y[2] = 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
38985
38964
f.evaluate(vals, y, c);
38986
38965
values[31] = vals[0];
38987
y[0] = 0.2*x[1][0] + 0.4*x[2][0] + 0.4*x[3][0];
38988
y[1] = 0.2*x[1][1] + 0.4*x[2][1] + 0.4*x[3][1];
38989
y[2] = 0.2*x[1][2] + 0.4*x[2][2] + 0.4*x[3][2];
38966
y[0] = 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38967
y[1] = 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38968
y[2] = 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
38990
38969
f.evaluate(vals, y, c);
38991
38970
values[32] = vals[0];
38992
y[0] = 0.2*x[1][0] + 0.2*x[2][0] + 0.6*x[3][0];
38993
y[1] = 0.2*x[1][1] + 0.2*x[2][1] + 0.6*x[3][1];
38994
y[2] = 0.2*x[1][2] + 0.2*x[2][2] + 0.6*x[3][2];
38971
y[0] = 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.6*vertex_coordinates[9];
38972
y[1] = 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.6*vertex_coordinates[10];
38973
y[2] = 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.6*vertex_coordinates[11];
38995
38974
f.evaluate(vals, y, c);
38996
38975
values[33] = vals[0];
38997
y[0] = 0.6*x[0][0] + 0.2*x[2][0] + 0.2*x[3][0];
38998
y[1] = 0.6*x[0][1] + 0.2*x[2][1] + 0.2*x[3][1];
38999
y[2] = 0.6*x[0][2] + 0.2*x[2][2] + 0.2*x[3][2];
38976
y[0] = 0.6*vertex_coordinates[0] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38977
y[1] = 0.6*vertex_coordinates[1] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38978
y[2] = 0.6*vertex_coordinates[2] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39000
38979
f.evaluate(vals, y, c);
39001
38980
values[34] = vals[0];
39002
y[0] = 0.4*x[0][0] + 0.4*x[2][0] + 0.2*x[3][0];
39003
y[1] = 0.4*x[0][1] + 0.4*x[2][1] + 0.2*x[3][1];
39004
y[2] = 0.4*x[0][2] + 0.4*x[2][2] + 0.2*x[3][2];
38981
y[0] = 0.4*vertex_coordinates[0] + 0.4*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38982
y[1] = 0.4*vertex_coordinates[1] + 0.4*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38983
y[2] = 0.4*vertex_coordinates[2] + 0.4*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39005
38984
f.evaluate(vals, y, c);
39006
38985
values[35] = vals[0];
39007
y[0] = 0.2*x[0][0] + 0.6*x[2][0] + 0.2*x[3][0];
39008
y[1] = 0.2*x[0][1] + 0.6*x[2][1] + 0.2*x[3][1];
39009
y[2] = 0.2*x[0][2] + 0.6*x[2][2] + 0.2*x[3][2];
38986
y[0] = 0.2*vertex_coordinates[0] + 0.6*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
38987
y[1] = 0.2*vertex_coordinates[1] + 0.6*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
38988
y[2] = 0.2*vertex_coordinates[2] + 0.6*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39010
38989
f.evaluate(vals, y, c);
39011
38990
values[36] = vals[0];
39012
y[0] = 0.4*x[0][0] + 0.2*x[2][0] + 0.4*x[3][0];
39013
y[1] = 0.4*x[0][1] + 0.2*x[2][1] + 0.4*x[3][1];
39014
y[2] = 0.4*x[0][2] + 0.2*x[2][2] + 0.4*x[3][2];
38991
y[0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38992
y[1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38993
y[2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
39015
38994
f.evaluate(vals, y, c);
39016
38995
values[37] = vals[0];
39017
y[0] = 0.2*x[0][0] + 0.4*x[2][0] + 0.4*x[3][0];
39018
y[1] = 0.2*x[0][1] + 0.4*x[2][1] + 0.4*x[3][1];
39019
y[2] = 0.2*x[0][2] + 0.4*x[2][2] + 0.4*x[3][2];
38996
y[0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
38997
y[1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
38998
y[2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
39020
38999
f.evaluate(vals, y, c);
39021
39000
values[38] = vals[0];
39022
y[0] = 0.2*x[0][0] + 0.2*x[2][0] + 0.6*x[3][0];
39023
y[1] = 0.2*x[0][1] + 0.2*x[2][1] + 0.6*x[3][1];
39024
y[2] = 0.2*x[0][2] + 0.2*x[2][2] + 0.6*x[3][2];
39001
y[0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[6] + 0.6*vertex_coordinates[9];
39002
y[1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[7] + 0.6*vertex_coordinates[10];
39003
y[2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[8] + 0.6*vertex_coordinates[11];
39025
39004
f.evaluate(vals, y, c);
39026
39005
values[39] = vals[0];
39027
y[0] = 0.6*x[0][0] + 0.2*x[1][0] + 0.2*x[3][0];
39028
y[1] = 0.6*x[0][1] + 0.2*x[1][1] + 0.2*x[3][1];
39029
y[2] = 0.6*x[0][2] + 0.2*x[1][2] + 0.2*x[3][2];
39006
y[0] = 0.6*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
39007
y[1] = 0.6*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
39008
y[2] = 0.6*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
39030
39009
f.evaluate(vals, y, c);
39031
39010
values[40] = vals[0];
39032
y[0] = 0.4*x[0][0] + 0.4*x[1][0] + 0.2*x[3][0];
39033
y[1] = 0.4*x[0][1] + 0.4*x[1][1] + 0.2*x[3][1];
39034
y[2] = 0.4*x[0][2] + 0.4*x[1][2] + 0.2*x[3][2];
39011
y[0] = 0.4*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
39012
y[1] = 0.4*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
39013
y[2] = 0.4*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
39035
39014
f.evaluate(vals, y, c);
39036
39015
values[41] = vals[0];
39037
y[0] = 0.2*x[0][0] + 0.6*x[1][0] + 0.2*x[3][0];
39038
y[1] = 0.2*x[0][1] + 0.6*x[1][1] + 0.2*x[3][1];
39039
y[2] = 0.2*x[0][2] + 0.6*x[1][2] + 0.2*x[3][2];
39016
y[0] = 0.2*vertex_coordinates[0] + 0.6*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
39017
y[1] = 0.2*vertex_coordinates[1] + 0.6*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
39018
y[2] = 0.2*vertex_coordinates[2] + 0.6*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
39040
39019
f.evaluate(vals, y, c);
39041
39020
values[42] = vals[0];
39042
y[0] = 0.4*x[0][0] + 0.2*x[1][0] + 0.4*x[3][0];
39043
y[1] = 0.4*x[0][1] + 0.2*x[1][1] + 0.4*x[3][1];
39044
y[2] = 0.4*x[0][2] + 0.2*x[1][2] + 0.4*x[3][2];
39021
y[0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[9];
39022
y[1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[10];
39023
y[2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[11];
39045
39024
f.evaluate(vals, y, c);
39046
39025
values[43] = vals[0];
39047
y[0] = 0.2*x[0][0] + 0.4*x[1][0] + 0.4*x[3][0];
39048
y[1] = 0.2*x[0][1] + 0.4*x[1][1] + 0.4*x[3][1];
39049
y[2] = 0.2*x[0][2] + 0.4*x[1][2] + 0.4*x[3][2];
39026
y[0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.4*vertex_coordinates[9];
39027
y[1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.4*vertex_coordinates[10];
39028
y[2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.4*vertex_coordinates[11];
39050
39029
f.evaluate(vals, y, c);
39051
39030
values[44] = vals[0];
39052
y[0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.6*x[3][0];
39053
y[1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.6*x[3][1];
39054
y[2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.6*x[3][2];
39031
y[0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.6*vertex_coordinates[9];
39032
y[1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.6*vertex_coordinates[10];
39033
y[2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.6*vertex_coordinates[11];
39055
39034
f.evaluate(vals, y, c);
39056
39035
values[45] = vals[0];
39057
y[0] = 0.6*x[0][0] + 0.2*x[1][0] + 0.2*x[2][0];
39058
y[1] = 0.6*x[0][1] + 0.2*x[1][1] + 0.2*x[2][1];
39059
y[2] = 0.6*x[0][2] + 0.2*x[1][2] + 0.2*x[2][2];
39036
y[0] = 0.6*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
39037
y[1] = 0.6*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
39038
y[2] = 0.6*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
39060
39039
f.evaluate(vals, y, c);
39061
39040
values[46] = vals[0];
39062
y[0] = 0.4*x[0][0] + 0.4*x[1][0] + 0.2*x[2][0];
39063
y[1] = 0.4*x[0][1] + 0.4*x[1][1] + 0.2*x[2][1];
39064
y[2] = 0.4*x[0][2] + 0.4*x[1][2] + 0.2*x[2][2];
39041
y[0] = 0.4*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
39042
y[1] = 0.4*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
39043
y[2] = 0.4*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
39065
39044
f.evaluate(vals, y, c);
39066
39045
values[47] = vals[0];
39067
y[0] = 0.2*x[0][0] + 0.6*x[1][0] + 0.2*x[2][0];
39068
y[1] = 0.2*x[0][1] + 0.6*x[1][1] + 0.2*x[2][1];
39069
y[2] = 0.2*x[0][2] + 0.6*x[1][2] + 0.2*x[2][2];
39046
y[0] = 0.2*vertex_coordinates[0] + 0.6*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
39047
y[1] = 0.2*vertex_coordinates[1] + 0.6*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
39048
y[2] = 0.2*vertex_coordinates[2] + 0.6*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
39070
39049
f.evaluate(vals, y, c);
39071
39050
values[48] = vals[0];
39072
y[0] = 0.4*x[0][0] + 0.2*x[1][0] + 0.4*x[2][0];
39073
y[1] = 0.4*x[0][1] + 0.2*x[1][1] + 0.4*x[2][1];
39074
y[2] = 0.4*x[0][2] + 0.2*x[1][2] + 0.4*x[2][2];
39051
y[0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[6];
39052
y[1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[7];
39053
y[2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[8];
39075
39054
f.evaluate(vals, y, c);
39076
39055
values[49] = vals[0];
39077
y[0] = 0.2*x[0][0] + 0.4*x[1][0] + 0.4*x[2][0];
39078
y[1] = 0.2*x[0][1] + 0.4*x[1][1] + 0.4*x[2][1];
39079
y[2] = 0.2*x[0][2] + 0.4*x[1][2] + 0.4*x[2][2];
39056
y[0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.4*vertex_coordinates[6];
39057
y[1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.4*vertex_coordinates[7];
39058
y[2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.4*vertex_coordinates[8];
39080
39059
f.evaluate(vals, y, c);
39081
39060
values[50] = vals[0];
39082
y[0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.6*x[2][0];
39083
y[1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.6*x[2][1];
39084
y[2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.6*x[2][2];
39061
y[0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.6*vertex_coordinates[6];
39062
y[1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.6*vertex_coordinates[7];
39063
y[2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.6*vertex_coordinates[8];
39085
39064
f.evaluate(vals, y, c);
39086
39065
values[51] = vals[0];
39087
y[0] = 0.4*x[0][0] + 0.2*x[1][0] + 0.2*x[2][0] + 0.2*x[3][0];
39088
y[1] = 0.4*x[0][1] + 0.2*x[1][1] + 0.2*x[2][1] + 0.2*x[3][1];
39089
y[2] = 0.4*x[0][2] + 0.2*x[1][2] + 0.2*x[2][2] + 0.2*x[3][2];
39066
y[0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39067
y[1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39068
y[2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39090
39069
f.evaluate(vals, y, c);
39091
39070
values[52] = vals[0];
39092
y[0] = 0.2*x[0][0] + 0.4*x[1][0] + 0.2*x[2][0] + 0.2*x[3][0];
39093
y[1] = 0.2*x[0][1] + 0.4*x[1][1] + 0.2*x[2][1] + 0.2*x[3][1];
39094
y[2] = 0.2*x[0][2] + 0.4*x[1][2] + 0.2*x[2][2] + 0.2*x[3][2];
39071
y[0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39072
y[1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39073
y[2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39095
39074
f.evaluate(vals, y, c);
39096
39075
values[53] = vals[0];
39097
y[0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.4*x[2][0] + 0.2*x[3][0];
39098
y[1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.4*x[2][1] + 0.2*x[3][1];
39099
y[2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.4*x[2][2] + 0.2*x[3][2];
39076
y[0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39077
y[1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39078
y[2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39100
39079
f.evaluate(vals, y, c);
39101
39080
values[54] = vals[0];
39102
y[0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.2*x[2][0] + 0.4*x[3][0];
39103
y[1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.2*x[2][1] + 0.4*x[3][1];
39104
y[2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.2*x[2][2] + 0.4*x[3][2];
39081
y[0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
39082
y[1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
39083
y[2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
39105
39084
f.evaluate(vals, y, c);
39106
39085
values[55] = vals[0];
39654
39613
/// Tabulate the coordinates of all dofs on a cell
39655
virtual void tabulate_coordinates(double** coordinates,
39656
const ufc::cell& c) const
39614
virtual void tabulate_coordinates(double** dof_coordinates,
39615
const double* vertex_coordinates) const
39658
const double * const * x = c.coordinates;
39660
coordinates[0][0] = x[0][0];
39661
coordinates[0][1] = x[0][1];
39662
coordinates[0][2] = x[0][2];
39663
coordinates[1][0] = x[1][0];
39664
coordinates[1][1] = x[1][1];
39665
coordinates[1][2] = x[1][2];
39666
coordinates[2][0] = x[2][0];
39667
coordinates[2][1] = x[2][1];
39668
coordinates[2][2] = x[2][2];
39669
coordinates[3][0] = x[3][0];
39670
coordinates[3][1] = x[3][1];
39671
coordinates[3][2] = x[3][2];
39672
coordinates[4][0] = 0.8*x[2][0] + 0.2*x[3][0];
39673
coordinates[4][1] = 0.8*x[2][1] + 0.2*x[3][1];
39674
coordinates[4][2] = 0.8*x[2][2] + 0.2*x[3][2];
39675
coordinates[5][0] = 0.6*x[2][0] + 0.4*x[3][0];
39676
coordinates[5][1] = 0.6*x[2][1] + 0.4*x[3][1];
39677
coordinates[5][2] = 0.6*x[2][2] + 0.4*x[3][2];
39678
coordinates[6][0] = 0.4*x[2][0] + 0.6*x[3][0];
39679
coordinates[6][1] = 0.4*x[2][1] + 0.6*x[3][1];
39680
coordinates[6][2] = 0.4*x[2][2] + 0.6*x[3][2];
39681
coordinates[7][0] = 0.2*x[2][0] + 0.8*x[3][0];
39682
coordinates[7][1] = 0.2*x[2][1] + 0.8*x[3][1];
39683
coordinates[7][2] = 0.2*x[2][2] + 0.8*x[3][2];
39684
coordinates[8][0] = 0.8*x[1][0] + 0.2*x[3][0];
39685
coordinates[8][1] = 0.8*x[1][1] + 0.2*x[3][1];
39686
coordinates[8][2] = 0.8*x[1][2] + 0.2*x[3][2];
39687
coordinates[9][0] = 0.6*x[1][0] + 0.4*x[3][0];
39688
coordinates[9][1] = 0.6*x[1][1] + 0.4*x[3][1];
39689
coordinates[9][2] = 0.6*x[1][2] + 0.4*x[3][2];
39690
coordinates[10][0] = 0.4*x[1][0] + 0.6*x[3][0];
39691
coordinates[10][1] = 0.4*x[1][1] + 0.6*x[3][1];
39692
coordinates[10][2] = 0.4*x[1][2] + 0.6*x[3][2];
39693
coordinates[11][0] = 0.2*x[1][0] + 0.8*x[3][0];
39694
coordinates[11][1] = 0.2*x[1][1] + 0.8*x[3][1];
39695
coordinates[11][2] = 0.2*x[1][2] + 0.8*x[3][2];
39696
coordinates[12][0] = 0.8*x[1][0] + 0.2*x[2][0];
39697
coordinates[12][1] = 0.8*x[1][1] + 0.2*x[2][1];
39698
coordinates[12][2] = 0.8*x[1][2] + 0.2*x[2][2];
39699
coordinates[13][0] = 0.6*x[1][0] + 0.4*x[2][0];
39700
coordinates[13][1] = 0.6*x[1][1] + 0.4*x[2][1];
39701
coordinates[13][2] = 0.6*x[1][2] + 0.4*x[2][2];
39702
coordinates[14][0] = 0.4*x[1][0] + 0.6*x[2][0];
39703
coordinates[14][1] = 0.4*x[1][1] + 0.6*x[2][1];
39704
coordinates[14][2] = 0.4*x[1][2] + 0.6*x[2][2];
39705
coordinates[15][0] = 0.2*x[1][0] + 0.8*x[2][0];
39706
coordinates[15][1] = 0.2*x[1][1] + 0.8*x[2][1];
39707
coordinates[15][2] = 0.2*x[1][2] + 0.8*x[2][2];
39708
coordinates[16][0] = 0.8*x[0][0] + 0.2*x[3][0];
39709
coordinates[16][1] = 0.8*x[0][1] + 0.2*x[3][1];
39710
coordinates[16][2] = 0.8*x[0][2] + 0.2*x[3][2];
39711
coordinates[17][0] = 0.6*x[0][0] + 0.4*x[3][0];
39712
coordinates[17][1] = 0.6*x[0][1] + 0.4*x[3][1];
39713
coordinates[17][2] = 0.6*x[0][2] + 0.4*x[3][2];
39714
coordinates[18][0] = 0.4*x[0][0] + 0.6*x[3][0];
39715
coordinates[18][1] = 0.4*x[0][1] + 0.6*x[3][1];
39716
coordinates[18][2] = 0.4*x[0][2] + 0.6*x[3][2];
39717
coordinates[19][0] = 0.2*x[0][0] + 0.8*x[3][0];
39718
coordinates[19][1] = 0.2*x[0][1] + 0.8*x[3][1];
39719
coordinates[19][2] = 0.2*x[0][2] + 0.8*x[3][2];
39720
coordinates[20][0] = 0.8*x[0][0] + 0.2*x[2][0];
39721
coordinates[20][1] = 0.8*x[0][1] + 0.2*x[2][1];
39722
coordinates[20][2] = 0.8*x[0][2] + 0.2*x[2][2];
39723
coordinates[21][0] = 0.6*x[0][0] + 0.4*x[2][0];
39724
coordinates[21][1] = 0.6*x[0][1] + 0.4*x[2][1];
39725
coordinates[21][2] = 0.6*x[0][2] + 0.4*x[2][2];
39726
coordinates[22][0] = 0.4*x[0][0] + 0.6*x[2][0];
39727
coordinates[22][1] = 0.4*x[0][1] + 0.6*x[2][1];
39728
coordinates[22][2] = 0.4*x[0][2] + 0.6*x[2][2];
39729
coordinates[23][0] = 0.2*x[0][0] + 0.8*x[2][0];
39730
coordinates[23][1] = 0.2*x[0][1] + 0.8*x[2][1];
39731
coordinates[23][2] = 0.2*x[0][2] + 0.8*x[2][2];
39732
coordinates[24][0] = 0.8*x[0][0] + 0.2*x[1][0];
39733
coordinates[24][1] = 0.8*x[0][1] + 0.2*x[1][1];
39734
coordinates[24][2] = 0.8*x[0][2] + 0.2*x[1][2];
39735
coordinates[25][0] = 0.6*x[0][0] + 0.4*x[1][0];
39736
coordinates[25][1] = 0.6*x[0][1] + 0.4*x[1][1];
39737
coordinates[25][2] = 0.6*x[0][2] + 0.4*x[1][2];
39738
coordinates[26][0] = 0.4*x[0][0] + 0.6*x[1][0];
39739
coordinates[26][1] = 0.4*x[0][1] + 0.6*x[1][1];
39740
coordinates[26][2] = 0.4*x[0][2] + 0.6*x[1][2];
39741
coordinates[27][0] = 0.2*x[0][0] + 0.8*x[1][0];
39742
coordinates[27][1] = 0.2*x[0][1] + 0.8*x[1][1];
39743
coordinates[27][2] = 0.2*x[0][2] + 0.8*x[1][2];
39744
coordinates[28][0] = 0.6*x[1][0] + 0.2*x[2][0] + 0.2*x[3][0];
39745
coordinates[28][1] = 0.6*x[1][1] + 0.2*x[2][1] + 0.2*x[3][1];
39746
coordinates[28][2] = 0.6*x[1][2] + 0.2*x[2][2] + 0.2*x[3][2];
39747
coordinates[29][0] = 0.4*x[1][0] + 0.4*x[2][0] + 0.2*x[3][0];
39748
coordinates[29][1] = 0.4*x[1][1] + 0.4*x[2][1] + 0.2*x[3][1];
39749
coordinates[29][2] = 0.4*x[1][2] + 0.4*x[2][2] + 0.2*x[3][2];
39750
coordinates[30][0] = 0.2*x[1][0] + 0.6*x[2][0] + 0.2*x[3][0];
39751
coordinates[30][1] = 0.2*x[1][1] + 0.6*x[2][1] + 0.2*x[3][1];
39752
coordinates[30][2] = 0.2*x[1][2] + 0.6*x[2][2] + 0.2*x[3][2];
39753
coordinates[31][0] = 0.4*x[1][0] + 0.2*x[2][0] + 0.4*x[3][0];
39754
coordinates[31][1] = 0.4*x[1][1] + 0.2*x[2][1] + 0.4*x[3][1];
39755
coordinates[31][2] = 0.4*x[1][2] + 0.2*x[2][2] + 0.4*x[3][2];
39756
coordinates[32][0] = 0.2*x[1][0] + 0.4*x[2][0] + 0.4*x[3][0];
39757
coordinates[32][1] = 0.2*x[1][1] + 0.4*x[2][1] + 0.4*x[3][1];
39758
coordinates[32][2] = 0.2*x[1][2] + 0.4*x[2][2] + 0.4*x[3][2];
39759
coordinates[33][0] = 0.2*x[1][0] + 0.2*x[2][0] + 0.6*x[3][0];
39760
coordinates[33][1] = 0.2*x[1][1] + 0.2*x[2][1] + 0.6*x[3][1];
39761
coordinates[33][2] = 0.2*x[1][2] + 0.2*x[2][2] + 0.6*x[3][2];
39762
coordinates[34][0] = 0.6*x[0][0] + 0.2*x[2][0] + 0.2*x[3][0];
39763
coordinates[34][1] = 0.6*x[0][1] + 0.2*x[2][1] + 0.2*x[3][1];
39764
coordinates[34][2] = 0.6*x[0][2] + 0.2*x[2][2] + 0.2*x[3][2];
39765
coordinates[35][0] = 0.4*x[0][0] + 0.4*x[2][0] + 0.2*x[3][0];
39766
coordinates[35][1] = 0.4*x[0][1] + 0.4*x[2][1] + 0.2*x[3][1];
39767
coordinates[35][2] = 0.4*x[0][2] + 0.4*x[2][2] + 0.2*x[3][2];
39768
coordinates[36][0] = 0.2*x[0][0] + 0.6*x[2][0] + 0.2*x[3][0];
39769
coordinates[36][1] = 0.2*x[0][1] + 0.6*x[2][1] + 0.2*x[3][1];
39770
coordinates[36][2] = 0.2*x[0][2] + 0.6*x[2][2] + 0.2*x[3][2];
39771
coordinates[37][0] = 0.4*x[0][0] + 0.2*x[2][0] + 0.4*x[3][0];
39772
coordinates[37][1] = 0.4*x[0][1] + 0.2*x[2][1] + 0.4*x[3][1];
39773
coordinates[37][2] = 0.4*x[0][2] + 0.2*x[2][2] + 0.4*x[3][2];
39774
coordinates[38][0] = 0.2*x[0][0] + 0.4*x[2][0] + 0.4*x[3][0];
39775
coordinates[38][1] = 0.2*x[0][1] + 0.4*x[2][1] + 0.4*x[3][1];
39776
coordinates[38][2] = 0.2*x[0][2] + 0.4*x[2][2] + 0.4*x[3][2];
39777
coordinates[39][0] = 0.2*x[0][0] + 0.2*x[2][0] + 0.6*x[3][0];
39778
coordinates[39][1] = 0.2*x[0][1] + 0.2*x[2][1] + 0.6*x[3][1];
39779
coordinates[39][2] = 0.2*x[0][2] + 0.2*x[2][2] + 0.6*x[3][2];
39780
coordinates[40][0] = 0.6*x[0][0] + 0.2*x[1][0] + 0.2*x[3][0];
39781
coordinates[40][1] = 0.6*x[0][1] + 0.2*x[1][1] + 0.2*x[3][1];
39782
coordinates[40][2] = 0.6*x[0][2] + 0.2*x[1][2] + 0.2*x[3][2];
39783
coordinates[41][0] = 0.4*x[0][0] + 0.4*x[1][0] + 0.2*x[3][0];
39784
coordinates[41][1] = 0.4*x[0][1] + 0.4*x[1][1] + 0.2*x[3][1];
39785
coordinates[41][2] = 0.4*x[0][2] + 0.4*x[1][2] + 0.2*x[3][2];
39786
coordinates[42][0] = 0.2*x[0][0] + 0.6*x[1][0] + 0.2*x[3][0];
39787
coordinates[42][1] = 0.2*x[0][1] + 0.6*x[1][1] + 0.2*x[3][1];
39788
coordinates[42][2] = 0.2*x[0][2] + 0.6*x[1][2] + 0.2*x[3][2];
39789
coordinates[43][0] = 0.4*x[0][0] + 0.2*x[1][0] + 0.4*x[3][0];
39790
coordinates[43][1] = 0.4*x[0][1] + 0.2*x[1][1] + 0.4*x[3][1];
39791
coordinates[43][2] = 0.4*x[0][2] + 0.2*x[1][2] + 0.4*x[3][2];
39792
coordinates[44][0] = 0.2*x[0][0] + 0.4*x[1][0] + 0.4*x[3][0];
39793
coordinates[44][1] = 0.2*x[0][1] + 0.4*x[1][1] + 0.4*x[3][1];
39794
coordinates[44][2] = 0.2*x[0][2] + 0.4*x[1][2] + 0.4*x[3][2];
39795
coordinates[45][0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.6*x[3][0];
39796
coordinates[45][1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.6*x[3][1];
39797
coordinates[45][2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.6*x[3][2];
39798
coordinates[46][0] = 0.6*x[0][0] + 0.2*x[1][0] + 0.2*x[2][0];
39799
coordinates[46][1] = 0.6*x[0][1] + 0.2*x[1][1] + 0.2*x[2][1];
39800
coordinates[46][2] = 0.6*x[0][2] + 0.2*x[1][2] + 0.2*x[2][2];
39801
coordinates[47][0] = 0.4*x[0][0] + 0.4*x[1][0] + 0.2*x[2][0];
39802
coordinates[47][1] = 0.4*x[0][1] + 0.4*x[1][1] + 0.2*x[2][1];
39803
coordinates[47][2] = 0.4*x[0][2] + 0.4*x[1][2] + 0.2*x[2][2];
39804
coordinates[48][0] = 0.2*x[0][0] + 0.6*x[1][0] + 0.2*x[2][0];
39805
coordinates[48][1] = 0.2*x[0][1] + 0.6*x[1][1] + 0.2*x[2][1];
39806
coordinates[48][2] = 0.2*x[0][2] + 0.6*x[1][2] + 0.2*x[2][2];
39807
coordinates[49][0] = 0.4*x[0][0] + 0.2*x[1][0] + 0.4*x[2][0];
39808
coordinates[49][1] = 0.4*x[0][1] + 0.2*x[1][1] + 0.4*x[2][1];
39809
coordinates[49][2] = 0.4*x[0][2] + 0.2*x[1][2] + 0.4*x[2][2];
39810
coordinates[50][0] = 0.2*x[0][0] + 0.4*x[1][0] + 0.4*x[2][0];
39811
coordinates[50][1] = 0.2*x[0][1] + 0.4*x[1][1] + 0.4*x[2][1];
39812
coordinates[50][2] = 0.2*x[0][2] + 0.4*x[1][2] + 0.4*x[2][2];
39813
coordinates[51][0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.6*x[2][0];
39814
coordinates[51][1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.6*x[2][1];
39815
coordinates[51][2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.6*x[2][2];
39816
coordinates[52][0] = 0.4*x[0][0] + 0.2*x[1][0] + 0.2*x[2][0] + 0.2*x[3][0];
39817
coordinates[52][1] = 0.4*x[0][1] + 0.2*x[1][1] + 0.2*x[2][1] + 0.2*x[3][1];
39818
coordinates[52][2] = 0.4*x[0][2] + 0.2*x[1][2] + 0.2*x[2][2] + 0.2*x[3][2];
39819
coordinates[53][0] = 0.2*x[0][0] + 0.4*x[1][0] + 0.2*x[2][0] + 0.2*x[3][0];
39820
coordinates[53][1] = 0.2*x[0][1] + 0.4*x[1][1] + 0.2*x[2][1] + 0.2*x[3][1];
39821
coordinates[53][2] = 0.2*x[0][2] + 0.4*x[1][2] + 0.2*x[2][2] + 0.2*x[3][2];
39822
coordinates[54][0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.4*x[2][0] + 0.2*x[3][0];
39823
coordinates[54][1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.4*x[2][1] + 0.2*x[3][1];
39824
coordinates[54][2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.4*x[2][2] + 0.2*x[3][2];
39825
coordinates[55][0] = 0.2*x[0][0] + 0.2*x[1][0] + 0.2*x[2][0] + 0.4*x[3][0];
39826
coordinates[55][1] = 0.2*x[0][1] + 0.2*x[1][1] + 0.2*x[2][1] + 0.4*x[3][1];
39827
coordinates[55][2] = 0.2*x[0][2] + 0.2*x[1][2] + 0.2*x[2][2] + 0.4*x[3][2];
39617
dof_coordinates[0][0] = vertex_coordinates[0];
39618
dof_coordinates[0][1] = vertex_coordinates[1];
39619
dof_coordinates[0][2] = vertex_coordinates[2];
39620
dof_coordinates[1][0] = vertex_coordinates[3];
39621
dof_coordinates[1][1] = vertex_coordinates[4];
39622
dof_coordinates[1][2] = vertex_coordinates[5];
39623
dof_coordinates[2][0] = vertex_coordinates[6];
39624
dof_coordinates[2][1] = vertex_coordinates[7];
39625
dof_coordinates[2][2] = vertex_coordinates[8];
39626
dof_coordinates[3][0] = vertex_coordinates[9];
39627
dof_coordinates[3][1] = vertex_coordinates[10];
39628
dof_coordinates[3][2] = vertex_coordinates[11];
39629
dof_coordinates[4][0] = 0.8*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39630
dof_coordinates[4][1] = 0.8*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39631
dof_coordinates[4][2] = 0.8*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39632
dof_coordinates[5][0] = 0.6*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
39633
dof_coordinates[5][1] = 0.6*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
39634
dof_coordinates[5][2] = 0.6*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
39635
dof_coordinates[6][0] = 0.4*vertex_coordinates[6] + 0.6*vertex_coordinates[9];
39636
dof_coordinates[6][1] = 0.4*vertex_coordinates[7] + 0.6*vertex_coordinates[10];
39637
dof_coordinates[6][2] = 0.4*vertex_coordinates[8] + 0.6*vertex_coordinates[11];
39638
dof_coordinates[7][0] = 0.2*vertex_coordinates[6] + 0.8*vertex_coordinates[9];
39639
dof_coordinates[7][1] = 0.2*vertex_coordinates[7] + 0.8*vertex_coordinates[10];
39640
dof_coordinates[7][2] = 0.2*vertex_coordinates[8] + 0.8*vertex_coordinates[11];
39641
dof_coordinates[8][0] = 0.8*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
39642
dof_coordinates[8][1] = 0.8*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
39643
dof_coordinates[8][2] = 0.8*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
39644
dof_coordinates[9][0] = 0.6*vertex_coordinates[3] + 0.4*vertex_coordinates[9];
39645
dof_coordinates[9][1] = 0.6*vertex_coordinates[4] + 0.4*vertex_coordinates[10];
39646
dof_coordinates[9][2] = 0.6*vertex_coordinates[5] + 0.4*vertex_coordinates[11];
39647
dof_coordinates[10][0] = 0.4*vertex_coordinates[3] + 0.6*vertex_coordinates[9];
39648
dof_coordinates[10][1] = 0.4*vertex_coordinates[4] + 0.6*vertex_coordinates[10];
39649
dof_coordinates[10][2] = 0.4*vertex_coordinates[5] + 0.6*vertex_coordinates[11];
39650
dof_coordinates[11][0] = 0.2*vertex_coordinates[3] + 0.8*vertex_coordinates[9];
39651
dof_coordinates[11][1] = 0.2*vertex_coordinates[4] + 0.8*vertex_coordinates[10];
39652
dof_coordinates[11][2] = 0.2*vertex_coordinates[5] + 0.8*vertex_coordinates[11];
39653
dof_coordinates[12][0] = 0.8*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
39654
dof_coordinates[12][1] = 0.8*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
39655
dof_coordinates[12][2] = 0.8*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
39656
dof_coordinates[13][0] = 0.6*vertex_coordinates[3] + 0.4*vertex_coordinates[6];
39657
dof_coordinates[13][1] = 0.6*vertex_coordinates[4] + 0.4*vertex_coordinates[7];
39658
dof_coordinates[13][2] = 0.6*vertex_coordinates[5] + 0.4*vertex_coordinates[8];
39659
dof_coordinates[14][0] = 0.4*vertex_coordinates[3] + 0.6*vertex_coordinates[6];
39660
dof_coordinates[14][1] = 0.4*vertex_coordinates[4] + 0.6*vertex_coordinates[7];
39661
dof_coordinates[14][2] = 0.4*vertex_coordinates[5] + 0.6*vertex_coordinates[8];
39662
dof_coordinates[15][0] = 0.2*vertex_coordinates[3] + 0.8*vertex_coordinates[6];
39663
dof_coordinates[15][1] = 0.2*vertex_coordinates[4] + 0.8*vertex_coordinates[7];
39664
dof_coordinates[15][2] = 0.2*vertex_coordinates[5] + 0.8*vertex_coordinates[8];
39665
dof_coordinates[16][0] = 0.8*vertex_coordinates[0] + 0.2*vertex_coordinates[9];
39666
dof_coordinates[16][1] = 0.8*vertex_coordinates[1] + 0.2*vertex_coordinates[10];
39667
dof_coordinates[16][2] = 0.8*vertex_coordinates[2] + 0.2*vertex_coordinates[11];
39668
dof_coordinates[17][0] = 0.6*vertex_coordinates[0] + 0.4*vertex_coordinates[9];
39669
dof_coordinates[17][1] = 0.6*vertex_coordinates[1] + 0.4*vertex_coordinates[10];
39670
dof_coordinates[17][2] = 0.6*vertex_coordinates[2] + 0.4*vertex_coordinates[11];
39671
dof_coordinates[18][0] = 0.4*vertex_coordinates[0] + 0.6*vertex_coordinates[9];
39672
dof_coordinates[18][1] = 0.4*vertex_coordinates[1] + 0.6*vertex_coordinates[10];
39673
dof_coordinates[18][2] = 0.4*vertex_coordinates[2] + 0.6*vertex_coordinates[11];
39674
dof_coordinates[19][0] = 0.2*vertex_coordinates[0] + 0.8*vertex_coordinates[9];
39675
dof_coordinates[19][1] = 0.2*vertex_coordinates[1] + 0.8*vertex_coordinates[10];
39676
dof_coordinates[19][2] = 0.2*vertex_coordinates[2] + 0.8*vertex_coordinates[11];
39677
dof_coordinates[20][0] = 0.8*vertex_coordinates[0] + 0.2*vertex_coordinates[6];
39678
dof_coordinates[20][1] = 0.8*vertex_coordinates[1] + 0.2*vertex_coordinates[7];
39679
dof_coordinates[20][2] = 0.8*vertex_coordinates[2] + 0.2*vertex_coordinates[8];
39680
dof_coordinates[21][0] = 0.6*vertex_coordinates[0] + 0.4*vertex_coordinates[6];
39681
dof_coordinates[21][1] = 0.6*vertex_coordinates[1] + 0.4*vertex_coordinates[7];
39682
dof_coordinates[21][2] = 0.6*vertex_coordinates[2] + 0.4*vertex_coordinates[8];
39683
dof_coordinates[22][0] = 0.4*vertex_coordinates[0] + 0.6*vertex_coordinates[6];
39684
dof_coordinates[22][1] = 0.4*vertex_coordinates[1] + 0.6*vertex_coordinates[7];
39685
dof_coordinates[22][2] = 0.4*vertex_coordinates[2] + 0.6*vertex_coordinates[8];
39686
dof_coordinates[23][0] = 0.2*vertex_coordinates[0] + 0.8*vertex_coordinates[6];
39687
dof_coordinates[23][1] = 0.2*vertex_coordinates[1] + 0.8*vertex_coordinates[7];
39688
dof_coordinates[23][2] = 0.2*vertex_coordinates[2] + 0.8*vertex_coordinates[8];
39689
dof_coordinates[24][0] = 0.8*vertex_coordinates[0] + 0.2*vertex_coordinates[3];
39690
dof_coordinates[24][1] = 0.8*vertex_coordinates[1] + 0.2*vertex_coordinates[4];
39691
dof_coordinates[24][2] = 0.8*vertex_coordinates[2] + 0.2*vertex_coordinates[5];
39692
dof_coordinates[25][0] = 0.6*vertex_coordinates[0] + 0.4*vertex_coordinates[3];
39693
dof_coordinates[25][1] = 0.6*vertex_coordinates[1] + 0.4*vertex_coordinates[4];
39694
dof_coordinates[25][2] = 0.6*vertex_coordinates[2] + 0.4*vertex_coordinates[5];
39695
dof_coordinates[26][0] = 0.4*vertex_coordinates[0] + 0.6*vertex_coordinates[3];
39696
dof_coordinates[26][1] = 0.4*vertex_coordinates[1] + 0.6*vertex_coordinates[4];
39697
dof_coordinates[26][2] = 0.4*vertex_coordinates[2] + 0.6*vertex_coordinates[5];
39698
dof_coordinates[27][0] = 0.2*vertex_coordinates[0] + 0.8*vertex_coordinates[3];
39699
dof_coordinates[27][1] = 0.2*vertex_coordinates[1] + 0.8*vertex_coordinates[4];
39700
dof_coordinates[27][2] = 0.2*vertex_coordinates[2] + 0.8*vertex_coordinates[5];
39701
dof_coordinates[28][0] = 0.6*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39702
dof_coordinates[28][1] = 0.6*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39703
dof_coordinates[28][2] = 0.6*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39704
dof_coordinates[29][0] = 0.4*vertex_coordinates[3] + 0.4*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39705
dof_coordinates[29][1] = 0.4*vertex_coordinates[4] + 0.4*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39706
dof_coordinates[29][2] = 0.4*vertex_coordinates[5] + 0.4*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39707
dof_coordinates[30][0] = 0.2*vertex_coordinates[3] + 0.6*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39708
dof_coordinates[30][1] = 0.2*vertex_coordinates[4] + 0.6*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39709
dof_coordinates[30][2] = 0.2*vertex_coordinates[5] + 0.6*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39710
dof_coordinates[31][0] = 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
39711
dof_coordinates[31][1] = 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
39712
dof_coordinates[31][2] = 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
39713
dof_coordinates[32][0] = 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
39714
dof_coordinates[32][1] = 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
39715
dof_coordinates[32][2] = 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
39716
dof_coordinates[33][0] = 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.6*vertex_coordinates[9];
39717
dof_coordinates[33][1] = 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.6*vertex_coordinates[10];
39718
dof_coordinates[33][2] = 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.6*vertex_coordinates[11];
39719
dof_coordinates[34][0] = 0.6*vertex_coordinates[0] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39720
dof_coordinates[34][1] = 0.6*vertex_coordinates[1] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39721
dof_coordinates[34][2] = 0.6*vertex_coordinates[2] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39722
dof_coordinates[35][0] = 0.4*vertex_coordinates[0] + 0.4*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39723
dof_coordinates[35][1] = 0.4*vertex_coordinates[1] + 0.4*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39724
dof_coordinates[35][2] = 0.4*vertex_coordinates[2] + 0.4*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39725
dof_coordinates[36][0] = 0.2*vertex_coordinates[0] + 0.6*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39726
dof_coordinates[36][1] = 0.2*vertex_coordinates[1] + 0.6*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39727
dof_coordinates[36][2] = 0.2*vertex_coordinates[2] + 0.6*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39728
dof_coordinates[37][0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
39729
dof_coordinates[37][1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
39730
dof_coordinates[37][2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
39731
dof_coordinates[38][0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
39732
dof_coordinates[38][1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
39733
dof_coordinates[38][2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
39734
dof_coordinates[39][0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[6] + 0.6*vertex_coordinates[9];
39735
dof_coordinates[39][1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[7] + 0.6*vertex_coordinates[10];
39736
dof_coordinates[39][2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[8] + 0.6*vertex_coordinates[11];
39737
dof_coordinates[40][0] = 0.6*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
39738
dof_coordinates[40][1] = 0.6*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
39739
dof_coordinates[40][2] = 0.6*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
39740
dof_coordinates[41][0] = 0.4*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
39741
dof_coordinates[41][1] = 0.4*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
39742
dof_coordinates[41][2] = 0.4*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
39743
dof_coordinates[42][0] = 0.2*vertex_coordinates[0] + 0.6*vertex_coordinates[3] + 0.2*vertex_coordinates[9];
39744
dof_coordinates[42][1] = 0.2*vertex_coordinates[1] + 0.6*vertex_coordinates[4] + 0.2*vertex_coordinates[10];
39745
dof_coordinates[42][2] = 0.2*vertex_coordinates[2] + 0.6*vertex_coordinates[5] + 0.2*vertex_coordinates[11];
39746
dof_coordinates[43][0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[9];
39747
dof_coordinates[43][1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[10];
39748
dof_coordinates[43][2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[11];
39749
dof_coordinates[44][0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.4*vertex_coordinates[9];
39750
dof_coordinates[44][1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.4*vertex_coordinates[10];
39751
dof_coordinates[44][2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.4*vertex_coordinates[11];
39752
dof_coordinates[45][0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.6*vertex_coordinates[9];
39753
dof_coordinates[45][1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.6*vertex_coordinates[10];
39754
dof_coordinates[45][2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.6*vertex_coordinates[11];
39755
dof_coordinates[46][0] = 0.6*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
39756
dof_coordinates[46][1] = 0.6*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
39757
dof_coordinates[46][2] = 0.6*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
39758
dof_coordinates[47][0] = 0.4*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
39759
dof_coordinates[47][1] = 0.4*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
39760
dof_coordinates[47][2] = 0.4*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
39761
dof_coordinates[48][0] = 0.2*vertex_coordinates[0] + 0.6*vertex_coordinates[3] + 0.2*vertex_coordinates[6];
39762
dof_coordinates[48][1] = 0.2*vertex_coordinates[1] + 0.6*vertex_coordinates[4] + 0.2*vertex_coordinates[7];
39763
dof_coordinates[48][2] = 0.2*vertex_coordinates[2] + 0.6*vertex_coordinates[5] + 0.2*vertex_coordinates[8];
39764
dof_coordinates[49][0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[6];
39765
dof_coordinates[49][1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[7];
39766
dof_coordinates[49][2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[8];
39767
dof_coordinates[50][0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.4*vertex_coordinates[6];
39768
dof_coordinates[50][1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.4*vertex_coordinates[7];
39769
dof_coordinates[50][2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.4*vertex_coordinates[8];
39770
dof_coordinates[51][0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.6*vertex_coordinates[6];
39771
dof_coordinates[51][1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.6*vertex_coordinates[7];
39772
dof_coordinates[51][2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.6*vertex_coordinates[8];
39773
dof_coordinates[52][0] = 0.4*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39774
dof_coordinates[52][1] = 0.4*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39775
dof_coordinates[52][2] = 0.4*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39776
dof_coordinates[53][0] = 0.2*vertex_coordinates[0] + 0.4*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39777
dof_coordinates[53][1] = 0.2*vertex_coordinates[1] + 0.4*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39778
dof_coordinates[53][2] = 0.2*vertex_coordinates[2] + 0.4*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39779
dof_coordinates[54][0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.4*vertex_coordinates[6] + 0.2*vertex_coordinates[9];
39780
dof_coordinates[54][1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.4*vertex_coordinates[7] + 0.2*vertex_coordinates[10];
39781
dof_coordinates[54][2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.4*vertex_coordinates[8] + 0.2*vertex_coordinates[11];
39782
dof_coordinates[55][0] = 0.2*vertex_coordinates[0] + 0.2*vertex_coordinates[3] + 0.2*vertex_coordinates[6] + 0.4*vertex_coordinates[9];
39783
dof_coordinates[55][1] = 0.2*vertex_coordinates[1] + 0.2*vertex_coordinates[4] + 0.2*vertex_coordinates[7] + 0.4*vertex_coordinates[10];
39784
dof_coordinates[55][2] = 0.2*vertex_coordinates[2] + 0.2*vertex_coordinates[5] + 0.2*vertex_coordinates[8] + 0.4*vertex_coordinates[11];
39830
39787
/// Return the number of sub dofmaps (for a mixed element)
39831
virtual unsigned int num_sub_dofmaps() const
39788
virtual std::size_t num_sub_dofmaps() const
39836
39793
/// Create a new dofmap for sub dofmap i (for a mixed element)
39837
virtual ufc::dofmap* create_sub_dofmap(unsigned int i) const
39794
virtual ufc::dofmap* create_sub_dofmap(std::size_t i) const