bem_coulomb_fmm_periodic_cache Module

Versioned stream codec for cached periodic root operators.


Uses

  • module~~bem_coulomb_fmm_periodic_cache~~UsesGraph module~bem_coulomb_fmm_periodic_cache bem_coulomb_fmm_periodic_cache iso_fortran_env iso_fortran_env module~bem_coulomb_fmm_periodic_cache->iso_fortran_env module~bem_filesystem bem_filesystem module~bem_coulomb_fmm_periodic_cache->module~bem_filesystem module~bem_kinds bem_kinds module~bem_coulomb_fmm_periodic_cache->module~bem_kinds iso_c_binding iso_c_binding module~bem_filesystem->iso_c_binding module~bem_kinds->iso_fortran_env

Used by

  • module~~bem_coulomb_fmm_periodic_cache~~UsedByGraph module~bem_coulomb_fmm_periodic_cache bem_coulomb_fmm_periodic_cache module~bem_coulomb_fmm_periodic_root_ops bem_coulomb_fmm_periodic_root_ops module~bem_coulomb_fmm_periodic_root_ops->module~bem_coulomb_fmm_periodic_cache module~bem_coulomb_fmm_plan_ops bem_coulomb_fmm_plan_ops module~bem_coulomb_fmm_plan_ops->module~bem_coulomb_fmm_periodic_root_ops module~bem_coulomb_fmm_core_build bem_coulomb_fmm_core_build module~bem_coulomb_fmm_core_build->module~bem_coulomb_fmm_plan_ops

Variables

Type Visibility Attributes Name Initial
integer(kind=i32), public, parameter :: periodic_cache_format_version = 1_i32
integer(kind=i32), public, parameter :: periodic_cache_ok = 0_i32
integer(kind=i32), public, parameter :: periodic_cache_miss = 1_i32
integer(kind=i32), public, parameter :: periodic_cache_invalid = 2_i32
integer(kind=i32), public, parameter :: periodic_cache_io_error = 3_i32

Functions

public pure function periodic_operator_checksum(target_nodes, operator) result(checksum)

Arguments

Type IntentOptional Attributes Name
integer(kind=i32), intent(in) :: target_nodes(:)
real(kind=dp), intent(in) :: operator(:,:,:)

Return Value integer(kind=int64)

public pure function periodic_cache_fingerprint(tag, integer_values, real_values) result(fingerprint)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: tag
integer(kind=i32), intent(in) :: integer_values(:)
real(kind=dp), intent(in) :: real_values(:)

Return Value character(len=16)


Subroutines

public subroutine write_periodic_operator_cache(path, fingerprint, target_nodes, operator, status)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: path
character(len=*), intent(in) :: fingerprint
integer(kind=i32), intent(in) :: target_nodes(:)
real(kind=dp), intent(in) :: operator(:,:,:)
integer(kind=i32), intent(out) :: status

public subroutine read_periodic_operator_cache(path, fingerprint, target_nodes, operator, status, expected_ncoef, expected_ntarget)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: path
character(len=*), intent(in) :: fingerprint
integer(kind=i32), intent(out), allocatable :: target_nodes(:)
real(kind=dp), intent(out), allocatable :: operator(:,:,:)
integer(kind=i32), intent(out) :: status
integer(kind=i32), intent(in), optional :: expected_ncoef
integer(kind=i32), intent(in), optional :: expected_ntarget