Compare commits

..

5 Commits

Author SHA1 Message Date
Rifki Sadikin 76b0868517 Update PoissonSolver3DCylindricalGPU.cxx 6 years ago
Rifki Sadikin a0688993b6 Update PETUNJUKPENGGUNAAN.md 6 years ago
Rifki Sadikin 37fa9320bb Update README.md 6 years ago
Rifki Sadikin 86df11e0ce Update PETUNJUKPENGGUNAAN.md 6 years ago
Rifki Sadikin 52a6fa8451 Update PETUNJUKPENGGUNAAN.md 6 years ago
  1. 11
      PETUNJUKPENGGUNAAN.md
  2. 2
      README.md
  3. 7
      interface/PoissonSolver3DCylindricalGPU.cxx

@ -48,7 +48,7 @@ module load cuda
## Instalasi ## Instalasi
Untuk menginstall pustaka PoissonSolver3DCylindricalGPU lakukan langkah-langkah berikut: Untuk menginstall pustaka PoissonSolver3DCylindricalGPU lakukan langkah-langkah berikut:
1. Jalankan git clone untuk menyalin kode sumber ke direktori local. Perintah ini akan menyalin kode sumber ke direktori **PoissonSolver3D** 1. Jalankan git clone untuk menyalin kode sumber ke direktori local. Perintah ini akan menyalin kode sumber ke direktori **PoissonSolver3DCylindricalGPU**
``` ```
$ git clone http://gitlab.lipi.go.id/rifki.sadikin/PoissonSolver3DCylindricalGPU.git $ git clone http://gitlab.lipi.go.id/rifki.sadikin/PoissonSolver3DCylindricalGPU.git
``` ```
@ -169,7 +169,9 @@ if(PSLIB_NOTFOUND GREATER -1)
message( FATAL_ERROR "Poisson Solver Cuda Library libPoissonSolver3DCylindricalGPU.o not found" ) message( FATAL_ERROR "Poisson Solver Cuda Library libPoissonSolver3DCylindricalGPU.o not found" )
endif(PSLIB_NOTFOUND GREATER -1) endif(PSLIB_NOTFOUND GREATER -1)
``` ```
Setelah itu, baru tambahkan perintah pada CMakeLists.txt (dilanjutkan) untuk mengikut sertakan kode sumber user yaitu: Setelah itu, baru tambahkan perintah pada CMakeLists.txt (dilanjutkan) untuk mengikut sertakan kode sumber user yaitu:
``` ```
# tambah disini kode sumber user # tambah disini kode sumber user
set(CPP_SOURCE PoissonSolver3DGPUTest.cpp) set(CPP_SOURCE PoissonSolver3DGPUTest.cpp)
@ -185,6 +187,7 @@ target_link_libraries(${TARGET_NAME} ${PSLIB} ${LIBCUDA_SO_PATH})
``` ```
2. Pada kode sumber include header file sehingga definisi fungsi dan kelas dapat dipanggil di badan kode. 2. Pada kode sumber include header file sehingga definisi fungsi dan kelas dapat dipanggil di badan kode.
```c++ ```c++
#include "PoissonSolver3DCylindricalGPU.h" #include "PoissonSolver3DCylindricalGPU.h"
... ...
@ -196,6 +199,7 @@ poissonSolver->SetStrategy(PoissonSolver3DCylindricalGPU::kMultiGrid);
poissonSolver->SetCycleType(PoissonSolver3DCylindricalGPU::kFCycle); poissonSolver->SetCycleType(PoissonSolver3DCylindricalGPU::kFCycle);
poissonSolver->PoissonSolver3D(VPotential,RhoCharge,kRows,kColumns,kPhiSlices, kIterations,kSymmetry) ; poissonSolver->PoissonSolver3D(VPotential,RhoCharge,kRows,kColumns,kPhiSlices, kIterations,kSymmetry) ;
``` ```
3. Buat folder terpisah untuk mebangun proyek yang menggunakan pustaka misal **buildexamplepoissonsolver** lalu jalankan **cmake** dengan flag spesial yaitu **-DCMAKE_PREFIX_PATH** yang ditetapkan dengan absolute path tempat direktori PoissonSolver3DCylindricalGPU dibangun. 3. Buat folder terpisah untuk mebangun proyek yang menggunakan pustaka misal **buildexamplepoissonsolver** lalu jalankan **cmake** dengan flag spesial yaitu **-DCMAKE_PREFIX_PATH** yang ditetapkan dengan absolute path tempat direktori PoissonSolver3DCylindricalGPU dibangun.
``` ```
@ -282,3 +286,8 @@ Iterasi Error Convergen Error Absolut
[3]: 1.156555e-06 1.377524e-04 [3]: 1.156555e-06 1.377524e-04
[4]: 1.050234e-06 1.373983e-04 [4]: 1.050234e-06 1.373983e-04
``` ```

@ -1,6 +1,6 @@
# PoissonSolver3DCylindricalGPU # PoissonSolver3DCylindricalGPU
PoissonSolver3D adalah pustaka yang dikembangkan untuk menyelesaikan persamaan Poisson 3 dimensi dalam sistem koordinat silinder. Persamaan Poisson secara umum berbentuk $$\nabla^{2}(r,\phi,z) = \rho(r,\phi,z)$$ dengan diketahui nilai tepi pada potensial $$\mathbf{V}$$ dan distribusi buatan $$\rho$$. PoissonSolver3D adalah pustaka yang dikembangkan untuk menyelesaikan persamaan Poisson 3 dimensi dalam sistem koordinat silinder. Persamaan Poisson secara umum berbentuk $$\nabla^{2}(r,\phi,z) = \rho(r,\phi,z)$$ dengan diketahui nilai tepi pada potensial $\mathbf{V}$ dan distribusi muatan $\rho$.
Untuk menyelesaikan persamaan tersebut digunakan metode multigrid yang diimplementasikan pada akselerator GPU. Untuk menyelesaikan persamaan tersebut digunakan metode multigrid yang diimplementasikan pada akselerator GPU.

@ -1,4 +1,3 @@
/************************************************************************** /**************************************************************************
* Copyright(c) 2018, * * Copyright(c) 2018, *
* Kelompok penelitian komputasi berkinerja tinggi * * Kelompok penelitian komputasi berkinerja tinggi *
@ -30,9 +29,9 @@
#include <math.h> #include <math.h>
#include "PoissonSolver3DCylindricalGPU.h" #include "PoissonSolver3DCylindricalGPU.h"
const float PoissonSolver3DCylindricalGPU::fgkZ0 = 249.7; ///< nominal gating grid position const float PoissonSolver3DCylindricalGPU::fgkZ0 = 249.7; ///< panjang z
const float PoissonSolver3DCylindricalGPU::fgkIFCRadius = 83.5; ///< radius which renders the "18 rod manifold" best -> compare calc. of Jim Thomas const float PoissonSolver3DCylindricalGPU::fgkIFCRadius = 83.5; ///< radius dalam
const float PoissonSolver3DCylindricalGPU::fgkOFCRadius = 254.5; ///< Mean Radius of the Outer Field Cage (252.55 min, 256.45 max) (cm) const float PoissonSolver3DCylindricalGPU::fgkOFCRadius = 254.5; ///< radius luar
float PoissonSolver3DCylindricalGPU::fgExactErr = 1e-4; float PoissonSolver3DCylindricalGPU::fgExactErr = 1e-4;
float PoissonSolver3DCylindricalGPU::fgConvergenceError = 1e-3; float PoissonSolver3DCylindricalGPU::fgConvergenceError = 1e-3;

Loading…
Cancel
Save