anuga-cuda Utilities Code Structure

Check result correctness

utilities.check_result.approx_equal(a, b, approx=True)[source]

Check result with tolerance.

return abs(a-b) <= abs(a)*tolerance

utilities.check_result.check_all(domain, test_domain)[source]

Check all the result

utilities.check_result.check_result(a, b)[source]

Check result correctness.

utilities.check_result.test_balance_deep_and_shallow(domain)[source]

Pari-testing check point for balance_deep_and_shallow

utilities.check_result.test_compute_fluxes(domain)[source]

Pari-testing check point for compute_fluxes

utilities.check_result.test_compute_forcing_terms(domain)[source]

Pari-testing check point for compute_forcing_terms

utilities.check_result.test_distribute_to_vertexs_and_edges(domain, IO='Output')[source]

Pair-testing check point for distribute_to_vertices_and_edges

utilities.check_result.test_evolve_one_euler_step(domain)[source]

Pari-testing check point for evolve_one_euler_step

utilities.check_result.test_extrapolate_first_order(domain)[source]

Pari-testing check point for extrapolate_first_order

utilities.check_result.test_extrapolate_second_order_and_limit_by_vertex(domain)[source]

Pari-testing check point for extrapolate_second_order_and_limit_by_vertex

utilities.check_result.test_extrapolate_second_order_sw(domain)[source]

Pari-testing check point for extrapolate_second_order_sw

utilities.check_result.test_interpolate_from_vertices_to_edges(domain)[source]

Pari-testing check point for interpolate_from_vertices_to_edges

utilities.check_result.test_manning_friction_implicit(domain)[source]

Pari-testing check point for manning_friction_implicit

utilities.check_result.test_protect_against_infinitesimal_and_negative_heights(domain)[source]

Pari-testing check point for protect_against_infinitesimal_and_negative_heights

utilities.check_result.test_update_boundary(domain, inputOnly=False)[source]

Pari-testing check point for update_boundary

utilities.check_result.test_update_centroids_of_velocities_and_height(domain)[source]

Pari-testing check point for update_centroids_of_velocities_and_height

utilities.check_result.test_update_conserved_quantities(domain, output=True)[source]

Pari-testing check point for update_conserved_quantities

utilities.check_result.test_update_extrema(domain)[source]

Pari-testing check point for update_extrema

utilities.check_result.test_update_ghosts(domain)[source]

Pari-testing check point for update_ghosts

utilities.check_result.test_update_other_quantities(domain)[source]

Pari-testing check point for update_other_quantities

utilities.check_result.test_update_timestep(domain)[source]

Pari-testing check point for update_timestep

Sort and rearrange mesh information

utilities.sort_domain.check_rearranged_array(a, b, configure=3)[source]

Check rearranged array.

utilities.sort_domain.rearrange_domain(domain, sort_flag=True, spare_domain=None)[source]

Rearrange the mesh information stored in memory.

This will help to better meet the requirements of coalesced memory access.

utilities.sort_domain.rearrange_domain_check(domain1, domain2)[source]

Check rearranged mesh information

utilities.sort_domain.sort_domain(domain)[source]

Sort the neighbour order of mesh entities

This is used to ensure the calculation sequence in paralle as same as that in sequential

utilities.sort_domain.sort_domain_check(domain2)[source]

Check the sorted domain information.

utilities.sort_domain.swap_domain(domain, i, j, k)[source]

Swap information of two mesh entities.

This is used to ensure the calculation sequence in parallel.

General utilities

utilities.utility.asy_cpy(a, a_gpu, auto_init_context=True)[source]

Data transfer from host to device.

Asynchronous will be enabled when auto_init_context is True, otherwise use normal transfer.

utilities.utility.cpy_back(a, a_gpu, auto_init_context=True)[source]

Data transfer from device to host.

Asynchronous will be enabled when auto_init_context is True, otherwise use normal transfer.

utilities.utility.cpy_back_and_cmp(a, b, value_type, gpu=True, rg=False)[source]

Download mesh information and check result.

utilities.utility.get_device_array(a)[source]

Allocate device memory

utilities.utility.get_kernel_function_info(a, W1=0, W2=1, W3=1)[source]

Show kernel information

Including
  1. max #threads per block,
  2. active warps per MP,
  3. thread block per MP,
  4. usage of shared memory,
  5. const memory ,
  6. local memory
  7. registers
  8. hardware occupancy
  9. limitation of the hardware occupancy
utilities.utility.get_page_locked_array(a)[source]

Replace the pageable array to page-locked array

utilities.utility.get_sourceModule(k_dir, k_name, rearranged_domain=False)[source]

Compile kernel code and return the PyCUDA function object

utilities.utility.number_domain_method(domain)[source]

Convert mesh information stored in text string to ingeger.

This is used in hmpp_pyhton_glue.

Return value:
(compute_fluxes_method, flow_algorithm, timestepping_method)

Table Of Contents

Previous topic

anuga-cuda OpenHMPP Code Structure

This Page