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.
33 lines
2.0 KiB
33 lines
2.0 KiB
|
|
/// \file PoissonSolver3DGPUTest.h |
|
/// \brief Berkas ini berisi definisi fungs untuk memakai pustaka libPoissonSolver3DCylindrialGPU.so |
|
/// |
|
/// \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 |
|
#ifndef POISSONSOLVERGPU3DGPUTEST_H |
|
#define POISSONSOLVERGPU3DGPUTEST_H |
|
|
|
#include <iostream> |
|
#include "PoissonSolver3DCylindricalGPU.h" |
|
|
|
const double fgkTPCZ0 = 249.7; ///< nominal gating grid position |
|
const double fgkIFCRadius = 83.5; ///< radius which renders the "18 rod manifold" best -> compare calc. of Jim Thomas |
|
const double fgkOFCRadius = 254.5; ///< Mean Radius of the Outer Field Cage (252.55 min, 256.45 max) (cm) |
|
const double fgkZOffSet = 0.2; ///< Offset from CE: calculate all distortions closer to CE as if at this point |
|
const double fgkCathodeV = -100000.0; ///< Cathode Voltage (volts) |
|
const double fgkGG = -70.0; ///< Gating Grid voltage (volts) |
|
const double fgkdvdE = 0.0024; ///< [cm/V] drift velocity dependency on the E field (from Magboltz for NeCO2N2 at standard environment) |
|
const double fgkEM = -1.602176487e-19 / 9.10938215e-31; ///< charge/mass in [C/kg] |
|
const double fgke0 = 8.854187817e-12; ///< vacuum permittivity [A·s/(V·m)] |
|
const double fgConvergenceError = 1e-6; ///< vacuum permittivity [A·s/(V·m)] |
|
void DoPoissonSolverExperiment(const int kRows, const int kColumns, const int kPhiSlices, const int kIterations, const int kSymmetry); |
|
void InitVoltandCharge3D(float * VPotentialExact,float * VPotential,float * RhoCharge,const int kRows, const int kColumns,const int kPhiSlices,float gridSizeR,float gridSizeZ,float gridSizePhi); |
|
float TestFunction1PotentialEval(double a, double b, double c,float radius0, float phi0, float z0); |
|
float TestFunction1ChargeEval(double a, double b, double c, float radius0,float phi0,float z0); |
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|