CliMA / ClimaAtmos.jl

ClimaAtmos.jl is a library for building atmospheric circulation models that is designed from the outset to leverage data assimilation and machine learning tools. We welcome contributions!
Apache License 2.0
85 stars 19 forks source link

Add spin-up capabilities for `ClimaAtmos` simulations #3327

Open sriharshakandala opened 2 months ago

sriharshakandala commented 2 months ago

For many climate simulations, it is necessary to run a simulation for multiple turn-over times before a statistically stationary state is reached and a usable start-up condition is achieved. For high resolution simulations, this start-up phase can be expensive. It is generally desirable to start the spin-up simulation at a lower resolution and gradually increase the resolution to the target resolution.

### Tasks
- [ ] Upload DYAMOND Summer initial conditions to `ClimaArtifacts`
- [ ] Enable users to set custom initial conditions in `ClimaAtmos.jl`
- [ ] Read initial conditions from NetCDF file
- [ ] Demonstrate spin-up capabilities for the `sphere_held_suarez_rhoe_equilmoist_hightop_sponge` simulation
- [ ] Add capability to store restart data on an user-prescribed higher-resolution mesh
- [ ] Support these features for AMIP

Timeline estimate: About 2 weeks (week of 11/11/2024)

cc: @charleskawczynski @cmbengue @tapios

sriharshakandala commented 2 months ago

@szy21 , @akshaysridhar : Please edit/add your requirements here.

tapios commented 2 months ago

Yes, this will be a useful capability to have. Before you get started on it, can you please estimate how long it'll take to build this?

szy21 commented 2 months ago

Would it be easier if we add the capability for reading initial condition from a netcdf file and interpolate? If we do this we won't be constrained by the resolution (both horizontal and vertical).

Sbozzolo commented 2 months ago

Would it be easier if we add the capability for reading initial condition from a netcdf file and interpolate? If we do this we won't be constrained by the resolution (both horizontal and vertical).

ClimaUtilities provides capabilities to accomplish this non-conservatively (using InterpolationsRegridder--multi-linear interpolation), or conservatively with the same vertical levels as the file (using TempestRegridder).

charleskawczynski commented 2 months ago

I think interpolating the state / cache is fine, but I think we should still have a way to compute the local geometry given the types of previous data with the new resolution. This way, we don't have errors in mass/energy transport on restarted simulations.

sriharshakandala commented 2 months ago

Would it be easier if we add the capability for reading initial condition from a netcdf file and interpolate? If we do this we won't be constrained by the resolution (both horizontal and vertical).

The plan is to write the restart data to the new (finer) grid. The restart file will contain all needed information to start the simulation on the finer grid.