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


Uses

Used by

  • module~~mus_operation_var_module~~UsedByGraph module~mus_operation_var_module mus_operation_var_module module~mus_derquan_module mus_derQuan_module module~mus_derquan_module->module~mus_operation_var_module module~mus_derquanincomp_module mus_derQuanIncomp_module module~mus_derquanincomp_module->module~mus_operation_var_module module~mus_derquanincomp_module->module~mus_derquan_module module~mus_derquanisothermaceq_module mus_derQuanIsothermAcEq_module module~mus_derquanisothermaceq_module->module~mus_operation_var_module module~mus_derquanmsgas_module mus_derQuanMSGas_module module~mus_derquanmsgas_module->module~mus_operation_var_module module~mus_derquanmsliquid_module mus_derQuanMSLiquid_module module~mus_derquanmsgas_module->module~mus_derquanmsliquid_module module~mus_derquanmsliquid_module->module~mus_operation_var_module module~mus_derquannernstplanck_module mus_derQuanNernstPlanck_module module~mus_derquannernstplanck_module->module~mus_operation_var_module module~mus_derquanphysics_module mus_derQuanPhysics_module module~mus_derquanphysics_module->module~mus_operation_var_module module~mus_derquanpoisson_module mus_derQuanPoisson_module module~mus_derquanpoisson_module->module~mus_operation_var_module module~mus_derquanps_module mus_derQuanPS_module module~mus_derquanps_module->module~mus_operation_var_module module~mus_derquanps_module->module~mus_derquan_module module~mus_variable_module mus_variable_module module~mus_variable_module->module~mus_operation_var_module module~mus_variable_module->module~mus_derquan_module module~mus_variable_module->module~mus_derquanincomp_module module~mus_variable_module->module~mus_derquanisothermaceq_module module~mus_variable_module->module~mus_derquanmsgas_module module~mus_variable_module->module~mus_derquanmsliquid_module module~mus_variable_module->module~mus_derquannernstplanck_module module~mus_variable_module->module~mus_derquanphysics_module module~mus_variable_module->module~mus_derquanpoisson_module module~mus_variable_module->module~mus_derquanps_module module~mus_bc_species_module mus_bc_species_module module~mus_bc_species_module->module~mus_derquanmsliquid_module module~mus_scheme_module mus_scheme_module module~mus_scheme_module->module~mus_variable_module module~mus_bc_general_module mus_bc_general_module module~mus_bc_general_module->module~mus_bc_species_module module~mus_config_module mus_config_module module~mus_config_module->module~mus_scheme_module module~mus_tools_module mus_tools_module module~mus_config_module->module~mus_tools_module module~mus_dynloadbal_module mus_dynLoadBal_module module~mus_dynloadbal_module->module~mus_scheme_module module~mus_dynloadbal_module->module~mus_bc_general_module module~mus_dynloadbal_module->module~mus_tools_module module~mus_hvs_config_module mus_hvs_config_module module~mus_hvs_config_module->module~mus_scheme_module module~mus_hvs_config_module->module~mus_config_module module~mus_program_module mus_program_module module~mus_program_module->module~mus_scheme_module module~mus_program_module->module~mus_bc_general_module module~mus_program_module->module~mus_dynloadbal_module module~mus_program_module->module~mus_tools_module module~mus_tools_module->module~mus_scheme_module program~mus_harvesting mus_harvesting program~mus_harvesting->module~mus_scheme_module program~mus_harvesting->module~mus_hvs_config_module module~mus_aux_module mus_aux_module module~mus_aux_module->module~mus_tools_module module~mus_control_module mus_control_module module~mus_control_module->module~mus_bc_general_module module~mus_debug_module mus_debug_module module~mus_debug_module->module~mus_bc_general_module module~mus_hvs_aux_module mus_hvs_aux_module module~mus_hvs_aux_module->module~mus_tools_module module~mus_interpolate_verify_module mus_interpolate_verify_module module~mus_interpolate_verify_module->module~mus_config_module module~mus_tracking_module mus_tracking_module module~mus_tracking_module->module~mus_tools_module program~musubi musubi program~musubi->module~mus_config_module program~musubi->module~mus_program_module

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…