RCE

class konrad.core.RCE(atmosphere, timestep='12h', max_duration='200d', outfile=None, experiment='RCE', writeevery='24h', delta=0.0, delta2=0.0, post_count=365, radiation=None, ozone=None, humidity=None, surface=None, cloud=None, convection=None, lapserate=None, upwelling=None, diurnal_cycle=False, co2_adjustment_timescale=nan, logevery=None, timestep_adjuster=None)[source]

Interface to control the radiative-convective equilibrium simulation.

Examples

Create an object to setup and run a simulation:

>>> import konrad
>>> rce = konrad.RCE(...)
>>> rce.run()
__init__(atmosphere, timestep='12h', max_duration='200d', outfile=None, experiment='RCE', writeevery='24h', delta=0.0, delta2=0.0, post_count=365, radiation=None, ozone=None, humidity=None, surface=None, cloud=None, convection=None, lapserate=None, upwelling=None, diurnal_cycle=False, co2_adjustment_timescale=nan, logevery=None, timestep_adjuster=None)[source]

Set-up a radiative-convective model.

Parameters
  • atmospherekonrad.atmosphere.Atmosphere.

  • timestep (float, str or timedelta) –

    Model time step

  • max_duration (float, str or timedelta) –

    Maximum duration. The duration is given in model time

  • outfile (str) – netCDF4 file to store output.

  • experiment (str) – Experiment description (stored in netCDF output).

  • writeevery (float, str or timedelta) –

    Set output frequency.

    • float: Every nth day in model time

    • str: a timedelta string (see konrad.utils.parse_fraction_of_day()).

    • A timedelta object is directly used as timestep.

    • Note: Setting a value of “0h” will write after every iteration.

  • delta (float) – First stop criterion. If the change in top-of-the-atmosphere radiative balance is smaller than this threshold, skip further iterations. Values are given in W/m^2/day.

  • delta2 (float) – Second stop criterion. If the second-derivative of the top-of-the-atmosphere radiative balance is smaller than this threshold, skip further iterations. Values are given in W/m^2/day^2.

  • post_count (float) – Numbers of days that the convergence criterion (see delta and delta2) has to be fulfilled to stop the simulation.

  • radiation (konrad.radiation) – Radiation model. Defaults to konrad.radiation.RRTMG.

  • ozone (konrad.ozone) – Ozone model. Defaults to konrad.ozone.OzonePressure.

  • humidity (konrad.humidity) – Humidity model. Defaults to konrad.humidity.FixedRH.

  • surface (konrad.surface) – Surface model. Defaults to konrad.surface.FixedTemperature.

  • cloud (konrad.cloud) – Cloud model. Defaults to konrad.cloud.ClearSky.

  • convection (konrad.convection) – Convection scheme. Defaults to konrad.convection.HardAdjustment.

  • lapserate (konrad.lapserate) – Lapse rate handler. Defaults to konrad.lapserate.MoistLapseRate.

  • upwelling (konrad.upwelling) – Upwelling model. Defaults to konrad.upwelling.NoUpwelling.

  • diurnal_cycle (bool) – Toggle diurnal cycle of solar angle.

  • co2_adjustment_timescale (int/float) – Adjust CO2 concentrations towards an equilibrium state following Romps 2020. To be used with konrad.surface.FixedTemperature. Recommended value is 7 (1 week). Defaults to no CO2 adjustment, with np.nan.

  • logevery (int) –

    Log the model progress at every nth iteration. Default is no logging.

    This keyword only affects the frequency with which the log messages are generated. You have to enable the logging by using the logging standard library or the konrad.enable_logging() convenience function.

  • timestep_adjuster (callable) –

    A callable object, that takes the current timestep and the temperature change as input to calculate a new timestep (f(timestep, deltaT)).

    Default (None) is keeping the given timestep fixed.

Methods

__init__(atmosphere[, timestep, ...])

Set-up a radiative-convective model.

check_if_write()

Check if current timestep should be appended to output netCDF.

get_hours_passed()

Return the number of hours passed since model start.

is_converged()

Check if the atmosphere is in radiative-convective equilibrium.

run()

Run the radiative-convective equilibrium model.

Attributes

runtime

Timedelta representing time since model start.

timestep_days