1a8de75f0Sjeremylt /// @file 2d1d35e2fSjeremylt /// Test square Gauss Lobatto interp_1d is identity 3d1d35e2fSjeremylt /// \test Test square Gauss Lobatto interp_1d is identity 4a8de75f0Sjeremylt #include <ceed.h> 552bfb9bbSJeremy L Thompson #include <math.h> 62b730f8bSJeremy L Thompson #include <stdio.h> 7a8de75f0Sjeremylt 8a8de75f0Sjeremylt int main(int argc, char **argv) { 9a8de75f0Sjeremylt Ceed ceed; 10*4fee36f0SJeremy L Thompson CeedBasis basis; 11*4fee36f0SJeremy L Thompson CeedVector u, v; 12*4fee36f0SJeremy L Thompson int i, dim = 2, p = 4, q = 4, len = (int)(pow((CeedScalar)(q), dim) + 0.4); 13a8de75f0Sjeremylt 14a8de75f0Sjeremylt CeedInit(argv[1], &ceed); 1552bfb9bbSJeremy L Thompson 16*4fee36f0SJeremy L Thompson CeedVectorCreate(ceed, len, &u); 17*4fee36f0SJeremy L Thompson CeedVectorCreate(ceed, len, &v); 1852bfb9bbSJeremy L Thompson 19*4fee36f0SJeremy L Thompson { 20*4fee36f0SJeremy L Thompson CeedScalar u_array[len]; 2152bfb9bbSJeremy L Thompson 22*4fee36f0SJeremy L Thompson for (i = 0; i < len; i++) u_array[i] = 1.0; 23*4fee36f0SJeremy L Thompson CeedVectorSetArray(u, CEED_MEM_HOST, CEED_COPY_VALUES, u_array); 242b730f8bSJeremy L Thompson } 25a8de75f0Sjeremylt 26*4fee36f0SJeremy L Thompson CeedBasisCreateTensorH1Lagrange(ceed, dim, 1, p, q, CEED_GAUSS_LOBATTO, &basis); 27*4fee36f0SJeremy L Thompson 28*4fee36f0SJeremy L Thompson CeedBasisApply(basis, 1, CEED_NOTRANSPOSE, CEED_EVAL_INTERP, u, v); 29*4fee36f0SJeremy L Thompson 30*4fee36f0SJeremy L Thompson { 31*4fee36f0SJeremy L Thompson const CeedScalar *v_array; 32*4fee36f0SJeremy L Thompson 33*4fee36f0SJeremy L Thompson CeedVectorGetArrayRead(v, CEED_MEM_HOST, &v_array); 34*4fee36f0SJeremy L Thompson for (i = 0; i < len; i++) { 35*4fee36f0SJeremy L Thompson if (fabs(v_array[i] - 1.) > 10. * CEED_EPSILON) printf("v[%" CeedInt_FMT "] = %f != 1.\n", i, v_array[i]); 36*4fee36f0SJeremy L Thompson } 37*4fee36f0SJeremy L Thompson CeedVectorRestoreArrayRead(v, &v_array); 38*4fee36f0SJeremy L Thompson } 39*4fee36f0SJeremy L Thompson 40*4fee36f0SJeremy L Thompson CeedBasisDestroy(&basis); 41*4fee36f0SJeremy L Thompson CeedVectorDestroy(&u); 42*4fee36f0SJeremy L Thompson CeedVectorDestroy(&v); 43a8de75f0Sjeremylt CeedDestroy(&ceed); 44a8de75f0Sjeremylt return 0; 45a8de75f0Sjeremylt } 46