mus_operation_var_module Module

This module provides the routine for applying operators. Currently it is only implemented for 3D and needs to be extended to 2d



Subroutines

public subroutine mus_set_opVar_getElement(solData_evalElem, fun)

Routine to store musubi varSys Data in operation variable solver_bundle. Unline Ateles, Musubi operations does not require any special treatment so it uses to generic routines in treelm

Arguments

Type IntentOptional Attributes Name
class(tem_varSys_solverData_evalElem_type), intent(in) :: solData_evalElem

Description on how to set the element retrieval function for stfuns.

type(tem_varSys_op_type), intent(inout) :: 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.

public recursive subroutine mus_opVar_setupIndices(fun, varSys, point, offset_bit, iLevel, tree, nPnts, idx)

Arguments

Type IntentOptional 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.

real(kind=rk), intent(in) :: point(:,:)

List of space coordinate points to store as growing array in method_data

character(len=1), intent(in), optional :: offset_bit(:)

Offset bit encoded as character for every point.

Read more…
integer, intent(in) :: iLevel

Level to which input points belong to

type(treelmesh_type), intent(in) :: tree

global treelm mesh info

integer, intent(in) :: nPnts

Number of points to add in method_data of this variable

integer, intent(out) :: idx(:)

Index of points in the growing array and variable val array. Size: nPoints

Read more…

public recursive subroutine mus_opVar_gradU_forElement(fun, varSys, elempos, time, tree, nElems, nDofs, res)

This routine returns the velocity gradient from velocity in auxField

Read more…

Arguments

Type IntentOptional 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(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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.

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

Read more…

public recursive subroutine mus_opVar_vorticity_forElement(fun, varSys, elempos, time, tree, nElems, nDofs, res)

This routine computes vorticity from curl of velocity in auxField.

Read more…

Arguments

Type IntentOptional 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(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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.

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

Read more…

public recursive subroutine mus_opVar_QCriterion_forElement(fun, varSys, elempos, time, tree, nElems, nDofs, res)

This routine computes Q-criterion from velocity in auxField. , where and S are asymmetric (vorticity tensor) and symmetric (rate of strain) part of velocity gradient. i.e and .

Read more…

Arguments

Type IntentOptional 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(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

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.

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

Read more…

private recursive subroutine mus_reductionTransient_forPoint(fun, varSys, point, time, tree, nPnts, res)

Same as reductionTransient_forElement except it evaluate it multiply values from points

Read more…

Arguments

Type IntentOptional 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.

real(kind=rk), intent(in) :: point(:,:)

Three-dimensional coordinates at which the variable should be evaluated. Only useful for variables provided as space-time functions.

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) :: nPnts

Number of values to obtain for this variable (vectorized access).

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

Read more…