Skip to content

Commit 757303d

Browse files
committed
BUG: rearrange gradient call
1 parent 07a46bb commit 757303d

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/solver_gradients.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,13 @@ std::vector<arma_cube> calc_gradient_vector(arma_cube value_scgc, Grid grid) {
1111

1212
std::vector<arma_cube> gradient_vcgc;
1313

14-
gradient_vcgc.push_back(calc_gradient_lon(value_scgc, grid));
15-
gradient_vcgc.push_back(calc_gradient_lat(value_scgc, grid));
16-
gradient_vcgc.push_back(calc_gradient_alt(value_scgc, grid));
14+
if (input.get_is_cubesphere()) {
15+
gradient_vcgc = calc_gradient_cubesphere(value_scgc, grid);
16+
} else {
17+
gradient_vcgc.push_back(calc_gradient_lon(value_scgc, grid));
18+
gradient_vcgc.push_back(calc_gradient_lat(value_scgc, grid));
19+
gradient_vcgc.push_back(calc_gradient_alt(value_scgc, grid));
20+
}
1721
return gradient_vcgc;
1822
}
1923

@@ -211,7 +215,6 @@ std::vector<arma_cube> calc_gradient_cubesphere(arma_cube value, Grid grid) {
211215
}
212216
}
213217
}
214-
215218
// We then use A transformation matrices to convert grad_xy to grad_latlon
216219
// Ref -> Physical, we use A matrix
217220
grad_lon.slice(iAlt) = grad_x_curr % grid.A11_inv_scgc.slice(
@@ -224,6 +227,7 @@ std::vector<arma_cube> calc_gradient_cubesphere(arma_cube value, Grid grid) {
224227
std::vector<arma_cube> gradient;
225228
gradient.push_back(grad_lon);
226229
gradient.push_back(grad_lat);
230+
gradient.push_back(calc_gradient_alt(value, grid));
227231

228232
return gradient;
229233
}

0 commit comments

Comments
 (0)