PoissonSolver3DCylindricalGPU adalah pustaka yang dikembangkan untuk menyelesaikan persamaan Poisson 3 dimensi dalam sistem koordinat silinder dengan akselerator GPU
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

82 lines
2.1 KiB

#ifndef POISSONSOLVER3DGPU_H
#define POISSONSOLVER3DGPU_H
#include <ctime>
#include <iomanip>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
/// \file PoissonSolver3DGPU.h
/// \brief Berkas ini berisi definisi fungsi extern yang dimiliki implementasi CUDA yang didapat dipanggil CPU
///
/// \author Rifki Sadikin <rifki.sadikin@lipi.go.id>, Pusat Penelitian Informatika, Lembaga Ilmu Pengetahuan Indonesia
/// \author I Wayan Aditya Swardiana <i.wayan.aditya.swardiana@lipi.go.id>, Pusat Penelitian Informatika, Lembaga Ilmu Pengetahuan Indonesia
/// \date November 8, 2018
/// Fungsi ini menghitung solusi terhadap Persamaan Poisson
///
/// \f[
/// \nabla^{2}(r,\phi,z) = \rho(r,\phi,z)
/// \f]
///
/// dengan diketahui nilai tepi (Boundary Value) pada \f$V\f$ (potensial) dan distribusi buatan \f$\rho\f$
///
/// \param[in,out] VPotential float[nrows*ncols*nphi] distribusi potensial. Input: hanya nilai tepi. Output: hasil perhitungan penyelesaian persamaan Poisson
/// \param[in] RhoChangeDensity float[nrows*ncols*nphi] distributsi muatan listrik.
///
/// \return A fixed number that has nothing to do with what the function does
extern "C" void PoissonMultigrid3DSemiCoarseningGPUError
(
float *VPotential,
float *RhoChargeDensity,
const int RRow,
const int ZColumn,
const int PhiSlice,
const int Symmetry,
float *fparam,
int *iparam,
bool isExactPresent,
float *errorConv,
float *errorExact,
float *VPotentialExact //allocation in the client
);
extern "C" void PoissonMultigrid3DSemiCoarseningGPUErrorWCycle
(
float *VPotential,
float *RhoChargeDensity,
const int RRow,
const int ZColumn,
const int PhiSlice,
const int Symmetry,
float *fparam,
int *iparam,
float *errorConv,
float *errorExact,
float *VPotentialExact //allocation in the client
);
extern "C" void PoissonMultigrid3DSemiCoarseningGPUErrorFCycle
(
float *VPotential,
float *RhoChargeDensity,
const int RRow,
const int ZColumn,
const int PhiSlice,
const int Symmetry,
float *fparam,
int *iparam,
bool isExactPresent,
float *errorConv,
float *errorExact,
float *VPotentialExact //allocation in the client
);
#endif