11134a487Sjeremylt /// @file 21134a487Sjeremylt /// Test creation, evaluation, and destruction of identity qfunction with size>1 31134a487Sjeremylt /// \test Test creation, evaluation, and destruction of identity qfunction with size>1 41134a487Sjeremylt #include <ceed.h> 51134a487Sjeremylt #include <math.h> 61134a487Sjeremylt 71134a487Sjeremylt int main(int argc, char **argv) { 81134a487Sjeremylt Ceed ceed; 91134a487Sjeremylt CeedVector in[16], out[16]; 101134a487Sjeremylt CeedVector U, V; 111134a487Sjeremylt CeedQFunction qf; 121134a487Sjeremylt CeedInt Q = 8, size = 3; 131134a487Sjeremylt const CeedScalar *v; 14*b1f1e60fSNatalie Beams CeedScalar u[Q*size]; 151134a487Sjeremylt 161134a487Sjeremylt CeedInit(argv[1], &ceed); 171134a487Sjeremylt 1860f77c51Sjeremylt CeedQFunctionCreateIdentity(ceed, size, CEED_EVAL_INTERP, CEED_EVAL_INTERP, 1960f77c51Sjeremylt &qf); 201134a487Sjeremylt 211134a487Sjeremylt for (CeedInt i=0; i<Q*size; i++) 221134a487Sjeremylt u[i] = i*i; 231134a487Sjeremylt 241134a487Sjeremylt CeedVectorCreate(ceed, Q*size, &U); 251134a487Sjeremylt CeedVectorSetArray(U, CEED_MEM_HOST, CEED_USE_POINTER, u); 261134a487Sjeremylt CeedVectorCreate(ceed, Q*size, &V); 271134a487Sjeremylt CeedVectorSetValue(V, 0); 281134a487Sjeremylt 291134a487Sjeremylt { 301134a487Sjeremylt in[0] = U; 311134a487Sjeremylt out[0] = V; 321134a487Sjeremylt CeedQFunctionApply(qf, Q, in, out); 331134a487Sjeremylt } 341134a487Sjeremylt 351134a487Sjeremylt CeedVectorGetArrayRead(V, CEED_MEM_HOST, &v); 361134a487Sjeremylt for (CeedInt i=0; i<Q*size; i++) 374e367ab1Sjeremylt if (fabs(v[i] - u[i])>1e-12) 381134a487Sjeremylt // LCOV_EXCL_START 391134a487Sjeremylt printf("[%d] v %f != u %f\n",i, v[i], u[i]); 401134a487Sjeremylt // LCOV_EXCL_STOP 411134a487Sjeremylt CeedVectorRestoreArrayRead(V, &v); 421134a487Sjeremylt 431134a487Sjeremylt CeedVectorDestroy(&U); 441134a487Sjeremylt CeedVectorDestroy(&V); 451134a487Sjeremylt CeedQFunctionDestroy(&qf); 461134a487Sjeremylt CeedDestroy(&ceed); 471134a487Sjeremylt return 0; 481134a487Sjeremylt } 49