Expand all box faces by the same padding, with proxy corner radius = scale * cell half diagonal.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=dp), | intent(in) | :: | half(3) |
pure function periodic_source_proxy_half_size(half) result(proxy_half) real(dp), intent(in) :: half(3) real(dp) :: proxy_half(3), radius, normalized_sum, padding radius = norm2(half) normalized_sum = sum(half)/radius padding = radius*(sqrt(normalized_sum**2 + 3.0_dp*(periodic_operator_proxy_shell_scale**2 - 1.0_dp)) - & normalized_sum)/3.0_dp proxy_half = half + padding end function periodic_source_proxy_half_size