m_case_abl Module


Uses

  • module~~m_case_abl~~UsesGraph module~m_case_abl m_case_abl m_mpi m_mpi module~m_case_abl->m_mpi module~m_abl m_abl module~m_case_abl->module~m_abl module~m_abl_diagnostics m_abl_diagnostics module~m_case_abl->module~m_abl_diagnostics module~m_allocator m_allocator module~m_case_abl->module~m_allocator module~m_base_backend m_base_backend module~m_case_abl->module~m_base_backend module~m_base_case m_base_case module~m_case_abl->module~m_base_case module~m_common m_common module~m_case_abl->module~m_common module~m_config m_config module~m_case_abl->module~m_config module~m_field m_field module~m_case_abl->module~m_field module~m_inflow_planes m_inflow_planes module~m_case_abl->module~m_inflow_planes module~m_logger m_logger module~m_case_abl->module~m_logger module~m_mesh m_mesh module~m_case_abl->module~m_mesh module~m_turbine_model m_turbine_model module~m_case_abl->module~m_turbine_model module~m_turbine_setup m_turbine_setup module~m_case_abl->module~m_turbine_setup module~m_abl->m_mpi module~m_abl->module~m_allocator module~m_abl->module~m_base_backend module~m_abl->module~m_common module~m_abl->module~m_config module~m_abl->module~m_field module~m_abl->module~m_logger module~m_abl->module~m_mesh iso_fortran_env iso_fortran_env module~m_abl->iso_fortran_env module~m_les m_les module~m_abl->module~m_les module~m_abl_diagnostics->m_mpi module~m_abl_diagnostics->module~m_base_backend module~m_abl_diagnostics->module~m_common module~m_abl_diagnostics->module~m_config module~m_abl_diagnostics->module~m_field module~m_abl_diagnostics->module~m_logger module~m_abl_diagnostics->module~m_mesh module~m_abl_diagnostics->module~m_les module~m_allocator->module~m_common module~m_allocator->module~m_field module~m_base_backend->m_mpi 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 module~m_base_backend->module~m_mesh iso_c_binding iso_c_binding module~m_base_backend->iso_c_binding 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_case->m_mpi 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_config module~m_base_case->module~m_field module~m_base_case->module~m_logger module~m_base_case->module~m_mesh 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_solver m_solver module~m_base_case->module~m_solver module~m_common->m_mpi module~m_common->module~m_logger module~m_config->module~m_common module~m_config->module~m_logger module~m_config->iso_fortran_env module~m_field->module~m_common module~m_field->iso_c_binding module~m_inflow_planes->m_mpi module~m_inflow_planes->module~m_base_backend module~m_inflow_planes->module~m_common module~m_inflow_planes->module~m_config module~m_inflow_planes->module~m_field module~m_inflow_planes->module~m_logger module~m_inflow_planes->module~m_mesh module~m_io_session m_io_session module~m_inflow_planes->module~m_io_session module~m_logger->m_mpi module~m_logger->iso_fortran_env module~m_mesh->m_mpi module~m_mesh->module~m_common module~m_mesh->module~m_field module~m_mesh->module~m_logger module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content module~m_turbine_model->module~m_allocator module~m_turbine_model->module~m_base_backend module~m_turbine_model->module~m_common module~m_turbine_model->module~m_field module~m_turbine_model->module~m_mesh module~m_checkpoint_state m_checkpoint_state module~m_turbine_model->module~m_checkpoint_state module~m_turbine_setup->module~m_config module~m_turbine_setup->module~m_logger module~m_turbine_setup->module~m_turbine_model module~m_adm m_adm module~m_turbine_setup->module~m_adm module~m_alm m_alm module~m_turbine_setup->module~m_alm module~m_turbine_setup->module~m_io_manager module~m_turbine_setup->module~m_solver module~m_turbine_dummy m_turbine_dummy module~m_turbine_setup->module~m_turbine_dummy module~m_adm->m_mpi module~m_adm->module~m_allocator module~m_adm->module~m_base_backend module~m_adm->module~m_common module~m_adm->module~m_field module~m_adm->module~m_logger module~m_adm->module~m_mesh module~m_adm->module~m_turbine_model module~m_adm->module~m_io_session module~m_scalar_series m_scalar_series module~m_adm->module~m_scalar_series module~m_alm->m_mpi module~m_alm->module~m_allocator module~m_alm->module~m_base_backend module~m_alm->module~m_common module~m_alm->module~m_field module~m_alm->module~m_logger module~m_alm->module~m_mesh module~m_alm->module~m_turbine_model module~m_alm->module~m_io_session module~m_alm_controller m_alm_controller module~m_alm->module~m_alm_controller module~m_alm_element m_alm_element module~m_alm->module~m_alm_element module~m_alm_output m_alm_output module~m_alm->module~m_alm_output module~m_alm_turbine m_alm_turbine module~m_alm->module~m_alm_turbine module~m_alm->module~m_scalar_series module~m_checkpoint_state->module~m_io_session module~m_io_manager->m_mpi module~m_io_manager->module~m_checkpoint_state module~m_io_manager->module~m_solver module~m_checkpoint_manager m_checkpoint_manager 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_stats m_stats module~m_io_manager->module~m_stats module~m_io_session->module~m_base_backend module~m_io_session->module~m_common module~m_io_session->module~m_field module~m_io_session->module~m_logger module~m_io_backend~2 m_io_backend module~m_io_session->module~m_io_backend~2 module~m_io_base m_io_base module~m_io_session->module~m_io_base module~m_les->module~m_base_backend module~m_les->module~m_common module~m_les->module~m_config module~m_les->module~m_field module~m_les->module~m_logger module~m_les->module~m_mesh module~m_les->module~m_tdsops module~m_mesh_content->module~m_common module~m_mesh_content->module~m_logger module~m_monitoring->module~m_common module~m_monitoring->module~m_field module~m_monitoring->module~m_logger module~m_monitoring->module~m_solver module~m_monitoring->module~m_scalar_series 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_postprocess->module~m_common module~m_postprocess->module~m_field module~m_postprocess->module~m_logger module~m_postprocess->module~m_solver 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_logger module~m_solver->module~m_mesh module~m_solver->module~m_les module~m_solver->module~m_tdsops module~m_ibm m_ibm module~m_solver->module~m_ibm module~m_tdsops_setup m_tdsops_setup module~m_solver->module~m_tdsops_setup 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_tdsops->module~m_common module~m_tdsops->module~m_logger module~m_turbine_dummy->module~m_allocator module~m_turbine_dummy->module~m_base_backend module~m_turbine_dummy->module~m_common module~m_turbine_dummy->module~m_field module~m_turbine_dummy->module~m_mesh module~m_turbine_dummy->module~m_turbine_model module~m_turbine_dummy->module~m_io_session module~m_alm_controller->module~m_common module~m_alm_controller->module~m_logger module~m_alm_element->module~m_common module~m_alm_airfoil m_alm_airfoil module~m_alm_element->module~m_alm_airfoil module~m_alm_output->module~m_common module~m_alm_output->module~m_logger module~m_alm_output->module~m_alm_element module~m_alm_turbine->module~m_common module~m_alm_turbine->module~m_logger module~m_alm_turbine->module~m_alm_controller module~m_alm_turbine->module~m_alm_element module~m_alm_turbine->module~m_alm_airfoil module~m_checkpoint_manager->m_mpi module~m_checkpoint_manager->module~m_common module~m_checkpoint_manager->module~m_config module~m_checkpoint_manager->module~m_field module~m_checkpoint_manager->module~m_logger module~m_checkpoint_manager->module~m_checkpoint_state module~m_checkpoint_manager->module~m_io_session module~m_checkpoint_manager->module~m_solver module~m_checkpoint_manager->module~m_stats module~m_io_field_utils m_io_field_utils module~m_checkpoint_manager->module~m_io_field_utils module~m_ibm->m_mpi module~m_ibm->module~m_allocator module~m_ibm->module~m_base_backend module~m_ibm->module~m_common module~m_ibm->module~m_field module~m_ibm->module~m_logger module~m_ibm->module~m_mesh module~m_ibm->module~m_io_session module~m_io_backend~2->m_mpi module~m_io_backend~2->module~m_base_backend module~m_io_backend~2->module~m_common module~m_io_backend~2->module~m_field module~m_io_backend~2->module~m_logger module~m_io_backend~2->iso_c_binding module~m_io_backend~2->iso_fortran_env module~m_io_backend~2->module~m_io_base adios2 adios2 module~m_io_backend~2->adios2 cudafor cudafor module~m_io_backend~2->cudafor module~m_nvtx m_nvtx module~m_io_backend~2->module~m_nvtx module~m_io_base->module~m_base_backend module~m_io_base->module~m_common module~m_io_base->module~m_field module~m_scalar_series->module~m_common module~m_scalar_series->module~m_logger module~m_snapshot_manager->m_mpi module~m_snapshot_manager->module~m_common module~m_snapshot_manager->module~m_config module~m_snapshot_manager->module~m_field module~m_snapshot_manager->module~m_logger module~m_snapshot_manager->module~m_io_session module~m_snapshot_manager->module~m_solver module~m_snapshot_manager->module~m_io_field_utils module~m_stats->module~m_common module~m_stats->module~m_config module~m_stats->module~m_field module~m_stats->module~m_logger module~m_stats->module~m_io_session module~m_stats->module~m_solver module~m_tdsops_setup->module~m_base_backend module~m_tdsops_setup->module~m_common module~m_tdsops_setup->module~m_logger module~m_tdsops_setup->module~m_mesh module~m_tdsops_setup->module~m_tdsops 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_time_integrator->module~m_logger 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_logger module~m_vector_calculus->module~m_tdsops module~m_alm_airfoil->module~m_common module~m_alm_airfoil->module~m_logger module~m_io_field_utils->module~m_common module~m_io_field_utils->module~m_field module~m_io_field_utils->module~m_logger module~m_io_field_utils->module~m_solver module~m_io_field_utils->module~m_io_base module~m_io_field_utils->module~m_nvtx module~m_nvtx->iso_c_binding

Used by

  • module~~m_case_abl~~UsedByGraph module~m_case_abl m_case_abl module~m_case_factory m_case_factory module~m_case_factory->module~m_case_abl module~m_memcheck_build m_memcheck_build module~m_memcheck_build->module~m_case_abl module~m_memcheck_build->module~m_case_factory program~x3d2_memcheck x3d2_memcheck program~x3d2_memcheck->module~m_memcheck_build program~xcompact xcompact program~xcompact->module~m_case_factory

Interfaces

public interface case_abl_t

  • public function case_abl_init(backend, mesh, host_allocator) result(flow_case)

    Arguments

    Type IntentOptional Attributes Name
    class(base_backend_t), intent(inout), target :: backend
    type(mesh_t), intent(inout), target :: mesh
    type(allocator_t), intent(inout), target :: host_allocator

    Return Value type(case_abl_t)


Derived Types

type, public, extends(base_case_t) ::  case_abl_t

Components

Type Visibility Attributes Name Initial
class(solver_t), public, allocatable :: solver
type(io_manager_t), public :: io_mgr
type(monitoring_t), public :: monitoring
class(field_t), public, pointer :: bc_start_u_x => null()
class(field_t), public, pointer :: bc_start_v_x => null()
class(field_t), public, pointer :: bc_start_w_x => null()
class(field_t), public, pointer :: bc_end_u_x => null()
class(field_t), public, pointer :: bc_end_v_x => null()
class(field_t), public, pointer :: bc_end_w_x => null()
class(field_t), public, pointer :: bc_start_u_y => null()
class(field_t), public, pointer :: bc_start_v_y => null()
class(field_t), public, pointer :: bc_start_w_y => null()
class(field_t), public, pointer :: bc_end_u_y => null()
class(field_t), public, pointer :: bc_end_v_y => null()
class(field_t), public, pointer :: bc_end_w_y => null()
type(abl_config_t), public :: abl_cfg
type(abl_t), public :: abl
type(abl_diagnostics_t), public :: diagnostics
type(inflow_config_t), public :: inflow_cfg
type(inflow_plane_writer_t), public :: inflow_writer

Precursor output: inflow planes for a successor run

type(inflow_plane_reader_t), public :: inflow_reader

Successor input: inflow planes from a precursor run

integer, public :: inflow_iter = -1

Iteration the inlet plane in bc_start_*_x was built for

real(kind=dp), public :: out_vel = 0._dp
real(kind=dp), public, allocatable :: flow_rate_y_weights(:)

y weights of the inlet and outlet flow rates (outflow correction)

type(wind_turbine_config_t), public :: turbine_cfg

Turbine settings from wind_turbine_nml, which is optional here

class(turbine_model_t), public, pointer :: turbine => null()

Turbine forcing model; only allocated when wind_turbine_nml asks for one

Constructor

public function case_abl_init (backend, mesh, host_allocator)

Type-Bound Procedures

procedure, public :: compute_outflow_params
procedure, public :: outflow_flow_rate_correction
procedure, public :: case_init
procedure, public :: case_finalise
procedure, public :: set_init
procedure, public :: substep
procedure, public :: set_curr_fields
procedure, public :: finish_step
procedure, public :: run
procedure, public :: define_BC => define_BC_abl
procedure, public :: initial_conditions => initial_conditions_abl
procedure, public :: forcings => forcings_abl
procedure, public :: apply_BC => apply_BC_abl
procedure, public :: postprocess => postprocess_abl
procedure, public :: post_step => post_step_abl
procedure, public :: finalise_case_specific => finalise_abl
procedure, public :: update_inflow_plane

Functions

public function case_abl_init(backend, mesh, host_allocator) result(flow_case)

Arguments

Type IntentOptional Attributes Name
class(base_backend_t), intent(inout), target :: backend
type(mesh_t), intent(inout), target :: mesh
type(allocator_t), intent(inout), target :: host_allocator

Return Value type(case_abl_t)


Subroutines

public subroutine initial_conditions_abl(self)

Arguments

Type IntentOptional Attributes Name
class(case_abl_t) :: self

public subroutine define_BC_abl(self)

Arguments

Type IntentOptional Attributes Name
class(case_abl_t) :: self

public subroutine update_inflow_plane(self)

Fill bc_start_*_x with the precursor plane for the iteration being computed. The plane is held for every substep of the iteration, as Incompact3d does, so it is uploaded once per iteration.

Arguments

Type IntentOptional Attributes Name
class(case_abl_t) :: self

public subroutine forcings_abl(self, du, dv, dw, iter)

Arguments

Type IntentOptional Attributes Name
class(case_abl_t) :: self
class(field_t), intent(inout) :: du
class(field_t), intent(inout) :: dv
class(field_t), intent(inout) :: dw
integer, intent(in) :: iter

public subroutine apply_BC_abl(self, u, v, w)

Arguments

Type IntentOptional Attributes Name
class(case_abl_t) :: self
class(field_t), intent(inout) :: u
class(field_t), intent(inout) :: v
class(field_t), intent(inout) :: w

public subroutine postprocess_abl(self, iter, t)

Arguments

Type IntentOptional Attributes Name
class(case_abl_t) :: self
integer, intent(in) :: iter
real(kind=dp), intent(in) :: t

public subroutine post_step_abl(self, iter, t)

Arguments

Type IntentOptional Attributes Name
class(case_abl_t) :: self
integer, intent(in) :: iter
real(kind=dp), intent(in) :: t

public subroutine finalise_abl(self)

Arguments

Type IntentOptional Attributes Name
class(case_abl_t) :: self