diff --git a/.buildkite/longruns/pipeline.yml b/.buildkite/longruns/pipeline.yml index 261595ba68..ea90db2301 100644 --- a/.buildkite/longruns/pipeline.yml +++ b/.buildkite/longruns/pipeline.yml @@ -19,11 +19,13 @@ steps: key: "init_cpu_env" command: - echo "--- Instantiate project" + - "julia --project -e 'using Pkg; Pkg.add(;url=\"https://github.com/CliMA/ClimaTimeSteppers.jl\", rev=\"dy/reformulation\")'" - "julia --project -e 'using Pkg; Pkg.instantiate(;verbose=true)'" - "julia --project -e 'using Pkg; Pkg.precompile()'" - "julia --project -e 'using Pkg; Pkg.status()'" - echo "--- Instantiate" + - "julia --project=examples -e 'using Pkg; Pkg.add(;url=\"https://github.com/CliMA/ClimaTimeSteppers.jl\", rev=\"dy/reformulation\")'" - "julia --project=examples -e 'using Pkg; Pkg.instantiate(;verbose=true)'" - "julia --project=examples -e 'using Pkg; Pkg.precompile()'" - "julia --project=examples -e 'using CUDA; CUDA.precompile_runtime()'" @@ -64,6 +66,17 @@ steps: slurm_time: 24:00:00 env: JOB_NAME: "longrun_ssp_bw_rhoe_equil_highres" + + - label: ":computer: SSP baroclinic wave (ρe_tot) no lim equilmoist high resolution centered diff" + command: + - "srun julia --project=examples examples/hybrid/driver.jl --config_file $CONFIG_PATH/$$JOB_NAME.yml" + artifact_paths: "$$JOB_NAME/output_active/*" + agents: + slurm_ntasks: 32 + slurm_nodes: 2 + slurm_time: 24:00:00 + env: + JOB_NAME: "longrun_ssp_bw_rhoe_equil_highres_no_lim" - label: ":computer: aquaplanet equilmoist clearsky radiation + prognostic edmf diffusion only + 0M microphysics" command: diff --git a/.buildkite/longruns_gpu/pipeline.yml b/.buildkite/longruns_gpu/pipeline.yml index 62839cec67..64481ef4e7 100644 --- a/.buildkite/longruns_gpu/pipeline.yml +++ b/.buildkite/longruns_gpu/pipeline.yml @@ -22,6 +22,7 @@ steps: key: "init_gpu_env" command: - echo "--- Instantiate examples" + - "julia --project=examples -e 'using Pkg; Pkg.add(;url=\"https://github.com/CliMA/ClimaTimeSteppers.jl\", rev=\"dy/reformulation\")'" - julia --project=examples -e 'using Pkg; Pkg.instantiate(;verbose=true)' - julia --project=examples -e 'using Pkg; Pkg.precompile()' - julia --project=examples -e 'using CUDA; CUDA.precompile_runtime()' diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 3294f35610..7b8f56dc54 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -24,17 +24,20 @@ steps: - "echo $$JULIA_DEPOT_PATH" - echo "--- Instantiate project" + - "julia --project -e 'using Pkg; Pkg.add(;url=\"https://github.com/CliMA/ClimaTimeSteppers.jl\", rev=\"dy/reformulation\")'" - "julia --project -e 'using Pkg; Pkg.instantiate(;verbose=true)'" - "julia --project -e 'using Pkg; Pkg.precompile()'" - "julia --project -e 'using Pkg; Pkg.status()'" - echo "--- Instantiate examples" + - "julia --project=examples -e 'using Pkg; Pkg.add(;url=\"https://github.com/CliMA/ClimaTimeSteppers.jl\", rev=\"dy/reformulation\")'" - "julia --project=examples -e 'using Pkg; Pkg.instantiate(;verbose=true)'" - "julia --project=examples -e 'using Pkg; Pkg.precompile()'" - "julia --project=examples -e 'using CUDA; CUDA.precompile_runtime()'" - "julia --project=examples -e 'using Pkg; Pkg.status()'" - echo "--- Instantiate perf" + - "julia --project=perf -e 'using Pkg; Pkg.add(;url=\"https://github.com/CliMA/ClimaTimeSteppers.jl\", rev=\"dy/reformulation\")'" - "julia --project=perf -e 'using Pkg; Pkg.instantiate(;verbose=true)'" - "julia --project=perf -e 'using Pkg; Pkg.precompile()'" - "julia --project=perf -e 'using Pkg; Pkg.status()'" diff --git a/config/longrun_configs/longrun_ssp_bw_rhoe_equil_highres_no_lim.yml b/config/longrun_configs/longrun_ssp_bw_rhoe_equil_highres_no_lim.yml new file mode 100644 index 0000000000..4cf9c514b3 --- /dev/null +++ b/config/longrun_configs/longrun_ssp_bw_rhoe_equil_highres_no_lim.yml @@ -0,0 +1,15 @@ +dt_save_state_to_disk: "10days" +initial_condition: "MoistBaroclinicWave" +z_elem: 45 +dt: "150secs" +t_end: "100days" +dz_bottom: 30.0 +h_elem: 16 +ode_algo: "SSP333" +precip_model: "0M" +job_id: "longrun_ssp_bw_rhoe_equil_highres_no_lim" +moist: "equil" +apply_limiter: false +diagnostics: + - short_name: [pfull, wa, va, rv, hus] + period: 1days diff --git a/post_processing/ci_plots.jl b/post_processing/ci_plots.jl index fe7313dcbc..42ee6a8e32 100644 --- a/post_processing/ci_plots.jl +++ b/post_processing/ci_plots.jl @@ -700,6 +700,7 @@ LongMoistBaroWavePlots = Union{ Val{:longrun_bw_rhoe_equil_highres}, Val{:longrun_zalesak_tracer_energy_bw_rhoe_equil_highres}, Val{:longrun_ssp_bw_rhoe_equil_highres}, + Val{:longrun_ssp_bw_rhoe_equil_highres_no_lim}, Val{:longrun_bw_rhoe_equil_highres_topography_earth}, } diff --git a/src/solver/type_getters.jl b/src/solver/type_getters.jl index 7f01425fd5..d5cca69534 100644 --- a/src/solver/type_getters.jl +++ b/src/solver/type_getters.jl @@ -367,14 +367,13 @@ function get_surface_setup(parsed_args) end is_explicit_CTS_algo_type(alg_or_tableau) = - alg_or_tableau <: CTS.ERKAlgorithmName + alg_or_tableau <: CTS.RKAlgorithmName -is_imex_CTS_algo_type(alg_or_tableau) = - alg_or_tableau <: CTS.IMEXARKAlgorithmName +is_imex_CTS_algo_type(alg_or_tableau) = alg_or_tableau <: CTS.ARKAlgorithmName is_implicit_type(alg_or_tableau) = is_imex_CTS_algo_type(alg_or_tableau) -is_imex_CTS_algo(::CTS.IMEXAlgorithm) = true +is_imex_CTS_algo(::CTS.ARKAlgorithm) = true is_imex_CTS_algo(::SciMLBase.AbstractODEAlgorithm) = false is_implicit(ode_algo) = is_imex_CTS_algo(ode_algo) @@ -427,7 +426,7 @@ function ode_configuration(::Type{FT}, parsed_args) where {FT} @info "Using ODE config: `$alg_or_tableau`" if is_explicit_CTS_algo_type(alg_or_tableau) - return CTS.ExplicitAlgorithm(alg_or_tableau()) + return CTS.RKAlgorithm(alg_or_tableau()) elseif !is_implicit_type(alg_or_tableau) return alg_or_tableau() elseif is_imex_CTS_algo_type(alg_or_tableau) @@ -459,7 +458,7 @@ function ode_configuration(::Type{FT}, parsed_args) where {FT} nothing end, ) - return CTS.IMEXAlgorithm(alg_or_tableau(), newtons_method) + return CTS.ARKAlgorithm(alg_or_tableau(), newtons_method) else return alg_or_tableau(; linsolve = linsolve!) end @@ -525,8 +524,8 @@ function args_integrator(parsed_args, Y, p, tspan, ode_algo, callback) # Can we just pass implicit_tendency! and jac_prototype etc.? lim! = limiters_func!, dss!, - post_explicit! = set_precomputed_quantities!, - post_implicit! = set_precomputed_quantities!, + pre_newton_iteration! = set_precomputed_quantities!, # TODO: set_implicit_precomputed_quantities! + post_stage! = set_precomputed_quantities!, ) else SciMLBase.SplitFunction(implicit_func, remaining_tendency!)