/// @file /// Test QFunction helper macro /// \test Test QFunction helper macro #include #include #include #include #include "t406-qfunction.h" int main(int argc, char **argv) { Ceed ceed; CeedVector in[16], out[16]; CeedVector Q_data, W, U, V; CeedQFunction qf_setup, qf_mass; CeedInt Q = 8; const CeedScalar *vv; CeedScalar w[Q], u[Q], v[Q]; CeedInit(argv[1], &ceed); CeedQFunctionCreateInterior(ceed, 1, setup, setup_loc, &qf_setup); CeedQFunctionAddInput(qf_setup, "w", 1, CEED_EVAL_WEIGHT); CeedQFunctionAddOutput(qf_setup, "qdata", 1, CEED_EVAL_NONE); CeedQFunctionCreateInterior(ceed, 1, mass, mass_loc, &qf_mass); CeedQFunctionAddInput(qf_mass, "qdata", 1, CEED_EVAL_NONE); CeedQFunctionAddInput(qf_mass, "u", 1, CEED_EVAL_INTERP); CeedQFunctionAddOutput(qf_mass, "v", 1, CEED_EVAL_INTERP); for (CeedInt i=0; i 1E3*CEED_EPSILON) // LCOV_EXCL_START printf("[%" CeedInt_FMT "] v %f != vv %f\n",i, 5*v[i]*sqrt(2.), vv[i]); // LCOV_EXCL_STOP CeedVectorRestoreArrayRead(V, &vv); CeedVectorDestroy(&W); CeedVectorDestroy(&U); CeedVectorDestroy(&V); CeedVectorDestroy(&Q_data); CeedQFunctionDestroy(&qf_setup); CeedQFunctionDestroy(&qf_mass); CeedDestroy(&ceed); return 0; }