Description of the method how to obtain a variable

Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|

integer, | public | :: | mypos | Position of this variable in the variable system. |
|||

integer, | public, | allocatable | :: | state_varPos(:) | Position of state variable in the state array Currently used only in MUSUBI to access one dimensional state array |
||

integer, | public, | allocatable | :: | auxField_varPos(:) | Position of auxiliary variable in the auxilied field array Currently used only in MUSUBI to access one dimensional auxiliary array In Musubi, auxField vars are conserved macroscopic quantities computed from PDF state |
||

integer, | public | :: | nComponents | Number of components for this variable. |
|||

integer, | public | :: | nInputs | Number of variables, that are needed as input for the operation to obtain the variable. |
|||

integer, | public, | allocatable | :: | input_varPos(:) | Position of the input variables in the variable system. There are as many entries as nInputs. |
||

integer, | public, | allocatable | :: | input_varIndex(:) | Component index of the input variable in the variable system. It is used only when there is only one input variable. Index values must not be zero and > nComponents of input variable |
||

type(c_ptr), | public | :: | method_data | Data that is required by the get method. |
|||

character(len=labelLen), | public | :: | operType | Operation type |
|||

procedure(tem_varSys_proc_point), | public, | pointer | :: | get_point | => | null() | Function to actually obtain the variable at a given point. This is either a function accessing a state variable directly, a function returning a space time function evaluation or a derived quantity, that computes a new variable out of others. |

procedure(tem_varSys_proc_element), | public, | pointer | :: | get_element | => | null() | Function to actually obtain the variable in a given element. |

procedure(tem_varSys_proc_setParams), | public, | pointer | :: | set_params | => | null() | Function to set parameter in the data_type stored in method_data. |

procedure(tem_varSys_proc_getParams), | public, | pointer | :: | get_params | => | null() | Function to get parameter in the data_type stored in method_data |

procedure(tem_varSys_proc_setupIndices), | public, | pointer | :: | setup_indices | => | null() | Function to setup points set for boundaries and sources. Pointe set are stored in method_data level wise 1D growing array for dimension X,Y and Z. * For solver variables, points are stored in solver container. * For spacetime variables, points are stored in spacetime function. * For operation variables, points are passed down to its input_variable. |

procedure(tem_varSys_proc_getValOfIndex), | public, | pointer | :: | get_valOfIndex | => | null() | Function to get value for point set stored in method_data for requested index in point set. This function either returns a pre-stored value or compute value depends on variable type and spacetime function. For time-independent spacetime function, values are computed in setupIndices and growing array of points are deleted |

```
type tem_varSys_op_type
!> Position of this variable in the variable system.
integer :: mypos
!> Position of state variable in the state array
!! Currently used only in MUSUBI to access one dimensional state array
integer, allocatable :: state_varPos(:)
!> Position of auxiliary variable in the auxilied field array
!! Currently used only in MUSUBI to access one dimensional auxiliary array
!! In Musubi, auxField vars are conserved macroscopic quantities computed
!! from PDF state
integer, allocatable :: auxField_varPos(:)
!> Number of components for this variable.
integer :: nComponents
!> Number of variables, that are needed as input for the operation
!! to obtain the variable.
integer :: nInputs
!> Position of the input variables in the variable system.
!!
!! There are as many entries as nInputs.
integer, allocatable :: input_varPos(:)
!> Component index of the input variable in the variable system.
!! It is used only when there is only one input variable.
!! Index values must not be zero and > nComponents of input variable
integer, allocatable :: input_varIndex(:)
!> Data that is required by the get method.
type(c_ptr) :: method_data
!> Operation type
character(len=labelLen) :: operType
!> Function to actually obtain the variable at a given point.
!!
!! This is either a function accessing a state variable directly,
!! a function returning a space time function evaluation or a
!! derived quantity, that computes a new variable out of others.
procedure(tem_varSys_proc_point), pointer :: get_point => null()
!> Function to actually obtain the variable in a given element.
procedure(tem_varSys_proc_element), pointer :: get_element => null()
!> Function to set parameter in the data_type stored in method_data.
procedure(tem_varSys_proc_setParams), pointer :: set_params => null()
!> Function to get parameter in the data_type stored in method_data
procedure(tem_varSys_proc_getParams), pointer :: get_params => null()
!> Function to setup points set for boundaries and sources.
!! Pointe set are stored in method_data level wise 1D growing array for
!! dimension X,Y and Z.
!! * For solver variables, points are stored in solver container.
!! * For spacetime variables, points are stored in spacetime function.
!! * For operation variables, points are passed down to its
!! input_variable.
procedure(tem_varSys_proc_setupIndices), pointer :: &
& setup_indices => null()
!> Function to get value for point set stored in method_data
!! for requested index in point set.
!! This function either returns a pre-stored value or compute value
!! depends on variable type and spacetime function.
!! For time-independent spacetime function, values are computed
!! in setupIndices and growing array of points are deleted
procedure(tem_varSys_proc_getValOfIndex), pointer :: &
& get_valOfIndex => null()
end type tem_varSys_op_type
```