version 0.6.0
Loading...
Searching...
No Matches

The type for generic 1D point reconstruction that has to be derived. More...

Functions/Subroutines

subroutine rec_point_lagrange_1d_construct (self, index_start, index_end)
 Initialize a 1D point reconstructant.
 
subroutine rec_point_1d_place (self, x, coordinates, control_volumes)
 Place (position) the interpolant to the corresponding 'index' given the coordinate 'X' of the point and the discrete nodes. The resulting index corresponds to the node that is just before (less than or equal) the point.
 
double precision function rec_point_1d_interpolate (self, x, coordinates, values, derivative, control_volumes)
 Directly compute the reconstruction at the given position.
 
subroutine rec_point_lagrange_1d_compute_stencil (self, coordinates, derivative, control_volumes)
 
pure integer function rec_compute_point_index_sorted_array_dichotomic (x, coordinates, control_volumes)
 Returns the index of the node that is just before (<=) 'X'.
 

Detailed Description

This type is based on the same principle as the t_int_point_lagrange_1D and uses an underlying t_rec_scheme for computing the 1D reconstruction. However, we have to deal with the particular of the reconstruction control volumes. Hence, the functions place and interpolate are redefined. The generic compute_stencil has also been redefined.

Function/Subroutine Documentation

◆ rec_compute_point_index_sorted_array_dichotomic()

pure integer function type_rec_point_lagrange_1d::rec_compute_point_index_sorted_array_dichotomic ( double precision, intent(in) x,
double precision, dimension(:), intent(in) coordinates,
double precision, dimension(:), intent(in) control_volumes )
Parameters
[in]Xthe point position
[in]coordinatesthe control_volumes centroids array
[in]control_volumesthe control_volumes (width) array

◆ rec_point_1d_interpolate()

double precision function type_rec_point_lagrange_1d::rec_point_1d_interpolate ( class(t_rec_point_lagrange_1d), intent(inout) self,
double precision, intent(in) x,
double precision, dimension(:), intent(in) coordinates,
double precision, dimension(:), intent(in) values,
integer, intent(in), optional derivative,
double precision, dimension(:), intent(in), optional control_volumes )
Parameters
[in,out]selfthe element
[in]Xthe position where to reconstruct
[in]coordinatesthe coordinates of the cell centers (in the interval '1:nx')
[in]valuesthe mean values of the field (in the interval '1:nx')
[in]derivative*(optional)* the derivative number: 0 (default) for value interpolation, 1 for first derivative, etc.
[in]control_volumesthe control volumes
Returns
the reconstructed value at X

◆ rec_point_1d_place()

subroutine type_rec_point_lagrange_1d::rec_point_1d_place ( class(t_rec_point_lagrange_1d), intent(inout) self,
double precision, intent(in) x,
double precision, dimension(:), intent(in) coordinates,
double precision, dimension(:), intent(in), optional control_volumes )
Warning
if 'X' is less than 'coordinates(1)', then 'index' is set to '1'.
if 'X' is greater than 'coordinates(nx)', then 'index' is set to 'nx'.
Note
the index search algorithm is dichotomic
Precondition
coordinates is ordered and is at least of size 2