xref: /libCEED/tests/t301-basis.c (revision 4411cf47fb395f7f699e30c3c49d97ec6ad92316)
1*4411cf47Sjeremylt /// @file
2*4411cf47Sjeremylt /// Test square Gauss Lobatto interp1d is identity
3*4411cf47Sjeremylt /// \test Test square Gauss Lobatto interp1d is identity
457c64913Sjeremylt #include <ceed.h>
557c64913Sjeremylt #include <stdio.h>
657c64913Sjeremylt #include <math.h>
757c64913Sjeremylt 
857c64913Sjeremylt int main(int argc, char **argv) {
957c64913Sjeremylt   Ceed ceed;
1057c64913Sjeremylt   CeedBasis b;
1157c64913Sjeremylt   int i, dim = 2, P1d = 4, Q1d = 4, len = (int)(pow((double)(Q1d), dim) + 0.4);
1257c64913Sjeremylt   CeedScalar u[len], v[len];
1357c64913Sjeremylt 
1457c64913Sjeremylt   CeedInit(argv[1], &ceed);
1557c64913Sjeremylt   for (i = 0; i < len; i++) {
1657c64913Sjeremylt     u[i] = 1.0;
1757c64913Sjeremylt   }
1857c64913Sjeremylt   CeedBasisCreateTensorH1Lagrange(ceed, dim, 1, P1d, Q1d, CEED_GAUSS_LOBATTO, &b);
1957c64913Sjeremylt   CeedBasisApply(b, 1, CEED_NOTRANSPOSE, CEED_EVAL_INTERP, u, v);
2057c64913Sjeremylt   for (i = 0; i < len; i++) {
2157c64913Sjeremylt     if (fabs(v[i] - 1.) > 1e-15) printf("v[%d] = %f != 1.\n", i, v[i]);
2257c64913Sjeremylt   }
2357c64913Sjeremylt   CeedBasisDestroy(&b);
2457c64913Sjeremylt   CeedDestroy(&ceed);
2557c64913Sjeremylt   return 0;
2657c64913Sjeremylt }
27