turbine_model_t Derived Type

type, public, abstract, extends(checkpoint_state_t) :: turbine_model_t


Inherits

type~~turbine_model_t~~InheritsGraph type~turbine_model_t turbine_model_t type~checkpoint_state_t checkpoint_state_t type~turbine_model_t->type~checkpoint_state_t

Inherited by

type~~turbine_model_t~~InheritedByGraph type~turbine_model_t turbine_model_t type~adm_t adm_t type~adm_t->type~turbine_model_t type~case_wind_turbine_t case_wind_turbine_t type~case_wind_turbine_t->type~turbine_model_t turbine type~turbine_dummy_t turbine_dummy_t type~turbine_dummy_t->type~turbine_model_t

Type-Bound Procedures

procedure(write_checkpoint_iface), public, deferred :: write_checkpoint

  • subroutine write_checkpoint_iface(self, writer) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(checkpoint_state_t), intent(inout) :: self
    type(writer_session_t), intent(inout) :: writer

procedure(read_checkpoint_iface), public, deferred :: read_checkpoint

  • subroutine read_checkpoint_iface(self, reader) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(checkpoint_state_t), intent(inout) :: self
    type(reader_session_t), intent(inout) :: reader

procedure(init_iface), public, deferred :: init

  • subroutine init_iface(self, backend, mesh, host_allocator, dt) Prototype

    Set up turbine geometry/state (read config files, place actuator points, build smearing kernels, ...). Called once after the solver exists. The model caches whatever context it needs (backend, mesh, host_allocator) so the per-step hooks below take only fields.

    Arguments

    Type IntentOptional Attributes Name
    class(turbine_model_t), intent(inout) :: self
    class(base_backend_t), intent(in), target :: backend
    type(mesh_t), intent(in), target :: mesh
    type(allocator_t), intent(in), target :: host_allocator
    real(kind=dp), intent(in) :: dt

procedure(update_iface), public, deferred :: update

  • subroutine update_iface(self, t, dt) Prototype

    Advance the turbine internal state (blade kinematics, rotor speed, velocity filtering) by one step. Called once per substep before project_forces.

    Arguments

    Type IntentOptional Attributes Name
    class(turbine_model_t), intent(inout) :: self
    real(kind=dp), intent(in) :: t
    real(kind=dp), intent(in) :: dt

procedure(project_forces_iface), public, deferred :: project_forces

  • subroutine project_forces_iface(self, du, dv, dw, u, v, w) Prototype

    Sample the velocity field at the actuator points and accumulate the turbine momentum source into the RHS fields du, dv, dw. Uses the backend/mesh cached at init.

    Arguments

    Type IntentOptional Attributes Name
    class(turbine_model_t), intent(inout) :: self
    class(field_t), intent(inout) :: du
    class(field_t), intent(inout) :: dv
    class(field_t), intent(inout) :: dw
    class(field_t), intent(in) :: u
    class(field_t), intent(in) :: v
    class(field_t), intent(in) :: w

procedure(write_output_iface), public, deferred :: write_output

  • subroutine write_output_iface(self, iter, is_root) Prototype

    Write per-turbine diagnostics (power, thrust, loads).

    Arguments

    Type IntentOptional Attributes Name
    class(turbine_model_t), intent(inout) :: self
    integer, intent(in) :: iter
    logical, intent(in) :: is_root

procedure(setup_output_iface), public, deferred :: setup_output

  • subroutine setup_output_iface(self, is_root, append) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(turbine_model_t), intent(inout) :: self
    logical, intent(in) :: is_root
    logical, intent(in) :: append

procedure(finalise_iface), public, deferred :: finalise

  • subroutine finalise_iface(self) Prototype

    Arguments

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