xref: /libCEED/tests/t508-operator.c (revision 9560d06a92c065fb7d600a8c20ade8d9a4cda324)
1*9560d06aSjeremylt /// @file
2*9560d06aSjeremylt /// Test creation, copying, and destruction for mass matrix operator
3*9560d06aSjeremylt /// \test Test creation, copying, and destruction for mass matrix operator
4*9560d06aSjeremylt #include <ceed.h>
5*9560d06aSjeremylt #include <stdlib.h>
6*9560d06aSjeremylt #include <math.h>
7*9560d06aSjeremylt 
8*9560d06aSjeremylt #include "t500-operator.h"
9*9560d06aSjeremylt 
10*9560d06aSjeremylt int main(int argc, char **argv) {
11*9560d06aSjeremylt   Ceed ceed;
12*9560d06aSjeremylt   CeedQFunction qf, qf_2;
13*9560d06aSjeremylt   CeedOperator op, op_2;
14*9560d06aSjeremylt 
15*9560d06aSjeremylt   CeedInit(argv[1], &ceed);
16*9560d06aSjeremylt 
17*9560d06aSjeremylt   CeedQFunctionCreateInterior(ceed, 1, setup, setup_loc, &qf);
18*9560d06aSjeremylt   CeedQFunctionCreateInterior(ceed, 1, mass, mass_loc, &qf_2);
19*9560d06aSjeremylt   CeedOperatorCreate(ceed, qf, CEED_QFUNCTION_NONE, CEED_QFUNCTION_NONE,
20*9560d06aSjeremylt                      &op);
21*9560d06aSjeremylt   CeedOperatorCreate(ceed, qf_2, CEED_QFUNCTION_NONE, CEED_QFUNCTION_NONE,
22*9560d06aSjeremylt                      &op_2);
23*9560d06aSjeremylt 
24*9560d06aSjeremylt   CeedOperatorReferenceCopy(op, &op_2); // This destroys the previous op_2
25*9560d06aSjeremylt   if (op != op_2)
26*9560d06aSjeremylt     // LCOV_EXCL_START
27*9560d06aSjeremylt     printf("Error copying CeedOperator reference.");
28*9560d06aSjeremylt   // LCOV_EXCL_STOP
29*9560d06aSjeremylt 
30*9560d06aSjeremylt   CeedQFunctionDestroy(&qf);
31*9560d06aSjeremylt   CeedQFunctionDestroy(&qf_2);
32*9560d06aSjeremylt   CeedOperatorDestroy(&op);
33*9560d06aSjeremylt   CeedOperatorDestroy(&op_2);
34*9560d06aSjeremylt   CeedDestroy(&ceed);
35*9560d06aSjeremylt   return 0;
36*9560d06aSjeremylt }
37