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