1 /// @file 2 /// Test setting one vector from array of another vector 3 /// \test Test setting one vector from array of another vector 4 #include <ceed.h> 5 6 int main(int argc, char **argv) { 7 Ceed ceed; 8 CeedVector X, Y; 9 CeedInt n; 10 CeedScalar a[10]; 11 CeedScalar *x; 12 const CeedScalar *y; 13 14 CeedInit(argv[1], &ceed); 15 16 n = 10; 17 CeedVectorCreate(ceed, n, &X); 18 CeedVectorCreate(ceed, n, &Y); 19 20 for (CeedInt i = 0; i < n; i++) a[i] = 10 + i; 21 CeedVectorSetArray(X, CEED_MEM_HOST, CEED_USE_POINTER, a); 22 23 CeedVectorGetArray(X, CEED_MEM_HOST, &x); 24 CeedVectorSetArray(Y, CEED_MEM_HOST, CEED_COPY_VALUES, x); 25 CeedVectorRestoreArray(X, &x); 26 27 CeedVectorGetArrayRead(Y, CEED_MEM_HOST, &y); 28 for (CeedInt i = 0; i < n; i++) { 29 if (y[i] != 10 + i) printf("Error reading array y[%" CeedInt_FMT "] = %f\n", i, (CeedScalar)y[i]); 30 } 31 CeedVectorRestoreArrayRead(Y, &y); 32 33 CeedVectorDestroy(&X); 34 CeedVectorDestroy(&Y); 35 CeedDestroy(&ceed); 36 return 0; 37 } 38