xref: /libCEED/tests/t104-vector.c (revision 5aed82e4fa97acf4ba24a7f10a35f5303a6798e0)
1 /// @file
2 /// Test CeedVectorGetArray to modify array
3 /// \test Test CeedVectorGetArray to modify array
4 #include <ceed.h>
5 #include <stdio.h>
6 
7 int main(int argc, char **argv) {
8   Ceed          ceed;
9   CeedVector    x;
10   const CeedInt len = 10;
11   CeedScalar    array[len];
12 
13   CeedInit(argv[1], &ceed);
14 
15   CeedVectorCreate(ceed, len, &x);
16   for (CeedInt i = 0; i < len; i++) array[i] = 0;
17   CeedVectorSetArray(x, CEED_MEM_HOST, CEED_USE_POINTER, array);
18 
19   {
20     CeedScalar *writable_array;
21 
22     CeedVectorGetArray(x, CEED_MEM_HOST, &writable_array);
23     writable_array[3] = -3.14;
24     CeedVectorRestoreArray(x, &writable_array);
25   }
26 
27   if (array[3] != (CeedScalar)(-3.14)) printf("Error writing array[3] = %f\n", (CeedScalar)array[3]);
28 
29   CeedVectorDestroy(&x);
30   CeedDestroy(&ceed);
31   return 0;
32 }
33