tem_color_prop_module Module

This module provides the description of colors for elements.

Colors might be used to describe different areas in the domain, for example varying material parameters.


Uses

  • module~~tem_color_prop_module~~UsesGraph module~tem_color_prop_module tem_color_prop_module mpi mpi module~tem_color_prop_module->mpi module~tem_aux_module tem_aux_module module~tem_color_prop_module->module~tem_aux_module module~tem_property_module tem_property_module module~tem_color_prop_module->module~tem_property_module module~treelmesh_module treelmesh_module module~tem_color_prop_module->module~treelmesh_module module~env_module env_module module~tem_color_prop_module->module~env_module module~aot_table_module aot_table_module module~tem_color_prop_module->module~aot_table_module module~aotus_module aotus_module module~tem_color_prop_module->module~aotus_module module~tem_prophead_module tem_prophead_module module~tem_color_prop_module->module~tem_prophead_module module~aot_out_module aot_out_module module~tem_color_prop_module->module~aot_out_module module~tem_aux_module->mpi module~tem_aux_module->module~env_module module~tem_aux_module->module~aot_table_module module~tem_aux_module->module~aotus_module module~tem_revision_module tem_revision_module module~tem_aux_module->module~tem_revision_module module~tem_comm_env_module tem_comm_env_module module~tem_aux_module->module~tem_comm_env_module module~tem_logging_module tem_logging_module module~tem_aux_module->module~tem_logging_module module~flu_binding flu_binding module~tem_aux_module->module~flu_binding 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_property_module->mpi module~tem_property_module->module~env_module module~tem_property_module->module~tem_prophead_module module~treelmesh_module->mpi module~treelmesh_module->module~tem_aux_module module~treelmesh_module->module~tem_property_module module~treelmesh_module->module~env_module module~treelmesh_module->module~aot_table_module module~treelmesh_module->module~aotus_module module~tem_global_module tem_global_module module~treelmesh_module->module~tem_global_module module~tem_sparta_module tem_Sparta_module module~treelmesh_module->module~tem_sparta_module module~tem_topology_module tem_topology_module module~treelmesh_module->module~tem_topology_module module~treelmesh_module->module~tem_logging_module module~treelmesh_module->module~tem_tools_module module~env_module->mpi module~env_module->module~aotus_module module~env_module->module~flu_binding iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env module~tem_prophead_module->mpi module~tem_prophead_module->module~env_module module~tem_prophead_module->module~aot_table_module module~tem_prophead_module->module~aotus_module module~tem_prophead_module->module~aot_out_module module~tem_global_module->mpi module~tem_global_module->module~tem_aux_module module~tem_global_module->module~env_module module~tem_global_module->module~aot_table_module module~tem_global_module->module~aotus_module module~tem_global_module->module~tem_prophead_module module~tem_global_module->module~aot_out_module module~tem_global_module->module~tem_logging_module module~tem_sparta_module->mpi module~tem_sparta_module->module~tem_aux_module module~tem_sparta_module->module~env_module 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_topology_module->module~env_module module~tem_comm_env_module->mpi module~tem_logging_module->module~env_module module~tem_logging_module->module~aot_table_module module~tem_logging_module->module~aotus_module module~tem_tools_module->module~env_module module~tem_lua_requires_module->module~env_module module~tem_lua_requires_module->module~aot_table_module module~tem_lua_requires_module->module~aotus_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_float_module->module~env_module

Used by

  • module~~tem_color_prop_module~~UsedByGraph module~tem_color_prop_module tem_color_prop_module module~tem_subres_prop_module tem_subres_prop_module module~tem_subres_prop_module->module~tem_color_prop_module

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, public, parameter:: colors_per_char =7

Number of colors to store per character.

We use the ASCII character set to encode the colors. Thus, 7 colors can be stored in each of them. This leaves us with unused space of 1/8 in the files. However, it is pretty likely that we will use less then 7 colors in common settings and in this case using a single byte for all colors is the smallest packing we can use conveniently.


Derived Types

type, public :: tem_color_prop_type

Components

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

Pointer to treelmesh_type%global%property

integer, private :: nColors

Number of colors present in the mesh.

integer, private :: nChars

Number of characters required to store a bit for each color.

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

Array of labels identifying each of the colors. This array has a length of nColors

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

Value to use, where the color is present.

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

Value to use, where the color is not present.

character, private, allocatable:: colored_bit(:,:)

Actual color identification.

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

Pointer to treelmesh_type%property


Subroutines

public subroutine tem_color_prop_load(me, tree, myPart, comm)

Load the color property from disk.

Arguments

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

Color definitions to load.

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

Tree to build the polynomial subresolution information for

integer, intent(in) :: myPart

Partition to load

integer, intent(in) :: comm

Communicator to use

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

Write the color property to disk.

Arguments

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

Color definitions to load.

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. An ".ascii" extension will be used for ASCII data.

integer, intent(in) :: myPart

Partition to load

integer, intent(in) :: comm

Communicator to use