interface1 Module

This module handles the MPI Communication calls for interface boundary conditions


Uses

  • module~~interface1~~UsesGraph module~interface1 interface1 module~utils utils module~interface1->module~utils module~mapping mapping module~interface1->module~mapping module~vartypes vartypes module~interface1->module~vartypes mpi mpi module~interface1->mpi module~mapping->module~vartypes iso_fortran_env iso_fortran_env module~vartypes->iso_fortran_env

Used by

  • module~~interface1~~UsedByGraph module~interface1 interface1 module~solver solver module~solver->module~interface1 module~update update module~solver->module~update module~update->module~interface1 program~main main program~main->module~solver

Contents


Variables

TypeVisibility AttributesNameInitial
integer, private :: layers =3
integer, private :: ibuf_size

Size of the buffer for I face interface

integer, private :: jbuf_size

Size of the buffer for J face interface

integer, private :: kbuf_size

Size of the buffer for K face interface

real(kind=wp), private, dimension(:), allocatable:: imin_send_buf

Array to store data to send data for Imin face

real(kind=wp), private, dimension(:), allocatable:: jmin_send_buf

Array to store data to send data for Jmin face

real(kind=wp), private, dimension(:), allocatable:: kmin_send_buf

Array to store data to send data for Kmin face

real(kind=wp), private, dimension(:), allocatable:: imin_recv_buf

Array to store data to receive data for Imin face

real(kind=wp), private, dimension(:), allocatable:: jmin_recv_buf

Array to store data to receive data for Jmin face

real(kind=wp), private, dimension(:), allocatable:: kmin_recv_buf

Array to store data to receive data for Kmin face

real(kind=wp), private, dimension(:), allocatable:: imax_send_buf

Array to store data to send data for Imax face

real(kind=wp), private, dimension(:), allocatable:: jmax_send_buf

Array to store data to send data for Jmax face

real(kind=wp), private, dimension(:), allocatable:: kmax_send_buf

Array to store data to send data for Kmax face

real(kind=wp), private, dimension(:), allocatable:: imax_recv_buf

Array to store data to receive data for Imax face

real(kind=wp), private, dimension(:), allocatable:: jmax_recv_buf

Array to store data to receive data for Jmax face

real(kind=wp), private, dimension(:), allocatable:: kmax_recv_buf

Array to store data to receive data for Kmax face


Subroutines

public subroutine setup_interface(control, dims)

Allocate memory for the data communication between processors

Arguments

Type IntentOptional AttributesName
type(controltype), intent(in) :: control

Control parameters: n_var

type(extent), intent(in) :: dims

Extent of the domain:imx,jmx,kmx

public subroutine apply_interface(qp, control, bc, dims)

MPISEND_RECV call to exchange interface infromation between connected blocks.

Arguments

Type IntentOptional AttributesName
real(kind=wp), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+2,1:dims%n_var):: qp

Store primitive variable at cell center

type(controltype), intent(in) :: control

Control parameters

type(boundarytype), intent(in) :: bc

boundary conditions and fixed values

type(extent), intent(in) :: dims

Extent of the domain:imx,jmx,kmx

private subroutine apply_periodic_bc(qp, control, bc, dims)

If a block is connected to another block in perodic fashion, this subroutine will take care of that boundary condition.

Arguments

Type IntentOptional AttributesName
real(kind=wp), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+2,1:dims%n_var):: qp

Store primitive variable at cell center

type(controltype), intent(in) :: control

Control parameters

type(boundarytype), intent(in) :: bc

boundary conditions and fixed values

type(extent), intent(in) :: dims

Extent of the domain:imx,jmx,kmx