tem_spongeLayer_module Module

This module gathers the various spatial spongeLayer definitions


Uses

  • module~~tem_spongelayer_module~~UsesGraph module~tem_spongelayer_module tem_spongeLayer_module aot_table_module aot_table_module module~tem_spongelayer_module->aot_table_module aotus_module aotus_module module~tem_spongelayer_module->aotus_module module~env_module env_module module~tem_spongelayer_module->module~env_module module~tem_aux_module tem_aux_module module~tem_spongelayer_module->module~tem_aux_module module~tem_geometry_module tem_geometry_module module~tem_spongelayer_module->module~tem_geometry_module module~tem_logging_module tem_logging_module module~tem_spongelayer_module->module~tem_logging_module module~tem_param_module tem_param_module module~tem_spongelayer_module->module~tem_param_module module~treelmesh_module treelmesh_module module~tem_spongelayer_module->module~treelmesh_module module~env_module->aotus_module flu_binding flu_binding module~env_module->flu_binding iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env mpi mpi module~env_module->mpi module~tem_aux_module->aot_table_module module~tem_aux_module->aotus_module module~tem_aux_module->module~env_module module~tem_aux_module->module~tem_logging_module module~tem_aux_module->flu_binding module~soi_revision_module soi_revision_module module~tem_aux_module->module~soi_revision_module module~tem_comm_env_module tem_comm_env_module module~tem_aux_module->module~tem_comm_env_module module~tem_lua_requires_module tem_lua_requires_module module~tem_aux_module->module~tem_lua_requires_module module~tem_tools_module tem_tools_module module~tem_aux_module->module~tem_tools_module module~tem_aux_module->mpi module~tem_geometry_module->module~env_module module~tem_geometry_module->module~tem_logging_module module~tem_geometry_module->module~tem_param_module module~tem_geometry_module->module~treelmesh_module module~tem_debug_module tem_debug_module module~tem_geometry_module->module~tem_debug_module module~tem_float_module tem_float_module module~tem_geometry_module->module~tem_float_module module~tem_property_module tem_property_module module~tem_geometry_module->module~tem_property_module module~tem_subtree_type_module tem_subTree_type_module module~tem_geometry_module->module~tem_subtree_type_module module~tem_geometry_module->module~tem_tools_module module~tem_topology_module tem_topology_module module~tem_geometry_module->module~tem_topology_module module~tem_geometry_module->mpi module~tem_logging_module->aot_table_module module~tem_logging_module->aotus_module module~tem_logging_module->module~env_module module~tem_param_module->module~env_module module~treelmesh_module->aot_table_module module~treelmesh_module->aotus_module module~treelmesh_module->module~env_module module~treelmesh_module->module~tem_aux_module module~treelmesh_module->module~tem_logging_module module~tem_global_module tem_global_module module~treelmesh_module->module~tem_global_module module~treelmesh_module->module~tem_property_module module~tem_sparta_module tem_Sparta_module module~treelmesh_module->module~tem_sparta_module module~treelmesh_module->module~tem_tools_module module~treelmesh_module->module~tem_topology_module module~treelmesh_module->mpi module~tem_comm_env_module->mpi module~tem_debug_module->aot_table_module module~tem_debug_module->module~env_module module~tem_debug_module->module~tem_logging_module module~tem_debug_module->flu_binding module~tem_debug_module->module~tem_tools_module module~tem_float_module->module~env_module module~tem_global_module->aot_table_module module~tem_global_module->aotus_module module~tem_global_module->module~env_module module~tem_global_module->module~tem_aux_module module~tem_global_module->module~tem_logging_module module~tem_global_module->mpi aot_out_module aot_out_module module~tem_global_module->aot_out_module module~tem_prophead_module tem_prophead_module module~tem_global_module->module~tem_prophead_module module~tem_lua_requires_module->aot_table_module module~tem_lua_requires_module->aotus_module module~tem_lua_requires_module->module~env_module module~tem_lua_requires_module->flu_binding iso_c_binding iso_c_binding module~tem_lua_requires_module->iso_c_binding module~tem_property_module->module~env_module module~tem_property_module->mpi module~tem_property_module->module~tem_prophead_module module~tem_sparta_module->module~env_module module~tem_sparta_module->module~tem_aux_module module~tem_sparta_module->module~tem_logging_module module~tem_sparta_module->module~tem_float_module module~tem_sparta_module->mpi module~tem_subtree_type_module->module~env_module module~tem_subtree_type_module->module~tem_aux_module module~tem_subtree_type_module->module~tem_logging_module module~tem_subtree_type_module->module~treelmesh_module module~tem_subtree_type_module->module~tem_global_module module~tem_subtree_type_module->module~tem_property_module module~tem_subtree_type_module->mpi module~tem_tools_module->module~env_module module~tem_topology_module->module~env_module module~tem_prophead_module->aot_table_module module~tem_prophead_module->aotus_module module~tem_prophead_module->module~env_module module~tem_prophead_module->mpi module~tem_prophead_module->aot_out_module

Used by

  • module~~tem_spongelayer_module~~UsedByGraph module~tem_spongelayer_module tem_spongeLayer_module module~tem_spatial_module tem_spatial_module module~tem_spatial_module->module~tem_spongelayer_module module~tem_ini_condition_module tem_ini_condition_module module~tem_ini_condition_module->module~tem_spatial_module module~tem_spacetime_fun_module tem_spacetime_fun_module module~tem_spacetime_fun_module->module~tem_spatial_module module~tem_spacetime_var_module tem_spacetime_var_module module~tem_spacetime_var_module->module~tem_spatial_module module~tem_spacetime_var_module->module~tem_spacetime_fun_module module~tem_variable_module tem_variable_module module~tem_spacetime_var_module->module~tem_variable_module module~tem_bc_module tem_bc_module module~tem_bc_module->module~tem_spacetime_fun_module module~tem_varmap_module tem_varMap_module module~tem_bc_module->module~tem_varmap_module module~tem_derived_module tem_derived_module module~tem_derived_module->module~tem_spacetime_fun_module module~tem_derived_module->module~tem_spacetime_var_module module~tem_derived_module->module~tem_variable_module module~tem_face_module tem_face_module module~tem_face_module->module~tem_spacetime_fun_module module~tem_surfacedata_module tem_surfaceData_module module~tem_surfacedata_module->module~tem_spacetime_fun_module module~tem_variable_module->module~tem_spacetime_fun_module module~tem_varmap_module->module~tem_spacetime_fun_module module~tem_varmap_module->module~tem_spacetime_var_module module~hvs_output_module hvs_output_module module~hvs_output_module->module~tem_varmap_module module~tem_convergence_module tem_convergence_module module~tem_convergence_module->module~tem_varmap_module module~tem_depend_module tem_depend_module module~tem_depend_module->module~tem_varmap_module module~tem_operation_var_module tem_operation_var_module module~tem_operation_var_module->module~tem_variable_module module~tem_operation_var_module->module~tem_varmap_module module~tem_restart_module tem_restart_module module~tem_restart_module->module~tem_varmap_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_varmap_module

Interfaces

public interface tem_spongeLayer_plane_for

Interface for sponge layer plane

  • private function spongelayer_plane_scalar_for_coord(me, coord, n) result(res)

    This function returns the sigma for the planar shape spongelayer

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_plane_type) :: me

    Spacetime function to evaluate

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function spongelayer_plane_scalar_for_treeIDs(me, treeIds, tree, n) result(res)

    This function returns the sigma for the spongelayer from treeids

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_plane_type) :: me

    Spacetime function to evaluate

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function spongelayer_plane_vector_for_coord(me, ncomp, coord, n) result(res)

    This function calculates the sigma for the spongelayer and fills up the res with the target state

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_plane_type) :: me

    Spacetime function to evaluate

    integer, intent(in) :: ncomp

    Number of entrys in each array

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n,ncomp)

    return value

  • private function spongelayer_plane_vector_for_treeIDs(me, ncomp, treeIds, tree, n) result(res)

    This function calculates the sigma for the spongelayer and fills up the res with the target state

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_plane_type) :: me

    Spacetime function to evaluate

    integer, intent(in) :: ncomp

    Number of entrys in each array

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n,ncomp)

    return value

public interface tem_spongeLayer_box_for

Interface for sponge layer box

  • private function spongelayer_box_scalar_for_coord(me, coord, n) result(res)

    This function returns the sigma for the box shape spongelayer

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function spongelayer_box_scalar_for_treeIDs(me, treeIds, tree, n) result(res)

    This function returns the sigma for the spongelayer from treeids

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function spongelayer_box_vector_for_coord(me, ncomp, coord, n) result(res)

    This function calculates the sigma for the spongelayer and fills up the res with the target state

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    integer, intent(in) :: ncomp

    Number of entrys in each array

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n,ncomp)

    return value

  • private function spongelayer_box_vector_for_treeIDs(me, ncomp, treeIds, tree, n) result(res)

    This function calculates the sigma for the spongelayer and fills up the res with the target state

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    integer, intent(in) :: ncomp

    Number of entrys in each array

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n,ncomp)

    return value

public interface tem_spongeLayer_box2d_for

Interface for sponge layer box 2d

  • private function spongelayer_box2d_scalar_for_coord(me, coord, n) result(res)

    This function returns the sigma for the 2d box shape spongelayer

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function spongelayer_box2d_scalar_for_treeIDs(me, treeIds, tree, n) result(res)

    This function returns the sigma for the spongelayer from treeids

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function spongelayer_box2d_vector_for_coord(me, ncomp, coord, n) result(res)

    This function calculates the sigma for the spongelayer and fills up the res with the target state

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    integer, intent(in) :: ncomp

    Number of entrys in each array

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n,ncomp)

    return value

  • private function spongelayer_box2d_vector_for_treeIDs(me, ncomp, treeIds, tree, n) result(res)

    This function calculates the sigma for the spongelayer and fills up the res with the target state

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    integer, intent(in) :: ncomp

    Number of entrys in each array

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n,ncomp)

    return value

public interface tem_spongeLayer_radial_for

Interface for sponge layer radial

  • private function spongelayer_radial_scalar_for_coord(me, coord, nDim, n) result(res)

    This function returns the sigma for the radial viscosity spongelayer for 2D and 3D

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_radial_type) :: me

    Spacetime function to evaluate

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: nDim

    Dimension

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function spongelayer_radial_scalar_for_treeIDs(me, treeIds, tree, nDim, n) result(res)

    This function returns the sigma for the radial viscosity spongelayer for 2D and 3D from treeIDs

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_radial_type) :: me

    Spacetime function to evaluate

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: nDim

    Dimension

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function spongelayer_radial_vector_for_coord(me, nComp, coord, nDim, n) result(res)

    This function calculates the sigma for the radial viscosity spongelayer for 2D and 3D and fills up rest with target_state. This function is currectly used to define viscosity sponge in musubi.

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_radial_type) :: me

    Spacetime function to evaluate

    integer, intent(in) :: nComp

    Number of entrys in each array

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: nDim

    Dimension

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n,nComp)

    return value

  • private function spongelayer_radial_vector_for_treeIDs(me, nComp, treeIds, tree, nDim, n) result(res)

    This function calculates the sigma for the radial viscosity spongelayer for 2D and 3D from treeIDs and fills up rest with target_state. This function is currectly used to define viscosity sponge in musubi.

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_radial_type) :: me

    Spacetime function to evaluate

    integer, intent(in) :: nComp

    Number of entrys in each array

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: nDim

    Dimension

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n,nComp)

    return value

Interface for viscous sponge layer plane

  • private function viscSpongelayer_plane_for_coord(me, coord, n) result(res)

    This function calculates the sigma for the planar viscosity spongelayer and multiply with targetState 'viscosity'. This function is currectly used to define viscosity sponge in musubi.

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_plane_type) :: me

    Spacetime function to evaluate

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function viscSpongelayer_plane_for_treeIDs(me, treeIds, tree, n) result(res)

    This function calculates the sigma for the planar viscosity spongelayer and multiply with targetState 'viscosity' from treeid. This function is currectly used to define viscosity sponge in musubi.

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_plane_type) :: me

    Spacetime function to evaluate

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

public interface tem_viscSpongeLayer_box_for

Interface for viscous sponge layer box

  • private function viscSpongelayer_box_for_coord(me, coord, n) result(res)

    This function calculates the sigma for the box viscosity spongelayer and multiply with targetState 'viscosity'. This function is currectly used to define viscosity sponge in musubi.

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function viscSpongelayer_box_for_treeIDs(me, treeIds, tree, n) result(res)

    This function calculates the sigma for the box viscosity spongelayer and multiply with targetState 'viscosity' from treeid. This function is currectly used to define viscosity sponge in musubi.

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

Interface for viscous sponge layer box

  • private function viscSpongelayer_box2d_for_coord(me, coord, n) result(res)

    This function calculates the sigma for the box viscosity spongelayer box2d and multiply with targetState 'viscosity'. This function is currectly used to define viscosity sponge in musubi.

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function viscSpongelayer_box2d_for_treeIDs(me, treeIds, tree, n) result(res)

    This function calculates the sigma for the box viscosity spongelayer box2d and multiply with targetState 'viscosity' from treeid. This function is currectly used to define viscosity sponge in musubi.

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_box_type) :: me

    Spacetime function to evaluate

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

Interface for viscous sponge layer radial

  • private function viscSpongelayer_radial_for_coord(me, coord, nDim, n) result(res)

    This function calculates the sigma for the radial viscosity spongelayer for 2D and 3D, and multiply with targetState. This function is currectly used to define viscosity sponge in musubi.

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_radial_type) :: me

    Spacetime function to evaluate

    real(kind=rk), intent(in) :: coord(n,3)

    barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

    integer, intent(in) :: nDim

    Dimension

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value

  • private function viscSpongelayer_radial_for_treeIDs(me, treeIds, tree, nDim, n) result(res)

    This function calculates the sigma for the radial viscosity spongelayer for 2D and 3D, and multiply with targetState using treeid. This function is currectly used to define viscosity sponge in musubi.

    Arguments

    Type IntentOptional Attributes Name
    type(tem_spongeLayer_radial_type) :: me

    Spacetime function to evaluate

    integer(kind=long_k), intent(in) :: treeIds(n)

    treeIds of elements in given level

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

    global treelm mesh

    integer, intent(in) :: nDim

    Dimension

    integer, intent(in) :: n

    Number of arrays to return

    Return Value real(kind=rk), (n)

    return value


Derived Types

type, public, extends(spongeLayer_base_type) ::  tem_spongeLayer_plane_type

This type contains data to define spongeLayer plane

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: thickness

Thickness of the sponge layer. For planar sponge thickness is defined implicitly in place_normal

real(kind=rk), public :: dampFactor

Damp factor or strength for the sponge Layer

real(kind=rk), public :: dampExponent

damping exponent for the sponge layer

character(len=labelLen), public :: dampProfile

damping profile

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

target states. For viscous sponge, viscosity is stored and multiplied with sponge strength

real(kind=rk), public :: origin(3)

Sponge Plane origin

real(kind=rk), public :: normal(3)

Sponge Plane normal

type, public, extends(spongeLayer_base_type) ::  tem_spongeLayer_box_type

This type contains data to define spongeLayer box

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: thickness

Thickness of the sponge layer. For planar sponge thickness is defined implicitly in place_normal

real(kind=rk), public :: dampFactor

Damp factor or strength for the sponge Layer

real(kind=rk), public :: dampExponent

damping exponent for the sponge layer

character(len=labelLen), public :: dampProfile

damping profile

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

target states. For viscous sponge, viscosity is stored and multiplied with sponge strength

real(kind=rk), public :: origin(3)

Box origin, bottom left corner of sponge layer

real(kind=rk), public :: extent(3)

Length of box in each dimension

logical, public :: rounded_corner

To create sponge box with rounded corners

real(kind=rk), public :: corner_radius

Corner radius for rounded box

type, public, extends(spongeLayer_base_type) ::  tem_spongeLayer_radial_type

This type contains data to define spongeLayer radial

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: thickness

Thickness of the sponge layer. For planar sponge thickness is defined implicitly in place_normal

real(kind=rk), public :: dampFactor

Damp factor or strength for the sponge Layer

real(kind=rk), public :: dampExponent

damping exponent for the sponge layer

character(len=labelLen), public :: dampProfile

damping profile

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

target states. For viscous sponge, viscosity is stored and multiplied with sponge strength

real(kind=rk), public :: origin(3)

Sponge radial origin

real(kind=rk), public :: radius

Sponge inner radius i.e. sponge start. Outer radius is computed by adding thickness to inner radius.

type, private ::  spongeLayer_base_type

This type contains base data defined for all sponge layers

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: thickness

Thickness of the sponge layer. For planar sponge thickness is defined implicitly in place_normal

real(kind=rk), public :: dampFactor

Damp factor or strength for the sponge Layer

real(kind=rk), public :: dampExponent

damping exponent for the sponge layer

character(len=labelLen), public :: dampProfile

damping profile

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

target states. For viscous sponge, viscosity is stored and multiplied with sponge strength


Functions

private function spongelayer_plane_scalar_for_coord(me, coord, n) result(res)

This function returns the sigma for the planar shape spongelayer

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_plane_expon_for_coord(me, coord, n) result(res)

This function returns the sigma for the spongelayer computed from exponential function

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_plane_polyn5_for_coord(me, coord, n) result(res)

This function calculates the sigma for the spongeLayer from coord for the polynomial order n5. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_plane_polyn6_for_coord(me, coord, n) result(res)

This function calculates the sigma for the spongeLayer from coord for the polynomial order n6. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_plane_vector_for_coord(me, ncomp, coord, n) result(res)

This function calculates the sigma for the spongelayer and fills up the res with the target state

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spacetime function to evaluate

integer, intent(in) :: ncomp

Number of entrys in each array

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n,ncomp)

return value

private function spongelayer_plane_scalar_for_treeIDs(me, treeIds, tree, n) result(res)

This function returns the sigma for the spongelayer from treeids

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_plane_expon_for_treeIDs(me, treeIds, tree, n) result(res)

This function returns the sigma for the exponential spongelayer from treeids

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_plane_polyn5_for_treeids(me, treeIds, tree, n) result(res)

This function calculates the sigma for the spongelayer using polynomial order 5 from treeids. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spatial absorb layer to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_plane_polyn6_for_treeids(me, treeIds, tree, n) result(res)

This function calculates the sigma for the spongeLayer from treeid for the polynomial order n6. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spatial sponge layer to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_plane_vector_for_treeIDs(me, ncomp, treeIds, tree, n) result(res)

This function calculates the sigma for the spongelayer and fills up the res with the target state

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spacetime function to evaluate

integer, intent(in) :: ncomp

Number of entrys in each array

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n,ncomp)

return value

private function spongelayer_box_scalar_for_coord(me, coord, n) result(res)

This function returns the sigma for the box shape spongelayer

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box_expon_for_coord(me, coord, n) result(res)

This function returns sigma for the box shape spongelayer for coord for exponential profile.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_box_sharpCornerPolyn5_for_coord(me, coord, n) result(res)

This function calculates the sigma for the box shape sponge layer from coord for polynomial n5. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_box_roundCornerPolyn5_for_coord(me, coord, n) result(res)

This function calculates the sigma for the box shape sponge layer from coord for polynomial n5. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_box_sharpCornerPolyn6_for_coord(me, coord, n) result(res)

This function calculates the sigma for the box shape sponge layer from coord for polynomial n6. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_box_roundCornerPolyn6_for_coord(me, coord, n) result(res)

This function calculates the sigma for the box shape sponge layer from coord for polynomial n6. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box_vector_for_coord(me, ncomp, coord, n) result(res)

This function calculates the sigma for the spongelayer and fills up the res with the target state

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer, intent(in) :: ncomp

Number of entrys in each array

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n,ncomp)

return value

private function spongelayer_box_scalar_for_treeIDs(me, treeIds, tree, n) result(res)

This function returns the sigma for the spongelayer from treeids

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box_expon_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box shape spongelayer fom treeid for exponential profile

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box_sharpCornerPolyn5_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box shape spongelayer fom treeid for polynomial n5 profile

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box_roundCornerPolyn5_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box shape spongelayer fom treeid for polynomial n5 profile

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box_sharpCornerPolyn6_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box shape spongelayer fom treeid for polynomial n5 profile

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box_roundCornerPolyn6_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box shape spongelayer fom treeid for polynomial n5 profile

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box_vector_for_treeIDs(me, ncomp, treeIds, tree, n) result(res)

This function calculates the sigma for the spongelayer and fills up the res with the target state

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer, intent(in) :: ncomp

Number of entrys in each array

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n,ncomp)

return value

private function spongelayer_box2d_scalar_for_coord(me, coord, n) result(res)

This function returns the sigma for the 2d box shape spongelayer

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box2d_expon_for_coord(me, coord, n) result(res)

This function returns sigma for the box shape spongelayer for coord for exponential profile.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_box2d_sharpCornerPolyn5_for_coord(me, coord, n) result(res)

This function calculates the sigma for the 2d box shape sponge layer from coord for polynomial n5. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_box2d_roundCornerPolyn5_for_coord(me, coord, n) result(res)

This function calculates the sigma for the 2d box shape sponge layer from coord for polynomial n5. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_box2d_sharpCornerPolyn6_for_coord(me, coord, n) result(res)

This function calculates the sigma for the 2d box shape sponge layer from coord for polynomial n6. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_box2d_roundCornerPolyn6_for_coord(me, coord, n) result(res)

This function calculates the sigma for the 2d box shape sponge layer from coord for polynomial n6. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box2d_vector_for_coord(me, ncomp, coord, n) result(res)

This function calculates the sigma for the spongelayer and fills up the res with the target state

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer, intent(in) :: ncomp

Number of entrys in each array

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n,ncomp)

return value

private function spongelayer_box2d_scalar_for_treeIDs(me, treeIds, tree, n) result(res)

This function returns the sigma for the spongelayer from treeids

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box2d_expon_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box shape spongelayer fom treeid for exponential profile

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box2d_sharpCornerPolyn5_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box shape spongelayer fom treeid for polynomial n5 profile

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box2d_roundCornerPolyn5_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box shape spongelayer fom treeid for polynomial n5 profile

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box2d_sharpCornerPolyn6_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box shape spongelayer fom treeid for polynomial n5 profile

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box2d_roundCornerPolyn6_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box shape spongelayer fom treeid for polynomial n5 profile

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_box2d_vector_for_treeIDs(me, ncomp, treeIds, tree, n) result(res)

This function calculates the sigma for the spongelayer and fills up the res with the target state

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer, intent(in) :: ncomp

Number of entrys in each array

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n,ncomp)

return value

private function spongelayer_radial_scalar_for_coord(me, coord, nDim, n) result(res)

This function returns the sigma for the radial viscosity spongelayer for 2D and 3D

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_radial_expon_for_coord(me, coord, nDim, n) result(res)

This function returns the sigma for the radial viscosity spongelayer for 2D and 3D

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_radial_polyn5_for_coord(me, coord, nDim, n) result(res)

This function calculates the sigma for the spongelayer radial from coord. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_radial_polyn6_for_coord(me, coord, nDim, n) result(res)

This function calculates the sigma for the spongelayer radial from coord for the polynomial order n6. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spatial sponge layer to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_radial_vector_for_coord(me, nComp, coord, nDim, n) result(res)

This function calculates the sigma for the radial viscosity spongelayer for 2D and 3D and fills up rest with target_state. This function is currectly used to define viscosity sponge in musubi.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spacetime function to evaluate

integer, intent(in) :: nComp

Number of entrys in each array

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n,nComp)

return value

private function spongelayer_radial_scalar_for_treeIDs(me, treeIds, tree, nDim, n) result(res)

This function returns the sigma for the radial viscosity spongelayer for 2D and 3D from treeIDs

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_radial_expon_for_treeIDs(me, treeIds, tree, nDim, n) result(res)

This function returns the sigma for the radial viscosity spongelayer for 2D and 3D from treeIDs

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_radial_polyn5_for_treeids(me, treeIds, tree, nDim, n) result(res)

This function calculates the sigma for the radial spongelayer polynomial order 5 from treeids. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spatial sponge layer to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongeLayer_radial_polyn6_for_treeids(me, treeIds, tree, nDim, n) result(res)

This function calculates the sigma for the spongeLayer from treeid for the polynomial order n6. Sponge profile: where, \sigma_A - sponge strength, L - thickness, x0 - start of sponge.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spatial sponge layer to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function spongelayer_radial_vector_for_treeIDs(me, nComp, treeIds, tree, nDim, n) result(res)

This function calculates the sigma for the radial viscosity spongelayer for 2D and 3D from treeIDs and fills up rest with target_state. This function is currectly used to define viscosity sponge in musubi.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spacetime function to evaluate

integer, intent(in) :: nComp

Number of entrys in each array

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n,nComp)

return value

private function viscSpongelayer_plane_for_coord(me, coord, n) result(res)

This function calculates the sigma for the planar viscosity spongelayer and multiply with targetState 'viscosity'. This function is currectly used to define viscosity sponge in musubi.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function viscSpongelayer_plane_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the planar viscosity spongelayer and multiply with targetState 'viscosity' from treeid. This function is currectly used to define viscosity sponge in musubi.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function viscSpongelayer_box_for_coord(me, coord, n) result(res)

This function calculates the sigma for the box viscosity spongelayer and multiply with targetState 'viscosity'. This function is currectly used to define viscosity sponge in musubi.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function viscSpongelayer_box_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box viscosity spongelayer and multiply with targetState 'viscosity' from treeid. This function is currectly used to define viscosity sponge in musubi.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function viscSpongelayer_box2d_for_coord(me, coord, n) result(res)

This function calculates the sigma for the box viscosity spongelayer box2d and multiply with targetState 'viscosity'. This function is currectly used to define viscosity sponge in musubi.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function viscSpongelayer_box2d_for_treeIDs(me, treeIds, tree, n) result(res)

This function calculates the sigma for the box viscosity spongelayer box2d and multiply with targetState 'viscosity' from treeid. This function is currectly used to define viscosity sponge in musubi.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function viscSpongelayer_radial_for_coord(me, coord, nDim, n) result(res)

This function calculates the sigma for the radial viscosity spongelayer for 2D and 3D, and multiply with targetState. This function is currectly used to define viscosity sponge in musubi.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spacetime function to evaluate

real(kind=rk), intent(in) :: coord(n,3)

barycentric Ids of an elements. 1st index goes over number of elements and 2nd index goes over x,y,z coordinates

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value

private function viscSpongelayer_radial_for_treeIDs(me, treeIds, tree, nDim, n) result(res)

This function calculates the sigma for the radial viscosity spongelayer for 2D and 3D, and multiply with targetState using treeid. This function is currectly used to define viscosity sponge in musubi.

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type) :: me

Spacetime function to evaluate

integer(kind=long_k), intent(in) :: treeIds(n)

treeIds of elements in given level

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

global treelm mesh

integer, intent(in) :: nDim

Dimension

integer, intent(in) :: n

Number of arrays to return

Return Value real(kind=rk), (n)

return value


Subroutines

public subroutine tem_load_spongeLayer_plane(me, conf, thandle, nDim, nComp, stateName)

This subroutine load data for standard plane sponge layer Example:

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_plane_type), intent(out) :: me

Plane spongeLayer data type

type(flu_State) :: conf

lua state type

integer, intent(in) :: thandle

aotus parent handle

integer, intent(in) :: nDim

number of Dimension for nonViscous sponges

integer, intent(in) :: nComp

Number of component of St-Fun variable under which this spatial function is defined

character(len=*), intent(in), optional :: stateName

Load stateName from target_state table

public subroutine tem_load_spongeLayer_radial(me, conf, thandle, nDim, nComp, stateName)

This subroutine load data for radial sponge layer Example:

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_radial_type), intent(out) :: me

Radial spongeLayer data type

type(flu_State) :: conf

lua state type

integer, intent(in) :: thandle

aotus parent handle

integer, intent(in) :: nDim

number of Dimension for nonViscous sponges

integer, intent(in) :: nComp

Number of component of St-Fun variable under which this spatial function is defined

character(len=*), intent(in), optional :: stateName

Load stateName from target_state table

public subroutine tem_load_spongeLayer_box(me, conf, thandle, nDim, nComp, stateName)

This subroutine load data for sponge layer box Example:

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_spongeLayer_box_type), intent(out) :: me

Box spongeLayer data type

type(flu_State) :: conf

lua state type

integer, intent(in) :: thandle

aotus parent handle

integer, intent(in) :: nDim

number of Dimension for nonViscous sponges

integer, intent(in) :: nComp

Number of component of St-Fun variable under which this spatial function is defined

character(len=*), intent(in), optional :: stateName

Load stateName from target_state table

private subroutine load_spongeLayer(conf, thandle, me, ndim, nComp, stateName, thickness)

This routine load base info for sponge layer

Arguments

Type IntentOptional Attributes Name
type(flu_State) :: conf

lua state type

integer, intent(in) :: thandle

aotus parent handle

type(spongeLayer_base_type), intent(out) :: me

base spongeLayer data type

integer, intent(in) :: ndim

number of spatial dimensions

integer, intent(in) :: nComp

Number of component of St-Fun variable under which this spatial function is defined

character(len=*), intent(in), optional :: stateName

Load stateName from target_state table

real(kind=rk), intent(in), optional :: thickness

Thickness computed from sponge layer plane normal. Use this thickness If thickness is not defined.

private subroutine load_defaultTargetState(conf, parent, nDim, nComp, targetState)

This routine loads state names from target_state table

Arguments

Type IntentOptional Attributes Name
type(flu_State) :: conf

lua state type

integer, intent(in) :: parent

aotus parent handle

integer, intent(in) :: nDim

Number of dimension

integer, intent(in) :: nComp

Number of component of St-Fun variable under which this spatial function is defined

real(kind=rk), intent(out), allocatable :: targetState(:)

Target state value