Skip to content

Commit

Permalink
add some more public definitions
Browse files Browse the repository at this point in the history
  • Loading branch information
sjdaines committed Jan 14, 2025
1 parent d1529a7 commit f825e34
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 23 deletions.
4 changes: 2 additions & 2 deletions src/PALEOboxes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ end

@public AbstractCellRange, create_default_cellrange, CellRange, CellRangeColumns

@public Reservoirs, Fluxes, FluxPerturb, Forcings, GridForcings, GridReactions
@public Reservoirs, Fluxes, FluxPerturb, Forcings, GridForcings, GridReactions, VariableStats

@public AbstractReaction, ReactionBase, get_reaction, set_model_geometry, register_methods!, register_dynamic_methods!,
add_method_setup!, add_method_initialize!, add_method_do!, create_reaction
Expand Down Expand Up @@ -91,7 +91,7 @@ end
@public AbstractReactionMethod, ReactionMethod
@public add_method_setup_initialvalue_vars_default!, add_method_initialize_zero_vars_default!, add_method_do_totals_default!
@public RateStoich, create_ratestoich_method, parse_number_name
@public LinInterp, interp, value_ad, zero_ad
@public LinInterp, interp, value_ad, zero_ad, smoothstepcubic

@public AbstractField, Field, get_field, add_field!

Expand Down
62 changes: 43 additions & 19 deletions src/reactioncatalog/Constants.jl
Original file line number Diff line number Diff line change
@@ -1,29 +1,53 @@
module Constants

using ...PALEOboxes: @public

@public k_CtoK, k_molVolIdealGas, k_Rgas, k_Avogadro
@public age_present_yr, k_solar_presentday, k_secpyr, k_secpday, k_daypyr, k_g_earth, k_SurfAreaEarth
@public k_atmmixrN2, k_atmmixrO2
@public STANDARD_ATOMIC_WEIGHTS

# Physical constants
const k_CtoK = 273.15 # convert temperature in Celsius to Kelvin
const k_molVolIdealGas= 22.4136 # l/mol molar volume of ideal gas at STP (0C, 1 atm)
const k_Rgas = 8.3144621 # J/K/mol gas constant
const k_Avogadro = 6.0221409e23 # molecules mol-1
"convert temperature in Celsius to Kelvin"
const k_CtoK = 273.15
"l/mol molar volume of ideal gas at STP (0C, 1 atm)"
const k_molVolIdealGas= 22.4136
"J/K/mol gas constant"
const k_Rgas = 8.3144621
"molecules mol-1"
const k_Avogadro = 6.0221409e23

# Earth system present-day constants
const age_present_yr = 4.5e9 # Age of Earth at present-day
const k_solar_presentday = 1368.0 # present-day solar insolation W/m^2
const k_secpyr = 3.15569e7 # present-day seconds per year
const k_secpday = 24.0*3600.0 # sec per day
const k_daypyr = k_secpyr/k_secpday # days in a year
const k_g_earth = 9.80665 # gravitational field strength for Earth m/s^2
const k_SurfAreaEarth = 5.101e14 # Earth surface area in m

const pCO2atm0 = 280e-6 # ppm pre-industrial pCO2
const k16_PANtoO = 3.762 #
const k18_oceanmass = 1.397e21 # kg Ocean total mass
const k_moles1atm = 1.77e20 # Moles in 1 atm
const k_preindCO2atm = 280e-6 # pre-industrial pCO2 (atm)
"Age of Earth at present-day"
const age_present_yr = 4.5e9
"present-day solar insolation W/m^2"
const k_solar_presentday = 1368.0
"present-day seconds per year"
const k_secpyr = 3.15569e7
"sec per day"
const k_secpday = 24.0*3600.0
"days in a year"
const k_daypyr = k_secpyr/k_secpday
"gravitational field strength for Earth m/s^2"
const k_g_earth = 9.80665
"Earth surface area in m^2"
const k_SurfAreaEarth = 5.101e14

"ppm pre-industrial pCO2"
const pCO2atm0 = 280e-6
# const k16_PANtoO = 3.762 #
"COPSE kg Ocean total mass"
const k18_oceanmass = 1.397e21
"COPSE Moles in 1 atm"
const k_moles1atm = 1.77e20
"pre-industrial pCO2 (atm)"
const k_preindCO2atm = 280e-6

# Atmospheric composition from Sarmiento & Gruber (2006) Table 3.1.1 (which cites Weast & Astle 1982)
const k_atmmixrN2 = 0.78084 # N2 atmospheric mixing ratio (moles / moles dry air)
const k_atmmixrO2 = 0.20946 # O2 atmospheric mixing ratio (moles / moles dry air)
"present day Earth N2 atmospheric mixing ratio (moles / moles dry air)"
const k_atmmixrN2 = 0.78084
"present day O2 atmospheric mixing ratio (moles / moles dry air)"
const k_atmmixrO2 = 0.20946

"""
STANDARD_ATOMIC_WEIGHTS
Expand Down
4 changes: 2 additions & 2 deletions src/reactioncatalog/Fluxes.jl
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import ...PALEOboxes as PB
using ...PALEOboxes: @public

import SparseArrays
import LinearAlgebra # for I
using LinearAlgebra: I

using ..DocStrings

Expand Down Expand Up @@ -432,7 +432,7 @@ function prepare_do_transfer(m::PB.ReactionMethod, (input_vardata, output_vardat
elseif rj.pars.transfer_matrix[] == "Identity"
input_length == output_length ||
PB.infoerror(io, "$(PB.fullname(m)) Identity transfer_matrix but Variable lengths don't match (input, output) $(input_length) != $(output_length)")
rj.transfer_matrix_tr = SparseArrays.sparse(LinearAlgebra.I, input_length, output_length).*rj.pars.transfer_multiplier[]
rj.transfer_matrix_tr = SparseArrays.sparse(I, input_length, output_length).*rj.pars.transfer_multiplier[]
println(io, " using Identity transfer matrix * $(rj.pars.transfer_multiplier[])")
elseif rj.pars.transfer_matrix[] == "Distribute"
rj.transfer_matrix_tr = SparseArrays.sparse(ones(input_length, output_length)./output_length.*rj.pars.transfer_multiplier[])
Expand Down
2 changes: 2 additions & 0 deletions src/reactioncatalog/VariableStats.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
module VariableStats

import ...PALEOboxes as PB
using ...PALEOboxes: @public
using ..DocStrings

@public ReactionSum, ReactionVectorSum, ReactionWeightedMean, ReactionAreaVolumeValInRange

"""
ReactionSum, ReactionVectorSum
Expand Down

0 comments on commit f825e34

Please sign in to comment.