geoschem / geos-chem

GEOS-Chem "Science Codebase" repository. Contains GEOS-Chem science routines, run directory generation scripts, and interface code. This repository is used as a submodule within the GCClassic and GCHP wrappers, as well as in other modeling contexts (external ESMs).
http://geos-chem.org
Other
162 stars 155 forks source link

Assign a very high absolute tolerance to prod/loss family species in KPP-built mechanisms #1753

Open yantosca opened 1 year ago

yantosca commented 1 year ago

Name and Institution (Required)

Name: Bob Yantosca Institution: Harvard + GCST

Confirm you have reviewed the following documentation

New GEOS-Chem feature or discussion

On the KPP repository there has been some discussion into preventing prod/loss species from affecting the error norm. One recommendation from @obin1 is to set the absolute tolerance ATOL of prod/loss species to an extremely high value.:

Here's a visualization from a project @msl3v and I've been working on: giving prod/loss species arbitrarily large absolute tolerances of 1e25 (effectively removing them from the error norm) reduces the number of integration steps. This can also slightly alter the concentrations of species whose tolerances we don't modify, by changing the internal timesteps. visualizePL

Because the error norm is used to compute KPP internal integration timesteps, this could reduce the amount of time spent in the integrator. As time allows, we might want to try implementing this recommendation in GEOS-Chem.

Tagging @msl3v @obin1 @RolfSander @msulprizio @jimmielin @lizziel @christophkeller for reference.

obin1 commented 4 weeks ago

Moving to this issue regarding a potential fix specific to GEOS-Chem, Bob suggested on the KPP repository:

Another suggestion is to add entries for ATOL to the GEOS-Chem species_database.yml file, which could be read into the State_Chm%SpcData object (and then have a default ATOL if one is not specified). That would also be easy to implement.

I'm very much in favor of species-level RTOL and ATOL in species_database.yml, this would be nice to specify at run time!