![]() |
H2Lib
3.0
|
BEM-Calculations on OpenCL hardware. More...
Data Structures | |
| struct | _bem3d_ocl |
| This structure contains geometry information for the OpenCL computation aswell as all OpenCL kernels and buffers for transferring work packages between main memory and GPU memory. More... | |
| struct | _op_callbacks |
| Struct of callback functions for different quadrature cases that arise in the nearfield computation. More... | |
| struct | _nearfield_args |
| Struct to store the parameters of the nearfield integration routine. More... | |
| struct | _merge_data_nf |
| Struct to store input data for multiple calls to nearfield integration routine. More... | |
Typedefs | |
| typedef struct _bem3d_ocl | bem3d_ocl |
| Abbreviation for struct _bem3d_ocl. | |
| typedef bem3d_ocl * | pbem3d_ocl |
| Abbreviation for a pointer to a bem3d_ocl object. | |
| typedef enum _op_type | op_type |
| Abbreviation for enum _op_type. | |
| typedef struct _op_callbacks | op_callbacks |
| Abbreviation for struct _op_callbacks. | |
| typedef struct _nearfield_args | nearfield_args |
| Abbreviation for struct _nearfield_args. | |
| typedef struct _merge_data_nf | merge_data_nf |
| Abbreviation for struct _merge_data_nf. | |
Enumerations | |
| enum | _op_type { SLP, DLP } |
| Simple Enum to distinguish between different boundary integral operators. More... | |
Functions | |
| size_t | getsize_nf (void *data) |
| returns the current size of taskgroup for nearfield computations. More... | |
| void | cleanup_nf_task (void *data) |
| Cleanup intermediate storage for nearfield computation task. More... | |
| void | cleanup_nf_merge (void *data) |
| Cleanup intermediate storage from a nearfield computation merge task. More... | |
| void | split_nf_task (void *data, void ***split, uint *n) |
| Splits a neafield computation task into smaller tasks. More... | |
| size_t | getsize_nf_sing (void *data) |
| returns the current size of taskgroup for singular nearfield computations. More... | |
| void | cleanup_nf_sing_task (void *data) |
| Cleanup intermediate storage for singular nearfield computation task. More... | |
| void | cleanup_nf_sing_merge (void *data) |
| Cleanup intermediate storage from a singular nearfield computation merge task. More... | |
| void | split_nf_sing_task (void *data, void ***split, uint *n) |
| Splits a singular neafield computation task into smaller tasks. More... | |
| void | close_nf_dist (ptaskgroup tg) |
| Close collection of task for disjoint triangle pairs. More... | |
| void | close_nf_vert (ptaskgroup tg) |
| Close collection of task for triangle pairs with common vertex. More... | |
| void | close_nf_edge (ptaskgroup tg) |
| Close collection of task for triangle pairs with common edge. More... | |
| void | close_nf_iden (ptaskgroup tg) |
| Close collection of task for identical triangle pairs. More... | |
| void | merge_nf_sing (ptaskgroup tg, void **data) |
| Merge a list of singular nearfield computation tasks into a single object. More... | |
| void | distribute_nf_sing (ptaskgroup tg, void *data) |
| Distribute computational results to their correct positions in memory. More... | |
| void | add_nf_entry (pcbem3d bem, op_callbacks *op_cb, uint c, uint tt, uint ss, bool trans, field *entry) |
| Adds a single singular entry to the corresponding list. More... | |
| void | close_nf (ptaskgroup tg) |
| Close collection of task for nearfield calculations. More... | |
| void | merge_nf (ptaskgroup tg, void **data) |
| Merge a list of nearfield computation tasks into a single object. More... | |
| void | distribute_nf (ptaskgroup tg, void *data) |
| Distribute computational results to their correct positions in memory. More... | |
Variables | |
| bem3d_ocl | ocl_bem3d |
| Static variable that contains OpenCL buffers and kernels for bem computations. | |
| ptaskgroup | nf |
| Global variable for general nearfield tasks. | |
| omp_lock_t | nf_lock |
| OpenMP lock for nf. | |
| ptaskgroup | nf_dist |
| Global variable for distant triangle pairs. | |
| omp_lock_t | nf_dist_lock |
| OpenMP lock for nf_dist. | |
| ptaskgroup | nf_vert |
| Global variable for common vertex triangle pairs. | |
| omp_lock_t | nf_vert_lock |
| OpenMP lock for nf_vert. | |
| ptaskgroup | nf_edge |
| Global variable for common edge triangle pairs. | |
| omp_lock_t | nf_edge_lock |
| OpenMP lock for nf_edge. | |
| ptaskgroup | nf_iden |
| Global variable for identical triangle pairs. | |
| omp_lock_t | nf_iden_lock |
| OpenMP lock for nf_iden. | |
| op_callbacks | op_cb |
| Global variable for integral operator callback functions. | |
BEM-Calculations on OpenCL hardware.
This modules defines various functions that are needed to compute integrals that arise in the BEM computations on OpenCL hardware, mainly for GPGPUs.
| enum _op_type |
| void add_nf_entry | ( | pcbem3d | bem, |
| op_callbacks * | op_cb, | ||
| uint | c, | ||
| uint | tt, | ||
| uint | ss, | ||
| bool | trans, | ||
| field * | entry | ||
| ) |
Adds a single singular entry to the corresponding list.
| bem | bem3d object. |
| op_cb | Struct of callback functions for all quadrature cases for the current operator. |
| c | Number of common vertices for the triangle tt and ss. |
| tt | First triangle. |
| ss | Second triangle. |
| trans | Transposed flag |
| entry | Memory position where this entry should be stored lateron. |
| void cleanup_nf_merge | ( | void * | data | ) |
Cleanup intermediate storage from a nearfield computation merge task.
| data | Pointer to a struct of nearfield_args. |
| void cleanup_nf_sing_merge | ( | void * | data | ) |
Cleanup intermediate storage from a singular nearfield computation merge task.
| data | Pointer to a struct of merge_data_nf. |
| void cleanup_nf_sing_task | ( | void * | data | ) |
Cleanup intermediate storage for singular nearfield computation task.
| data | Pointer to a struct of merge_data_nf. |
| void cleanup_nf_task | ( | void * | data | ) |
Cleanup intermediate storage for nearfield computation task.
| data | Pointer to a struct of nearfield_args. |
| void close_nf | ( | ptaskgroup | tg | ) |
Close collection of task for nearfield calculations.
| tg | taskgroup object to be closed. |
| void close_nf_dist | ( | ptaskgroup | tg | ) |
Close collection of task for disjoint triangle pairs.
| tg | taskgroup object to be closed. |
| void close_nf_edge | ( | ptaskgroup | tg | ) |
Close collection of task for triangle pairs with common edge.
| tg | taskgroup object to be closed. |
| void close_nf_iden | ( | ptaskgroup | tg | ) |
Close collection of task for identical triangle pairs.
| tg | taskgroup object to be closed. |
| void close_nf_vert | ( | ptaskgroup | tg | ) |
Close collection of task for triangle pairs with common vertex.
| tg | taskgroup object to be closed. |
| void distribute_nf | ( | ptaskgroup | tg, |
| void * | data | ||
| ) |
Distribute computational results to their correct positions in memory.
| tg | taskgroup to be distributed. |
| data | Results, that have to be distributed to the tasks in tg. |
| void distribute_nf_sing | ( | ptaskgroup | tg, |
| void * | data | ||
| ) |
Distribute computational results to their correct positions in memory.
| tg | taskgroup to be distributed. |
| data | Results, that have to be distributed to the tasks in tg. |
| size_t getsize_nf | ( | void * | data | ) |
returns the current size of taskgroup for nearfield computations.
| data | Pointer to a struct of nearfield_args. |
| size_t getsize_nf_sing | ( | void * | data | ) |
returns the current size of taskgroup for singular nearfield computations.
| data | Pointer to a struct of merge_data_nf. |
| void merge_nf | ( | ptaskgroup | tg, |
| void ** | data | ||
| ) |
Merge a list of nearfield computation tasks into a single object.
| tg | taskgroup to be merged. |
| data | Object of type merge_data_nf that is being returned. |
| void merge_nf_sing | ( | ptaskgroup | tg, |
| void ** | data | ||
| ) |
Merge a list of singular nearfield computation tasks into a single object.
| tg | taskgroup to be merged. |
| data | Object of type merge_data_nf that is being returned. |
| void split_nf_sing_task | ( | void * | data, |
| void *** | split, | ||
| uint * | n | ||
| ) |
Splits a singular neafield computation task into smaller tasks.
| data | Pointer to a struct of merge_data_nf. |
| split | Array of smaller subtasks is returned via splits. |
| n | Number of subtasks is returned by n. |
| void split_nf_task | ( | void * | data, |
| void *** | split, | ||
| uint * | n | ||
| ) |
Splits a neafield computation task into smaller tasks.
| data | Pointer to a struct of nearfield_args. |
| split | Array of smaller subtasks is returned via splits. |
| n | Number of subtasks is returned by n. |
1.8.11