================================== anuga-cuda OpenHMPP Code Structure ================================== Python Class ============ .. automodule:: anuga_HMPP .. autoclass:: HMPP_domain :members: :undoc-members: Python/C API ============ .. c:function:: PyObject *hmpp_evolve(PyObject *self, PyObject *args) This function sets up the communication between Python program and OpenHMPP program. Refer to **hmpp_python_glue.c** OpenHMPP Implementation ======================= .. c:type:: struct domain This type is used to link all the mesh information generated by Python ANUGA progrm so that this information is accessable for C functions. Note: this is a upgrated C struct type from original ANUGA sw_domain.h. Refer to **sw_domain.h** .. c:function:: struct domain* get_python_domain(struct domain *D, PyObject *domain) Link up all mesh information stored in PyObject to the instance of **struct domain**. Note: this is a upgrated function from original ANUGA sw_domain.h. Refer to **sw_domain_fun.h** .. c:function:: double evolve( struct domain * D, double yieldstep, double finaltime, double duration, double epsilon, int skip_initial_step, int step) The C implementation of the original Python evolve function. Refer to **sw_domain_fun.h** .. c:function:: void download_data(struct domain *D) Download all the mesh information from the device memory. This is used in the advanced version with OpenHMPP Mirrored Data. Refer to **evolve.c** .. c:function:: void allocate_upload_data(struct domain *D) Upload all the mesh information to the device memory. This is used in the advanced version with OpenHMPP Mirrored Data. Refer to **evolve.c** .. c:macro:: USING_MIRROR_DATA Denoting enabling the advanced version. Refer to **hmpp_fun.h** .. c:macro:: USING_GLOBAL_DIRECTIVES Denoting keeping all OpenHMPP directives with function declaration. The local directive is used for testing. Refer to **hmpp_fun.h**