bem_field_kernel_c Module

C ABI wrapper for the simulator-independent Coulomb FMM field kernel.


Uses

  • module~~bem_field_kernel_c~~UsesGraph module~bem_field_kernel_c bem_field_kernel_c iso_c_binding iso_c_binding module~bem_field_kernel_c->iso_c_binding module~bem_constants bem_constants module~bem_field_kernel_c->module~bem_constants module~bem_coulomb_fmm_core bem_coulomb_fmm_core module~bem_field_kernel_c->module~bem_coulomb_fmm_core module~bem_kinds bem_kinds module~bem_field_kernel_c->module~bem_kinds module~bem_constants->module~bem_kinds module~bem_coulomb_fmm_core->module~bem_kinds module~bem_coulomb_fmm_types bem_coulomb_fmm_types module~bem_coulomb_fmm_core->module~bem_coulomb_fmm_types iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env module~bem_coulomb_fmm_types->module~bem_kinds

Variables

Type Visibility Attributes Name Initial
integer(kind=c_int), public, parameter :: beach_kernel_ok = 0_c_int
integer(kind=c_int), public, parameter :: beach_kernel_invalid_handle = 1_c_int
integer(kind=c_int), public, parameter :: beach_kernel_invalid_argument = 2_c_int
integer(kind=c_int), public, parameter :: beach_kernel_not_ready = 3_c_int

Functions

public function beach_kernel_create(handle) result(status) bind(C, name='beach_kernel_create'))

Arguments

Type IntentOptional Attributes Name
type(c_ptr), intent(out) :: handle

Return Value integer(kind=c_int)

public function beach_kernel_destroy(handle) result(status) bind(C, name='beach_kernel_destroy'))

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: handle

Return Value integer(kind=c_int)

public function beach_kernel_build(handle, nsrc, src_pos_ptr, theta, leaf_max, order, softening, use_periodic2, periodic_axes_ptr, periodic_len_ptr, image_layers, far_correction, ewald_alpha, ewald_layers, box_min_ptr, box_max_ptr) result(status) bind(C, name='beach_kernel_build'))

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: handle
integer(kind=c_int), value :: nsrc
type(c_ptr), value :: src_pos_ptr
real(kind=c_double), value :: theta
integer(kind=c_int), value :: leaf_max
integer(kind=c_int), value :: order
real(kind=c_double), value :: softening
integer(kind=c_int), value :: use_periodic2
type(c_ptr), value :: periodic_axes_ptr
type(c_ptr), value :: periodic_len_ptr
integer(kind=c_int), value :: image_layers
integer(kind=c_int), value :: far_correction
real(kind=c_double), value :: ewald_alpha
integer(kind=c_int), value :: ewald_layers
type(c_ptr), value :: box_min_ptr
type(c_ptr), value :: box_max_ptr

Return Value integer(kind=c_int)

public function beach_kernel_update_charges(handle, nsrc, src_q_ptr) result(status) bind(C, name='beach_kernel_update_charges'))

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: handle
integer(kind=c_int), value :: nsrc
type(c_ptr), value :: src_q_ptr

Return Value integer(kind=c_int)

public function beach_kernel_eval_e(handle, ntarget, target_pos_ptr, e_ptr) result(status) bind(C, name='beach_kernel_eval_e'))

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: handle
integer(kind=c_int), value :: ntarget
type(c_ptr), value :: target_pos_ptr
type(c_ptr), value :: e_ptr

Return Value integer(kind=c_int)

public function beach_kernel_eval_phi(handle, ntarget, target_pos_ptr, phi_ptr) result(status) bind(C, name='beach_kernel_eval_phi'))

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: handle
integer(kind=c_int), value :: ntarget
type(c_ptr), value :: target_pos_ptr
type(c_ptr), value :: phi_ptr

Return Value integer(kind=c_int)

public function beach_kernel_force_on_charges(handle, ntarget, target_pos_ptr, target_q_ptr, origin_ptr, force_ptr, torque_ptr) result(status) bind(C, name='beach_kernel_force_on_charges'))

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: handle
integer(kind=c_int), value :: ntarget
type(c_ptr), value :: target_pos_ptr
type(c_ptr), value :: target_q_ptr
type(c_ptr), value :: origin_ptr
type(c_ptr), value :: force_ptr
type(c_ptr), value :: torque_ptr

Return Value integer(kind=c_int)