Modules

ModuleSource FileDescription
m_adios2_io adios2_io.f90

This module contains ADIOS2 (ADaptable Input Output System version 2) operations for reading and writing data. ADIOS2 transports data as groups of self-describing variables and attributes across different media types (e.g., files, memory, network). ADIOS2 APIs are based on: - MPI (although non-MPI serial code is also supported) - Deferred/prefetch/grouped variables transport mode by default - Engine abstraction for reusing the APIs for different transport modes

m_allocator allocator.f90
m_base_backend backend.f90
m_base_case base_case.f90

Provides the base case for running a simulation. New cases are implemented by extending this to specify the initial and boundary conditions, forcing terms and case-specific postprocessing and analysis.

m_case_channel channel.f90
m_case_generic generic.f90

An example case set up to run and sustain a freestream flow. This is a good place to start for adding a new flow case.

m_case_tgv tgv.f90
m_checkpoint_manager checkpoint_io.f90

Public facade and factory function for checkpoint manager

m_checkpoint_manager checkpoint_dummy.f90

Null implementation that does nothing if ADIOS2 is not enabled

m_checkpoint_manager_base checkpoint_io.f90

Base module defining abstract interface for checkpoint functionality

m_checkpoint_manager_impl checkpoint_io.f90

Implementation of checkpoint manager when ADIOS2 is enabled

m_common common.f90
m_config config.f90

Contains all the namelist configurations used in x3d2

m_cuda_allocator allocator.f90
m_cuda_backend backend.f90
m_cuda_common common.f90
m_cuda_exec_dist exec_dist.f90
m_cuda_exec_thom exec_thom.f90
m_cuda_kernels_dist distributed.f90
m_cuda_kernels_fieldops fieldops.f90
m_cuda_kernels_reorder reorder.f90
m_cuda_kernels_thom thomas.f90
m_cuda_poisson_fft poisson_fft.f90
m_cuda_sendrecv sendrecv.f90
m_cuda_spectral spectral_processing.f90
m_cuda_tdsops tdsops.f90
m_decomp decomp_dummy.f90

Dummy implementation of the decomposition to be linked against when 2decomp&fft isn't available.

m_decomp decomp_2decompfft.f90

Parallel decomposition provided by 2decomp&FFT

m_exec_thom exec_thom.f90
m_field field.f90
m_mesh mesh.f90
m_mesh_content mesh_content.f90
m_omp_backend backend.f90
m_omp_common common.f90
m_omp_exec_dist exec_dist.f90
m_omp_kernels_dist distributed.f90
m_omp_kernels_thom thomas.f90
m_omp_poisson_fft poisson_fft.f90
m_omp_sendrecv sendrecv.f90
m_omp_spectral spectral_processing.f90
m_ordering ordering.f90

"Application storage" stores spatial data with a directionality for better cache locality This set of functions converts indices from this application storage (_dir) to cartesian indices (_ijk)

m_poisson_fft poisson_fft.f90
m_solver solver.f90
m_tdsops tdsops.f90
m_time_integrator time_integrator.f90
m_vector_calculus vector_calculus.f90
module~~graph~~ModuleGraph module~m_adios2_io m_adios2_io module~m_common m_common module~m_adios2_io->module~m_common adios2 adios2 module~m_adios2_io->adios2 mpi mpi module~m_adios2_io->mpi module~m_allocator m_allocator module~m_allocator->module~m_common module~m_field m_field module~m_allocator->module~m_field module~m_mesh m_mesh module~m_allocator->module~m_mesh iso_fortran_env iso_fortran_env module~m_allocator->iso_fortran_env module~m_base_backend m_base_backend module~m_base_backend->module~m_allocator module~m_base_backend->module~m_common module~m_base_backend->module~m_field module~m_base_backend->module~m_mesh module~m_poisson_fft m_poisson_fft module~m_base_backend->module~m_poisson_fft module~m_tdsops m_tdsops module~m_base_backend->module~m_tdsops module~m_base_backend->mpi module~m_base_case m_base_case module~m_base_case->module~m_allocator module~m_base_case->module~m_base_backend module~m_checkpoint_manager~2 m_checkpoint_manager module~m_base_case->module~m_checkpoint_manager~2 module~m_base_case->module~m_common module~m_base_case->module~m_field module~m_base_case->module~m_mesh module~m_solver m_solver module~m_base_case->module~m_solver module~m_base_case->mpi module~m_case_channel m_case_channel module~m_case_channel->module~m_allocator module~m_case_channel->module~m_base_backend module~m_case_channel->module~m_base_case module~m_case_channel->module~m_common module~m_config m_config module~m_case_channel->module~m_config module~m_case_channel->module~m_mesh module~m_case_channel->module~m_solver module~m_case_channel->iso_fortran_env module~m_case_channel->mpi module~m_case_generic m_case_generic module~m_case_generic->module~m_allocator module~m_case_generic->module~m_base_backend module~m_case_generic->module~m_base_case module~m_case_generic->module~m_common module~m_case_generic->module~m_field module~m_case_generic->module~m_mesh module~m_case_generic->module~m_solver module~m_case_generic->iso_fortran_env module~m_case_tgv m_case_tgv module~m_case_tgv->module~m_allocator module~m_case_tgv->module~m_base_backend module~m_case_tgv->module~m_base_case module~m_case_tgv->module~m_common module~m_case_tgv->module~m_field module~m_case_tgv->module~m_mesh module~m_case_tgv->module~m_solver module~m_case_tgv->iso_fortran_env module~m_checkpoint_manager m_checkpoint_manager module~m_checkpoint_manager->module~m_common module~m_checkpoint_manager->module~m_config module~m_checkpoint_manager->module~m_solver module~m_checkpoint_manager->iso_fortran_env module~m_checkpoint_manager->mpi module~m_checkpoint_manager_base m_checkpoint_manager_base module~m_checkpoint_manager_base->module~m_config module~m_checkpoint_manager_base->module~m_solver module~m_checkpoint_manager_impl m_checkpoint_manager_impl module~m_checkpoint_manager_impl->module~m_adios2_io module~m_checkpoint_manager_impl->module~m_checkpoint_manager_base module~m_checkpoint_manager_impl->module~m_common module~m_checkpoint_manager_impl->module~m_config module~m_checkpoint_manager_impl->module~m_field module~m_checkpoint_manager_impl->module~m_solver module~m_checkpoint_manager_impl->mpi module~m_checkpoint_manager~2->module~m_checkpoint_manager_impl module~m_checkpoint_manager~2->module~m_solver module~m_config->module~m_common module~m_config->iso_fortran_env module~m_cuda_allocator m_cuda_allocator module~m_cuda_allocator->module~m_allocator module~m_cuda_allocator->module~m_common module~m_cuda_allocator->module~m_field module~m_cuda_allocator->module~m_mesh module~m_cuda_backend m_cuda_backend module~m_cuda_backend->module~m_allocator module~m_cuda_backend->module~m_base_backend module~m_cuda_backend->module~m_common module~m_cuda_backend->module~m_cuda_allocator module~m_cuda_common m_cuda_common module~m_cuda_backend->module~m_cuda_common module~m_cuda_exec_dist m_cuda_exec_dist module~m_cuda_backend->module~m_cuda_exec_dist module~m_cuda_kernels_dist m_cuda_kernels_dist module~m_cuda_backend->module~m_cuda_kernels_dist module~m_cuda_kernels_fieldops m_cuda_kernels_fieldops module~m_cuda_backend->module~m_cuda_kernels_fieldops module~m_cuda_kernels_reorder m_cuda_kernels_reorder module~m_cuda_backend->module~m_cuda_kernels_reorder module~m_cuda_poisson_fft m_cuda_poisson_fft module~m_cuda_backend->module~m_cuda_poisson_fft module~m_cuda_sendrecv m_cuda_sendrecv module~m_cuda_backend->module~m_cuda_sendrecv module~m_cuda_tdsops m_cuda_tdsops module~m_cuda_backend->module~m_cuda_tdsops module~m_cuda_backend->module~m_field module~m_cuda_backend->module~m_mesh module~m_cuda_backend->module~m_tdsops cudafor cudafor module~m_cuda_backend->cudafor module~m_cuda_backend->iso_fortran_env module~m_cuda_backend->mpi module~m_cuda_exec_dist->module~m_common module~m_cuda_exec_dist->module~m_cuda_common module~m_cuda_exec_dist->module~m_cuda_kernels_dist module~m_cuda_exec_dist->module~m_cuda_sendrecv module~m_cuda_exec_dist->module~m_cuda_tdsops module~m_cuda_exec_dist->cudafor module~m_cuda_exec_dist->mpi module~m_cuda_exec_thom m_cuda_exec_thom module~m_cuda_exec_thom->module~m_common module~m_cuda_kernels_thom m_cuda_kernels_thom module~m_cuda_exec_thom->module~m_cuda_kernels_thom module~m_cuda_exec_thom->module~m_cuda_tdsops module~m_cuda_exec_thom->cudafor module~m_cuda_kernels_dist->module~m_common module~m_cuda_kernels_dist->cudafor module~m_cuda_kernels_fieldops->module~m_common module~m_cuda_kernels_fieldops->module~m_cuda_common module~m_cuda_kernels_fieldops->cudafor module~m_cuda_kernels_reorder->module~m_common module~m_cuda_kernels_reorder->module~m_cuda_common module~m_cuda_kernels_reorder->cudafor module~m_cuda_kernels_thom->module~m_common module~m_cuda_kernels_thom->cudafor module~m_cuda_poisson_fft->module~m_common module~m_cuda_poisson_fft->module~m_cuda_allocator module~m_cuda_spectral m_cuda_spectral module~m_cuda_poisson_fft->module~m_cuda_spectral module~m_cuda_poisson_fft->module~m_field module~m_cuda_poisson_fft->module~m_mesh module~m_cuda_poisson_fft->module~m_poisson_fft module~m_cuda_poisson_fft->module~m_tdsops module~m_cuda_poisson_fft->cudafor cufft cufft module~m_cuda_poisson_fft->cufft cufftXt cufftXt module~m_cuda_poisson_fft->cufftXt iso_c_binding iso_c_binding module~m_cuda_poisson_fft->iso_c_binding module~m_cuda_poisson_fft->iso_fortran_env module~m_cuda_poisson_fft->mpi module~m_cuda_sendrecv->module~m_common module~m_cuda_sendrecv->cudafor module~m_cuda_sendrecv->mpi module~m_cuda_spectral->module~m_common module~m_cuda_spectral->cudafor module~m_cuda_tdsops->module~m_common module~m_cuda_tdsops->module~m_tdsops module~m_cuda_tdsops->iso_fortran_env module~m_decomp m_decomp module~m_decomp~2 m_decomp module~m_decomp~2->mpi module~m_exec_thom m_exec_thom module~m_exec_thom->module~m_common module~m_omp_kernels_thom m_omp_kernels_thom module~m_exec_thom->module~m_omp_kernels_thom module~m_exec_thom->module~m_tdsops module~m_field->module~m_common module~m_mesh->module~m_common module~m_mesh->module~m_field module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content module~m_mesh->iso_fortran_env module~m_mesh->mpi module~m_mesh_content->module~m_common module~m_omp_backend m_omp_backend module~m_omp_backend->module~m_allocator module~m_omp_backend->module~m_base_backend module~m_omp_backend->module~m_common module~m_omp_backend->module~m_field module~m_omp_backend->module~m_mesh module~m_omp_common m_omp_common module~m_omp_backend->module~m_omp_common module~m_omp_exec_dist m_omp_exec_dist module~m_omp_backend->module~m_omp_exec_dist module~m_omp_sendrecv m_omp_sendrecv module~m_omp_backend->module~m_omp_sendrecv module~m_ordering m_ordering module~m_omp_backend->module~m_ordering module~m_omp_backend->module~m_tdsops module~m_omp_backend->mpi module~m_omp_exec_dist->module~m_common module~m_omp_exec_dist->module~m_omp_common module~m_omp_kernels_dist m_omp_kernels_dist module~m_omp_exec_dist->module~m_omp_kernels_dist module~m_omp_exec_dist->module~m_omp_sendrecv module~m_omp_exec_dist->module~m_tdsops module~m_omp_exec_dist->mpi module~m_omp_kernels_dist->module~m_common module~m_omp_kernels_dist->module~m_omp_common omp_lib omp_lib module~m_omp_kernels_dist->omp_lib module~m_omp_kernels_thom->module~m_common module~m_omp_kernels_thom->module~m_omp_common module~m_omp_poisson_fft m_omp_poisson_fft module~m_omp_poisson_fft->module~m_common module~m_omp_poisson_fft->module~m_field module~m_omp_poisson_fft->module~m_mesh module~m_omp_spectral m_omp_spectral module~m_omp_poisson_fft->module~m_omp_spectral module~m_omp_poisson_fft->module~m_poisson_fft module~m_omp_poisson_fft->module~m_tdsops decomp_2d_constants decomp_2d_constants module~m_omp_poisson_fft->decomp_2d_constants decomp_2d_fft decomp_2d_fft module~m_omp_poisson_fft->decomp_2d_fft module~m_omp_sendrecv->module~m_common module~m_omp_sendrecv->mpi module~m_omp_spectral->module~m_common module~m_ordering->module~m_common module~m_ordering->module~m_mesh module~m_poisson_fft->module~m_common module~m_poisson_fft->module~m_field module~m_poisson_fft->module~m_mesh module~m_poisson_fft->module~m_tdsops module~m_solver->module~m_allocator module~m_solver->module~m_base_backend module~m_solver->module~m_common module~m_solver->module~m_config module~m_solver->module~m_field module~m_solver->module~m_mesh module~m_solver->module~m_tdsops module~m_time_integrator m_time_integrator module~m_solver->module~m_time_integrator module~m_vector_calculus m_vector_calculus module~m_solver->module~m_vector_calculus module~m_solver->iso_fortran_env module~m_solver->mpi module~m_tdsops->module~m_common module~m_tdsops->iso_fortran_env module~m_time_integrator->module~m_allocator module~m_time_integrator->module~m_base_backend module~m_time_integrator->module~m_common module~m_time_integrator->module~m_field module~m_vector_calculus->module~m_allocator module~m_vector_calculus->module~m_base_backend module~m_vector_calculus->module~m_common module~m_vector_calculus->module~m_field module~m_vector_calculus->module~m_tdsops module~m_vector_calculus->iso_fortran_env proc~decomposition_2decomp m_decomp::decomposition_2decomp proc~decomposition_2decomp->module~m_mesh_content proc~decomposition_2decomp~2 m_decomp::decomposition_2decomp proc~decomposition_2decomp~2->module~m_mesh_content decomp_2d decomp_2d proc~decomposition_2decomp~2->decomp_2d decomp_2d_mpi decomp_2d_mpi proc~decomposition_2decomp~2->decomp_2d_mpi proc~decomposition_generic m_mesh::decomposition_generic proc~decomposition_generic->module~m_mesh_content proc~init_omp_poisson_fft m_omp_backend::omp_backend_t%init_omp_poisson_fft proc~init_omp_poisson_fft->module~m_omp_poisson_fft proc~mesh_init m_mesh::mesh_init proc~mesh_init->module~m_decomp program~xcompact xcompact program~xcompact->module~m_allocator program~xcompact->module~m_base_backend program~xcompact->module~m_base_case program~xcompact->module~m_case_channel program~xcompact->module~m_case_generic program~xcompact->module~m_case_tgv program~xcompact->module~m_common program~xcompact->module~m_config program~xcompact->module~m_cuda_allocator program~xcompact->module~m_cuda_backend program~xcompact->module~m_cuda_common program~xcompact->module~m_mesh program~xcompact->module~m_omp_backend program~xcompact->module~m_omp_common program~xcompact->mpi
Help