xref: /libCEED/tests/t303-basis.c (revision 52bfb9bbf17f17edbcd45876cdc8689a879bc683)
14411cf47Sjeremylt /// @file
2*52bfb9bbSJeremy L Thompson /// Test that topological and geometric dimensions of basis match
3*52bfb9bbSJeremy L Thompson /// \test Test that topological and geometric dimensions of basis match
457c64913Sjeremylt #include <ceed.h>
557c64913Sjeremylt #include <math.h>
657c64913Sjeremylt 
757c64913Sjeremylt int main(int argc, char **argv) {
857c64913Sjeremylt   Ceed ceed;
9*52bfb9bbSJeremy L Thompson   CeedBasis b;
10*52bfb9bbSJeremy L Thompson   CeedVector U, V;
11*52bfb9bbSJeremy L Thompson   CeedInt Q = 8, P = 2, ncomp = 1, dim = 3,
12*52bfb9bbSJeremy L Thompson           len = pow((double)(Q), dim);
1357c64913Sjeremylt 
1457c64913Sjeremylt   CeedInit(argv[1], &ceed);
1557c64913Sjeremylt 
16*52bfb9bbSJeremy L Thompson   CeedVectorCreate(ceed, len,   &U);
17*52bfb9bbSJeremy L Thompson   CeedVectorCreate(ceed, len+1, &V);
18aedaa0e5Sjeremylt 
19*52bfb9bbSJeremy L Thompson   CeedBasisCreateTensorH1Lagrange(ceed, dim, ncomp, P, Q, CEED_GAUSS, &b);
20aedaa0e5Sjeremylt 
21*52bfb9bbSJeremy L Thompson   // Basis apply will error because dimensions don't agree
22*52bfb9bbSJeremy L Thompson   CeedBasisApply(b, 1, CEED_NOTRANSPOSE, CEED_EVAL_INTERP, U, V);
23aedaa0e5Sjeremylt 
24a2546046Sjeremylt   // LCOV_EXCL_START
25*52bfb9bbSJeremy L Thompson   CeedBasisDestroy(&b);
26aedaa0e5Sjeremylt   CeedVectorDestroy(&U);
27*52bfb9bbSJeremy L Thompson   CeedVectorDestroy(&V);
2857c64913Sjeremylt   CeedDestroy(&ceed);
2957c64913Sjeremylt   return 0;
30*52bfb9bbSJeremy L Thompson   // LCOV_EXCL_STOP
3157c64913Sjeremylt }
32