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