This interface describes the arguments to be used for routines that do the derivation of variables from the variable system. These derive routines are passed to atl_derive_getElement via a procedure pointer.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tem_varSys_op_type), | intent(in) | :: | fun | Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables. |
||
type(tem_varSys_type), | intent(in) | :: | varSys | The variable system to obtain the variable from. |
||
type(treelmesh_type), | intent(in) | :: | tree | global treelm mesh info |
||
integer, | intent(in) | :: | iElem | The Current element index |
||
integer, | intent(in) | :: | elempos(:) | TreeID of the element to get the variable for. |
||
type(atl_derive_inputVar_type) | :: | nodalInput(:) | The input data. nodalInput contains one entry for each input variable. This entry itself contains the nodal data for the dofs and components of the input variable. These nodal data has to be gained by oversampling and projecting the modal state into nodal space. |
|||
real(kind=rk), | allocatable | :: | nodalRes(:,:) | The result in nodal space |
This type stores the state data for a given variable and a given element. This type is used to allocate arrays for arbitrary variable counts, as jagged arrays are not allowed in Fortran.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | private, | allocatable | :: | data(:,:) |
This routine prepares the data for variable derivation or operators. It gathers all input variables from the variable system, oversamples and projects them into nodal space, calls the function with the actual calculation and projects the results back into modal space. As these projections are common to all elementwise variable accesses, this generic routine does all necessary operations in a generic way.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tem_varSys_op_type), | intent(in) | :: | fun | Description of the method to obtain the variables, here some preset values might be stored, like the space time function to use or the required variables. |
||
type(tem_varSys_type), | intent(in) | :: | varSys | The variable system to obtain the variable from. |
||
integer, | intent(in) | :: | elempos(:) | TreeID of the element to get the variable for. |
||
type(tem_time_type), | intent(in) | :: | time | Point in time at which to evaluate the variable. |
||
type(treelmesh_type), | intent(in) | :: | tree | global treelm mesh info |
||
integer, | intent(in) | :: | nElems | Number of values to obtain for this variable (vectorized access). |
||
integer, | intent(in) | :: | nDofs | Number of degrees of freedom within an element. Careful: This argument determines how many dofs is returned in the output of this routine |
||
procedure(atl_derive_fromModalData), | pointer | :: | fnCalcPtr | Function pointer to perform specific operation. Sets in routine which calls this routine |
||
type(atl_varSys_solverData_type), | intent(inout) | :: | solverData | Solver data container |
||
real(kind=rk), | intent(out) | :: | res(:) | Resulting values for the requested variable. Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp |