Skip to content

Commit 148c51d

Browse files
committed
Fix type usage in new temporary locations.
Also remove one extraenous scratch location.
1 parent b4dc33b commit 148c51d

File tree

2 files changed

+12
-16
lines changed

2 files changed

+12
-16
lines changed

src/cache/temporary_quantities.jl

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,7 @@ function temporary_quantities(Y, atmos)
100100
ClimaCore.Geometry.WVector{FT},
101101
},
102102
),
103-
ᶠtracer_advection = similar(Y.f, BidiagonalMatrixRow{Adjoint{FT, C3{FT}}}),
104-
ᶠtracer_advection_upwind = similar(Y.f, TridiagonalMatrixRow{FT}),
103+
ᶜtracer_advection = similar(Y.c, BidiagonalMatrixRow{Adjoint{FT, C3{FT}}}),
105104
ᶠdiagonal_matrix_ct3xct3 = similar(
106105
Y.f,
107106
DiagonalMatrixRow{
@@ -122,10 +121,7 @@ function temporary_quantities(Y, atmos)
122121
Y.c,
123122
BidiagonalMatrixRow{Adjoint{FT, C3{FT}}},
124123
),
125-
ᶜadvection_matrix_2 = similar(
126-
Y.c,
127-
BidiagonalMatrixRow{Adjoint{FT, C3{FT}}},
128-
),
124+
ᶜtridiagonal_matrix_c3 = similar(Y.c, TridiagonalMatrixRow{FT}),
129125
ᶜdiffusion_h_matrix = similar(Y.c, TridiagonalMatrixRow{FT}),
130126
ᶜdiffusion_u_matrix = similar(Y.c, TridiagonalMatrixRow{FT}),
131127
ᶜtridiagonal_matrix_scalar = similar(Y.c, TridiagonalMatrixRow{FT}),

src/prognostic_equations/implicit/manual_sparse_jacobian.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -418,10 +418,10 @@ function update_jacobian!(alg::ManualSparseJacobian, cache, Y, p, dtγ, t)
418418
ᶜdiffusion_u_matrix,
419419
ᶜtridiagonal_matrix_scalar,
420420
ᶠsed_tracer_advection,
421-
ᶠtracer_advection,
422-
ᶠtracer_advection_upwind,
421+
ᶜtracer_advection,
423422
ᶠbidiagonal_matrix_ct3,
424423
ᶠbidiagonal_matrix_ct3_2,
424+
ᶜtridiagonal_matrix_c3,
425425
ᶠtridiagonal_matrix_c3,
426426
) = p.scratch
427427
rs = p.atmos.rayleigh_sponge
@@ -1091,8 +1091,8 @@ function update_jacobian!(alg::ManualSparseJacobian, cache, Y, p, dtγ, t)
10911091

10921092
# sedimentation
10931093
# (pull out common subexpression for performance)
1094-
ᶠsed_tracer_advection =
1095-
@. DiagonalMatrixRow(ᶠinterp(ᶜρʲs.:(1) * ᶜJ) / ᶠJ)
1094+
@. ᶠsed_tracer_advection =
1095+
DiagonalMatrixRow(ᶠinterp(ᶜρʲs.:(1) * ᶜJ) / ᶠJ)
10961096
ᶠright_bias_matrix()
10971097
DiagonalMatrixRow(-Geometry.WVector(ᶜwʲ))
10981098
@. ᶜtridiagonal_matrix_scalar =
@@ -1365,10 +1365,10 @@ function update_jacobian!(alg::ManualSparseJacobian, cache, Y, p, dtγ, t)
13651365

13661366
# pull common subexpressions that don't depend on which
13671367
# tracer out of the tracer loop for performance
1368-
ᶠtracer_advection = @. -(ᶜadvdivᵥ_matrix())
1368+
@. ᶜtracer_advection = -(ᶜadvdivᵥ_matrix())
13691369
DiagonalMatrixRow(ᶠinterp(ᶜρʲs.:(1) * ᶜJ) / ᶠJ)
1370-
ᶠtracer_advection_upwind =
1371-
@. ᶠtracer_advection ᶠset_tracer_upwind_matrix_bcs(
1370+
@. ᶜtridiagonal_matrix_c3 =
1371+
ᶜtracer_advection ᶠset_tracer_upwind_matrix_bcs(
13721372
ᶠtracer_upwind_matrix(ᶠu³ʲs.:(1)),
13731373
)
13741374
MatrixFields.unrolled_foreach(
@@ -1381,21 +1381,21 @@ function update_jacobian!(alg::ManualSparseJacobian, cache, Y, p, dtγ, t)
13811381
matrix[ρχ_name, χʲ_name]
13821382
@. ∂ᶜρχ_err_∂ᶜχʲ =
13831383
dtγ *
1384-
ᶠtracer_advection_upwind
1384+
ᶜtridiagonal_matrix_c3
13851385
DiagonalMatrixRow(draft_area(Y.c.sgsʲs.:(1).ρa, ᶜρʲs.:(1)))
13861386

13871387
∂ᶜρχ_err_∂ᶜρa =
13881388
matrix[ρχ_name, @name(c.sgsʲs.:(1).ρa)]
13891389
@. ∂ᶜρχ_err_∂ᶜρa =
13901390
dtγ *
1391-
ᶠtracer_advection_upwind
1391+
ᶜtridiagonal_matrix_c3
13921392
DiagonalMatrixRow(ᶜχʲ / ᶜρʲs.:(1))
13931393

13941394
∂ᶜρχ_err_∂ᶠu₃ʲ =
13951395
matrix[ρχ_name, @name(f.sgsʲs.:(1).u₃)]
13961396
@. ∂ᶜρχ_err_∂ᶠu₃ʲ =
13971397
dtγ * (
1398-
ᶠtracer_advection
1398+
ᶜtracer_advection
13991399
DiagonalMatrixRow(
14001400
ᶠset_tracer_upwind_bcs(
14011401
ᶠtracer_upwind(CT3(sign(ᶠu³ʲ_data)),

0 commit comments

Comments
 (0)