Declarations of PO and RT library for GPU. More...
#include <iostream>#include <string>#include <cmath>#include <array>#include "GUtils.h"#include "Structs.h"#include "InterfaceReflector.h"#include "MemUtils.h"#include "Debug.h"Go to the source code of this file.
Macros | |
| #define | CSIZE 12 |
| #define | CSIZERT 5 |
| #define | PYPO_DLL |
| #define | __InterfaceCUDA_h |
Functions | |
| PYPO_DLL void | callKernelf_JM (c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, float epsilon, float t_direction, int nBlocks, int nThreads) |
| PYPO_DLL void | callKernelf_EH (c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, float epsilon, float t_direction, int nBlocks, int nThreads) |
| PYPO_DLL void | callKernelf_JMEH (c4Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, float epsilon, float t_direction, int nBlocks, int nThreads) |
| PYPO_DLL void | callKernelf_EHP (c2rBundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, float epsilon, float t_direction, int nBlocks, int nThreads) |
| PYPO_DLL void | callKernelf_FF (c2Bundlef *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, c2Bundlef *currents, float k, float epsilon, float t_direction, int nBlocks, int nThreads) |
| PYPO_DLL void | callKernelf_scalar (arrC1f *res, reflparamsf source, reflparamsf target, reflcontainerf *cs, reflcontainerf *ct, arrC1f *inp, float k, float epsilon, float t_direction, int nBlocks, int nThreads) |
| PYPO_DLL void | callRTKernel (reflparamsf ctp, cframef *fr_in, cframef *fr_out, float epsilon, float t0, int nBlocks, int nThreads) |
Declarations of PO and RT library for GPU.
Provides double and single precision interface for NVIDIA GPUs running CUDA.
| PYPO_DLL void callKernelf_EH | ( | c2Bundlef * | res, |
| reflparamsf | source, | ||
| reflparamsf | target, | ||
| reflcontainerf * | cs, | ||
| reflcontainerf * | ct, | ||
| c2Bundlef * | currents, | ||
| float | k, | ||
| float | epsilon, | ||
| float | t_direction, | ||
| int | nBlocks, | ||
| int | nThreads | ||
| ) |
Call EH kernel.
Calculate E, H fields on a target surface using CUDA.
| res | Pointer to c2Bundlef object. |
| source | reflparamsf object containing source surface parameters. |
| target | reflparamsf object containing target surface parameters. |
| cs | Pointer to reflcontainerf object containing source grids. |
| ct | Pointer to reflcontainerf object containing target grids. |
| currents | Pointer to c2Bundlef object containing source currents. |
| k | Wavenumber of radiation in 1 /mm. |
| epsilon | Relative permittivity of source surface. |
| t_direction | Time direction (experimental!). |
| nBlocks | Number of blocks in GPU grid. |
| nThreads | Number of threads in a block. |
| PYPO_DLL void callKernelf_EHP | ( | c2rBundlef * | res, |
| reflparamsf | source, | ||
| reflparamsf | target, | ||
| reflcontainerf * | cs, | ||
| reflcontainerf * | ct, | ||
| c2Bundlef * | currents, | ||
| float | k, | ||
| float | epsilon, | ||
| float | t_direction, | ||
| int | nBlocks, | ||
| int | nThreads | ||
| ) |
Call EHP kernel.
Calculate reflected E, H fields and P, the reflected Poynting vectorfield, on a target surface using CUDA.
| res | Pointer to c2rBundlef object. |
| source | reflparamsf object containing source surface parameters. |
| target | reflparamsf object containing target surface parameters. |
| cs | Pointer to reflcontainerf object containing source grids. |
| ct | Pointer to reflcontainerf object containing target grids. |
| currents | Pointer to c2Bundlef object containing source currents. |
| k | Wavenumber of radiation in 1 /mm. |
| epsilon | Relative permittivity of source surface. |
| t_direction | Time direction (experimental!). |
| nBlocks | Number of blocks in GPU grid. |
| nThreads | Number of threads in a block. |
| PYPO_DLL void callKernelf_FF | ( | c2Bundlef * | res, |
| reflparamsf | source, | ||
| reflparamsf | target, | ||
| reflcontainerf * | cs, | ||
| reflcontainerf * | ct, | ||
| c2Bundlef * | currents, | ||
| float | k, | ||
| float | epsilon, | ||
| float | t_direction, | ||
| int | nBlocks, | ||
| int | nThreads | ||
| ) |
Call FF kernel.
Calculate E, H fields on a far-field target surface using CUDA.
| res | Pointer to c2Bundlef object. |
| source | reflparamsf object containing source surface parameters. |
| target | reflparamsf object containing target surface parameters. |
| cs | Pointer to reflcontainerf object containing source grids. |
| ct | Pointer to reflcontainerf object containing target grids. |
| currents | Pointer to c2Bundlef object containing source currents. |
| k | Wavenumber of radiation in 1 /mm. |
| epsilon | Relative permittivity of source surface. |
| t_direction | Time direction (experimental!). |
| nBlocks | Number of blocks in GPU grid. |
| nThreads | Number of threads in a block. |
| PYPO_DLL void callKernelf_JM | ( | c2Bundlef * | res, |
| reflparamsf | source, | ||
| reflparamsf | target, | ||
| reflcontainerf * | cs, | ||
| reflcontainerf * | ct, | ||
| c2Bundlef * | currents, | ||
| float | k, | ||
| float | epsilon, | ||
| float | t_direction, | ||
| int | nBlocks, | ||
| int | nThreads | ||
| ) |
Call JM kernel.
Calculate J, M currents on a target surface using CUDA.
| res | Pointer to c2Bundlef object. |
| source | reflparamsf object containing source surface parameters. |
| target | reflparamsf object containing target surface parameters. |
| cs | Pointer to reflcontainerf object containing source grids. |
| ct | Pointer to reflcontainerf object containing target grids. |
| currents | Pointer to c2Bundlef object containing source currents. |
| k | Wavenumber of radiation in 1 /mm. |
| epsilon | Relative permittivity of source surface. |
| t_direction | Time direction (experimental!). |
| nBlocks | Number of blocks in GPU grid. |
| nThreads | Number of threads in a block. |
| PYPO_DLL void callKernelf_JMEH | ( | c4Bundlef * | res, |
| reflparamsf | source, | ||
| reflparamsf | target, | ||
| reflcontainerf * | cs, | ||
| reflcontainerf * | ct, | ||
| c2Bundlef * | currents, | ||
| float | k, | ||
| float | epsilon, | ||
| float | t_direction, | ||
| int | nBlocks, | ||
| int | nThreads | ||
| ) |
Call JMEH kernel.
Calculate J, M currents and E, H fields on a target surface using CUDA.
| res | Pointer to c4Bundlef object. |
| source | reflparamsf object containing source surface parameters. |
| target | reflparamsf object containing target surface parameters. |
| cs | Pointer to reflcontainerf object containing source grids. |
| ct | Pointer to reflcontainerf object containing target grids. |
| currents | Pointer to c2Bundlef object containing source currents. |
| k | Wavenumber of radiation in 1 /mm. |
| epsilon | Relative permittivity of source surface. |
| t_direction | Time direction (experimental!). |
| nBlocks | Number of blocks in GPU grid. |
| nThreads | Number of threads in a block. |
| PYPO_DLL void callKernelf_scalar | ( | arrC1f * | res, |
| reflparamsf | source, | ||
| reflparamsf | target, | ||
| reflcontainerf * | cs, | ||
| reflcontainerf * | ct, | ||
| arrC1f * | inp, | ||
| float | k, | ||
| float | epsilon, | ||
| float | t_direction, | ||
| int | nBlocks, | ||
| int | nThreads | ||
| ) |
Call scalar kernel.
Calculate scalar field on a target surface using CUDA.
| res | Pointer to arrC1f object. |
| source | reflparamsf object containing source surface parameters. |
| target | reflparamsf object containing target surface parameters. |
| cs | Pointer to reflcontainerf object containing source grids. |
| ct | Pointer to reflcontainerf object containing target grids. |
| inp | Pointer to arrC1f object containing source field. |
| k | Wavenumber of radiation in 1 /mm. |
| epsilon | Relative permittivity of source surface. |
| t_direction | Time direction (experimental!). |
| nBlocks | Number of blocks in GPU grid. |
| nThreads | Number of threads in a block. |
| PYPO_DLL void callRTKernel | ( | reflparamsf | ctp, |
| cframef * | fr_in, | ||
| cframef * | fr_out, | ||
| float | epsilon, | ||
| float | t0, | ||
| int | nBlocks, | ||
| int | nThreads | ||
| ) |
Call ray-trace Kernel.
Calculate a new frame of rays on a target, given an input frame of rays.
| ctp | reflparamsf object containing target surface parameters. |
| fr_in | Pointer to input cframef object. |
| fr_out | Pointer to output cframef object. |
| epsilon | Precision for NR method. |
| t0 | Starting guess for NR method. |
| nBlocks | Number of blocks in GPU grid. |
| nThreads | Number of threads in block. |