fft_postprocess_100_omp Subroutine

public subroutine fft_postprocess_100_omp(self)

Post-process div U* in spectral space for the non-periodic x case.

After the x-y transpose applied by fft_forward_100_omp, dim1 holds the periodic y r2c modes and dim2 holds the non-periodic x modes. process_spectral_100 handles that arrangement directly.

The CUDA backend stages the equivalent work across three kernels so that a mode can fetch its pairing partner from another GPU. On a single rank every partner is local, so the staging collapses back into this one fused pass.

Type Bound

omp_poisson_fft_t

Arguments

Type IntentOptional Attributes Name
class(omp_poisson_fft_t) :: self

Calls

proc~~fft_postprocess_100_omp~~CallsGraph proc~fft_postprocess_100_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_postprocess_100_omp proc~process_spectral_100 m_omp_spectral::process_spectral_100 proc~fft_postprocess_100_omp->proc~process_spectral_100 transpose_y_to_z transpose_y_to_z proc~fft_postprocess_100_omp->transpose_y_to_z transpose_z_to_y transpose_z_to_y proc~fft_postprocess_100_omp->transpose_z_to_y yst yst proc~fft_postprocess_100_omp->yst ysz ysz proc~fft_postprocess_100_omp->ysz proc~process_spectral_010~2 m_omp_spectral::process_spectral_010 proc~process_spectral_100->proc~process_spectral_010~2