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.
Settings for the resolution below mesh elements.
| 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. |
|||
| integer, | public | :: | nLevels |
Number of levels to use for the resolution of boundaries within elements. |
|||
| type(dyn_labelarray_type), | public | :: | default_colors |
Dynamic array to store the color names, for which the default boundary resolution should reach subelements. |
|||
| 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. |
Loading the settings for the subresolution in the mesh.
| Type | Intent | Optional | 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. |
Internal subroutine to load the list of colors, which by default should apply subelement resolution to its boundaries.
| Type | Intent | Optional | 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. |
Find the value definitions for all unique colors.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(sdr_subresolution_type), | intent(inout) | :: | me | |||
| type(dyn_labelarray_type), | intent(in) | :: | colors |