m_time_integrator Module


Uses

  • module~~m_time_integrator~~UsesGraph module~m_time_integrator m_time_integrator module~m_allocator m_allocator module~m_time_integrator->module~m_allocator module~m_base_backend m_base_backend module~m_time_integrator->module~m_base_backend module~m_common m_common module~m_time_integrator->module~m_common module~m_field m_field module~m_time_integrator->module~m_field module~m_logger m_logger module~m_time_integrator->module~m_logger module~m_allocator->module~m_common module~m_allocator->module~m_field 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_logger iso_c_binding iso_c_binding module~m_base_backend->iso_c_binding m_mpi m_mpi module~m_base_backend->m_mpi module~m_mesh m_mesh 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_common->module~m_logger module~m_common->m_mpi module~m_field->module~m_common module~m_field->iso_c_binding iso_fortran_env iso_fortran_env module~m_logger->iso_fortran_env module~m_logger->m_mpi module~m_mesh->module~m_common module~m_mesh->module~m_field module~m_mesh->module~m_logger module~m_mesh->m_mpi module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content module~m_poisson_fft->module~m_common module~m_poisson_fft->module~m_field module~m_poisson_fft->module~m_logger module~m_poisson_fft->module~m_mesh module~m_poisson_fft->module~m_tdsops module~m_tdsops->module~m_common module~m_tdsops->module~m_logger module~m_mesh_content->module~m_common module~m_mesh_content->module~m_logger

Used by

  • module~~m_time_integrator~~UsedByGraph module~m_time_integrator m_time_integrator module~m_memory_estimate m_memory_estimate module~m_memory_estimate->module~m_time_integrator module~m_solver m_solver module~m_solver->module~m_time_integrator module~m_base_case m_base_case module~m_base_case->module~m_solver module~m_io_manager m_io_manager module~m_base_case->module~m_io_manager module~m_monitoring m_monitoring module~m_base_case->module~m_monitoring module~m_postprocess m_postprocess module~m_base_case->module~m_postprocess module~m_case_channel m_case_channel module~m_case_channel->module~m_solver module~m_case_channel->module~m_base_case module~m_case_cylinder m_case_cylinder module~m_case_cylinder->module~m_solver module~m_case_cylinder->module~m_base_case module~m_case_generic m_case_generic module~m_case_generic->module~m_solver module~m_case_generic->module~m_base_case module~m_case_tgv m_case_tgv module~m_case_tgv->module~m_solver module~m_case_tgv->module~m_base_case module~m_case_wind_turbine m_case_wind_turbine module~m_case_wind_turbine->module~m_solver module~m_case_wind_turbine->module~m_base_case module~m_turbine_setup m_turbine_setup module~m_case_wind_turbine->module~m_turbine_setup module~m_checkpoint_manager m_checkpoint_manager module~m_checkpoint_manager->module~m_solver module~m_io_field_utils m_io_field_utils module~m_checkpoint_manager->module~m_io_field_utils module~m_stats m_stats module~m_checkpoint_manager->module~m_stats module~m_cuda_memcheck_device m_cuda_memcheck_device module~m_cuda_memcheck_device->module~m_memory_estimate module~m_cuda_memcheck_device->module~m_base_case module~m_io_field_utils->module~m_solver module~m_io_manager->module~m_solver module~m_io_manager->module~m_checkpoint_manager module~m_snapshot_manager m_snapshot_manager module~m_io_manager->module~m_snapshot_manager module~m_io_manager->module~m_stats module~m_memcheck_build m_memcheck_build module~m_memcheck_build->module~m_memory_estimate module~m_memcheck_build->module~m_base_case module~m_memcheck_estimate m_memcheck_estimate module~m_memcheck_build->module~m_memcheck_estimate module~m_memcheck_report m_memcheck_report module~m_memcheck_build->module~m_memcheck_report module~m_memcheck_build->module~m_monitoring module~m_case_abl m_case_abl module~m_memcheck_build->module~m_case_abl module~m_case_factory m_case_factory module~m_memcheck_build->module~m_case_factory module~m_memcheck_context m_memcheck_context module~m_memcheck_build->module~m_memcheck_context module~m_memcheck_estimate->module~m_memory_estimate module~m_memcheck_estimate->module~m_memcheck_context module~m_memcheck_report->module~m_memory_estimate module~m_memcheck_report->module~m_cuda_memcheck_device module~m_memcheck_report->module~m_memcheck_estimate module~m_memcheck_report->module~m_memcheck_context module~m_monitoring->module~m_solver module~m_postprocess->module~m_solver module~m_snapshot_manager->module~m_solver module~m_snapshot_manager->module~m_io_field_utils module~m_stats->module~m_solver module~m_turbine_setup->module~m_solver module~m_turbine_setup->module~m_io_manager program~x3d2_memcheck x3d2_memcheck program~x3d2_memcheck->module~m_memory_estimate program~x3d2_memcheck->module~m_memcheck_build program~x3d2_memcheck->module~m_memcheck_estimate program~x3d2_memcheck->module~m_memcheck_report program~x3d2_memcheck->module~m_memcheck_context module~m_case_abl->module~m_base_case module~m_case_abl->module~m_turbine_setup module~m_case_factory->module~m_base_case module~m_case_factory->module~m_case_channel module~m_case_factory->module~m_case_cylinder module~m_case_factory->module~m_case_generic module~m_case_factory->module~m_case_tgv module~m_case_factory->module~m_case_wind_turbine module~m_case_factory->module~m_case_abl module~m_memcheck_context->module~m_cuda_memcheck_device program~xcompact xcompact program~xcompact->module~m_base_case program~xcompact->module~m_case_factory

Interfaces

public interface time_intg_t

  • public function init(backend, allocator, method, nvars)

    Arguments

    Type IntentOptional Attributes Name
    class(base_backend_t), pointer :: backend
    class(allocator_t), pointer :: allocator
    character(len=3), intent(in) :: method
    integer, intent(in) :: nvars

    Return Value type(time_intg_t)


Abstract Interfaces

abstract interface

  • public subroutine stepper_func(self, curr, deriv, dt)

    Arguments

    Type IntentOptional Attributes Name
    class(time_intg_t), intent(inout) :: self
    type(flist_t), intent(inout) :: curr(:)
    type(flist_t), intent(in) :: deriv(:)
    real(kind=dp), intent(in) :: dt

Derived Types

type, public ::  time_intg_t

Components

Type Visibility Attributes Name Initial
integer, public :: method
integer, public :: istep
integer, public :: istage
integer, public :: order
integer, public :: nstep
integer, public :: nstage
integer, public :: nvars
integer, public :: nolds
real(kind=dp), public :: coeffs(4,4)
real(kind=dp), public :: rk_b(4,4)
real(kind=dp), public :: rk_a(3,3,4)
real(kind=dp), public :: gdt

Effective timestep for the current substep

real(kind=dp), public :: stage_dt

Time the current substep has advanced the solution from the start of the step, c_i*dt for RK stage i and dt for AB. Each substep starts from the divergence-free start-of-step field, so this is the timestep the pressure correction that follows the substep is scaled by.

character(len=3), public :: sname
type(flist_t), public, allocatable :: olds(:,:)
class(base_backend_t), public, pointer :: backend
class(allocator_t), public, pointer :: allocator
procedure(stepper_func), public, pointer :: step => null()

Constructor

public function init (backend, allocator, method, nvars)

Type-Bound Procedures

procedure, public :: finalize
procedure, public :: runge_kutta
procedure, public :: adams_bashforth

Functions

public function nolds_of(time_intg) result(nolds)

Number of old-step blocks per variable that a time_intg_t keeps: k - 1 for ABk (nstep - 1) and k for RKk (nstage). Static, so that x3d2-memcheck can size the history blocks without allocating them.

Arguments

Type IntentOptional Attributes Name
character(len=3), intent(in) :: time_intg

Return Value integer

public function init(backend, allocator, method, nvars)

Arguments

Type IntentOptional Attributes Name
class(base_backend_t), pointer :: backend
class(allocator_t), pointer :: allocator
character(len=3), intent(in) :: method
integer, intent(in) :: nvars

Return Value type(time_intg_t)


Subroutines

public subroutine finalize(self)

Arguments

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

public subroutine rotate(sol, n)

Arguments

Type IntentOptional Attributes Name
type(flist_t), intent(inout) :: sol(:)
integer, intent(in) :: n