abl_diagnostics_t Derived Type

type, public :: abl_diagnostics_t


Inherits

type~~abl_diagnostics_t~~InheritsGraph type~abl_diagnostics_t abl_diagnostics_t type~abl_config_t abl_config_t type~abl_diagnostics_t->type~abl_config_t cfg type~base_backend_t base_backend_t type~abl_diagnostics_t->type~base_backend_t backend type~mesh_t mesh_t type~abl_diagnostics_t->type~mesh_t mesh type~base_config_t base_config_t type~abl_config_t->type~base_config_t type~base_backend_t->type~mesh_t mesh type~allocator_t allocator_t type~base_backend_t->type~allocator_t allocator type~poisson_fft_t poisson_fft_t type~base_backend_t->type~poisson_fft_t poisson_fft 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~field_t field_t type~allocator_t->type~field_t first type~poisson_fft_t->type~mesh_t mesh type~field_t->type~field_t next

Inherited by

type~~abl_diagnostics_t~~InheritedByGraph type~abl_diagnostics_t abl_diagnostics_t type~case_abl_t case_abl_t type~case_abl_t->type~abl_diagnostics_t diagnostics

Components

Type Visibility Attributes Name Initial
class(base_backend_t), public, pointer :: backend => null()
type(mesh_t), public, pointer :: mesh => null()
type(abl_config_t), public :: cfg
real(kind=dp), public, allocatable :: profile_sum(:,:)
real(kind=dp), public :: wall_stress_sum(2) = 0._dp
real(kind=dp), public :: first_time = 0._dp
integer, public :: sample_count = 0
integer, public :: last_iter = -1

Constructor

public interface abl_diagnostics_t

  • private function init(backend, mesh, cfg) result(diagnostics)

    Arguments

    Type IntentOptional Attributes Name
    class(base_backend_t), intent(inout), target :: backend
    type(mesh_t), intent(inout), target :: mesh
    type(abl_config_t), intent(in) :: cfg

    Return Value type(abl_diagnostics_t)


Type-Bound Procedures

procedure, public :: sample

  • private subroutine sample(self, iter, time, u, v, w)

    Accumulate the horizontally averaged velocity and wall stress. The plane averages are formed on the device, so only one value per y-plane is copied back rather than the whole velocity field.

    Arguments

    Type IntentOptional Attributes Name
    class(abl_diagnostics_t), intent(inout) :: self
    integer, intent(in) :: iter
    real(kind=dp), intent(in) :: time
    class(field_t), intent(in) :: u
    class(field_t), intent(in) :: v
    class(field_t), intent(in) :: w