run Subroutine

public subroutine run(self)

Runs the solver forwards in time from t=t_0 to t=T, performing postprocessing/IO and reporting diagnostics.

Type Bound

base_case_t

Arguments

Type IntentOptional Attributes Name
class(base_case_t), intent(inout) :: self

Calls

proc~~run~~CallsGraph proc~run m_base_case::base_case_t%run apply_BC apply_BC proc~run->apply_BC define_BC define_BC proc~run->define_BC forcings forcings proc~run->forcings interface~mpi_reduce m_mpi::MPI_Reduce proc~run->interface~mpi_reduce none~body m_ibm::ibm_t%body proc~run->none~body none~handle_io_step m_io_manager::io_manager_t%handle_io_step proc~run->none~handle_io_step none~is_restart m_io_manager::io_manager_t%is_restart proc~run->none~is_restart none~update_stats m_io_manager::io_manager_t%update_stats proc~run->none~update_stats postprocess postprocess proc~run->postprocess proc~apply_spatial_filter m_solver::solver_t%apply_spatial_filter proc~run->proc~apply_spatial_filter proc~case_finalise m_base_case::base_case_t%case_finalise proc~run->proc~case_finalise proc~compute_derived_fields m_postprocess::compute_derived_fields proc~run->proc~compute_derived_fields proc~compute_pressure_vert m_postprocess::compute_pressure_vert proc~run->proc~compute_pressure_vert proc~get_block m_allocator::allocator_t%get_block proc~run->proc~get_block proc~has_output_field m_config::has_output_field proc~run->proc~has_output_field proc~is_root m_mesh_content::par_t%is_root proc~run->proc~is_root proc~mpi_wtime m_mpi::MPI_Wtime proc~run->proc~mpi_wtime proc~precorrect_walls m_solver::solver_t%precorrect_walls proc~run->proc~precorrect_walls proc~pressure_correction m_solver::solver_t%pressure_correction proc~run->proc~pressure_correction proc~release_block m_allocator::allocator_t%release_block proc~run->proc~release_block proc~vecmult_base m_base_backend::base_backend_t%vecmult_base none~body->proc~vecmult_base none~handle_checkpoint_step m_checkpoint_manager::checkpoint_manager_t%handle_checkpoint_step none~handle_io_step->none~handle_checkpoint_step none~handle_snapshot_step m_snapshot_manager::snapshot_manager_t%handle_snapshot_step none~handle_io_step->none~handle_snapshot_step none~write_stats m_stats::stats_manager_t%write_stats none~handle_io_step->none~write_stats none~is_restart~3 m_checkpoint_manager::checkpoint_manager_t%is_restart none~is_restart->none~is_restart~3 none~update m_stats::stats_manager_t%update none~update_stats->none~update proc~filter_field m_solver::filter_field proc~apply_spatial_filter->proc~filter_field proc~case_finalise->proc~is_root proc~finalise~4 m_monitoring::monitoring_t%finalise proc~case_finalise->proc~finalise~4 proc~compute_derived_fields->proc~get_block proc~compute_derived_fields->proc~release_block proc~compute_qcriterion_base m_base_backend::base_backend_t%compute_qcriterion_base proc~compute_derived_fields->proc~compute_qcriterion_base proc~compute_vorticity_base m_base_backend::base_backend_t%compute_vorticity_base proc~compute_derived_fields->proc~compute_vorticity_base proc~reorder_base m_base_backend::base_backend_t%reorder_base proc~compute_derived_fields->proc~reorder_base proc~tds_solve_base m_base_backend::base_backend_t%tds_solve_base proc~compute_derived_fields->proc~tds_solve_base proc~compute_pressure_vert->proc~get_block proc~interpl_c2v m_vector_calculus::vector_calculus_t%interpl_c2v proc~compute_pressure_vert->proc~interpl_c2v proc~vecadd_base m_base_backend::base_backend_t%vecadd_base proc~compute_pressure_vert->proc~vecadd_base proc~create_block m_allocator::allocator_t%create_block proc~get_block->proc~create_block proc~set_shape m_field::field_t%set_shape proc~get_block->proc~set_shape proc~field_add_face_from_field_base m_base_backend::base_backend_t%field_add_face_from_field_base proc~precorrect_walls->proc~field_add_face_from_field_base proc~field_scale_base m_base_backend::base_backend_t%field_scale_base proc~precorrect_walls->proc~field_scale_base proc~pressure_correction->proc~get_block proc~pressure_correction->proc~release_block proc~divergence_v2p m_solver::solver_t%divergence_v2p proc~pressure_correction->proc~divergence_v2p proc~gradient_p2v m_solver::solver_t%gradient_p2v proc~pressure_correction->proc~gradient_p2v proc~pressure_correction->proc~vecadd_base none~is_session_functional m_io_session::io_session_base_t%is_session_functional none~handle_checkpoint_step->none~is_session_functional none~supports_device_field_write m_io_session::writer_session_t%supports_device_field_write none~handle_checkpoint_step->none~supports_device_field_write none~write_checkpoint m_stats::stats_manager_t%write_checkpoint none~handle_checkpoint_step->none~write_checkpoint none~write_data m_io_session::writer_session_t%write_data none~handle_checkpoint_step->none~write_data none~write_field_from_solver m_io_session::writer_session_t%write_field_from_solver none~handle_checkpoint_step->none~write_field_from_solver padded_dims padded_dims none~handle_checkpoint_step->padded_dims proc~cleanup_field_arrays m_io_field_utils::cleanup_field_arrays none~handle_checkpoint_step->proc~cleanup_field_arrays proc~cleanup_field_buffers m_io_field_utils::cleanup_field_buffers none~handle_checkpoint_step->proc~cleanup_field_buffers proc~get_dims m_mesh::mesh_t%get_dims none~handle_checkpoint_step->proc~get_dims proc~get_field_data m_base_backend::base_backend_t%get_field_data none~handle_checkpoint_step->proc~get_field_data proc~get_field_ptr m_io_field_utils::get_field_ptr none~handle_checkpoint_step->proc~get_field_ptr proc~get_global_dims m_mesh::mesh_t%get_global_dims none~handle_checkpoint_step->proc~get_global_dims proc~get_shape m_field::field_t%get_shape none~handle_checkpoint_step->proc~get_shape proc~mpi_comm_rank m_mpi::MPI_Comm_rank none~handle_checkpoint_step->proc~mpi_comm_rank proc~prepare_field_buffers m_io_field_utils::prepare_field_buffers none~handle_checkpoint_step->proc~prepare_field_buffers proc~setup_field_arrays m_io_field_utils::setup_field_arrays none~handle_checkpoint_step->proc~setup_field_arrays proc~sync_base m_base_backend::base_backend_t%sync_base none~handle_checkpoint_step->proc~sync_base proc~write_single_field_to_buffer m_io_field_utils::write_single_field_to_buffer none~handle_checkpoint_step->proc~write_single_field_to_buffer raw_buffers raw_buffers none~handle_checkpoint_step->raw_buffers none~handle_snapshot_step->proc~has_output_field interface~mpi_allreduce m_mpi::MPI_Allreduce none~handle_snapshot_step->interface~mpi_allreduce none~begin_step m_io_session::writer_session_t%begin_step none~handle_snapshot_step->none~begin_step none~end_step m_io_session::writer_session_t%end_step none~handle_snapshot_step->none~end_step none~handle_snapshot_step->none~is_session_functional none~handle_snapshot_step->none~supports_device_field_write none~write_attribute m_io_session::writer_session_t%write_attribute none~handle_snapshot_step->none~write_attribute none~handle_snapshot_step->none~write_data none~handle_snapshot_step->none~write_field_from_solver none~handle_snapshot_step->proc~cleanup_field_arrays proc~get_coordinates m_mesh::mesh_t%get_coordinates none~handle_snapshot_step->proc~get_coordinates none~handle_snapshot_step->proc~get_dims none~handle_snapshot_step->proc~get_field_ptr none~handle_snapshot_step->proc~get_global_dims proc~get_output_dimensions m_io_field_utils::get_output_dimensions none~handle_snapshot_step->proc~get_output_dimensions none~handle_snapshot_step->proc~mpi_comm_rank none~handle_snapshot_step->proc~prepare_field_buffers none~handle_snapshot_step->proc~setup_field_arrays none~handle_snapshot_step->proc~sync_base none~handle_snapshot_step->proc~write_single_field_to_buffer none~update->proc~get_block none~update->proc~release_block proc~accumulate_mean m_stats::accumulate_mean none~update->proc~accumulate_mean none~update->proc~get_dims none~update->proc~get_field_data none~write_stats->none~is_session_functional none~write_stats->none~write_data none~write_stats->proc~get_dims none~write_stats->proc~get_global_dims none~write_stats->proc~mpi_comm_rank proc~divergence_v2c m_vector_calculus::vector_calculus_t%divergence_v2c proc~divergence_v2p->proc~divergence_v2c proc~filter_in_dir m_solver::filter_in_dir proc~filter_field->proc~filter_in_dir none~finalise~7 m_scalar_series::scalar_series_t%finalise proc~finalise~4->none~finalise~7 proc~gradient_c2v m_vector_calculus::vector_calculus_t%gradient_c2v proc~gradient_p2v->proc~gradient_c2v proc~interpl_c2v->proc~get_block proc~interpl_c2v->proc~release_block proc~interpl_c2v->proc~reorder_base proc~interpl_c2v->proc~tds_solve_base begin_step begin_step none~begin_step->begin_step end_step end_step none~end_step->end_step none~supports_device_field_write~2 m_io_base::io_writer_t%supports_device_field_write none~supports_device_field_write->none~supports_device_field_write~2 none~write_attribute~2 m_io_base::io_writer_t%write_attribute none~write_attribute->none~write_attribute~2 none~write_checkpoint->none~write_data none~write_checkpoint->proc~get_dims none~write_checkpoint->proc~get_global_dims none~write_data~2 m_io_base::io_writer_t%write_data none~write_data->none~write_data~2 write_field_from_solver write_field_from_solver none~write_field_from_solver->write_field_from_solver proc~cleanup_field_arrays->proc~release_block proc~divergence_v2c->proc~get_block proc~divergence_v2c->proc~release_block proc~divergence_v2c->proc~reorder_base proc~divergence_v2c->proc~tds_solve_base proc~divergence_v2c->proc~vecadd_base proc~filter_in_dir->proc~get_block proc~filter_in_dir->proc~release_block proc~filter_in_dir->proc~reorder_base proc~filter_in_dir->proc~tds_solve_base proc~veccopy_base m_base_backend::base_backend_t%veccopy_base proc~filter_in_dir->proc~veccopy_base proc~get_dims_dataloc m_mesh::get_dims_dataloc proc~get_dims->proc~get_dims_dataloc proc~get_field_data->proc~get_block proc~get_field_data->proc~release_block proc~get_field_data->proc~reorder_base proc~copy_f_to_data_base m_base_backend::base_backend_t%copy_f_to_data_base proc~get_field_data->proc~copy_f_to_data_base proc~get_rdr_from_dirs m_common::get_rdr_from_dirs proc~get_field_data->proc~get_rdr_from_dirs proc~get_field_ptr->proc~is_root proc~get_global_dims->proc~get_dims_dataloc proc~gradient_c2v->proc~get_block proc~gradient_c2v->proc~release_block proc~gradient_c2v->proc~reorder_base proc~gradient_c2v->proc~tds_solve_base proc~prepare_field_buffers->proc~get_dims proc~prepare_field_buffers->proc~get_global_dims proc~prepare_field_buffers->proc~get_output_dimensions proc~setup_field_arrays->proc~get_block proc~setup_field_arrays->proc~get_field_data proc~setup_field_arrays->proc~get_field_ptr proc~nvtx_pop m_nvtx::nvtx_pop proc~setup_field_arrays->proc~nvtx_pop proc~nvtx_push m_nvtx::nvtx_push proc~setup_field_arrays->proc~nvtx_push proc~write_single_field_to_buffer->proc~get_dims proc~write_single_field_to_buffer->proc~get_global_dims proc~write_single_field_to_buffer->proc~get_output_dimensions proc~write_single_field_to_buffer->proc~nvtx_pop proc~write_single_field_to_buffer->proc~nvtx_push proc~stride_data_to_buffer m_io_field_utils::stride_data_to_buffer proc~write_single_field_to_buffer->proc~stride_data_to_buffer adios2_define_attribute adios2_define_attribute none~write_attribute~2->adios2_define_attribute none~write_data~2->proc~mpi_wtime none~write_data~2->proc~nvtx_pop none~write_data~2->proc~nvtx_push adios2_define_variable adios2_define_variable none~write_data~2->adios2_define_variable adios2_inquire_variable adios2_inquire_variable none~write_data~2->adios2_inquire_variable adios2_put adios2_put none~write_data~2->adios2_put proc~nvtx_enabled m_nvtx::nvtx_enabled proc~nvtx_pop->proc~nvtx_enabled proc~nvtx_push->proc~nvtx_enabled

Called by

proc~~run~~CalledByGraph proc~run m_base_case::base_case_t%run program~xcompact xcompact program~xcompact->proc~run