H2Lib  3.0
Data Structures | Typedefs | Enumerations | Functions | Variables
oclbem3d.h File Reference
#include <string.h>
#include "opencl.h"
#include "bem3d.h"

Go to the source code of this file.

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_oclpbem3d_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.
 

Detailed Description

Author
Sven Christophersen
Date
2015