diff --git a/Project.toml b/Project.toml index 1d76b1f..5bf4e3f 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "ConceptualClimateModels" uuid = "3e640dcb-3446-4ed7-aadb-0366b77312ec" authors = ["Datseris "] -version = "0.1.1" +version = "0.1.2" [deps] DynamicalSystemsBase = "6e36e845-645a-534a-86f2-f5d4aa5a06b4" diff --git a/docs/src/processes.md b/docs/src/processes.md index 1536c12..bf95b35 100644 --- a/docs/src/processes.md +++ b/docs/src/processes.md @@ -77,6 +77,7 @@ a simple way to create new processes for a given climate variable: ParameterProcess TimeDerivative ExpRelaxation +AdditionProcess TanhProcess ``` diff --git a/docs/src/tutorial.md b/docs/src/tutorial.md index 02ecd41..e0b1c32 100644 --- a/docs/src/tutorial.md +++ b/docs/src/tutorial.md @@ -1,12 +1,27 @@ # [Tutorial](@id tutorial) -With ConceptualClimateModels.jl one makes differential equation systems from _processes_. -A _process_ is simply a particular equation defining the dynamics of a climate variable. +ConceptualClimateModels.jl follows a process-based modelling approach +to make differential equation systems from _processes_. +A _process_ is simply a particular _equation_ defining the dynamics of a climate +variable, while also explicitly defining _which_ variable the equation defines. A vector of processes is composed by the user, and given to the main function [`processes_to_coupledodes`](@ref) which bundles them into a system of equations -that creates a dynamical system. +that creates a dynamical system. The dynamical system can then be further analyzed +in terms of stability properties, multistability, tipping, periodic (or not) +behavior, and many more aspects, via the DynamicalSystems.jl library (see the examples). + +Note the distinction: a _process_ is _not_ the climate variable +(such as "clouds" or "insolation"); rather it is the _exact equation_ that +defines the behavior of the climate variable, and could itself utilize +many other already existing climate variables. +In terminology of climate science a _process_ is a generalization +of the term "parameterization". +Many different processes may _describe_ the behavior of a particular variable and +typically one wants to analyze what the model does when using one versus the other +process. + !!! note "Familiarity with DynamicalSystems.jl and ModelingToolkit.jl" - ConceptualClimateModels.jl builds on [ModelingToolkit.jl](https://docs.sciml.ai/ModelingToolkit/stable/) for building the equations representing the climate model, and it builds on [DynamicalSystems.jl](https://juliadynamics.github.io/DynamicalSystemsDocs.jl/dynamicalsystems/dev/) to analyze the models. Familiarity with either package is good to have, and will allow you to faster and better understand the concepts discussed here. Nevertheless familiarity is actually optional as the steps required to use ConceptualClimateModels.jl are all explained in this tutorial. + ConceptualClimateModels.jl builds on [ModelingToolkit.jl](https://docs.sciml.ai/ModelingToolkit/stable/) for building the equations representing the climate model, and it builds on [DynamicalSystems.jl](https://juliadynamics.github.io/DynamicalSystemsDocs.jl/dynamicalsystems/dev/) to further analyze the models. Familiarity with either package is good to have, and will allow you to faster and better understand the concepts discussed here. Nevertheless familiarity is actually optional as the steps required to use ConceptualClimateModels.jl are all explained in this tutorial. ## Introductory example