ply_split_element Abstract Interface

abstract interface
public subroutine ply_split_element(parent_degree, child_degree, parent_data, child_data, ignore_highmodes)

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: parent_degree

Polynomial degree in the parent element.

integer, intent(in) :: child_degree

Polynomial degree in the child elements.

real(kind=rk), intent(in) :: parent_data(:,:)

Polynomial data in the parent element. The first index describes the degrees of freedom. The second index refers to the elements to split.

real(kind=rk), intent(out) :: child_data(:,:)

Polynomial data in the child elements. The first index describes the degrees of freedom. The second index refers to the elements, there needs to be four times as many elements than in the parent_data.

Elements follow the ordering of the Z space filling curve.

logical, intent(in), optional :: ignore_highmodes

Whether to ignore high modes from the parent element.

This can be used as a simple lowpass filter by ignoring all higher modes from the parent element, that exceed the target polynomial degree. Thus, the polynomials are filtered before projection, instead of cutting them only of after refinement. Defaults to false (no filtering).

Description

Split elements of degree parent_degree into elements with polynomials of degree child_degree.