ply_sampling_adaptive_type Derived Type

type, public :: ply_sampling_adaptive_type

Configuration of the adaptive sampling.

The main setting is max_nlevels, which states the maximum number of levels that elements will be refined.


Inherits

type~~ply_sampling_adaptive_type~~InheritsGraph type~ply_sampling_adaptive_type ply_sampling_adaptive_type type~ply_filter_element_type ply_filter_element_type type~ply_sampling_adaptive_type->type~ply_filter_element_type filter_element

Inherited by

type~~ply_sampling_adaptive_type~~InheritedByGraph type~ply_sampling_adaptive_type ply_sampling_adaptive_type type~ply_sampling_type ply_sampling_type type~ply_sampling_type->type~ply_sampling_adaptive_type adaptive type~ply_sampled_tracking_type ply_sampled_tracking_type type~ply_sampled_tracking_type->type~ply_sampling_type sampling type~sdr_hvs_config_type sdr_hvs_config_type type~sdr_hvs_config_type->type~ply_sampled_tracking_type ply_sample_track

Contents


Components

TypeVisibilityAttributesNameInitial
integer, private :: max_nlevels =0

Maximal number of levels by which any mesh element should be refined.

A setting of 0 results in no sampling, and the original mesh elements will be used with the integral mean value (first degree of freedom). Higher levels provide a limit for the refinement of the mesh. Note, that even for large settings here, the overall mesh depth is restricted by the global limit, due to the available space in the integers representing the treeIDs.

real(kind=rk), private :: eps_osci

Maximum allowed oscillation of the solution. For adaptive subsampling only.

integer, private :: reduction_mode

Method to use for the reduction.

This may either be:

  • redux_factor: multiply the maximal polynomial degree by the given factor in each refinement level. This allows to maintain the same total number of degrees of freedom by halfing the modes during each refinement. This is the default reduction mode
  • redux_decrement: Cut off the given dof_decrement last modes in each refinement. This can be used to filter off the most oscillatory modes while affecting the solution minimally otherwise.
logical, private :: ignore_highmodes =.false.

Indication whether to filter modes during refinement by ignoring all modes in the parent, that exceed the target polynomial degree of the child elements.

This provides a simple lowpass filtering method if activated. Defaults to false.

integer, private :: dof_decrement =1

Number of modes to cut off in each refinement.

If the decrement mode for reduction is used, this setting will be used to cut off as many modes from the refined elements.

real(kind=rk), private :: dofReducFactor

Factor to Reduce dofs for every sampling level. Can be used to avoid too drastic increase of memory consumption. For adaptive subsampling only.

logical, private :: adaptiveDofReduction

Indicator for the limitation of memory consumption.

integer, private :: AbsUpperBoundLevel

Absolute upper bound level to refine to.

type(ply_filter_element_type), private :: filter_element

Filtering the poylnomial modes during adaptive refinement.

This filtering provides the possibility to change the applied filtering based on the polynomials and thereby attempting to capture discontinuities more sharply.