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
82 stars 16 forks source link

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

Open sriharshakandala opened 3 weeks ago

sriharshakandala commented 3 weeks 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
- [ ] Add capability to store restart data on an user-prescribed higher-resolution mesh
- [ ] Demonstrate spin-up capabilities for the `sphere_held_suarez_rhoe_equilmoist_hightop_sponge` simulation

Timeline estimate: About 3 weeks

cc: @charleskawczynski @cmbengue @tapios

sriharshakandala commented 3 weeks ago

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

tapios commented 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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 3 weeks 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.