MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_start_up Module Reference

Reads and validates user inputs, allocates variables, and configures MPI decomposition and I/O for post-processing. More...

Functions/Subroutines

impure subroutine s_read_input_file
 Reads the configuration file post_process.inp, in order to populate parameters in module m_global_parameters.f90 with the user provided inputs.
impure subroutine s_check_input_file
 Checking that the user inputs make sense, i.e. that the individual choices are compatible with the code's options and that the combination of these choices results into a valid configuration for the post-process.
impure subroutine s_perform_time_step (t_step)
 Load grid and conservative data for a time step, fill ghost-cell buffers, and convert to primitive variables.
impure subroutine s_save_data (t_step, varname, pres, c, h)
 Derive requested flow quantities from primitive variables and write them to the formatted database files.
subroutine s_mpi_transpose_x2y
 Transpose 3-D complex data from x-pencil to y-pencil layout via MPI_Alltoall.
subroutine s_mpi_transpose_y2z
 Transpose 3-D complex data from y-pencil to z-pencil layout via MPI_Alltoall.
impure subroutine s_initialize_modules
 Initialize all post-process sub-modules, set up I/O pointers, and prepare FFTW plans and MPI communicators.
subroutine s_mpi_fft_fwd
 Perform a distributed forward 3-D FFT using pencil decomposition with FFTW and MPI transposes.
impure subroutine s_initialize_mpi_domain
 Set up the MPI environment, read and broadcast user inputs, and decompose the computational domain.
impure subroutine s_finalize_modules
 Destroy FFTW plans, free MPI communicators, and finalize all post-process sub-modules.

Variables

type(c_ptr) fwd_plan_x
type(c_ptr) fwd_plan_y
type(c_ptr) fwd_plan_z
complex(c_double_complex), dimension(:), allocatable data_in
complex(c_double_complex), dimension(:), allocatable data_out
complex(c_double_complex), dimension(:, :, :), allocatable data_cmplx
complex(c_double_complex), dimension(:, :, :), allocatable data_cmplx_y
complex(c_double_complex), dimension(:, :, :), allocatable data_cmplx_z
real(wp), dimension(:, :, :), allocatable en_real
real(wp), dimension(:), allocatable en
integer num_procs_x
integer num_procs_y
integer num_procs_z
integer nx
integer ny
integer nz
integer nxloc
integer nyloc
integer nyloc2
integer nzloc
integer nf
integer ierr
integer mpi_comm_cart
integer mpi_comm_cart12
integer mpi_comm_cart13
integer, dimension(3) cart3d_coords
integer, dimension(2) cart2d12_coords
integer, dimension(2) cart2d13_coords
integer proc_rank12
integer proc_rank13

Detailed Description

Reads and validates user inputs, allocates variables, and configures MPI decomposition and I/O for post-processing.

Function/Subroutine Documentation

◆ s_check_input_file()

impure subroutine m_start_up::s_check_input_file

Checking that the user inputs make sense, i.e. that the individual choices are compatible with the code's options and that the combination of these choices results into a valid configuration for the post-process.

Definition at line 460 of file m_start_up.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_finalize_modules()

impure subroutine m_start_up::s_finalize_modules

Destroy FFTW plans, free MPI communicators, and finalize all post-process sub-modules.

Definition at line 1688 of file m_start_up.fpp.f90.

Here is the caller graph for this function:

◆ s_initialize_modules()

impure subroutine m_start_up::s_initialize_modules

Initialize all post-process sub-modules, set up I/O pointers, and prepare FFTW plans and MPI communicators.

Definition at line 1264 of file m_start_up.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_initialize_mpi_domain()

impure subroutine m_start_up::s_initialize_mpi_domain

Set up the MPI environment, read and broadcast user inputs, and decompose the computational domain.

Definition at line 1658 of file m_start_up.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_mpi_fft_fwd()

subroutine m_start_up::s_mpi_fft_fwd

Perform a distributed forward 3-D FFT using pencil decomposition with FFTW and MPI transposes.

Definition at line 1589 of file m_start_up.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_mpi_transpose_x2y()

subroutine m_start_up::s_mpi_transpose_x2y

Transpose 3-D complex data from x-pencil to y-pencil layout via MPI_Alltoall.

Definition at line 1182 of file m_start_up.fpp.f90.

Here is the caller graph for this function:

◆ s_mpi_transpose_y2z()

subroutine m_start_up::s_mpi_transpose_y2z

Transpose 3-D complex data from y-pencil to z-pencil layout via MPI_Alltoall.

Definition at line 1223 of file m_start_up.fpp.f90.

Here is the caller graph for this function:

◆ s_perform_time_step()

impure subroutine m_start_up::s_perform_time_step ( integer, intent(inout) t_step)

Load grid and conservative data for a time step, fill ghost-cell buffers, and convert to primitive variables.

Definition at line 487 of file m_start_up.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_read_input_file()

impure subroutine m_start_up::s_read_input_file

Reads the configuration file post_process.inp, in order to populate parameters in module m_global_parameters.f90 with the user provided inputs.

Definition at line 362 of file m_start_up.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ s_save_data()

impure subroutine m_start_up::s_save_data ( integer, intent(inout) t_step,
character(len=name_len), intent(inout) varname,
real(wp), intent(inout) pres,
real(wp), intent(inout) c,
real(wp), intent(inout) h )

Derive requested flow quantities from primitive variables and write them to the formatted database files.

Definition at line 522 of file m_start_up.fpp.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ cart2d12_coords

integer, dimension(2) m_start_up::cart2d12_coords

Definition at line 354 of file m_start_up.fpp.f90.

◆ cart2d13_coords

integer, dimension(2) m_start_up::cart2d13_coords

Definition at line 354 of file m_start_up.fpp.f90.

◆ cart3d_coords

integer, dimension(3) m_start_up::cart3d_coords

Definition at line 353 of file m_start_up.fpp.f90.

◆ data_cmplx

complex(c_double_complex), dimension(:, :, :), allocatable m_start_up::data_cmplx

Definition at line 346 of file m_start_up.fpp.f90.

◆ data_cmplx_y

complex(c_double_complex), dimension(:, :, :), allocatable m_start_up::data_cmplx_y

Definition at line 346 of file m_start_up.fpp.f90.

◆ data_cmplx_z

complex(c_double_complex), dimension(:, :, :), allocatable m_start_up::data_cmplx_z

Definition at line 346 of file m_start_up.fpp.f90.

◆ data_in

complex(c_double_complex), dimension(:), allocatable m_start_up::data_in

Definition at line 345 of file m_start_up.fpp.f90.

◆ data_out

complex(c_double_complex), dimension(:), allocatable m_start_up::data_out

Definition at line 345 of file m_start_up.fpp.f90.

◆ en

real(wp), dimension(:), allocatable m_start_up::en

Definition at line 348 of file m_start_up.fpp.f90.

◆ en_real

real(wp), dimension(:, :, :), allocatable m_start_up::en_real

Definition at line 347 of file m_start_up.fpp.f90.

◆ fwd_plan_x

type(c_ptr) m_start_up::fwd_plan_x

Definition at line 344 of file m_start_up.fpp.f90.

◆ fwd_plan_y

type(c_ptr) m_start_up::fwd_plan_y

Definition at line 344 of file m_start_up.fpp.f90.

◆ fwd_plan_z

type(c_ptr) m_start_up::fwd_plan_z

Definition at line 344 of file m_start_up.fpp.f90.

◆ ierr

integer m_start_up::ierr

Definition at line 351 of file m_start_up.fpp.f90.

◆ mpi_comm_cart

integer m_start_up::mpi_comm_cart

Definition at line 352 of file m_start_up.fpp.f90.

◆ mpi_comm_cart12

integer m_start_up::mpi_comm_cart12

Definition at line 352 of file m_start_up.fpp.f90.

◆ mpi_comm_cart13

integer m_start_up::mpi_comm_cart13

Definition at line 352 of file m_start_up.fpp.f90.

◆ nf

integer m_start_up::nf

Definition at line 350 of file m_start_up.fpp.f90.

◆ num_procs_x

integer m_start_up::num_procs_x

Definition at line 349 of file m_start_up.fpp.f90.

◆ num_procs_y

integer m_start_up::num_procs_y

Definition at line 349 of file m_start_up.fpp.f90.

◆ num_procs_z

integer m_start_up::num_procs_z

Definition at line 349 of file m_start_up.fpp.f90.

◆ nx

integer m_start_up::nx

Definition at line 350 of file m_start_up.fpp.f90.

◆ nxloc

integer m_start_up::nxloc

Definition at line 350 of file m_start_up.fpp.f90.

◆ ny

integer m_start_up::ny

Definition at line 350 of file m_start_up.fpp.f90.

◆ nyloc

integer m_start_up::nyloc

Definition at line 350 of file m_start_up.fpp.f90.

◆ nyloc2

integer m_start_up::nyloc2

Definition at line 350 of file m_start_up.fpp.f90.

◆ nz

integer m_start_up::nz

Definition at line 350 of file m_start_up.fpp.f90.

◆ nzloc

integer m_start_up::nzloc

Definition at line 350 of file m_start_up.fpp.f90.

◆ proc_rank12

integer m_start_up::proc_rank12

Definition at line 355 of file m_start_up.fpp.f90.

◆ proc_rank13

integer m_start_up::proc_rank13

Definition at line 355 of file m_start_up.fpp.f90.