35 for (
int grid_index = 1; grid_index < mesh_size - 1; grid_index++) {
36 Real delta_r_forward = grid[grid_index + 1] - grid[grid_index];
37 Real delta_r_backward = grid[grid_index - 1] - grid[grid_index];
38 Real delta_f_forward = function_values[grid_index + 1] - function_values[grid_index];
39 Real delta_f_backward = function_values[grid_index - 1] - function_values[grid_index];
40 gradient[grid_index] =
41 (delta_r_forward * delta_r_forward * delta_f_backward -
42 delta_r_backward * delta_r_backward * delta_f_forward) /
43 (delta_r_forward * delta_r_backward * (grid[grid_index + 1] - grid[grid_index - 1]));
45 gradient[mesh_size - 1] = 0.0;
49 gradient[1] + (gradient[2] - gradient[1]) * (grid[0] - grid[1]) / (grid[2] - grid[1]);
51 gradient[0] = gradient[1];