Testing the 2D splitting.
In two dimensions we only check the downsized polynomial splitting (child_degree <= parent_degree), upsized splitting is checked for 1D operations already. For child_degree == parent_degree the resulting polynomials are probed at a set of random points to ensure the polynomials coincide with the parent polynomial. For those, where modes are cut off, we check the integral mean to be maintained.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nModes | Number of modes in the (1D) polynomials to use in the check. |
||
logical, | intent(out) | :: | success | Indication whether the tests were completed successfully. |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | private | :: | parentModes | ||||
integer, | private | :: | childmodes | ||||
integer, | private | :: | iPoint | ||||
integer, | private | :: | iElem | ||||
integer, | private | :: | iMode | ||||
real(kind=rk), | private | :: | xi(nModes,2) | ||||
real(kind=rk), | private | :: | x_southwest(nModes,2) | ||||
real(kind=rk), | private | :: | x_southeast(nModes,2) | ||||
real(kind=rk), | private | :: | x_northwest(nModes,2) | ||||
real(kind=rk), | private | :: | x_northeast(nModes,2) | ||||
real(kind=rk), | private | :: | legchild(nModes,nModes,2) | ||||
real(kind=rk), | private | :: | legsouthwest(nModes,nModes,2) | ||||
real(kind=rk), | private | :: | legsoutheast(nModes,nModes,2) | ||||
real(kind=rk), | private | :: | legnorthwest(nModes,nModes,2) | ||||
real(kind=rk), | private | :: | legnortheast(nModes,nModes,2) | ||||
real(kind=rk), | private | :: | rootvaly(nModes,4) | ||||
real(kind=rk), | private | :: | rootval(nModes,4) | ||||
real(kind=rk), | private | :: | childval | ||||
real(kind=rk), | private | :: | childvaly(nModes) | ||||
real(kind=rk), | private, | allocatable | :: | rootelem(:,:) | |||
real(kind=rk), | private, | allocatable | :: | childelem(:,:) | |||
real(kind=rk), | private | :: | tolerance |