sdr_subresolution_module Module

This module describes settings that are required for the resolution of boundaries on a subelement level.

These boundaries are represented by polynomials, and a nodal sampling in elements intersected by the boundary needs to be done accordingly.

For subresolution to work, there needs to be a subresolution table defined, indicating at least the polynomial degree to use for polynomial representations. Only boundaries with a color (not the 'none' color), can be subresolved. For each color a separate file will be generated to contain the polynomial information on all the subresolved elements of this color. Note, that polynomial settings are global, all boundaries will be resolved with the same polynomial definition.

Nodal values are obtained, by refining elements further down and probing integration points for their in or out status. This detaches the actual polynomial somewhat from the mesh resolution, and the number of levels to resolve beyond the target element can be stated independently of the polynomial degree. However, the subresolution levels should be set sufficiently high to provide a good resolution for the integration points.



Derived Types

type, public ::  sdr_subresolution_type

Settings for the resolution below mesh elements.

Components

Type Visibility Attributes Name Initial
integer, public :: polydegree

Degree for the polynomials to use in the subelement resolution.

character(len=1), public :: polyspace

Identification of the polynomial space to use.

type(ply_prj_init_type), public :: projection

Definition of conversions between modal and nodal values.

type(ply_prj_header_type), public :: project_header

Header definition of the projection header.

Read more…
integer, public :: nLevels

Number of levels to use for the resolution of boundaries within elements.

Read more…
type(dyn_labelarray_type), public :: default_colors

Dynamic array to store the color names, for which the default boundary resolution should reach subelements.

Read more…
type(sdr_subres_fills_type), public :: color_values

Definition of the values to use for color filling and color voids.

integer, public, allocatable :: value_pos(:)

Position of value definitions for each color in the mesh.


Subroutines

public subroutine sdr_subresolution_load(subres, conf, parent)

Loading the settings for the subresolution in the mesh.

Arguments

Type IntentOptional Attributes Name
type(sdr_subresolution_type), intent(out) :: subres

The subresolution data structure to fill.

type(flu_State) :: conf

Handle to the Lua configuration script.

integer, intent(in), optional :: parent

Handle to a possible parent table.

public subroutine subres_load_color_defaults(label, conf, parent)

Internal subroutine to load the list of colors, which by default should apply subelement resolution to its boundaries.

Read more…

Arguments

Type IntentOptional Attributes Name
type(dyn_labelarray_type), intent(out) :: label

Labels of the colors, for which a default setting is given.

type(flu_State) :: conf

Handle for the Lua script.

integer, intent(in) :: parent

Parent table, within which to open the color_default table.

public subroutine sdr_subresolution_encolor(me, colors)

Find the value definitions for all unique colors.

Arguments

Type IntentOptional Attributes Name
type(sdr_subresolution_type), intent(inout) :: me
type(dyn_labelarray_type), intent(in) :: colors