tem_bc_prop_module Module

A module to provide informations on boundary condition tem_bc_module property for elements.


Uses

  • module~~tem_bc_prop_module~~UsesGraph module~tem_bc_prop_module tem_bc_prop_module module~tem_prophead_module tem_prophead_module module~tem_bc_prop_module->module~tem_prophead_module module~aotus_module aotus_module module~tem_bc_prop_module->module~aotus_module module~aot_out_module aot_out_module module~tem_bc_prop_module->module~aot_out_module module~tem_topology_module tem_topology_module module~tem_bc_prop_module->module~tem_topology_module module~aot_table_module aot_table_module module~tem_bc_prop_module->module~aot_table_module module~env_module env_module module~tem_bc_prop_module->module~env_module module~tem_aux_module tem_aux_module module~tem_bc_prop_module->module~tem_aux_module module~tem_property_module tem_property_module module~tem_bc_prop_module->module~tem_property_module module~treelmesh_module treelmesh_module module~tem_bc_prop_module->module~treelmesh_module mpi mpi module~tem_bc_prop_module->mpi module~tem_logging_module tem_logging_module module~tem_bc_prop_module->module~tem_logging_module module~tem_debug_module tem_debug_module module~tem_bc_prop_module->module~tem_debug_module module~tem_param_module tem_param_module module~tem_bc_prop_module->module~tem_param_module module~tem_prophead_module->module~aotus_module module~tem_prophead_module->module~aot_out_module module~tem_prophead_module->module~aot_table_module module~tem_prophead_module->module~env_module module~tem_prophead_module->mpi module~tem_topology_module->module~env_module module~env_module->module~aotus_module module~env_module->mpi module~flu_binding flu_binding module~env_module->module~flu_binding iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env module~tem_aux_module->module~aotus_module module~tem_aux_module->module~aot_table_module module~tem_aux_module->module~env_module module~tem_aux_module->mpi module~tem_aux_module->module~tem_logging_module module~tem_revision_module tem_revision_module module~tem_aux_module->module~tem_revision_module module~tem_tools_module tem_tools_module module~tem_aux_module->module~tem_tools_module module~tem_lua_requires_module tem_lua_requires_module module~tem_aux_module->module~tem_lua_requires_module module~tem_aux_module->module~flu_binding module~tem_comm_env_module tem_comm_env_module module~tem_aux_module->module~tem_comm_env_module module~tem_property_module->module~tem_prophead_module module~tem_property_module->module~env_module module~tem_property_module->mpi module~treelmesh_module->module~aotus_module module~treelmesh_module->module~tem_topology_module module~treelmesh_module->module~aot_table_module module~treelmesh_module->module~env_module module~treelmesh_module->module~tem_aux_module module~treelmesh_module->module~tem_property_module module~treelmesh_module->mpi 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_tools_module module~tem_sparta_module tem_Sparta_module module~treelmesh_module->module~tem_sparta_module module~tem_logging_module->module~aotus_module module~tem_logging_module->module~aot_table_module module~tem_logging_module->module~env_module module~tem_debug_module->module~aot_table_module module~tem_debug_module->module~env_module module~tem_debug_module->module~tem_logging_module module~tem_debug_module->module~tem_tools_module module~tem_debug_module->module~flu_binding module~tem_param_module->module~env_module module~tem_global_module->module~tem_prophead_module module~tem_global_module->module~aotus_module module~tem_global_module->module~aot_out_module module~tem_global_module->module~aot_table_module module~tem_global_module->module~env_module module~tem_global_module->module~tem_aux_module module~tem_global_module->mpi module~tem_global_module->module~tem_logging_module module~tem_tools_module->module~env_module module~tem_lua_requires_module->module~aotus_module module~tem_lua_requires_module->module~aot_table_module module~tem_lua_requires_module->module~env_module module~tem_lua_requires_module->module~flu_binding iso_c_binding iso_c_binding module~tem_lua_requires_module->iso_c_binding module~tem_sparta_module->module~env_module module~tem_sparta_module->module~tem_aux_module module~tem_sparta_module->mpi module~tem_sparta_module->module~tem_logging_module module~tem_float_module tem_float_module module~tem_sparta_module->module~tem_float_module module~tem_comm_env_module->mpi module~tem_float_module->module~env_module

Used by

  • module~~tem_bc_prop_module~~UsedByGraph module~tem_bc_prop_module tem_bc_prop_module program~tem_varsys_opvar_test tem_varSys_opVar_test program~tem_varsys_opvar_test->module~tem_bc_prop_module program~tem_variable_evaltype_test tem_variable_evaltype_test program~tem_variable_evaltype_test->module~tem_bc_prop_module program~tem_varsys_derivevar_test tem_varSys_deriveVar_test program~tem_varsys_derivevar_test->module~tem_bc_prop_module module~tem_face_module tem_face_module module~tem_face_module->module~tem_bc_prop_module module~tem_vrtx_module tem_vrtx_module module~tem_vrtx_module->module~tem_bc_prop_module module~tem_utestenv_module tem_utestEnv_module module~tem_utestenv_module->module~tem_bc_prop_module module~tem_subtree_module tem_subTree_module module~tem_subtree_module->module~tem_bc_prop_module module~tem_bc_header_module tem_bc_header_module module~tem_bc_header_module->module~tem_bc_prop_module program~tem_varsys_stfunvar_test tem_varSys_stfunVar_test program~tem_varsys_stfunvar_test->module~tem_bc_prop_module program~tem_variable_extract_test tem_variable_extract_test program~tem_variable_extract_test->module~tem_bc_prop_module program~tem_face_test~2 tem_face_test program~tem_face_test~2->module~tem_bc_prop_module module~tem_refining_module tem_refining_module module~tem_refining_module->module~tem_bc_prop_module program~tem_face_test tem_face_test program~tem_face_test->module~tem_bc_prop_module program~tem_spacetime_fun_test tem_spacetime_fun_test program~tem_spacetime_fun_test->module~tem_bc_prop_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_bc_prop_module program~tem_varsys_statevar_test tem_varSys_stateVar_test program~tem_varsys_statevar_test->module~tem_bc_prop_module program~tem_varsys_test tem_varSys_test program~tem_varsys_test->module~tem_bc_prop_module module~tem_construction_module tem_construction_module module~tem_construction_module->module~tem_bc_prop_module module~tem_spacetime_fun_module tem_spacetime_fun_module module~tem_spacetime_fun_module->module~tem_bc_prop_module program~tem_logical_opertor_test tem_logical_opertor_test program~tem_logical_opertor_test->module~tem_bc_prop_module program~tem_variable_combine_test tem_variable_combine_Test program~tem_variable_combine_test->module~tem_bc_prop_module program~tem_face_test~3 tem_face_test program~tem_face_test~3->module~tem_bc_prop_module module~tem_convergence_module tem_convergence_module module~tem_convergence_module->module~tem_bc_prop_module

Contents


Derived Types

type, public :: tem_BC_prop_type

Components

TypeVisibilityAttributesNameInitial
type(tem_prophead_type), private, pointer:: header=> null()

Pointer to treelmesh_type%global%property

integer, private :: nSides

Number of sides in the elements, each side might be assigned a boundary condition ID The first 6 are dedicated to "direct" neighbors, and shall always be present. The next 12 are dedicated to neighbors where two of the indices in the 3 dimensional address have to be changed (neighbors at the edges of the cube) After these 18 entries, additional 8 entries might be used for neighbors at the corners.

Read more…
integer, private :: nBCtypes

Number of different Boundary conditions used in the complete domain e.g. wall, inflow, outflow

character(len=LabelLen), private, allocatable:: BC_label(:)

Array of labels identifying each of the boundary conditions. This array has a length of nBCtypes

logical, private, allocatable:: hasQVal(:)

Logical array indicating whether each boundary is high order wall This array has a length of nBCtypes

real(kind=rk), private, allocatable:: qVal(:,:)

Actual q-value array for high order wall boundary conditions JQ: The fist dimension has a length of nSides The second dimension has a length of the number of elements with the boundary condition property. tem_property_type%nElems

integer(kind=long_k), private, allocatable:: boundary_ID(:,:)

Actual boundary condition identification for all sides of elements with this property. The first dimension has a length of nSides The second dimension has a length of the number of elements with the boundary condition property. tem_property_type%nElems An ID of 0 for a side indicates, that there is no boundary in that direction. A negative ID indicates a periodic boundary and that the given absolute of the given value is to be taken as neighboring ID in that direction.

type(tem_property_type), private, pointer:: property=> null()

Pointer to treelmesh_type%property


Functions

public pure function tem_bc_prop_pos(tree) result(bcpos)

Get the boundary property position in the list of all properties in tree.

Read more…

Arguments

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

Tree to find the boundary condition property for.

Return Value integer

Position of the boundary condition property in the list of all properties.


Subroutines

public subroutine init_tem_bc_prop(tree, mypart, comm, bc)

Initialize boundary conditions of a given tree.

Arguments

TypeIntentOptionalAttributesName
type(treelmesh_type), intent(in) :: tree
integer, intent(in) :: mypart
integer, intent(in) :: comm

Communicator to use

type(tem_BC_prop_type), intent(out) :: bc

public subroutine load_tem_BC_prop(me, offset, nElems, basename, myPart, comm)

load bc property header from lua file, boundaryID from bnd.lsb

Arguments

TypeIntentOptionalAttributesName
type(tem_BC_prop_type), intent(inout) :: me

Boundary condition construct to load the data into

integer(kind=long_k), intent(in) :: offset

Offset of the local set of elements in the global list

integer, intent(in) :: nElems

Local number of elements with this property

character(len=*), intent(in) :: basename

Name of the file, the data is stored in, will be appended with ".ascii" for the header information and ".lsb" or ".msb" for the binary data.

integer, intent(in) :: myPart

Partition to load

integer, intent(in) :: comm

Communicator to use

public subroutine tem_empty_BC_prop(me)

Initialize an empty boundary condition

Arguments

TypeIntentOptionalAttributesName
type(tem_BC_prop_type), intent(out) :: me

Boundary condition construct to load the data into

public subroutine tem_bc_prop_sublist(tree, bc, header, property, sublist, sub_bc)

Create the boundary property for a restricted set of elements given by sublist (position of elements in tree, usually from a subtree).

Read more…

Arguments

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

The original tree from which the subset is to be selected.

type(tem_BC_prop_type), intent(in) :: bc

The boundary condition property in the original mesh (tree).

type(tem_prophead_type), intent(in), target:: header

Header description of the boundary condition property in the sublist.

This information has to be gathered for the elements of the sublist beforehand.

type(tem_property_type), intent(in), target:: property

Property description of the boundary condition property in the sublist.

This information has to be gathered for the elements of the sublist beforehand.

integer, intent(in) :: sublist(:)

List of elements to get the boundary information for.

type(tem_BC_prop_type), intent(out) :: sub_bc

New boundary property description for just the elements provided in sublist.

This may be used to correctly describe the boundary conditions in a subtree for example.

public subroutine dump_tem_BC_propHeader(me, headerfile)

dump bc properties header information to lua file

Arguments

TypeIntentOptionalAttributesName
type(tem_BC_prop_type), intent(in) :: me

Boundary condition construct to load the data into

character(len=*), intent(in) :: headerfile

name of the bc header lua file

public subroutine dump_tem_BC_prop(me, offset, nElems, basename, myPart, comm)

dump bc properties

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_BC_prop_type), intent(in) :: me

Boundary condition construct to load the data into

integer(kind=long_k), intent(in) :: offset

Offset of the local set of elements in the global list

integer, intent(in) :: nElems

Local number of elements with this property

character(len=*), intent(in) :: basename

Name of the file, the data is stored in, will be appended with ".lua" for the header information and ".lsb" or ".msb" for the binary data.

integer, intent(in) :: myPart

Partition to dump

integer, intent(in) :: comm

Communicator to use

public subroutine dump_tem_BC_qVal(me, offset, nElems, basename, myPart, comm)

dump bc properties

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_BC_prop_type), intent(in) :: me

Boundary condition construct to load the data into

integer(kind=long_k), intent(in) :: offset

Offset of the local set of elements in the global list

integer, intent(in) :: nElems

Local number of elements with this property

character(len=*), intent(in) :: basename

Name of the file, the data is stored in, will be appended with ".lua" for the header information and ".lsb" or ".msb" for the binary data.

integer, intent(in) :: myPart

Partition to dump

integer, intent(in) :: comm

Communicator to use

public subroutine load_tem_BC_qVal(me, offset, nElems, basename, myPart, comm)

load bc qVal header from lua file, qVal from qVal.lsb

Arguments

TypeIntentOptionalAttributesName
type(tem_BC_prop_type), intent(inout) :: me

Boundary condition construct to load the data into

integer(kind=long_k), intent(in) :: offset

Offset of the local set of elements in the global list

integer, intent(in) :: nElems

Local number of elements that have qVal

character(len=*), intent(in) :: basename

Name of the file, the data is stored in, will be appended with ".lua" for the header information and ".lsb" or ".msb" for the binary data.

integer, intent(in) :: myPart

Partition to load

integer, intent(in) :: comm

Communicator to use

public subroutine tem_debug_bc_prop(me)

Arguments

TypeIntentOptionalAttributesName
type(tem_BC_prop_type), intent(in) :: me

Boundary condition construct to load the data into

public subroutine tem_unload_BC_prop(me)

Arguments

TypeIntentOptionalAttributesName
type(tem_BC_prop_type), intent(inout) :: me

Boundary property type

private subroutine load_BC_intern_1D(tree, me, xbounds, nSides)

Load internal BC property for 1D Line.

Arguments

TypeIntentOptionalAttributesName
type(treelmesh_type), intent(in) :: tree
type(tem_BC_prop_type), intent(inout) :: me

Boundary condition construct to load the data into

logical, intent(in) :: xbounds

Set boundaries east and west in X direction?

integer, intent(in), optional :: nSides

Required sides to set, defaults to 26.

private subroutine load_BC_intern_0D(tree, me, nSides)

Load internal BC property for a single fully periodic element.

Arguments

TypeIntentOptionalAttributesName
type(treelmesh_type), intent(in) :: tree
type(tem_BC_prop_type), intent(inout) :: me

Boundary condition construct to load the data into

integer, intent(in), optional :: nSides

Required sides to set, defaults to 26.

private subroutine load_BC_intern_2D(tree, me, nSides)

Load internal BC property for 2D Slice.

Arguments

TypeIntentOptionalAttributesName
type(treelmesh_type), intent(in) :: tree
type(tem_BC_prop_type), intent(inout) :: me

Boundary condition construct to load the data into

integer, intent(in), optional :: nSides

Required sides to set, defaults to 26.

private subroutine dump_tem_BC_qValHeader(me, headerfile)

dump bc properties header information to lua file

Arguments

TypeIntentOptionalAttributesName
type(tem_BC_prop_type), intent(in) :: me

Boundary condition construct to load the data into

character(len=*), intent(in) :: headerfile

name of the bc header lua file