diff --git a/main.cpp b/main.cpp index 303cf696ab24ff5283ce5c85d6ea36fb4a6c93a9..e29e7d3b0d233fe2bae616ee5c8737df7b9ab8c5 100644 --- a/main.cpp +++ b/main.cpp @@ -26,9 +26,9 @@ int main(void) float* farray; size_t farray_size = 0; memproc::realloc<MemType::CPU>((void *&)(farray), farray_size, mesh1.GetCellsNum() * sizeof(float)); - memproc::memcopy<MemType::CPU, MemType::GPU>(farray, (*cells_temp), farray_size); + memproc::memcopy<MemType::CPU, MemType::GPU>(farray, *cells_temp.get(), mesh1.GetCellsNum() * sizeof(float)); farray[0] = 1.0f; farray[1] = 2.0f; farray[2] = 3.0f; - memproc::memcopy<MemType::GPU, MemType::CPU>((*cells_temp), farray, farray_size); + memproc::memcopy<MemType::GPU, MemType::CPU>(*cells_temp.get(), farray, mesh1.GetCellsNum() * sizeof(float)); #else (*cells_temp)[0] = 1.0f; (*cells_temp)[1] = 2.0f; (*cells_temp)[2] = 3.0f; #endif @@ -40,9 +40,9 @@ int main(void) // one can modify nodes data #ifdef INCLUDE_CUDA memproc::realloc<MemType::CPU>((void *&)(farray), farray_size, mesh1.GetNodesNum() * sizeof(float)); - memproc::memcopy<MemType::CPU, MemType::GPU>(farray, (*nodes_k), farray_size); + memproc::memcopy<MemType::CPU, MemType::GPU>(farray, *nodes_k.get(), mesh1.GetNodesNum() * sizeof(float)); farray[0] = -5.0f; farray[mesh1.GetNodesNum() - 1] = -3.0f; - memproc::memcopy<MemType::GPU, MemType::CPU>((*nodes_k), farray, farray_size); + memproc::memcopy<MemType::GPU, MemType::CPU>(*nodes_k.get(), farray, mesh1.GetNodesNum() * sizeof(float)); #else (*nodes_k)[0] = -5.0f; (*nodes_k)[mesh1.GetNodesNum() - 1] = -3.0f; #endif @@ -67,19 +67,19 @@ int main(void) #ifdef INCLUDE_CUDA memproc::realloc<MemType::CPU>((void *&)(farray), farray_size, mesh1.GetCellsNum() * sizeof(float)); - memproc::memcopy<MemType::CPU, MemType::GPU>(farray, (*another_cells_temp), farray_size); + memproc::memcopy<MemType::CPU, MemType::GPU>(farray, *another_cells_temp.get(), mesh1.GetCellsNum() * sizeof(float)); farray[0] = -5.0f; - memproc::memcopy<MemType::GPU, MemType::CPU>((*another_cells_temp), farray, farray_size); + memproc::memcopy<MemType::GPU, MemType::CPU>(*another_cells_temp.get(), farray, mesh1.GetCellsNum() * sizeof(float)); memproc::realloc<MemType::CPU>((void *&)(farray), farray_size, mesh1.GetNodesNum() * sizeof(float)); - memproc::memcopy<MemType::CPU, MemType::GPU>(farray, (*another_nodes_k), farray_size); + memproc::memcopy<MemType::CPU, MemType::GPU>(farray, *another_nodes_k.get(), mesh1.GetNodesNum() * sizeof(float)); farray[0] *= 2.0f; - memproc::memcopy<MemType::GPU, MemType::CPU>((*another_nodes_k), farray, farray_size); + memproc::memcopy<MemType::GPU, MemType::CPU>(*another_nodes_k.get(), farray, mesh1.GetNodesNum() * sizeof(float)); #else (*another_cells_temp)[0] = -5.0f; (*another_nodes_k)[0] *= 2.0f; - (*another_temp_ib) = -30.0f; #endif + (*another_temp_ib) = -30.0f; // one can get total thickness std::cout << "current total cell thickness: " << mesh1.GetTotalThickness() << std::endl; @@ -114,7 +114,7 @@ int main(void) size_t dev_segment_partition_size = 0; memproc::realloc<MemType::GPU>((void *&)(dev_segment_partition), dev_segment_partition_size, 2 * sizeof(double)); - memproc::memcopy<MemType::GPU, MemType::CPU>(dev_segment_partition, dsegment_partition, dev_segment_partition_size); + memproc::memcopy<MemType::GPU, MemType::CPU>(dev_segment_partition, dsegment_partition, 2 * sizeof(double)); Mesh<double, MemType::GPU> mesh3(dev_segment_partition, 2, 5.0); #else @@ -138,12 +138,12 @@ int main(void) size_t darray_size = 0; memproc::realloc<MemType::CPU>((void *&)(darray), darray_size, N * sizeof(double)); - memproc::memcopy<MemType::CPU, MemType::GPU>(darray, *cells_thick, N); + memproc::memcopy<MemType::CPU, MemType::GPU>(darray, *cells_thick.get(), N * sizeof(double)); for (int i = 0; i < N; ++i) darray[i] = -5.0 + i*1.0/N * (-5.0); - memproc::memcopy<MemType::GPU, MemType::CPU>(*cells_thick, darray, N); + memproc::memcopy<MemType::GPU, MemType::CPU>(*cells_thick.get(), darray, N * sizeof(double)); #else for (int i = 0; i < N; ++i) (*cells_thick)[i] = -5.0 + i*1.0/N * (-5.0); @@ -156,7 +156,7 @@ int main(void) dsegment_partition[0] = 0.5; dsegment_partition[1] = 0.4; memproc::realloc<MemType::GPU>((void *&)(dev_segment_partition), dev_segment_partition_size, 2 * sizeof(double)); - memproc::memcopy<MemType::GPU, MemType::CPU>(dev_segment_partition, dsegment_partition, dev_segment_partition_size); + memproc::memcopy<MemType::GPU, MemType::CPU>(dev_segment_partition, dsegment_partition, 2 * sizeof(double)); Mesh<double, MemType::GPU> mesh4(dev_segment_partition, 2, 5.0); #else