1*5fb68f37SKaren (Ren) Stengel /// @file 2*5fb68f37SKaren (Ren) Stengel /// Test creation, copying, and destroying of a vector 3*5fb68f37SKaren (Ren) Stengel /// \test Test creation, copying, and destroying of a vector 4*5fb68f37SKaren (Ren) Stengel #include <ceed.h> 5*5fb68f37SKaren (Ren) Stengel 6*5fb68f37SKaren (Ren) Stengel int main(int argc, char **argv) { 7*5fb68f37SKaren (Ren) Stengel Ceed ceed; 8*5fb68f37SKaren (Ren) Stengel CeedVector x, x_copy; 9*5fb68f37SKaren (Ren) Stengel CeedInt len = 10; 10*5fb68f37SKaren (Ren) Stengel 11*5fb68f37SKaren (Ren) Stengel CeedInit(argv[1], &ceed); 12*5fb68f37SKaren (Ren) Stengel 13*5fb68f37SKaren (Ren) Stengel CeedVectorCreate(ceed, len, &x); 14*5fb68f37SKaren (Ren) Stengel CeedVectorCreate(ceed, len, &x_copy); 15*5fb68f37SKaren (Ren) Stengel 16*5fb68f37SKaren (Ren) Stengel { 17*5fb68f37SKaren (Ren) Stengel CeedScalar array[len], array_copy[len]; 18*5fb68f37SKaren (Ren) Stengel 19*5fb68f37SKaren (Ren) Stengel for (CeedInt i = 0; i < len; i++) { 20*5fb68f37SKaren (Ren) Stengel array[i] = 10 + i; 21*5fb68f37SKaren (Ren) Stengel array_copy[i] = i; 22*5fb68f37SKaren (Ren) Stengel } 23*5fb68f37SKaren (Ren) Stengel 24*5fb68f37SKaren (Ren) Stengel CeedVectorSetArray(x, CEED_MEM_HOST, CEED_COPY_VALUES, array); 25*5fb68f37SKaren (Ren) Stengel CeedVectorSetArray(x_copy, CEED_MEM_HOST, CEED_COPY_VALUES, array_copy); 26*5fb68f37SKaren (Ren) Stengel } 27*5fb68f37SKaren (Ren) Stengel 28*5fb68f37SKaren (Ren) Stengel CeedVectorCopy(x, x_copy); 29*5fb68f37SKaren (Ren) Stengel 30*5fb68f37SKaren (Ren) Stengel { 31*5fb68f37SKaren (Ren) Stengel const CeedScalar *read_array; 32*5fb68f37SKaren (Ren) Stengel // Check that new array from x_copy is the same as the original input array a 33*5fb68f37SKaren (Ren) Stengel CeedVectorGetArrayRead(x_copy, CEED_MEM_HOST, &read_array); 34*5fb68f37SKaren (Ren) Stengel for (CeedInt i = 0; i < len; i++) { 35*5fb68f37SKaren (Ren) Stengel if ((10 + i) != read_array[i]) printf("Error in copying values of CeedVector\n"); 36*5fb68f37SKaren (Ren) Stengel } 37*5fb68f37SKaren (Ren) Stengel CeedVectorRestoreArrayRead(x_copy, &read_array); 38*5fb68f37SKaren (Ren) Stengel } 39*5fb68f37SKaren (Ren) Stengel CeedVectorDestroy(&x); 40*5fb68f37SKaren (Ren) Stengel CeedVectorDestroy(&x_copy); 41*5fb68f37SKaren (Ren) Stengel CeedDestroy(&ceed); 42*5fb68f37SKaren (Ren) Stengel return 0; 43*5fb68f37SKaren (Ren) Stengel } 44