-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Jablonowski test case #265
Comments
@christophernhill @jm-c any idea why that could be? 👆🏼 Compared to Jablonowski, we are about a day behind 🙈 See day 8 below, that one fits quite well and looking at our day 10 is quite similar to Jablonowski's day 9. What controls the error growth time scale in this sytem, proportional to the initial perturbation and the available potential energy in the baroclinic background flow? |
@hottad You can since v0.6 run the jablonoswki test as follows (pretty printing from #385 now in the main branch) julia> using SpeedyWeather
julia> spectral_grid = SpectralGrid(trunc=85,nlev=8,Grid=OctaHEALPixGrid,dealiasing=2)
SpectralGrid:
├ Spectral: T85 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
├ Grid: 127-ring OctaHEALPixGrid{Float32}, 16384 grid points
├ Resolution: 176km (average), 156km × 198km (Equator)
└ Vertical: 8-level SigmaCoordinates Once we've defined the SpectralGrid we can create the zonal ridge orography from Jablonowski like so julia> orography = ZonalRidge(spectral_grid)
ZonalRidge{Float32, OctaHEALPixGrid{Float32}} <: AbstractOrography
├ η₀::Float64 = 0.252
├ u₀::Float64 = 35.0
└── arrays: orography, geopot_surf And their initial conditions are called julia> initial_conditions = ZonalWind()
ZonalWind <: InitialConditions
├ η₀::Float64 = 0.252
├ u₀::Float64 = 35.0
├ perturb_lat::Float64 = 40.0
├ perturb_lon::Float64 = 20.0
├ perturb_uₚ::Float64 = 1.0
├ perturb_radius::Float64 = 0.1
├ ΔT::Float64 = 0.0
├ Tmin::Float64 = 200.0
└ pressure_on_orography::Bool = false Then construct the model and while we could have set all individual physics parameterizations we can also disable them all together with julia> model = PrimitiveDryModel(;spectral_grid,orography,initial_conditions,physics=false)
PrimitiveDryModel{Float32, SpeedyWeather.CPUDevice}
├ spectral_grid: SpectralGrid
├ planet: Earth
├ atmosphere: EarthAtmosphere
├ initial_conditions: ZonalWind
├ orography: ZonalRidge{Float32, OctaHEALPixGrid{Float32}}
├ physics: Bool
├ boundary_layer_drag: LinearDrag{Float32}
├ temperature_relaxation: HeldSuarez{Float32}
├ static_energy_diffusion: SpeedyWeather.StaticEnergyDiffusion{Float32}
├ vertical_advection: SpeedyWeather.CenteredVerticalAdvection{Float32, 1}
├ time_stepping: Leapfrog{Float32}
├ spectral_transform: SpectralTransform{Float32}
├ horizontal_diffusion: HyperDiffusion{Float32}
├ implicit: ImplicitPrimitiveEq{Float32}
├ geometry: Geometry{Float32}
├ constants: DynamicsConstants{Float32}
├ device_setup: SpeedyWeather.DeviceSetup{SpeedyWeather.CPUDevice, DataType}
├ output: OutputWriter{Float32, PrimitiveDry}
└ feedback: Feedback initialize and run! julia> simulation = initialize!(model)
SpeedyWeather.Simulation{PrimitiveDryModel{Float32, SpeedyWeather.CPUDevice}}
├ PrimitiveDryModel{Float32, SpeedyWeather.CPUDevice}
├ PrognosticVariables{Float32, PrimitiveDryModel{Float32, SpeedyWeather.CPUDevice}}
└ DiagnosticVariables{Float32, OctaHEALPixGrid{Float32}, PrimitiveDry}
julia> run!(simulation,n_days=9,output=true) which yields I'm a bit confused about the vorticity anomalies at the poles, I have not seen these before. |
In the Jablonowski (#45) test case our day-9 baroclinic wave is currently not strong enough (T255 26 levls Float64 FullGaussianGrid$\alpha=1$ implicit stepping default diffusion)
versus
Maybe an issue in the initial conditions or the implicit stepping dampens too aggressively? Also, I didn't wait for the steady state to equilibrate as Jablonoswki suggest.
The text was updated successfully, but these errors were encountered: