1*57c64913Sjeremylt // Test square Gauss Lobatto interp1d is identity 2*57c64913Sjeremylt #include <ceed.h> 3*57c64913Sjeremylt #include <stdio.h> 4*57c64913Sjeremylt #include <math.h> 5*57c64913Sjeremylt 6*57c64913Sjeremylt int main(int argc, char **argv) { 7*57c64913Sjeremylt Ceed ceed; 8*57c64913Sjeremylt CeedBasis b; 9*57c64913Sjeremylt int i, dim = 2, P1d = 4, Q1d = 4, len = (int)(pow((double)(Q1d), dim) + 0.4); 10*57c64913Sjeremylt CeedScalar u[len], v[len]; 11*57c64913Sjeremylt 12*57c64913Sjeremylt CeedInit(argv[1], &ceed); 13*57c64913Sjeremylt for (i = 0; i < len; i++) { 14*57c64913Sjeremylt u[i] = 1.0; 15*57c64913Sjeremylt } 16*57c64913Sjeremylt CeedBasisCreateTensorH1Lagrange(ceed, dim, 1, P1d, Q1d, CEED_GAUSS_LOBATTO, &b); 17*57c64913Sjeremylt CeedBasisApply(b, 1, CEED_NOTRANSPOSE, CEED_EVAL_INTERP, u, v); 18*57c64913Sjeremylt for (i = 0; i < len; i++) { 19*57c64913Sjeremylt if (fabs(v[i] - 1.) > 1e-15) printf("v[%d] = %f != 1.\n", i, v[i]); 20*57c64913Sjeremylt } 21*57c64913Sjeremylt CeedBasisDestroy(&b); 22*57c64913Sjeremylt CeedDestroy(&ceed); 23*57c64913Sjeremylt return 0; 24*57c64913Sjeremylt } 25