15fb68f37SKaren (Ren) Stengel /// @file
25fb68f37SKaren (Ren) Stengel /// Test creation, copying, and destroying of a vector
35fb68f37SKaren (Ren) Stengel /// \test Test creation, copying, and destroying of a vector
45fb68f37SKaren (Ren) Stengel #include <ceed.h>
5*49aac155SJeremy L Thompson #include <stdio.h>
65fb68f37SKaren (Ren) Stengel
main(int argc,char ** argv)75fb68f37SKaren (Ren) Stengel int main(int argc, char **argv) {
85fb68f37SKaren (Ren) Stengel Ceed ceed;
95fb68f37SKaren (Ren) Stengel CeedVector x, x_copy;
105fb68f37SKaren (Ren) Stengel CeedInt len = 10;
115fb68f37SKaren (Ren) Stengel
125fb68f37SKaren (Ren) Stengel CeedInit(argv[1], &ceed);
135fb68f37SKaren (Ren) Stengel
145fb68f37SKaren (Ren) Stengel CeedVectorCreate(ceed, len, &x);
155fb68f37SKaren (Ren) Stengel CeedVectorCreate(ceed, len, &x_copy);
165fb68f37SKaren (Ren) Stengel
175fb68f37SKaren (Ren) Stengel {
185fb68f37SKaren (Ren) Stengel CeedScalar array[len], array_copy[len];
195fb68f37SKaren (Ren) Stengel
205fb68f37SKaren (Ren) Stengel for (CeedInt i = 0; i < len; i++) {
215fb68f37SKaren (Ren) Stengel array[i] = 10 + i;
225fb68f37SKaren (Ren) Stengel array_copy[i] = i;
235fb68f37SKaren (Ren) Stengel }
245fb68f37SKaren (Ren) Stengel
255fb68f37SKaren (Ren) Stengel CeedVectorSetArray(x, CEED_MEM_HOST, CEED_COPY_VALUES, array);
265fb68f37SKaren (Ren) Stengel CeedVectorSetArray(x_copy, CEED_MEM_HOST, CEED_COPY_VALUES, array_copy);
275fb68f37SKaren (Ren) Stengel }
285fb68f37SKaren (Ren) Stengel
295fb68f37SKaren (Ren) Stengel CeedVectorCopy(x, x_copy);
305fb68f37SKaren (Ren) Stengel
315fb68f37SKaren (Ren) Stengel {
325fb68f37SKaren (Ren) Stengel const CeedScalar *read_array;
335fb68f37SKaren (Ren) Stengel // Check that new array from x_copy is the same as the original input array a
345fb68f37SKaren (Ren) Stengel CeedVectorGetArrayRead(x_copy, CEED_MEM_HOST, &read_array);
355fb68f37SKaren (Ren) Stengel for (CeedInt i = 0; i < len; i++) {
365fb68f37SKaren (Ren) Stengel if ((10 + i) != read_array[i]) printf("Error in copying values of CeedVector\n");
375fb68f37SKaren (Ren) Stengel }
385fb68f37SKaren (Ren) Stengel CeedVectorRestoreArrayRead(x_copy, &read_array);
395fb68f37SKaren (Ren) Stengel }
405fb68f37SKaren (Ren) Stengel CeedVectorDestroy(&x);
415fb68f37SKaren (Ren) Stengel CeedVectorDestroy(&x_copy);
425fb68f37SKaren (Ren) Stengel CeedDestroy(&ceed);
435fb68f37SKaren (Ren) Stengel return 0;
445fb68f37SKaren (Ren) Stengel }
45