tem_reduction_transient_type Derived Type

type, public :: tem_reduction_transient_type

all data needed for a transient reduction, operation to perform and necessary data from previous timesteps


Inherits

type~~tem_reduction_transient_type~~InheritsGraph type~tem_reduction_transient_type tem_reduction_transient_type type~tem_reduction_transient_config_type tem_reduction_transient_config_type type~tem_reduction_transient_type->type~tem_reduction_transient_config_type config

Inherited by

type~~tem_reduction_transient_type~~InheritedByGraph type~tem_reduction_transient_type tem_reduction_transient_type type~tem_varsys_op_data_type tem_varSys_op_data_type type~tem_varsys_op_data_type->type~tem_reduction_transient_type redTrans

Contents


Components

Type Visibility Attributes Name Initial
type(tem_reduction_transient_config_type), public :: config

reduction info loaded from config file

integer, public :: nTimes = 0

Number of "recorded" previous iterations

integer, public :: nEntries = 0

Number of values to store in the double buffer val

integer, public :: nComponents = 0

number of components

integer, public :: nDofs

Number of degrees of freedom

integer, public :: curr

Index of the storage for the currently filling (incomplete) position in val

integer, public :: last

Index of the storage location with the previously completed interval holding the reduced value over that interval.

real(kind=rk), public, allocatable :: val(:,:)

Double buffer to store data from previous timesteps size (nComponentsnDofstree%nElems,2) 2nd index is used to maintain last valid reduced value when nRecord is reached. It will be swapped to avoid copy operations


Source Code

  type tem_reduction_transient_type
    !> reduction info loaded from config file
    type(tem_reduction_transient_config_type) :: config

    !> Number of "recorded" previous iterations
    integer :: nTimes = 0

    !> Number of values to store in the double buffer val
    integer :: nEntries = 0

    !> number of components
    integer :: nComponents = 0

    !> Number of degrees of freedom
    integer :: nDofs

    !> Index of the storage for the currently filling (incomplete) position
    !! in val
    integer :: curr

    !> Index of the storage location with the previously completed interval
    !! holding the reduced value over that interval.
    integer :: last

    !> Double buffer to store data from previous timesteps
    !! size (nComponents*nDofs*tree%nElems,2)
    !! 2nd index is used to maintain last valid reduced value when
    !! nRecord is reached. It will be swapped to avoid copy operations
    real(kind=rk), allocatable :: val(:,:)
  end type tem_reduction_transient_type