Skip to content

Commit dba20a0

Browse files
committed
getting to work
1 parent 4f1ffaf commit dba20a0

File tree

1 file changed

+23
-14
lines changed

1 file changed

+23
-14
lines changed

src/solver_advection.cpp

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,8 @@ void advect(Grid &grid,
343343

344344
arma_mat t_to_e;
345345

346+
precision_t duflux, lrflux, cosdrop;
347+
346348
for (iAlt = nGCs; iAlt < nAlts - nGCs; iAlt++) {
347349

348350
if (report.test_verbose(3))
@@ -424,13 +426,13 @@ void advect(Grid &grid,
424426
eq2FluxD = rhoP.D % xVelP.D % yVelP.D;
425427
eq2FluxU = rhoP.U % xVelP.U % yVelP.U;
426428
eq2Flux = rho % xVel % yVel;
427-
429+
428430
eq3FluxR = rhoP.R % xVelP.R % yVelP.R;
429431
eq3FluxL = rhoP.L % xVelP.L % yVelP.L;
430432
eq3FluxD = rhoP.D % (yVelP.D % yVelP.D + (gammaP.D - 1) % tempP.D);
431433
eq3FluxU = rhoP.U % (yVelP.U % yVelP.U + (gammaP.U - 1) % tempP.U);
432434
eq3Flux = rho % (yVel % yVel + (gamma2d - 1) % temp);
433-
435+
434436
eq4FluxL = rhoP.L % xVelP.L % (0.5 * velL2 + gammaP.L % tempP.L);
435437
eq4FluxR = rhoP.R % xVelP.R % (0.5 * velR2 + gammaP.R % tempP.R);
436438
eq4FluxD = rhoP.D % yVelP.D % (0.5 * velD2 + gammaP.D % tempP.D);
@@ -499,29 +501,36 @@ void advect(Grid &grid,
499501

500502
geometry =
501503
sin(grid.geoLat_scgc.slice(iAlt)) /
502-
cos(grid.geoLat_scgc.slice(iAlt)) /
503-
grid.radius_scgc(1, 1, iAlt);
504+
cos(grid.geoLat_scgc.slice(iAlt));
505+
506+
geometry.clamp(-100.0, 100.0);
507+
geometry = geometry / grid.radius_scgc(1, 1, iAlt);
504508

505509
for (int64_t j = nGCs; j < nY - nGCs; j++) {
506510
for (int64_t i = nGCs; i < nX - nGCs; i++) {
507-
//if (i == nGCs) cout << "j = " << j << " " << xWidth(i,j) << "\n";
508511
rho(i, j) = rho(i, j) - dt *
509512
(yWidth(i + 1, j) * eq1FluxLR(i + 1, j) -
510513
yWidth(i, j) * eq1FluxLR(i, j) +
511514
xWidth(i, j + 1) * eq1FluxDU(i, j + 1) -
512515
xWidth(i, j) * eq1FluxDU(i, j)) / area(i, j);
516+
lrflux = 1.0 * (
517+
(yWidth(i + 1, j) * eq2FluxLR(i + 1, j) -
518+
yWidth(i, j) * eq2FluxLR(i, j)) / area(i,j) -
519+
geometry(i, j) * eq2Flux(i, j));
513520
xMomentum(i, j) = xMomentum(i, j) - dt *
514-
((yWidth(i + 1, j) * eq2FluxLR(i + 1, j) -
515-
yWidth(i, j) * eq2FluxLR(i, j) +
516-
xWidth(i, j + 1) * eq2FluxDU(i, j + 1) -
517-
xWidth(i, j) * eq2FluxDU(i, j)) / area(i, j) -
518-
geometry(i, j) * eq2Flux(i, j));
521+
((xWidth(i, j + 1) * eq2FluxDU(i, j + 1) -
522+
xWidth(i, j) * eq2FluxDU(i, j)) / area(i, j) +
523+
lrflux);
524+
duflux = 1.0 * (
525+
(xWidth(i, j + 1) * eq3FluxDU(i, j + 1) -
526+
xWidth(i, j) * eq3FluxDU(i, j)) / area(i, j) +
527+
geometry(i, j) * eq3Flux(i, j));
528+
519529
yMomentum(i, j) = yMomentum(i, j) - dt *
520530
((yWidth(i + 1, j) * eq3FluxLR(i + 1, j) -
521-
yWidth(i, j) * eq3FluxLR(i, j) +
522-
xWidth(i, j + 1) * eq3FluxDU(i, j + 1) -
523-
xWidth(i, j) * eq3FluxDU(i, j)) / area(i, j) +
524-
geometry(i, j) * eq3Flux(i, j));
531+
yWidth(i, j) * eq3FluxLR(i, j))/ area(i, j) +
532+
duflux);
533+
525534
totalE(i, j) = totalE(i, j) - dt *
526535
(yWidth(i + 1, j) * eq4FluxLR(i + 1, j) -
527536
yWidth(i, j) * eq4FluxLR(i, j) +

0 commit comments

Comments
 (0)