Modules

ModuleSource FileDescription
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_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_2decompfft.f90

Parallel decomposition provided by 2decomp&FFT

m_decomp decomp_dummy.f90

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

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_allocator m_allocator module~m_common m_common 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 mpi mpi 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_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_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_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->mpi module~m_decomp~2 m_decomp 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 decomp_2d decomp_2d proc~decomposition_2decomp->decomp_2d decomp_2d_mpi decomp_2d_mpi proc~decomposition_2decomp->decomp_2d_mpi proc~decomposition_2decomp~2 m_decomp::decomposition_2decomp proc~decomposition_2decomp~2->module~m_mesh_content 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