1a8de75f0Sjeremylt /// @file 2*d1d35e2fSjeremylt /// Test square Gauss Lobatto interp_1d is identity 3*d1d35e2fSjeremylt /// \test Test square Gauss Lobatto interp_1d is identity 4a8de75f0Sjeremylt #include <ceed.h> 552bfb9bbSJeremy L Thompson #include <stdio.h> 652bfb9bbSJeremy L Thompson #include <math.h> 7a8de75f0Sjeremylt 8a8de75f0Sjeremylt int main(int argc, char **argv) { 9a8de75f0Sjeremylt Ceed ceed; 10a8de75f0Sjeremylt CeedBasis b; 1152bfb9bbSJeremy L Thompson CeedVector U, V; 12*d1d35e2fSjeremylt int i, dim = 2, P_1d = 4, Q_1d = 4, len = (int)(pow((double)(Q_1d), dim) + 0.4); 1352bfb9bbSJeremy L Thompson CeedScalar u[len]; 1452bfb9bbSJeremy L Thompson const CeedScalar *v; 15a8de75f0Sjeremylt 16a8de75f0Sjeremylt CeedInit(argv[1], &ceed); 1752bfb9bbSJeremy L Thompson 1852bfb9bbSJeremy L Thompson CeedVectorCreate(ceed, len, &U); 1952bfb9bbSJeremy L Thompson CeedVectorCreate(ceed, len, &V); 2052bfb9bbSJeremy L Thompson 2152bfb9bbSJeremy L Thompson for (i = 0; i < len; i++) 2252bfb9bbSJeremy L Thompson u[i] = 1.0; 2352bfb9bbSJeremy L Thompson CeedVectorSetArray(U, CEED_MEM_HOST, CEED_USE_POINTER, u); 2452bfb9bbSJeremy L Thompson 25*d1d35e2fSjeremylt CeedBasisCreateTensorH1Lagrange(ceed, dim, 1, P_1d, Q_1d, 2652bfb9bbSJeremy L Thompson CEED_GAUSS_LOBATTO, &b); 2752bfb9bbSJeremy L Thompson 2852bfb9bbSJeremy L Thompson CeedBasisApply(b, 1, CEED_NOTRANSPOSE, CEED_EVAL_INTERP, U, V); 2952bfb9bbSJeremy L Thompson 3052bfb9bbSJeremy L Thompson CeedVectorGetArrayRead(V, CEED_MEM_HOST, &v); 3152bfb9bbSJeremy L Thompson for (i = 0; i < len; i++) 322f8bb677Svaleriabarra if (fabs(v[i] - 1.) > 1E-15) 3352bfb9bbSJeremy L Thompson // LCOV_EXCL_START 3452bfb9bbSJeremy L Thompson printf("v[%d] = %f != 1.\n", i, v[i]); 3552bfb9bbSJeremy L Thompson // LCOV_EXCL_STOP 3652bfb9bbSJeremy L Thompson CeedVectorRestoreArrayRead(V, &v); 37a8de75f0Sjeremylt 38a8de75f0Sjeremylt CeedBasisDestroy(&b); 3952bfb9bbSJeremy L Thompson CeedVectorDestroy(&U); 4052bfb9bbSJeremy L Thompson CeedVectorDestroy(&V); 41a8de75f0Sjeremylt CeedDestroy(&ceed); 42a8de75f0Sjeremylt return 0; 43a8de75f0Sjeremylt } 44