m_stats Module

Online accumulation of flow field statistics.

Running means are maintained using the incremental update: applied to , plus pressure mean and scalar statistics () when present. At write time the fluctuation quantities are derived:

Statistics are written at istatout frequency. Accumulation starts at initstat and samples every istatfreq steps.

Note: velocity fields must be at VERT data location when update is called (i.e. after pressure_correction).


Uses

  • module~~m_stats~~UsesGraph module~m_stats m_stats module~m_common m_common module~m_stats->module~m_common module~m_config m_config module~m_stats->module~m_config module~m_field m_field module~m_stats->module~m_field module~m_io_session m_io_session module~m_stats->module~m_io_session module~m_solver m_solver module~m_stats->module~m_solver mpi mpi module~m_stats->mpi module~m_common->mpi module~m_config->module~m_common iso_fortran_env iso_fortran_env module~m_config->iso_fortran_env module~m_field->module~m_common module~m_io_session->module~m_common 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_solver->module~m_common module~m_solver->module~m_config module~m_solver->module~m_field module~m_solver->mpi module~m_solver->iso_fortran_env module~m_allocator m_allocator module~m_solver->module~m_allocator module~m_base_backend m_base_backend module~m_solver->module~m_base_backend module~m_ibm m_ibm module~m_solver->module~m_ibm module~m_mesh m_mesh module~m_solver->module~m_mesh module~m_tdsops m_tdsops module~m_solver->module~m_tdsops 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_allocator->module~m_common module~m_allocator->module~m_field module~m_allocator->iso_fortran_env module~m_base_backend->module~m_common module~m_base_backend->module~m_field module~m_base_backend->mpi module~m_base_backend->module~m_allocator module~m_base_backend->module~m_mesh module~m_base_backend->module~m_tdsops module~m_poisson_fft m_poisson_fft module~m_base_backend->module~m_poisson_fft module~m_ibm->module~m_common module~m_ibm->module~m_field module~m_ibm->module~m_io_session module~m_ibm->mpi module~m_ibm->iso_fortran_env module~m_ibm->module~m_allocator module~m_ibm->module~m_base_backend module~m_ibm->module~m_mesh module~m_io_backend~2->module~m_common module~m_io_backend~2->iso_fortran_env module~m_io_backend~2->module~m_io_base module~m_io_base->module~m_common module~m_mesh->module~m_common module~m_mesh->module~m_field module~m_mesh->mpi module~m_mesh->iso_fortran_env module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content module~m_tdsops->module~m_common module~m_tdsops->iso_fortran_env module~m_time_integrator->module~m_common module~m_time_integrator->module~m_field module~m_time_integrator->module~m_allocator module~m_time_integrator->module~m_base_backend module~m_vector_calculus->module~m_common module~m_vector_calculus->module~m_field module~m_vector_calculus->iso_fortran_env module~m_vector_calculus->module~m_allocator module~m_vector_calculus->module~m_base_backend module~m_vector_calculus->module~m_tdsops module~m_mesh_content->module~m_common module~m_poisson_fft->module~m_common module~m_poisson_fft->module~m_field module~m_poisson_fft->module~m_mesh module~m_poisson_fft->module~m_tdsops

Used by

  • module~~m_stats~~UsedByGraph module~m_stats m_stats module~m_checkpoint_manager m_checkpoint_manager module~m_checkpoint_manager->module~m_stats module~m_io_manager m_io_manager module~m_io_manager->module~m_stats module~m_io_manager->module~m_checkpoint_manager module~m_base_case m_base_case module~m_base_case->module~m_io_manager module~m_case_channel m_case_channel module~m_case_channel->module~m_base_case module~m_case_cylinder m_case_cylinder module~m_case_cylinder->module~m_base_case module~m_case_generic m_case_generic module~m_case_generic->module~m_base_case module~m_case_tgv m_case_tgv module~m_case_tgv->module~m_base_case program~xcompact xcompact program~xcompact->module~m_base_case program~xcompact->module~m_case_channel program~xcompact->module~m_case_cylinder program~xcompact->module~m_case_generic program~xcompact->module~m_case_tgv

Derived Types

type, public ::  stats_manager_t

Components

Type Visibility Attributes Name Initial
type(stats_config_t), public :: config
integer, public :: sample_count = 0
logical, public :: is_active = .false.

Running means of first moments

real(kind=dp), public, allocatable :: umean(:,:,:)
real(kind=dp), public, allocatable :: vmean(:,:,:)
real(kind=dp), public, allocatable :: wmean(:,:,:)

Running means of second moments

real(kind=dp), public, allocatable :: uumean(:,:,:)

real(kind=dp), public, allocatable :: vvmean(:,:,:)

real(kind=dp), public, allocatable :: wwmean(:,:,:)

real(kind=dp), public, allocatable :: uvmean(:,:,:)

real(kind=dp), public, allocatable :: uwmean(:,:,:)

real(kind=dp), public, allocatable :: vwmean(:,:,:)

Pressure mean

real(kind=dp), public, allocatable :: pmean(:,:,:)

Scalar (species) statistics

integer, public :: nspecies = 0
real(kind=dp), public, allocatable :: phimean(:,:,:,:)

real(kind=dp), public, allocatable :: phiphimean(:,:,:,:)

Type-Bound Procedures

procedure, public :: init
procedure, public :: update
procedure, public :: write_stats
procedure, public :: write_checkpoint
procedure, public :: read_checkpoint
procedure, public :: finalise

Subroutines

public pure subroutine accumulate_mean(mean, val, stat_inc)

Incremental running-mean update: where stat_inc = 1/n.

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(inout) :: mean(:,:,:)
real(kind=dp), intent(in) :: val(:,:,:)
real(kind=dp), intent(in) :: stat_inc