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 interface~str m_logger::str proc~run->interface~str mpi_reduce mpi_reduce proc~run->mpi_reduce mpi_wtime mpi_wtime proc~run->mpi_wtime 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 none~write_initial_snapshot m_io_manager::io_manager_t%write_initial_snapshot proc~run->none~write_initial_snapshot postprocess postprocess proc~run->postprocess proc~abort_run m_logger::abort_run proc~run->proc~abort_run 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~fill m_field::field_t%fill proc~run->proc~fill proc~finish_step m_base_case::base_case_t%finish_step proc~run->proc~finish_step proc~get_block m_allocator::allocator_t%get_block proc~run->proc~get_block proc~log_info m_logger::log_info proc~run->proc~log_info proc~output_field_active m_config::output_field_active proc~run->proc~output_field_active proc~post_step m_base_case::base_case_t%post_step proc~run->proc~post_step proc~set_curr_fields m_base_case::base_case_t%set_curr_fields proc~run->proc~set_curr_fields proc~substep m_base_case::base_case_t%substep proc~run->proc~substep 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~5 m_stats::stats_manager_t%update none~update_stats->none~update~5 none~write_initial_snapshot->none~handle_snapshot_step proc~abort_run->interface~str mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier mpi_comm_rank mpi_comm_rank proc~abort_run->mpi_comm_rank mpi_comm_size mpi_comm_size proc~abort_run->mpi_comm_size mpi_finalized mpi_finalized proc~abort_run->mpi_finalized mpi_initialized mpi_initialized proc~abort_run->mpi_initialized proc~filter_field m_solver::filter_field proc~apply_spatial_filter->proc~filter_field proc~case_finalise->proc~log_info proc~finalise_case_specific_default m_base_case::base_case_t%finalise_case_specific_default proc~case_finalise->proc~finalise_case_specific_default proc~finalise~5 m_monitoring::monitoring_t%finalise proc~case_finalise->proc~finalise~5 proc~release_block m_allocator::allocator_t%release_block proc~case_finalise->proc~release_block proc~compute_derived_fields->proc~get_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~compute_derived_fields->proc~release_block 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~finish_step->proc~compute_derived_fields proc~compute_pressure_vert m_postprocess::compute_pressure_vert proc~finish_step->proc~compute_pressure_vert 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~log_info->interface~str proc~log_info->mpi_comm_rank proc~log_info->mpi_comm_size proc~log_info->mpi_finalized proc~log_info->mpi_initialized proc~has_output_field m_config::has_output_field proc~output_field_active->proc~has_output_field proc~substep->proc~get_block apply_BC apply_BC proc~substep->apply_BC define_BC define_BC proc~substep->define_BC forcings forcings proc~substep->forcings none~body m_ibm::ibm_t%body proc~substep->none~body proc~precorrect_walls m_solver::solver_t%precorrect_walls proc~substep->proc~precorrect_walls proc~pressure_correction m_solver::solver_t%pressure_correction proc~substep->proc~pressure_correction proc~substep->proc~release_block proc~vecmult_base m_base_backend::base_backend_t%vecmult_base none~body->proc~vecmult_base none~handle_checkpoint_step->proc~abort_run none~handle_checkpoint_step->proc~log_info none~handle_checkpoint_step->mpi_comm_rank 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~6 m_stats::stats_manager_t%write_checkpoint none~handle_checkpoint_step->none~write_checkpoint~6 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~log_error m_logger::log_error none~handle_checkpoint_step->proc~log_error proc~log_warn m_logger::log_warn none~handle_checkpoint_step->proc~log_warn 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->interface~str none~handle_snapshot_step->proc~abort_run none~handle_snapshot_step->proc~log_info none~handle_snapshot_step->mpi_barrier none~handle_snapshot_step->mpi_comm_rank none~handle_snapshot_step->proc~has_output_field finalise finalise none~handle_snapshot_step->finalise init init none~handle_snapshot_step->init mpi_allreduce mpi_allreduce none~handle_snapshot_step->mpi_allreduce mpi_bcast mpi_bcast none~handle_snapshot_step->mpi_bcast 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 proc~allocate_io_writer m_io_backend::allocate_io_writer none~handle_snapshot_step->proc~allocate_io_writer 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~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~5->proc~get_block none~update~5->proc~release_block proc~accumulate_mean m_stats::accumulate_mean none~update~5->proc~accumulate_mean none~update~5->proc~get_dims none~update~5->proc~get_field_data none~write_stats->interface~str none~write_stats->proc~log_info 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 proc~compute_pressure_vert->proc~abort_run 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~compute_qcriterion_base->proc~abort_run proc~compute_vorticity_base->proc~abort_run proc~filter_in_dir m_solver::filter_in_dir proc~filter_field->proc~filter_in_dir none~finalise~15 m_scalar_series::scalar_series_t%finalise proc~finalise~5->none~finalise~15 proc~precorrect_walls->proc~abort_run 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~field_set_face_base m_base_backend::base_backend_t%field_set_face_base proc~precorrect_walls->proc~field_set_face_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~set_data_loc m_field::field_t%set_data_loc proc~pressure_correction->proc~set_data_loc proc~pressure_correction->proc~vecadd_base proc~reorder_base->proc~abort_run proc~tds_solve_base->proc~abort_run none~begin_step->proc~abort_run begin_step begin_step none~begin_step->begin_step none~end_step->proc~abort_run 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->proc~abort_run none~write_attribute~2 m_io_base::io_writer_t%write_attribute none~write_attribute->none~write_attribute~2 none~write_checkpoint~6->none~write_data none~write_checkpoint~6->proc~get_dims none~write_checkpoint~6->proc~get_global_dims none~write_data->proc~abort_run none~write_data~2 m_io_base::io_writer_t%write_data none~write_data->none~write_data~2 none~write_field_from_solver->proc~abort_run 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 m_vector_calculus::vector_calculus_t%divergence_v2c proc~divergence_v2p->proc~divergence_v2c proc~field_add_face_from_field_base->proc~abort_run proc~field_scale_base->proc~abort_run proc~field_set_face_base->proc~abort_run proc~filter_in_dir->proc~abort_run 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~abort_run proc~get_global_dims->proc~get_dims_dataloc proc~gradient_c2v m_vector_calculus::vector_calculus_t%gradient_c2v proc~gradient_p2v->proc~gradient_c2v proc~interpl_c2v->proc~abort_run 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 proc~log_error->interface~str proc~log_error->mpi_comm_rank proc~log_error->mpi_comm_size proc~log_error->mpi_finalized proc~log_error->mpi_initialized proc~log_warn->interface~str proc~log_warn->mpi_comm_rank proc~log_warn->mpi_comm_size proc~log_warn->mpi_finalized proc~log_warn->mpi_initialized 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~sync_base->proc~abort_run proc~vecadd_base->proc~abort_run proc~vecmult_base->proc~abort_run proc~write_single_field_to_buffer->proc~abort_run 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 none~write_attribute~2->interface~str none~write_attribute~2->proc~abort_run adios2_define_attribute adios2_define_attribute none~write_attribute~2->adios2_define_attribute none~write_data~2->interface~str none~write_data~2->mpi_wtime none~write_data~2->proc~abort_run 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~copy_f_to_data_base->proc~abort_run proc~divergence_v2c->proc~abort_run 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~gradient_c2v->proc~abort_run 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~nvtx_enabled m_nvtx::nvtx_enabled proc~nvtx_pop->proc~nvtx_enabled proc~nvtx_push->proc~nvtx_enabled proc~veccopy_base->proc~abort_run

Called by

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