This is a small utility to approximate a discontinuity at a given location in the interval [-1,1].
The jump is located at a given point jota, and the target function is 0 for x <= jota and 1 for x > jota. The interval is subdivided by level bisections towards jota. Intervals for which the lower bound is smaller than jota are assumed to be 0, all others are 1. This interval values are used to determine the values at Chebyshev nodes and a FPT is done to find the Legendre modes.
Required settings are therefore: - jota (location of the jump) - level (number of bisections towards jota) - target polynomial degree - oversampling factor
These have to be provided as command line parameters in this order.
Resulting output is: - Interval subdivision - Approximated jump location - Chebyshev nodes - Legendre modes - L2-Error sqnorm = 2.0_rk / (2.0_rkiCoarse - 1.0_rk) jacobidetfinetocoarse = 0.5 const = anz_anzShift * jacobidetfinetocoarse / sqnorm sqnorm = 2.0_rk / (2.0_rkiCoarse - 1.0_rk) jacobidetfinetocoarse = 0.5 const = anz_anzShift * jacobidetfinetocoarse / sqnorm
| Type | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|
| character(len=32) | :: | argstring | ||||
| real(kind=rk) | :: | jota | ||||
| integer | :: | level | ||||
| integer | :: | polydegree | ||||
| integer | :: | ibis | ||||
| integer | :: | ival | ||||
| integer | :: | ipoint | ||||
| integer | :: | imode | ||||
| integer | :: | iCoarse | ||||
| integer | :: | iFine | ||||
| integer | :: | intmode | ||||
| integer | :: | bis_lb | ||||
| integer | :: | current | ||||
| integer | :: | last | ||||
| integer | :: | lastside | ||||
| integer | :: | bpos | ||||
| real(kind=rk) | :: | interval_jump | ||||
| real(kind=rk) | :: | ofact | ||||
| real(kind=rk) | :: | bis_half | ||||
| real(kind=rk) | :: | x_point | ||||
| real(kind=rk) | :: | cur_lb | ||||
| real(kind=rk) | :: | ivldistance | ||||
| real(kind=rk) | :: | l2err | ||||
| real(kind=rk) | :: | optierr | ||||
| real(kind=rk) | :: | voldiff | ||||
| real(kind=rk), | allocatable | :: | bisect(:) | |||
| real(kind=rk), | allocatable | :: | nodal_data(:,:) | |||
| real(kind=rk), | allocatable | :: | modal_data(:,:) | |||
| real(kind=rk), | allocatable | :: | legmodes(:) | |||
| real(kind=rk), | allocatable | :: | exact(:) | |||
| real(kind=rk), | allocatable | :: | const1_left(:) | |||
| real(kind=rk), | allocatable | :: | const1_right(:) | |||
| real(kind=rk), | allocatable | :: | integral(:) | |||
| real(kind=rk), | allocatable | :: | intatjota(:,:) | |||
| integer, | allocatable | :: | ivcolor(:) | |||
| type(ply_prj_init_type) | :: | project | ||||
| type(ply_poly_project_type) | :: | polypro | ||||
| type(ply_modg_refine_type) | :: | refine | ||||
| type(dyn_realarray_type) | :: | ivlen | ||||
| character(len=10) | :: | method |