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