case_wind_turbine_t Derived Type

type, public, extends(base_case_t) :: case_wind_turbine_t


Inherits

type~~case_wind_turbine_t~~InheritsGraph type~case_wind_turbine_t case_wind_turbine_t type~base_case_t base_case_t type~case_wind_turbine_t->type~base_case_t type~turbine_model_t turbine_model_t type~case_wind_turbine_t->type~turbine_model_t turbine type~wind_turbine_config_t wind_turbine_config_t type~case_wind_turbine_t->type~wind_turbine_config_t wt_cfg type~field_t field_t type~base_case_t->type~field_t bc_start_u_x, bc_start_v_x, bc_start_w_x, bc_end_u_x, bc_end_v_x, bc_end_w_x, bc_start_u_y, bc_start_v_y, bc_start_w_y, bc_end_u_y, bc_end_v_y, bc_end_w_y type~io_manager_t io_manager_t type~base_case_t->type~io_manager_t io_mgr type~monitoring_t monitoring_t type~base_case_t->type~monitoring_t monitoring type~solver_t solver_t type~base_case_t->type~solver_t solver type~checkpoint_state_t checkpoint_state_t type~turbine_model_t->type~checkpoint_state_t type~base_config_t base_config_t type~wind_turbine_config_t->type~base_config_t type~field_t->type~field_t next type~io_manager_t->type~checkpoint_state_t additional_checkpoint_state type~checkpoint_manager_t checkpoint_manager_t type~io_manager_t->type~checkpoint_manager_t checkpoint_mgr type~snapshot_manager_t snapshot_manager_t type~io_manager_t->type~snapshot_manager_t snapshot_mgr type~stats_manager_t stats_manager_t type~io_manager_t->type~stats_manager_t stats_mgr type~scalar_series_t scalar_series_t type~monitoring_t->type~scalar_series_t series type~solver_t->type~field_t u, v, w, pressure, pressure_vert, dpdx_last, dpdy_last, dpdz_last, vort, qcrit type~allocator_t allocator_t type~solver_t->type~allocator_t host_allocator type~base_backend_t base_backend_t type~solver_t->type~base_backend_t backend type~dirps_t dirps_t type~solver_t->type~dirps_t xdirps, ydirps, zdirps type~flist_t flist_t type~solver_t->type~flist_t species type~ibm_t ibm_t type~solver_t->type~ibm_t ibm type~les_t les_t type~solver_t->type~les_t les type~mesh_t mesh_t type~solver_t->type~mesh_t mesh type~time_intg_t time_intg_t type~solver_t->type~time_intg_t time_integrator type~vector_calculus_t vector_calculus_t type~solver_t->type~vector_calculus_t vector_calculus type~allocator_t->type~field_t first type~base_backend_t->type~allocator_t allocator type~base_backend_t->type~mesh_t mesh type~poisson_fft_t poisson_fft_t type~base_backend_t->type~poisson_fft_t poisson_fft type~checkpoint_config_t checkpoint_config_t type~checkpoint_manager_t->type~checkpoint_config_t config type~field_buffer_map_t field_buffer_map_t type~checkpoint_manager_t->type~field_buffer_map_t field_buffers type~tdsops_t tdsops_t type~dirps_t->type~tdsops_t der1st, der1st_sym, der2nd, der2nd_sym, stagder_v2p, stagder_p2v, interpl_v2p, interpl_p2v, lowpass, lowpass_sym type~flist_t->type~field_t ptr type~ibm_t->type~field_t ep1 type~ibm_t->type~allocator_t host_allocator type~ibm_t->type~base_backend_t backend type~ibm_t->type~mesh_t mesh type~les_t->type~field_t nut, mixing_length_sq type~geo_t geo_t type~mesh_t->type~geo_t geo type~grid_t grid_t type~mesh_t->type~grid_t grid type~par_t par_t type~mesh_t->type~par_t par type~snapshot_manager_t->type~checkpoint_config_t config type~snapshot_manager_t->type~field_buffer_map_t field_buffers type~writer_session_t writer_session_t type~snapshot_manager_t->type~writer_session_t snapshot_writer type~stats_config_t stats_config_t type~stats_manager_t->type~stats_config_t config type~time_intg_t->type~allocator_t allocator type~time_intg_t->type~base_backend_t backend type~time_intg_t->type~flist_t olds type~vector_calculus_t->type~base_backend_t backend type~checkpoint_config_t->type~base_config_t type~poisson_fft_t->type~mesh_t mesh type~stats_config_t->type~base_config_t type~io_session_base_t io_session_base_t type~writer_session_t->type~io_session_base_t type~io_writer_t io_writer_t type~writer_session_t->type~io_writer_t writer type~io_file_t io_file_t type~io_session_base_t->type~io_file_t file

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(wind_turbine_config_t), public :: wt_cfg
class(turbine_model_t), public, pointer :: turbine => null()

Constructor

public interface case_wind_turbine_t


Type-Bound Procedures

procedure, public :: case_init

  • public subroutine case_init(self, backend, mesh, host_allocator)

    Arguments

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

procedure, public :: case_finalise

procedure, public :: set_init

  • public subroutine set_init(self, field, field_func)

    Arguments

    Type IntentOptional Attributes Name
    class(base_case_t) :: self
    class(field_t), intent(inout) :: field
    public pure function field_func(coords) result(r)
    Arguments
    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: coords(3)
    Return Value real(kind=dp)

procedure, public :: run

  • public subroutine run(self)

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

    Arguments

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

procedure, public :: define_BC => define_BC_wind_turbine

  • public subroutine define_BC_wind_turbine(self)

    Boundary Conditions hook (called per substep before transeq). Builds the inlet Dirichlet profile only; outflow parameters are computed in apply_BC from the post-integration velocity. u = bc_start_u + inlet_noise(1) * um * (2r - 1) v = bc_start_v + inlet_noise(2) * um * (2r - 1) w = bc_start_w + inlet_noise(3) * um * (2r - 1)

    Arguments

    Type IntentOptional Attributes Name
    class(case_wind_turbine_t) :: self

procedure, public :: initial_conditions => initial_conditions_wind_turbine

procedure, public :: forcings => forcings_wind_turbine

procedure, public :: apply_BC => apply_BC_wind_turbine

  • public subroutine apply_BC_wind_turbine(self, u, v, w)

    Pre-correction (called per substep after the integrator step): enforce the inflow Dirichlet and convective outflow BCs, then apply an exact uniform mass correction to the outlet, following Incompact3d's pre_correc.

    Read more…

    Arguments

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

procedure, public :: postprocess => postprocess_wind_turbine

procedure, public :: finalise_case_specific => finalise_wind_turbine

procedure, public :: compute_outflow_params