ply_split_element_1D Subroutine

public subroutine ply_split_element_1D(parent_degree, child_degree, parent_data, child_data, ignore_highmodes)

Split one-dimensional elements of degree parent_degree into two elements with polynomials of degree child_degree.


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).


proc~~ply_split_element_1d~~CallsGraph proc~ply_split_element_1d ply_split_element_1D proc~ply_split_element_singled ply_split_element_singleD proc~ply_split_element_1d->proc~ply_split_element_singled



logical, private :: ignore
integer, private :: pardofs
integer, private :: childdofs