Borges alpha coefficients object.
The provided WENO alpha coefficients implements the alpha coefficients defined in An improved weighted essentially non-oscillatory scheme for hyperbolic conservation laws, Rafael Borges, Monique Carmona, Bruno Costa and Wai Sun Don, JCP, 2008, vol. 227, pp. 3191-3211, doi: 10.1016/j.jcp.2007.11.038.
Borges WENO alpha coefficients object constructor.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=I_P), | public | :: | S | = | 0 | Stencils dimension. |
Borges WENO alpha coefficients object.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=R_P), | public, | allocatable | :: | alpha_coef(:,:) | Alpha coefficients [1:2,0:S-1] |
||
real(kind=R_P), | public, | allocatable | :: | alpha_tot(:) | Sum of alpha coefficients |
procedure, public, pass(self) :: create | Create alpha coefficients. |
procedure, public, pass(self) :: destroy | Destroy alpha coefficients. |
procedure, public, pass(self) :: compute | Compute coefficients. |
procedure, public, nopass :: description | Return string-description of coefficients. |
Return alpha coefficients string-descripition.
String-description.
Compute the tau coefficient used in the WENO-Z alpha coefficients.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=I_P), | intent(in) | :: | S | Number of stencils used. |
||
real(kind=R_P), | intent(in) | :: | IS(0:S-1) | Smoothness indicators. |
Tau coefficient.
Compute the exponent used in the alpha function.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=I_P), | intent(in) | :: | S | Number of stencils used. |
Exponent used in the alpha function.
Compute the distinguisher between odd and even number of stencils.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=I_P), | intent(in) | :: | S | Number of stencils used. |
Distinguishing between odd and even number of stencils.
Create alpha coefficients constructor.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=I_P), | intent(in) | :: | S | Stencils dimension. |
||
class(alpha_coefficients_constructor), | intent(out), | allocatable | :: | constructor | Alpha coefficients constructor. |
Compute alpha coefficients.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(alpha_coefficients_z), | intent(inout) | :: | self | Alpha coefficients. |
||
integer(kind=I_P), | intent(in) | :: | S | Number of stencils used. |
||
real(kind=R_P), | intent(in) | :: | weight_opt(1:2,0:S-1) | Optimal weight of the stencil. |
||
real(kind=R_P), | intent(in) | :: | IS(1:2,0:S-1) | Smoothness indicators of the stencils. |
||
real(kind=R_P), | intent(in) | :: | eps | Parameter for avoiding divided by zero. |
||
integer(kind=I_P), | intent(in) | :: | f1 | Faces to be computed. |
||
integer(kind=I_P), | intent(in) | :: | f2 | Faces to be computed. |