Skip to content

Commit c19a0c3

Browse files
committed
microphysics ahhhhhhh
1 parent 10e8938 commit c19a0c3

17 files changed

+199
-169
lines changed

src/cache/diagnostic_edmf_precomputed_quantities.jl

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -754,18 +754,20 @@ NVTX.@annotate function set_diagnostic_edmf_precomputed_quantities_do_integral!(
754754
# 0-moment microphysics: sink of q_tot from precipitation removal
755755
if microphysics_model isa Microphysics0Moment
756756
@. S_q_totʲ_prev_level = q_tot_0M_precipitation_sources(
757-
thermo_params,
758757
microphys_0m_params,
759758
dt,
760759
q_totʲ_prev_level,
761-
tsʲ_prev_level,
760+
TD.total_specific_humidity(thermo_params, tsʲ_prev_level),
761+
TD.liquid_specific_humidity(thermo_params, tsʲ_prev_level),
762+
TD.ice_specific_humidity(thermo_params, tsʲ_prev_level),
762763
)
763764
# 1-moment microphysics: cloud water (liquid and ice) and
764765
# precipitation (rain and snow) sources. q_tot is constant, because
765766
# all the species are considered a part of the working fluid.
766767
elseif moisture_model isa NonEquilMoistModel &&
767768
microphysics_model isa Microphysics1Moment
768769
# Rain formation from the updrafts
770+
Tʲ_prev_level = @. lazy(TD.air_temperature(thermo_params, tsʲ_prev_level))
769771
compute_precipitation_sources!(
770772
Sᵖ_prev_level,
771773
Sᵖ_snow_prev_level,
@@ -779,7 +781,7 @@ NVTX.@annotate function set_diagnostic_edmf_precomputed_quantities_do_integral!(
779781
q_iceʲ_prev_level,
780782
q_raiʲ_prev_level,
781783
q_snoʲ_prev_level,
782-
tsʲ_prev_level,
784+
Tʲ_prev_level,
783785
dt,
784786
microphys_1m_params,
785787
thermo_params,
@@ -795,7 +797,7 @@ NVTX.@annotate function set_diagnostic_edmf_precomputed_quantities_do_integral!(
795797
q_iceʲ_prev_level,
796798
q_raiʲ_prev_level,
797799
q_snoʲ_prev_level,
798-
tsʲ_prev_level,
800+
Tʲ_prev_level,
799801
dt,
800802
microphys_1m_params,
801803
thermo_params,
@@ -810,7 +812,7 @@ NVTX.@annotate function set_diagnostic_edmf_precomputed_quantities_do_integral!(
810812
q_raiʲ_prev_level,
811813
q_snoʲ_prev_level,
812814
ρʲ_prev_level,
813-
TD.air_temperature(thermo_params, tsʲ_prev_level),
815+
Tʲ_prev_level,
814816
dt,
815817
)
816818
@. S_q_iceʲ_prev_level += cloud_sources(
@@ -822,7 +824,7 @@ NVTX.@annotate function set_diagnostic_edmf_precomputed_quantities_do_integral!(
822824
q_raiʲ_prev_level,
823825
q_snoʲ_prev_level,
824826
ρʲ_prev_level,
825-
TD.air_temperature(thermo_params, tsʲ_prev_level),
827+
Tʲ_prev_level,
826828
dt,
827829
)
828830

@@ -986,14 +988,19 @@ NVTX.@annotate function set_diagnostic_edmf_precomputed_quantities_do_integral!(
986988
mseʲ_prev_level,
987989
)
988990
if microphysics_model isa Microphysics0Moment
991+
ᶜTʲ = @. lazy(TD.air_temperature(thermo_params, tsʲ_prev_level))
992+
ᶜq_liq_raiʲ = @. lazy(TD.liquid_specific_humidity(thermo_params, tsʲ_prev_level))
993+
ᶜq_ice_snoʲ = @. lazy(TD.ice_specific_humidity(thermo_params, tsʲ_prev_level))
989994
@. ρaʲu³ʲ_datamse += microphysics_sources(
990995
local_geometry_halflevel.J,
991996
local_geometry_prev_level.J,
992997
ρaʲ_prev_level,
993998
S_q_totʲ_prev_level *
994999
e_tot_0M_precipitation_sources_helper(
9951000
thermo_params,
996-
tsʲ_prev_level,
1001+
ᶜTʲ,
1002+
ᶜq_liq_raiʲ,
1003+
ᶜq_ice_snoʲ,
9971004
Φ_prev_level,
9981005
),
9991006
)
@@ -1403,19 +1410,19 @@ NVTX.@annotate function set_diagnostic_edmf_precomputed_quantities_env_precipita
14031410
t,
14041411
microphysics_model::Microphysics0Moment,
14051412
)
1406-
thermo_params = CAP.thermodynamics_params(p.params)
14071413
microphys_0m_params = CAP.microphysics_0m_params(p.params)
14081414
(; dt) = p
1409-
(; ᶜts, ᶜSqₜᵖ⁰) = p.precomputed
1415+
(; ᶜq_tot_safe, ᶜq_liq_rai, ᶜq_ice_sno, ᶜSqₜᵖ⁰) = p.precomputed
14101416

14111417
# Environment precipitation sources (to be applied to grid mean)
14121418
ᶜq_tot = @. lazy(specific(Y.c.ρq_tot, Y.c.ρ))
14131419
@. ᶜSqₜᵖ⁰ = q_tot_0M_precipitation_sources(
1414-
thermo_params,
14151420
microphys_0m_params,
14161421
dt,
14171422
ᶜq_tot,
1418-
ᶜts,
1423+
ᶜq_tot_safe,
1424+
ᶜq_liq_rai,
1425+
ᶜq_ice_sno,
14191426
)
14201427
return nothing
14211428
end
@@ -1430,7 +1437,7 @@ NVTX.@annotate function set_diagnostic_edmf_precomputed_quantities_env_precipita
14301437
cloud_params = CAP.microphysics_cloud_params(p.params)
14311438
(; dt) = p
14321439

1433-
(; ᶜts, ᶜT, ᶜSqₗᵖ⁰, ᶜSqᵢᵖ⁰, ᶜSqᵣᵖ⁰, ᶜSqₛᵖ⁰) = p.precomputed
1440+
(; ᶜT, ᶜSqₗᵖ⁰, ᶜSqᵢᵖ⁰, ᶜSqᵣᵖ⁰, ᶜSqₛᵖ⁰) = p.precomputed
14341441
ᶜSᵖ = p.scratch.ᶜtemp_scalar
14351442
ᶜSᵖ_snow = p.scratch.ᶜtemp_scalar_2
14361443

@@ -1448,7 +1455,7 @@ NVTX.@annotate function set_diagnostic_edmf_precomputed_quantities_env_precipita
14481455
specific.(Y.c.ρq_ice, Y.c.ρ),
14491456
specific.(Y.c.ρq_rai, Y.c.ρ),
14501457
specific.(Y.c.ρq_sno, Y.c.ρ),
1451-
ᶜts,
1458+
ᶜT,
14521459
dt,
14531460
microphys_1m_params,
14541461
thermo_params,
@@ -1464,7 +1471,7 @@ NVTX.@annotate function set_diagnostic_edmf_precomputed_quantities_env_precipita
14641471
specific.(Y.c.ρq_ice, Y.c.ρ),
14651472
specific.(Y.c.ρq_rai, Y.c.ρ),
14661473
specific.(Y.c.ρq_sno, Y.c.ρ),
1467-
ᶜts,
1474+
ᶜT,
14681475
dt,
14691476
microphys_1m_params,
14701477
thermo_params,

src/cache/precipitation_precomputed_quantities.jl

Lines changed: 43 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ function set_precipitation_velocities!(
5656
microphysics_model::Microphysics1Moment,
5757
_,
5858
)
59-
(; ᶜwₗ, ᶜwᵢ, ᶜwᵣ, ᶜwₛ, ᶜwₜqₜ, ᶜwₕhₜ, ᶜts, ᶜu) = p.precomputed
59+
(; ᶜwₗ, ᶜwᵢ, ᶜwᵣ, ᶜwₛ, ᶜwₜqₜ, ᶜwₕhₜ, ᶜT, ᶜu) = p.precomputed
6060
(; ᶜΦ) = p.core
6161
cmc = CAP.microphysics_cloud_params(p.params)
6262
cmp = CAP.microphysics_1m_params(p.params)
@@ -99,10 +99,10 @@ function set_precipitation_velocities!(
9999
) / Y.c.ρ
100100
@. ᶜwₕhₜ =
101101
Geometry.WVector(
102-
ᶜwₗ * Y.c.ρq_liq * (Iₗ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwₗ, ᶜu))) +
103-
ᶜwᵢ * Y.c.ρq_ice * (Iᵢ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwᵢ, ᶜu))) +
104-
ᶜwᵣ * Y.c.ρq_rai * (Iₗ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwᵣ, ᶜu))) +
105-
ᶜwₛ * Y.c.ρq_sno * (Iᵢ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwₛ, ᶜu))),
102+
ᶜwₗ * Y.c.ρq_liq * (Iₗ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwₗ, ᶜu))) +
103+
ᶜwᵢ * Y.c.ρq_ice * (Iᵢ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwᵢ, ᶜu))) +
104+
ᶜwᵣ * Y.c.ρq_rai * (Iₗ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwᵣ, ᶜu))) +
105+
ᶜwₛ * Y.c.ρq_sno * (Iᵢ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwₛ, ᶜu))),
106106
) / Y.c.ρ
107107
return nothing
108108
end
@@ -284,7 +284,7 @@ function set_precipitation_velocities!(
284284
microphysics_model::Microphysics2Moment,
285285
_,
286286
)
287-
(; ᶜwₗ, ᶜwᵢ, ᶜwᵣ, ᶜwₛ, ᶜwₙₗ, ᶜwₙᵣ, ᶜwₜqₜ, ᶜwₕhₜ, ᶜts, ᶜu) = p.precomputed
287+
(; ᶜwₗ, ᶜwᵢ, ᶜwᵣ, ᶜwₛ, ᶜwₙₗ, ᶜwₙᵣ, ᶜwₜqₜ, ᶜwₕhₜ, ᶜT, ᶜu) = p.precomputed
288288
(; ᶜΦ) = p.core
289289

290290
cmc = CAP.microphysics_cloud_params(p.params)
@@ -359,10 +359,10 @@ function set_precipitation_velocities!(
359359
) / Y.c.ρ
360360
@. ᶜwₕhₜ =
361361
Geometry.WVector(
362-
ᶜwₗ * Y.c.ρq_liq * (Iₗ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwₗ, ᶜu))) +
363-
ᶜwᵢ * Y.c.ρq_ice * (Iᵢ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwᵢ, ᶜu))) +
364-
ᶜwᵣ * Y.c.ρq_rai * (Iₗ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwᵣ, ᶜu))) +
365-
ᶜwₛ * Y.c.ρq_sno * (Iᵢ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwₛ, ᶜu))),
362+
ᶜwₗ * Y.c.ρq_liq * (Iₗ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwₗ, ᶜu))) +
363+
ᶜwᵢ * Y.c.ρq_ice * (Iᵢ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwᵢ, ᶜu))) +
364+
ᶜwᵣ * Y.c.ρq_rai * (Iₗ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwᵣ, ᶜu))) +
365+
ᶜwₛ * Y.c.ρq_sno * (Iᵢ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwₛ, ᶜu))),
366366
) / Y.c.ρ
367367
return nothing
368368
end
@@ -555,7 +555,7 @@ function set_precipitation_velocities!(
555555
Y, p, ::NonEquilMoistModel, ::Microphysics2MomentP3,
556556
)
557557
## liquid quantities (2M warm rain)
558-
(; ᶜwₗ, ᶜwᵣ, ᶜwnₗ, ᶜwnᵣ, ᶜwₜqₜ, ᶜwₕhₜ, ᶜts, ᶜu) = p.precomputed
558+
(; ᶜwₗ, ᶜwᵣ, ᶜwnₗ, ᶜwnᵣ, ᶜwₜqₜ, ᶜwₕhₜ, ᶜT, ᶜu) = p.precomputed
559559
(; ᶜΦ) = p.core
560560

561561
(; ρ, ρq_liq, ρn_liq, ρq_rai, ρn_rai) = Y.c
@@ -606,9 +606,9 @@ function set_precipitation_velocities!(
606606
@. ᶜwₜqₜ = Geometry.WVector(ᶜwₗ * ρq_liq + ᶜwᵢ * ρq_ice + ᶜwᵣ * ρq_rai) / ρ
607607
@. ᶜwₕhₜ =
608608
Geometry.WVector(
609-
ᶜwₗ * ρq_liq * (Iₗ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwₗ, ᶜu))) +
610-
ᶜwᵢ * ρq_ice * (Iᵢ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwᵢ, ᶜu))) +
611-
ᶜwᵣ * ρq_rai * (Iₗ(thp, ᶜts) + ᶜΦ + $(Kin(ᶜwᵣ, ᶜu))),
609+
ᶜwₗ * ρq_liq * (Iₗ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwₗ, ᶜu))) +
610+
ᶜwᵢ * ρq_ice * (Iᵢ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwᵢ, ᶜu))) +
611+
ᶜwᵣ * ρq_rai * (Iₗ(thp, ᶜT) + ᶜΦ + $(Kin(ᶜwᵣ, ᶜu))),
612612
) / ρ
613613
return nothing
614614
end
@@ -624,22 +624,23 @@ sources from the sub-domains.
624624
set_precipitation_cache!(Y, p, _, _) = nothing
625625
function set_precipitation_cache!(Y, p, ::Microphysics0Moment, _)
626626
(; params, dt) = p
627-
(; ᶜts) = p.precomputed
627+
(; ᶜT, ᶜq_tot_safe, ᶜq_liq_rai, ᶜq_ice_sno) = p.precomputed
628628
(; ᶜS_ρq_tot, ᶜS_ρe_tot) = p.precomputed
629629
(; ᶜΦ) = p.core
630630
cm_params = CAP.microphysics_0m_params(params)
631631
thermo_params = CAP.thermodynamics_params(params)
632632
@. ᶜS_ρq_tot =
633633
Y.c.ρ * q_tot_0M_precipitation_sources(
634-
thermo_params,
635634
cm_params,
636635
dt,
637636
Y.c.ρq_tot / Y.c.ρ,
638-
ᶜts,
637+
ᶜq_tot_safe,
638+
ᶜq_liq_rai,
639+
ᶜq_ice_sno,
639640
)
640641
@. ᶜS_ρe_tot =
641642
ᶜS_ρq_tot *
642-
e_tot_0M_precipitation_sources_helper(thermo_params, ᶜts, ᶜΦ)
643+
e_tot_0M_precipitation_sources_helper(thermo_params, ᶜT, ᶜq_liq_rai, ᶜq_ice_sno, ᶜΦ)
643644
return nothing
644645
end
645646
function set_precipitation_cache!(
@@ -653,7 +654,7 @@ function set_precipitation_cache!(
653654
(; ᶜΦ) = p.core
654655
(; ᶜSqₜᵖ⁰, ᶜSqₜᵖʲs, ᶜρaʲs) = p.precomputed
655656
(; ᶜS_ρq_tot, ᶜS_ρe_tot) = p.precomputed
656-
(; ᶜts, ᶜtsʲs) = p.precomputed
657+
(; ᶜT, ᶜq_tot_safe, ᶜq_liq_rai, ᶜq_ice_sno, ᶜtsʲs) = p.precomputed
657658
thermo_params = CAP.thermodynamics_params(p.params)
658659

659660
n = n_mass_flux_subdomains(p.atmos.turbconv_model)
@@ -663,15 +664,20 @@ function set_precipitation_cache!(
663664
@. ᶜS_ρe_tot =
664665
ᶜSqₜᵖ⁰ *
665666
ρ *
666-
e_tot_0M_precipitation_sources_helper(thermo_params, ᶜts, ᶜΦ)
667+
e_tot_0M_precipitation_sources_helper(thermo_params, ᶜT, ᶜq_liq_rai, ᶜq_ice_sno, ᶜΦ)
667668
for j in 1:n
669+
ᶜTʲ = @. lazy(TD.air_temperature(thermo_params, ᶜtsʲs.:($$j)))
670+
ᶜq_liq_raiʲ = @. lazy(TD.liquid_specific_humidity(thermo_params, ᶜtsʲs.:($$j)))
671+
ᶜq_ice_snoʲ = @. lazy(TD.ice_specific_humidity(thermo_params, ᶜtsʲs.:($$j)))
668672
@. ᶜS_ρq_tot += ᶜSqₜᵖʲs.:($$j) * ᶜρaʲs.:($$j)
669673
@. ᶜS_ρe_tot +=
670674
ᶜSqₜᵖʲs.:($$j) *
671675
ᶜρaʲs.:($$j) *
672676
e_tot_0M_precipitation_sources_helper(
673677
thermo_params,
674-
ᶜtsʲs.:($$j),
678+
ᶜTʲ,
679+
ᶜq_liq_raiʲ,
680+
ᶜq_ice_snoʲ,
675681
ᶜΦ,
676682
)
677683
end
@@ -693,26 +699,34 @@ function set_precipitation_cache!(
693699
n = n_mass_flux_subdomains(p.atmos.turbconv_model)
694700

695701
@. ᶜS_ρq_tot = ᶜSqₜᵖ⁰ * ᶜρa⁰
702+
ᶜT⁰ = @. lazy(TD.air_temperature(thermo_params, ᶜts⁰))
703+
ᶜq_liq_rai⁰ = @. lazy(TD.liquid_specific_humidity(thermo_params, ᶜts⁰))
704+
ᶜq_ice_sno⁰ = @. lazy(TD.ice_specific_humidity(thermo_params, ᶜts⁰))
696705
@. ᶜS_ρe_tot =
697706
ᶜSqₜᵖ⁰ *
698707
ᶜρa⁰ *
699-
e_tot_0M_precipitation_sources_helper(thermo_params, ᶜts⁰, ᶜΦ)
708+
e_tot_0M_precipitation_sources_helper(thermo_params, ᶜT⁰, ᶜq_liq_rai⁰, ᶜq_ice_sno⁰, ᶜΦ)
700709
for j in 1:n
710+
ᶜTʲ = @. lazy(TD.air_temperature(thermo_params, ᶜtsʲs.:($$j)))
711+
ᶜq_liq_raiʲ = @. lazy(TD.liquid_specific_humidity(thermo_params, ᶜtsʲs.:($$j)))
712+
ᶜq_ice_snoʲ = @. lazy(TD.ice_specific_humidity(thermo_params, ᶜtsʲs.:($$j)))
701713
@. ᶜS_ρq_tot += ᶜSqₜᵖʲs.:($$j) * Y.c.sgsʲs.:($$j).ρa
702714
@. ᶜS_ρe_tot +=
703715
ᶜSqₜᵖʲs.:($$j) *
704716
Y.c.sgsʲs.:($$j).ρa *
705717
e_tot_0M_precipitation_sources_helper(
706718
thermo_params,
707-
ᶜtsʲs.:($$j),
719+
ᶜTʲ,
720+
ᶜq_liq_raiʲ,
721+
ᶜq_ice_snoʲ,
708722
ᶜΦ,
709723
)
710724
end
711725
return nothing
712726
end
713727
function set_precipitation_cache!(Y, p, ::Microphysics1Moment, _)
714728
(; dt) = p
715-
(; ᶜts, ᶜwᵣ, ᶜwₛ, ᶜu) = p.precomputed
729+
(; ᶜT, ᶜwᵣ, ᶜwₛ, ᶜu) = p.precomputed
716730
(; ᶜSqₗᵖ, ᶜSqᵢᵖ, ᶜSqᵣᵖ, ᶜSqₛᵖ) = p.precomputed
717731

718732
ᶜq_tot = @. lazy(specific(Y.c.ρq_tot, Y.c.ρ))
@@ -744,7 +758,7 @@ function set_precipitation_cache!(Y, p, ::Microphysics1Moment, _)
744758
ᶜq_ice,
745759
ᶜq_rai,
746760
ᶜq_sno,
747-
ᶜts,
761+
ᶜT,
748762
dt,
749763
cmp,
750764
thp,
@@ -761,7 +775,7 @@ function set_precipitation_cache!(Y, p, ::Microphysics1Moment, _)
761775
ᶜq_ice,
762776
ᶜq_rai,
763777
ᶜq_sno,
764-
ᶜts,
778+
ᶜT,
765779
dt,
766780
cmp,
767781
thp,
@@ -790,8 +804,7 @@ function set_precipitation_cache!(
790804
end
791805
function set_precipitation_cache!(Y, p, ::Microphysics2Moment, _)
792806
(; dt) = p
793-
(; ᶜts) = p.precomputed
794-
(; ᶜSqₗᵖ, ᶜSqᵢᵖ, ᶜSqᵣᵖ, ᶜSqₛᵖ) = p.precomputed
807+
(; ᶜT, ᶜSqₗᵖ, ᶜSqᵢᵖ, ᶜSqᵣᵖ, ᶜSqₛᵖ) = p.precomputed
795808
(; ᶜSnₗᵖ, ᶜSnᵣᵖ) = p.precomputed
796809

797810
ᶜSᵖ = p.scratch.ᶜtemp_scalar
@@ -818,7 +831,7 @@ function set_precipitation_cache!(Y, p, ::Microphysics2Moment, _)
818831
lazy.(specific.(Y.c.ρq_ice, Y.c.ρ)),
819832
lazy.(specific.(Y.c.ρq_rai, Y.c.ρ)),
820833
lazy.(specific.(Y.c.ρq_sno, Y.c.ρ)),
821-
ᶜts,
834+
ᶜT,
822835
dt,
823836
cmp,
824837
thp,
@@ -894,7 +907,7 @@ function set_precipitation_surface_fluxes!(
894907
p,
895908
microphysics_model::Microphysics0Moment,
896909
)
897-
(; ᶜts, ᶜT) = p.precomputed # assume ᶜts has been updated
910+
(; ᶜT) = p.precomputed
898911
(; ᶜS_ρq_tot, ᶜS_ρe_tot) = p.precomputed
899912
(; surface_rain_flux, surface_snow_flux) = p.precomputed
900913
(; col_integrated_precip_energy_tendency) = p.conservation_check

src/cache/precomputed_quantities.jl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ The following grid-scale quantities are treated implicitly and are precomputed:
1616
- `ᶜu`: covariant velocity on cell centers
1717
- `ᶠu`: contravariant velocity on cell faces
1818
- `ᶜK`: kinetic energy on cell centers
19-
- `ᶜts`: thermodynamic state on cell centers
19+
- `ᶜT`: air temperature on cell centers
20+
- `ᶜq_tot_safe`: total water specific humidity on cell centers
21+
- `ᶜq_liq_rai`: liquid water specific humidity on cell centers
22+
- `ᶜq_ice_sno`: ice specific humidity on cell centers
2023
- `ᶜp`: air pressure on cell centers
2124
If the `turbconv_model` is `PrognosticEDMFX`, there also two SGS versions of
2225
every quantity except for `ᶜp` (which is shared across all subdomains):
@@ -675,8 +678,8 @@ NVTX.@annotate function set_implicit_precomputed_quantities!(Y, p, t)
675678
# quantities of the form ᶜρaχ⁰ / ᶜρ⁰ and ᶜρaχʲ / ᶜρʲ to ᶜK, rather than
676679
# quantities of the form ᶜρaχ⁰ / ᶜρ and ᶜρaχʲ / ᶜρ. However, we cannot
677680
# compute ᶜρ⁰ and ᶜρʲ without first computing ᶜts⁰ and ᶜtsʲ, both of
678-
# which depend on the value of ᶜp, which in turn depends on ᶜts. Since
679-
# ᶜts depends on ᶜK, this
681+
# which depend on the value of ᶜp, which in turn depends on ᶜT. Since
682+
# ᶜT depends on ᶜK, this
680683
# means that the amount by which ᶜK needs to be incremented is a
681684
# function of ᶜK itself. So, unless we run a nonlinear solver here, this
682685
# circular dependency will prevent us from computing the exact value of

0 commit comments

Comments
 (0)