Abstract
Tipping elements occur in various systems such as in socioeconomics, ecology and the climate system. In many cases, the individual tipping elements are not independent of each other, but they interact across scales in time and space. To model systems of interacting tipping elements, we here introduce the PyCascades open source software package for studying interacting tipping elements (https://doi.org/10.5281/zenodo.4153102). PyCascades is an objectoriented and easily extendable package written in the programming language Python. It allows for investigating under which conditions potentially dangerous cascades can emerge between interacting dynamical systems, with a focus on tipping elements. With PyCascades it is possible to use different types of tipping elements such as doublefold and Hopf types and interactions between them. PyCascades can be applied to arbitrary complex network structures and has recently been extended to stochastic dynamical systems. This paper provides an overview of the functionality of PyCascades by introducing the basic concepts and the methodology behind it. In the end, three examples are discussed, showing three different applications of the software package. First, the moisture recycling network of the Amazon rainforest is investigated. Second, a model of interacting Earth system tipping elements is discussed. And third, the PyCascades modelling framework is applied to a global trade network.
1 Introduction
In the recent years, complex systems research has increasingly focused on the matter of tipping points [1,2,3] since they occur in many different systems including ecosystems, over economics, the Earth’s climate system and social systems [4,5,6,7,8,9,10]. Tipping points are the critical thresholds of tipping elements, where a small perturbation can be sufficient to invoke a qualitative change of the whole system. Whether such qualitative changes can be seen as something desirable or undesirable depends a lot on the context: for instance, a potential transition of climate tipping elements towards a potential “hothouse” state might be dangerous for humanity [11, 12], while a rapid transition towards a sustainable future lies well within the scope of desired tipping events [13]. However, oftentimes tipping elements do not exist in isolation, but interact across scales in time and space [14, 15] such as connected lakes in ecology [16, 17], in the adoption of new technologies in the economy [18] or the climate tipping elements in the Earth system [19]. Since several decades, networks are an established tool for the description of complex systems [e.g., 20, 21]. Complex networks are structures that represent certain entities as their nodes and their interaction as their edges. They have been used, for example, to model oscillators in power grids [22], food webs [23], interactions of climate system components [24] and the collaboration network of scientists [25]. Critical behaviour has also been revealed on the network level. For instance, it has been shown that the likelihood of developing diabetes depends of the criticality of excitable tissue in the Islets of Langerhans of the pancreas [26].
Since there is increasing interest in modelling interacting tipping elements within the context of complex systems [27,28,29], we bring these two strands of research together since tipping elements on networks can not only tip themselves but also imply tipping of neighbouring systems or even the network as a whole. Building upon recent developments in studying interacting nonlinear dynamics on complex networks [30,31,32,33,34], we here introduce the unified Python package PyCascades.
In Sect. 2, we describe how PyCascades can be installed and what the package contains (Sect. 2.1). Further, we describe the general structure of our package (Sect. 2.2), the building blocks of nonlinear dynamical systems, namely the tipping elements and their interaction structure (Sect. 2.3) as well as the network types natively included in the package (Sect. 2.4) and lastly, the extension to several types of stochastic tipping elements (Sect. 2.5). Thereafter, we apply our modelling framework to three different examples (Sect. 3). First, we use our model to simulate tipping cascades in the Amazon rainforest, which is connected by a network of atmospheric moisture flows (Sect. 3.1). Second, we show how PyCascades can be extended to large scale Monte Carlo ensemble studies such that many uncertainties can be propagated (Sect. 3.2). Third, we exchange the fundamental differential equation that has been used in the two earlier examples to model tipping cascades in an economic example of a global trade network (Sect. 3.3). Lastly in Sect. 4, we shortly summarise the functionalities of PyCascades.
2 Methods
This chapter describes the basic features that are supplied by PyCascades from the installation and the structure of the package to the fundamental features that have been developed. Here, a tutorial can be found that guides the interested reader through the most important first steps to simulate tipping cascades on interacting tipping elements (https://doi.org/10.5281/zenodo.4153102). Furthermore, the code for each of the following fundamental features and the three applications is provided there.
2.1 Installation and package structure
PyCascades can be installed via the command line using the pipcommand
pip install pycascades^{Footnote 1}.
Alternatively, the package can directly be downloaded via the website following the zenododoi: 10.5281/zenodo.4153102. The layout of the file structure of PyCascades can be found in Table 1. Important files, which led to the outcomes of this work, are listed and described there. A dedicated tutorial has been developed, guiding the interested reader through some important first steps and features of the software package. For the Amazon rainforest application and the climate tipping elements application, further readmefiles have been added in the respective directory. There, it is explained how the respective simulations can be started and evaluated. Additionally, the plot scripts for these two applications are deposited.
2.2 Structure of the core of PyCascades
PyCascades provides a convenient framework to solve differential equations on complex networks, i.e., it describes the dynamics of states of nodes in such a network as well as their interactions. The basic assumption is that the dynamics of tipping elements can be separated into one part for the isolated dynamics of the tipping element and another part representing the interaction terms (see Sect. 2.3 for more details). For that, it builds on SciPy differential equation solvers [35] for the dynamics and on NetworkX [36] to generate the underlying network.
The core of PyCascades is structured as follows (see Fig. 1). It provides the two classes tipping_element and coupling that implement the two described types of dynamics. From these classes that can be viewed as references, concrete classes for tipping elements and interactions can be derived. Currently, PyCascades provides the classes cusp and hopf derived from tipping_element and linear_coupling derived from coupling. Other types of tipping elements or couplings can be implemented in an analogous way. The class tipping_network which is derived from the DiGraph class of NetworkX is used to combine different tipping_element and coupling objects into a network and identify each tipping_element object with a node and each coupling object with a link. Finally, an evolve class is provided with methods to integrate the resulting ODE system or to trigger tipping events.
2.3 Different types of tipping elements and interactions
Through the tipping_element class in PyCascades different types of tipping elements can be defined and coupled together. Each tipping element can be described by its individual dynamics \(f_i\) and the interaction term \(g_i\), i.e., the coupling to other tipping elements. This yields
where \(x_i\) represents the state of the respective tipping element. \(\tau _i\) stands for a typical timescale of tipping. The direct interaction term \(g_i(x)\) is assumed to be separable into the summands
linking the tipping elements i and j.
In principle, any kind of tipping element can be supplied in the tipping_element class of PyCascades, but as of now, there are two kinds of tipping elements predefined that are ready to be used and implemented. These two tipping elements are elements that possess a Cuspbifurcation or a Hopfbifurcation [37]. The first preimplemented tipping element is the Cuspdifferential equation, which has been used in many contexts before to model nonlinear transitions between two alternative stable states [15, 38]. The normal form of its differential can be written as
Here, \(a, b > 0\) and \(x_0\) represents a shift on the xaxis. The parameter c is the critical parameter, which invokes a shift from a lower stable state to an upper stable state as soon as the critical value \(c_\text {crit, high}\) is surpassed. The other way round, when c is diminished, a state transition from the upper to the lower stable state occurs at \(c_\text {crit, low}\). Equation 3 has the normal form of a foldbifurcation and has, as a paradigmatic model, been applied in many different areas such as systems in ecology, climate science and economics [15, 29, 31, 39, 40]. For the special case that \(a=4, b=1\) and \(x_0=0.5\), the two stable states are located at \(x_{1}= 0\) and \(x_{2} = 1\) for \(c=0\). The critical parameter lies at \(c_\text {crit, high} =  c_\text {crit, low} = \sqrt{(4b^3)/(27a)} = \sqrt{4/(27\cdot 4)} \approx 0.19\). The bifurcation diagram of this equation is shown in Fig. 2a.
The second tipping element that is provided by PyCascades is a Hopfbifurcation. The normal form in polar coordinates of this bifurcation can be written as
with the parameters a and b. Here, the Hopfbifurcation is given in polar coordinates with the radius r and the angle \(\phi \). Importantly, \(\mu \) is the critical parameter and a bifurcation from a stable fixed point to a stable limit and an unstable fixed point occurs when \(\mu \) crosses zero from below. The bifurcation diagram is shown in Fig. 2b. Applications of Hopfbifurcations have been found, for instance, in predator–prey cycles in Lotka–Volterra systems or in the Hodgkin–Huxley model of neurons [41, 42]. In the climate system, there exist conceptual models that represent the ElNiño Southern Oscillation as a Hopf bifurcation [43, 44] based on a model by Zebiak and Cane [45].
Next, for the interactions, any type of coupling can in principle be used and implemented in PyCascades. However, for the moment, only linear interactions are considered
If there is a connection between tipping element i and j, then \(A_{ij} \ne 0\), otherwise \(A_{ij} = 0\). In Fig. 2c–f, we show an example how tipping cascades can emerge from the coupling between two tipping elements for the case of two cuspdifferential and for the case of one cusp coupled to the normal form of a Hopfbifurcation.
2.4 Paradigmatic network types of interacting tipping elements
With PyCascades it is possible to investigate the dynamics of tipping and tipping cascades in larger directed networks. These types of networks can either be explicitly spatially embedded (see Sect. 3) or wellknown predefined network models such as the Erdős–Rényi model, the Barabási–Albert model or the Watts–Strogatz model [46,47,48]. Originally, the network models that are inbuilt in python’s network package NetworkX are undirected for Watts–Strogatz networks and Barabási–Albert networks, while we require directed networks. Additionally, it might also be helpful or necessary to be able to determine a certain average degree. Therefore, a generalisation of these two networks types has been developed. (i) Watts–Strogatz network: a regular network is created where each node i is connected to its m closest neighbours in both directions. m must be an even integer and the average degree \(\left\langle k \right\rangle = m\). m is chosen in such a way that the average degree of the resulting network is larger than the desired average degree. Then links are randomly deleted until the desired average degree is reached. Lastly, each of the remaining links is rewired with the desired rewiring probability as in the usual Watts–Strogatz model. (ii) Barabási–Albert model: first, two nodes are bidirectionally coupled. Each further node is, again, bidirectionally coupled to one already existing node i with the probability \(p = (k^{\text {in}}_{i} + k^{\text {out}}_i)/(\sum _{mn} a_{mn})\), where \(k^{\text {in}}_{i}\) is the indegree and \(k^{\text {out}}_i\) is the outdegree of node i. With \(a_{mn}\), the sum of all edges in the network is denoted. In the end, the average degree \(\left\langle k \right\rangle \) depends on the stochastic network. Therefore, it can happen that the actual average degree \(\left\langle k \right\rangle \) of the network exceeds or falls below the desired average degree \(k_\text {des}\). While \(\left\langle k \right\rangle < k_\text {des}\), another link is added between two randomly selected nodes i and j. While \(\left\langle k \right\rangle > k_\text {des}\), a link between two randomly selected nodes i and j is deleted. For comparison of the construction of these network models, see also Krönke et al. [30]. Examples for a realisation of these three network types and an exemplary tipping cascade in those can be found in Fig. 3.
2.5 Stochasticity in tipping elements
In the real world, systems often underlie fluctuations, which under certain circumstances can cause critical transitions, called noiseinduced tipping. Numerous prominent examples can be found in dynamical systems such as in electronics, optics or neurons, but also in ecology and in the Earth’s climate system [49,50,51,52,53]. Therefore, we decided to create a class for a stochastic version of the cusp tipping element (Eq. 3) for additive noise
Here, \(\sigma \) denotes the noise level and \({\text {d}}W/{\text {d}}t\) describes the Wiener process or Brownian motion. In the case of random white noise (Gaussian white noise) as used here, W is sampled from a Gaussian distribution. To implement stochastic differential equations, python’s SciPy function odeint has been replaced by sdeint [54]. sdeint has several algorithms implemented, which are able to solve stochastic differential equations. Here, and in the provided version of PyCascades, an order 1.0 strong stochastic Runge–Kutta algorithm is employed [55].
Furthermore, Gaussian noise distributions are not necessarily able to describe all types of fluctuations in realworld systems since in reality noise might be correlated or not be standard normally distributed. Besides Gaussian noise, PyCascades allows to compute systems with Lévy and Cauchy noise (see Fig. 4). These types of noise (Lévy, Cauchy) may be more suitable for describing extreme events than Gaussian noise; however, in the implemented form, they still remain uncorrelated. It has been found that the probability of jumping between the two stable states in a doublewell potential is impacted by single strong extreme events from those \(\alpha \)stable noise distributions [56]. For instance, it has been proposed that this might have been of relevance for climate system states on a millennial time scale during the last glacial period as was observed in icecores [57]. Also, transitions triggered by extreme events emerging from Lévydistributions in other nonlinear climate system components such as the Amazon rainforest or the thermohaline circulation have been investigated, as well as transitions in gene expression processes in molecular biology [58,59,60].
The distributions for Gaussian, Lévy and Cauchy noise in PyCascades are taken from python’s SciPy libraries
where \(\sigma \) is the standard deviation and the mean value \(\mu \equiv 0\).
3 Applications
In this section, we show three examples of how PyCascades can be applied to realworld systems. The first application is the moisturerecycling network of the Amazon rainforest, where we introduce PyCascades on a spatially embedded network. In the second application in a subset of interacting climate tipping elements, we combine the PyCascades modelling framework with a largescale setup of Monte Carlo simulation to show how numerous uncertainties in parameters can be propagated systematically. The third application, a global trade network of more than 5000 nodes and 400,000 links, complements our analysis by simulating tipping cascades with a modernised, economically motivated differential equation (see Eq. 10) replacing the Cuspdifferential equation (see Eq. 3).
3.1 The Amazon rainforest
It is suspected that the Amazon rainforest is a tipping element in the Earth’s climate system [4], which might approach a tipping point due to various anthropogenic pressures including climate change, fires and landuse change [61,62,63]. The Amazon rainforest might exhibit multistability at certain rainfall levels, as suggested by conceptual models and observational data [64,65,66,67,68]. This implies that rainforest patches may transition to a savannahlike state when the rainfall drops below a certain critical level. These rainforest patches depend on each other, as rain is reevaporated by the trees and thus preserved in the system through atmospheric moisture recycling [69, 70] (see Fig. 5a). This means that the Amazon rainforest is an excellent example of how tipping cascades can travel through a system, which can be modelled with PyCascades. We divide the Amazon into 0.5\(\times 0.5^\circ \) (approximately 50 km) grid cells and assume that each is an interacting tipping element that can be described by Eqs. 3 and 5. For simplicity, we chose \(a_i=b_i=1\) and \(x_{0,i}=0\) for all tipping elements and further assume that the critical parameter is only dependent on the rainfall a rainforest cell receives, which tips in case the received rainfall is less than the critical rainfall. Then the critical parameter \(c_i\) and the coupling \(g_i(x)\) can be denoted as
Here, \(R_i\) is the rainfall in cell i, \(\left\langle R \right\rangle \) is the average rainfall over the whole Amazon basin and \(R_\text {crit}\) is the critical rainfall. Further, \(c_0 = \sqrt{4/27}\) if \(a=b=1\) and \(x_0=0\). Lastly, \(\delta ^\text {Rain}_{ij}\) is the moisture transport in mm/yr from cell j to cell i. Since the distance between the two stable states is 2, a prefactor of 1/2 is required to renormalise the coupling. We choose the critical rainfall \(R_\text {crit}\) to be 1700 mm/year for all cells, which is approximately the value below which the alternative savannah state becomes more resilient than the rainforest state [71]. The atmospheric moisture recycling simulations used in this work were performed by Staal et al. [72] for the years 2003–2014 and assembled into a network by Krönke et al. (2020) [30]. In this simplified example, we assume that if a forested grid cell tips, moisture recycling via that cell stops. We performed a tipping experiment for each year between 2003 and 2014 and averaged the results over this period. We find tipping events in several parts of the Amazon basin which cascade to other forest patches (Fig. 5b–d). This analysis illustrates how PyCascades can be applied to simulate tipping events and cascades in a realworld network of interacting tipping elements.
3.2 Climate tipping elements
Apart from the Amazon rainforest, there exists a range of processes and systems in the Earth’s climate system that exhibit threshold behaviour [4]. These tipping elements contain biosphere components (e.g. Amazon rainforest, coral reefs), largecirculation patterns (e.g. Atlantic Meridional Overturning Circulation, monsoon systems) or cryosphere components (e.g. Greenland Ice Sheet, West Antarctic Ice Sheet). Under ongoing global warming, many of them are at risk of transitioning into an alternative, tipped state at lower levels of global warming than previously though [12, 73]. Such transitions would have dangerous consequences for humanity and biosphere integrity in the Earth system [11, 12]. There is an additional risk that tipping elements are strengthened by reinforcing, positive feedbacks within the climate system such that cascades might be triggered, potentially up to a planetaryscale tipping cascade that could push the Earth towards a “hothouse” state [11]. Moreover, the tipping elements in the climate system are interacting and there is a subset of five tipping elements where the interaction structure has been made explicit by an expert elicitation [19]. This network and their interactions have been used by some studies to investigate the risk of tipping cascades in the climate system, but also to quantify economic damages exerted by interacting tipping elements [27, 33, 74].
Here, we show how PyCascades can be used to simulate tipping events in four of the five aforementioned tipping elements: the Greenland Ice Sheet (GIS), the West Antarctic Ice Sheet (WAIS), the Atlantic Meridional Overturning Circulation (AMOC) and the Amazon Rainforest (AR). For these four tipping elements, there exist conceptual models of their nonlinear behaviour with respect to a forcing parameter [64, 66, 75,76,77], which can be traced back to increases in levels of global warming above preindustrial [73]. Therefore, we can arguably model these four elements by
Here, \(\varDelta \)GMT is the increase of the global mean temperature, \(T_\text {crit, i}\) the critical temperature at which a certain tipping element transgresses its baseline state, \(s_{ij}\) the interaction strength between the tipping elements and \(\tau _i\) the time a certain tipping event needs. Each \(s_{ij}\) has a certain physical meaning, for instance, the freshwater entry from the GIS weakens the AMOC, while a weaker AMOC cools the northern hemisphere at the same time [78, e.g.]. The typical tipping time scales \(\tau _i\) are chosen to be 4900, 2400, 300 and 50 years at 4 \(^\circ \)C above preindustrial levels of global warming for GIS, WAIS, AMOC and AR, respectively. For more details, see Fig. 6 and please be referred to Wunderling et al. [31]. The parameter uncertainties and a potential interaction structure are shown in Figs. 6 and 7. In Eq. 9, there are many parameters with uncertainties, for instance at which temperature \(T_\text {crit, i}\) a critical transition occurs or how strong the interactions \(s_{ij}\) are. While upper and lower limits are given in the literature [19, 73], their uncertainty need to be propagated thoroughly. For this purpose, we use a largescale MonteCarlo ensemble based on the latin hypercube sampling (LHS) method pyDOE [79]. The LHS is a sampling method that generates initial conditions that can be used in a Monte Carlo ensemble. They cover the state space of all uncertain parameters to a higher degree than random sample generation and are, therefore, better suited to create Monte Carlo ensembles in higher dimensional systems. In Figs. 6 and 7, we demonstrate that constructing a largescale Monte Carlo ensemble can be combined with simulating tipping cascades with PyCascades. In the critical temperatures \(T_\text {crit, i}\) and the interaction strengths \(s_{ij}\) are 11 parameters with uncertainties (see Fig. 6). Upon that, we construct an ensemble of 1000 initial conditions.
In Eq. 9, we assume that the interaction term is 25% as important as the individual dynamics term. Thus, the interaction strength \(s_{ij}\) is divided by 4 in Eq. 9. While this poses a hypothetical scenario, it allows us to estimate the likelihood of tipping of certain element at a certain increase of the global mean temperature \(\varDelta \text {GMT}\). For 2 \(^\circ \)C, we find that the likelihood of tipping is around 50% for the GIS and WAIS, while it is significantly lower for the AMOC (around 25%) and the AR (less than 5%). There is a relatively high likelihood that GIS and WAIS tip since their critical temperature is lowest and there is a strong interaction link from GIS to WAIS. Therefore, the likelihood of tipping is lower for the AMOC, but the uncertainty is higher due to the strong negative feedback loop with GIS. Lastly, the AR has a very low likelihood of tipping since it is only connected to the other tipping elements via one uncertain link from AMOC.
3.3 International trade network
In the third example, we apply the PyCascades framework of interacting tipping elements to the International Trade Network. We construct the network from the EORA multiregional input–output (MRIO) database [80] as also done in other studies [81, 82]. The database, which has also been subject to static analyses [83], consists of 188 countries with 27 economic sectors each, and includes the annual monetary flows between these sectors and regions. We interpret the individual sectors in each country as nodes of a network, and the flow \(f_{ij}\) in the MRIO table as the weight for each directed link from node j to i. In our analysis, we use the data for the year 2012. Following previous analyses [81, 82, 84], we also use a threshold of 10\(^6\) US$ such that we exclude unrealistically small flows.
Propagation of economic losses on the trade network has previously been studied, for instance, with the Acclimate model [84]. This model interprets the economic sectors in each country as firms producing a commodity specific for the respective sector. Each firm does so using other commodities as inputs with specific, fixed proportions according to a Leontief production function [85] as also used in simpler input–output models. These fixed proportions are taken from the multiregional input–output (MRIO) table underlying the construction of the trade network, which constitute the baseline state (untipped state) of the model. If, for instance, the transportation sector in a country receives an input of ten billion US$ from the oil sector and 90 billion US$ from the machinery sector, it might have an output of 110 billion US$ according to the MRIO table such that the created surplus would be 10 billion US$. However, the according sector always produces according to these proportions using nine times as much “machinery commodity” as “oil commodity”, and produces ten percent more “transportation commodity” than the sum of its inputs. If a firm receives only a certain fraction of the baseline state of a commodity due to some perturbation, the firm’s output is limited to the same fraction of the baseline output. However, in the Acclimate model firms have idle capacities, i.e. the ability to temporarily produce more than their baseline output, if they have the necessary inputs and demand is high. The dynamics of this anomaly model are focused on perturbations around the baseline state with each agent aiming for maximum profit and minimum costs under local circumstances. After a shock or perturbation ceases the model returns back to the baseline state, which constitutes an equilibrium of the model’s dynamics.
Tipping is not at the centre of the Acclimate model whose scope, as an anomaly model, vanishes for very large perturbations such as bankruptcies. We here, thus, define a simple dynamic for tipping on the trade network while keeping the linear Leontief production assumption for small perturbations, whereas nonlinear dynamics are assumed for larger perturbations. Nonlinear behaviour and tipping is common in economic networks, for instance in the banking sector [5, 86]. The nodes in the trade network are only to be perceived as representative firms, i.e., aggregates of national sectors, which consist of a variety of connected actors—so each node represents a network itself and might show nonlinear as well as tipping behaviour. The standard form of a tipping element defined by the Cuspdifferential equation (see Eq. 3) is not well suited for this purpose. Instead, we are here looking for a new differential equation with the following properties:

1.
The state \(x_i\) of a node i should represent its productivity that is between 0 (no production) to 1 (full production).

2.
The element should react almost linearly to small perturbations as in the Acclimate model.

3.
For large perturbations there should be a collapse of the productivity, including tipping and hysteresis.
To meet these criteria, we propose the differential equation
where a and b are parameters and \(r_i\) is the limiting relative input as in the Leontief production function. The bifurcation diagram is given in Fig. 8a. The first two terms in equation 10 represent a linear response to perturbations, similar to the Acclimate model (see the dotted line in Fig. 8a). The third term is responsible for the nonlinear behaviour, causing tipping and hysteresis (see the dashed line in Fig. 8a). However, an economic tipping element defined by these three terms would be inherently unstable. Even small perturbations would finally lead to a collapse of the node since perturbations are almost always growing due to the structure of the network. However, we know that the trade network is not that fragile. Therefore, we add a logistic growth term to the differential equation to stabilise the network on the individual node level with the weight \(w_\text {log}\). Here, we argue that a certain flexibility in substituting inputs exists. Within limits, it is therefore possible to return to the original production due to the logistic growth term. To illustrate an example, we choose \(a = 4, b = 10\) for the parameters in Eq. 10. Therefore, the two bifurcation points lie at \(r_1=0.4\) and \(r_2=0.6\). The strength of the logistic growth term is chosen as \(w_\text {log} = 0.2\) (see the blue line in Fig. 8a).
To calculate the input term represented by \(r_i\), every flow is normalised to the sum of flows from nodes of that sector to the target node. So the new weight \(w_{c,s\rightarrow i}\) of a link from sector s in country c to node i is given as
With this, we can write the coupling term for the differential equation as
To simulate cascades, we start with all nodes in the untipped state, here \(x_i=1\) for all nodes i. We select a random starting node and tip it by setting its productivity to zero and then evolve the system with PyCascades. We exemplify this for a cascade between three countries, where one node has been tipped artificially (see Fig. 8b). The graph illustrates how the cascade propagates within and across the different countries forming densely connected network communities. Once the cascade reaches a country, most of that country’s nodes tip almost at the same time. However, this gradual and sequential propagation of a tipping event is only one pattern of cascading behaviour observed. In Fig. 9, we show cascades for 30 different start nodes, chosen such that a wide range of different tipping cascades can be observed. Figure 9a shows the number of tipped nodes, and Fig. 9b the average node state \(\langle x\rangle = \frac{1}{N}\sum _{i}^N x_i\).
4 Conclusion
In this work, we have outlined the software package PyCascades, which is designed for simulating nonlinear dynamics, in particular tipping behaviour of interacting systems. For that purpose, two different types of tipping elements (Cusp and Hopfbifurcation type models) are provided in PyCascades as well as different paradigmatic complex network types (Erdős–Rényi, Barabési–Albert, Watts–Strogatz networks) and a stochastic version of the tipping elements supplying Gaussian, Lévy and Cauchy noise. PyCascades is written in the programming language Python and is written with an objectoriented architecture such that it remains flexible and can easily be adapted or extended to further applications or theoretical problems.
However, a distinct limitation is, as of now, that only systems can be investigated, where the individual dynamics part can be separated from the interaction part. We also suspect that there is considerable potential for improvement in some technical details. For instance, more interaction types or multiplicative noise could be implemented. Another distinct constraint of PyCascades is that only paradigmatic dynamics of tipping elements are implemented. In particular, it would be highly desirable to develop processbased tipping elements depending on the respective application.
All in all, due to modular setup, PyCascades has the potential to contribute to relevant questions about the emergence of tipping cascades in various contexts, ranging from economics, ecology, climate science and beyond.
Data Availability Statement
To be used, PyCascades is supplied with a 3clause BSD license. In this repository, you can also find the code and data for the examples and applications that are discussed in this work. In case questions arise, please contact the corresponding authors of this study. My manuscript has associated data in a data repository.
Notes
The current version of PyCascades is stored at https://pypi.org/project/pycascades/.
References
M. Gladwell, The Tipping Point: How Little Things can Make a Big Difference (Little, Brown, 2006)
E.H. van Nes et al., What do you mean, ’tipping point’? Trends Ecol. Evol. 31, 902–904 (2016)
M. Milkoreit et al., Defining tipping points for socialecological systems scholarshipan interdisciplinary literature review. Environ. Res. Lett. 13, 033005 (2018)
T.M. Lenton et al., Tipping elements in the earth’s climate system. Proc. Natl. Acad. Sci. 105, 1786–1793 (2008)
R.M. May, S.A. Levin, G. Sugihara, Ecology for bankers. Nature 451, 893–894 (2008)
D. Helbing et al., Saving human lives: what complexity science and information systems can contribute. J. Stat. Phys. 158, 735–781 (2015)
R.E. Kopp, R.L. Shwom, G. Wagner, J. Yuan, Tipping elements and climateeconomic shocks: pathways toward integrated assessment. Earth’s Future 4, 346–372 (2016)
J.D. Tábara et al., Positive tipping points in a rapidly warming world. Curr. Opin. Environ. Sustain. 31, 120–129 (2018)
I.M. Otto et al., Social tipping dynamics for stabilizing earth’s climate by 2050. Proc. Natl. Acad. Sci. 117, 2354–2365 (2020)
R. Winkelmann et al. Social tipping processes for sustainability: an analytical framework. arXiv preprint arXiv:2010.04488 (2020)
W. Steffen et al., Trajectories of the earth system in the anthropocene. Proc. Natl. Acad. Sci. 115, 8252–8259 (2018)
T.M. Lenton et al., Climate tipping pointstoo risky to bet against. Nature 575, 592–595 (2019)
T.M. Lenton, Tipping positive change. Philos. Trans. R. Soc. B 375, 20190123 (2020)
J.C. Rocha, G. Peterson, Ö. Bodin, S. Levin, Cascading regime shifts within and across scales. Science 362, 1379–1383 (2018)
C.D. Brummitt, G. Barnett, R.M. D’Souza, Coupled catastrophes: sudden shifts cascade and hop among interdependent systems. J. R. Soc. Interface 12, 20150712 (2015)
L.P. Van Gerven et al., How regime shifts in connected aquatic ecosystems are affected by the typical downstream increase of water flow. Ecosystems 20, 733–744 (2017)
M. Scheffer, S. Carpenter, J.A. Foley, C. Folke, B. Walker, Catastrophic shifts in ecosystems. Nature 413, 591 (2001)
D. Comin, B. Hobijn, Crosscountry technology adoption: making the theories face the facts. J. Monet. Econ. 51, 39–83 (2004)
E. Kriegler, J.W. Hall, H. Held, R. Dawson, H.J. Schellnhuber, Imprecise probability assessment of tipping points in the climate system. Proc. Natl. Acad. Sci. 106, 5041–5046 (2009)
M.E. Newman, The structure and function of complex networks. SIAM Rev. 45, 167–256 (2003)
R. Albert, A.L. Barabási, Statistical mechanics of complex networks. Rev. Mod. Phys. 74, 47 (2002)
W. Zou, D. Senthilkumar, M. Zhan, J. Kurths, Reviving oscillations in coupled nonlinear oscillators. Phys. Rev. Lett. 111, 014101 (2013)
T. Gross, L. Rudolf, S.A. Levin, U. Dieckmann, Generalized models reveal stabilizing factors in food webs. Science 325, 747–750 (2009)
J.F. Donges, Y. Zou, N. Marwan, J. Kurths, The backbone of the climate network. EPL (Europhys. Lett.) 87, 48007 (2009)
M.E. Newman, The structure of scientific collaboration networks. Proc. Natl. Acad. Sci. 98, 404–409 (2001)
A. Stožer et al., Heterogeneity and delayed activation as hallmarks of selforganization and criticality in excitable tissue. Front. Physiol. 10, 869 (2019)
C. Gaucherel, V. Moron, Potential stabilizing points to mitigate tipping point interactions in earth’s climate. Int. J. Climatol. 37, 399–408 (2017)
Y.H. Eom, Resilience of networks to environmental stress: from regular to random networks. Phys. Rev. E 97, 042313 (2018)
A.K. Klose, V. Karle, R. Winkelmann, J.F. Donges, Emergence of cascading dynamics in interacting tipping elements of ecology and climate. R. Soc. Open Sci. 7, 200599 (2020)
J. Krönke et al., Dynamics of tipping cascades on complex networks. Phys. Rev. E 101, 042311 (2020)
N. Wunderling, F.J. Donges, J. Kurths, R. Winkelmann, Interacting tipping elements increase risk of climate domino effects under global warming. Earth Syst. Dyn. 12, 601–619 (2021). https://doi.org/10.5194/esd126012021
N. Wunderling et al., How motifs condition critical thresholds for tipping cascades in complex networks: linking microto macroscales. Chaos Interdiscip. J. Nonlinear Sci. 30, 043129 (2020)
N. Wunderling, M. Gelbrecht, R. Winkelmann, J. Kurths, J.F. Donges, Basin stability and limit cycles in a conceptual model for climate tipping cascades. N. J. Phys. 22, 123031 (2020)
N. Wunderling, et al., Network dynamics of droughtinduced tipping cascades in the Amazon rainforest (2020). https://doi.org/10.21203/rs.3.rs71039/v1
P. Virtanen et al., SciPy 1.0: fundamental algorithms for scientific computing in python. Nat. Methods 17, 261–272 (2020)
A. Hagberg, P. Swart, D. S Chult, Exploring network structure, dynamics, and function using networkx. Technical Report, Los Alamos National Lab. (LANL), Los Alamos, NM (United States) (2008)
Y. A. Kuznetsov, Elements of Applied Bifurcation Theory (Springer Science & Business Media, New York, 2013)
R. Abraham, A. Keith, M. Koebbe, G. MayerKress, Computational unfolding of doublecusp models of opinion formation. Int. J. Bifurc. Chaos 1, 417–430 (1991)
E.H. van Nes, W.J. Rip, M. Scheffer, A theory for cyclic shifts between alternative states in shallow lakes. Ecosystems 10, 17 (2007)
M. Scheffer, E. Jeppesen, Regime shifts in shallow lakes. Ecosystems 10, 1–3 (2007)
L. Gardini, R. Lupini, M. Messia, Hopf bifurcation and transition to chaos in lotkavolterra equation. J. Math. Biol. 27, 259–272 (1989)
J. Guckenheimer, J. Labouriau, Bifurcation of the Hodgkin and Huxley equations: a new twist. Bull. Math. Biol. 55, 937 (1993)
A. Timmermann, F.F. Jin, J. Abshagen, A nonlinear theory for el niño bursting. J. Atmos. Sci. 60, 152–165 (2003)
M.M. Dekker, A.S. Heydt, H.A. Dijkstra, Cascading transitions in the climate system. Earth Syst. Dyn. 9, 1243–1260 (2018)
S.E. Zebiak, M.A. Cane, A model el niñsouthern oscillation. Mon. Weather Rev. 115, 2262–2278 (1987)
P. Erdös, A. Rényi, On random graphs, i. Publicationes Mathematicae (Debrecen) 6, 290–297 (1959)
A.L. Barabási, R. Albert, Emergence of scaling in random networks. Science 286, 509–512 (1999)
D.J. Watts, S.H. Strogatz, Collective dynamics of ‘smallworld’ networks. Nature 393, 440–442 (1998)
D. Kondepudi, F. Moss, P.V. McClintock, Observation of symmetry breaking, state selection and sensitivity in a noisy electronic system. Phys. D 21, 296–306 (1986)
L. Gammaitoni, P. Hänggi, P. Jung, F. Marchesoni, Stochastic resonance. Rev. Mod. Phys. 70, 223 (1998)
M. Scheffer et al., Earlywarning signals for critical transitions. Nature 461, 53–59 (2009)
J.M.T. Thompson, J. Sieber, Predicting climate tipping as a noisy bifurcation: a review. Int. J. Bifurc. Chaos 21, 399–423 (2011)
P. Ashwin, S. Wieczorek, R. Vitolo, P. Cox, Tipping points in open systems: bifurcation, noiseinduced and ratedependent examples in the climate system. Philos. Trans. R. Soc. A Math. Phys. Eng. Sci. 370, 1166–1184 (2012)
M. J. Aburn, Y. Ram, Numerical Integration of Stochastic Differential Equations (SDEs) (2017). https://github.com/mattja/sdeint/. Accessed 23 Sep 2020
A. Rößler, RungeKutta methods for the strong approximation of solutions of stochastic differential equations. SIAM J. Numer. Anal. 48, 922–952 (2010)
P.D. Ditlevsen, Anomalous jumping in a doublewell potential. Phys. Rev. E 60, 172 (1999)
P.D. Ditlevsen, Observation of \(\alpha \)stable noise induced millennial climate changes from an icecore record. Geophys. Res. Lett. 26, 1441–1444 (1999)
D. Tesfay et al., Influence of extreme events modeled by lévy flight on global thermohaline circulation stability. Nonlinear Process. Geophys Discuss. 1–16 (2020)
L. Serdukova, Y. Zheng, J. Duan, J. Kurths, Metastability for discontinuous dynamical systems under lévy noise: case study on Amazonian vegetation. Sci. Rep. 7, 1–13 (2017)
Y. Zheng, L. Serdukova, J. Duan, J. Kurths, Transitions in a genetic transcriptional regulatory system under lévy motion. Sci. Rep. 6, 29274 (2016)
C.A. Nobre et al., Landuse and climate change risks in the Amazon and the need of a novel sustainable development paradigm. Proc. Natl. Acad. Sci. 113, 10759–10768 (2016)
E.A. Davidson et al., The Amazon basin in transition. Nature 481, 321–328 (2012)
P.M. Cox et al., Increasing risk of Amazonian drought due to decreasing aerosol pollution. Nature 453, 212–215 (2008)
D.C. Zemp et al., Selfamplified Amazon forest loss due to vegetationatmosphere feedbacks. Nat. Commun. 8, 1–10 (2017)
A. Staal, S.C. Dekker, M. Hirota, E.H. van Nes, Synergistic effects of drought and deforestation on the resilience of the southeastern Amazon rainforest. Ecol. Complex. 22, 65–75 (2015)
E.H. van Nes, M. Hirota, M. Holmgren, M. Scheffer, Tipping points in tropical tree cover: linking theory to data. Glob. Change Biol. 20, 1016–1021 (2014)
M. Hirota, M. Holmgren, E.H. Van Nes, M. Scheffer, Global resilience of tropical forest and savanna to critical transitions. Science 334, 232–235 (2011)
A.C. Staver, S. Archibald, S.A. Levin, The global extent and determinants of savanna and forest as alternative biome states. Science 334, 230–232 (2011)
L.E. Aragão, Environmental science: the rainforest’s water pump. Nature 489, 217–218 (2012)
E.A. Eltahir, R.L. Bras, Precipitation recycling in the Amazon basin. Q. J. R. Meteorol. Soc. 120, 861–880 (1994)
A. Staal, S.C. Dekker, C. Xu, E.H. van Nes, Bistability, spatial interaction, and the distribution of tropical forests and savannas. Ecosystems 19, 1080–1091 (2016)
A. Staal et al., Forestrainfall cascades buffer against drought across the Amazon. Nat. Clim. Change 8, 539–543 (2018)
H.J. Schellnhuber, S. Rahmstorf, R. Winkelmann, Why the right climate target was agreed in Paris. Nat. Clim. Change 6, 649–653 (2016)
Y. Cai, T.M. Lenton, T.S. Lontzek, Risk of multiple interacting tipping points should encourage rapid CO2 emission reduction. Nat. Clim. Change 6, 520–525 (2016)
A. Levermann, R. Winkelmann, A simple equation for the melt elevation feedback of ice sheets. Cryosphere 10, 1799–1807 (2016)
R.A. Wood, J.M. Rodríguez, R.S. Smith, L.C. Jackson, E. Hawkins, Observable, loworder dynamical controls on thresholds of the Atlantic meridional overturning circulation. Clim. Dyn. 53, 6815–6834 (2019)
H. Stommel, Thermohaline convection with two stable regimes of flow. Tellus 13, 224–230 (1961)
L. Caesar, S. Rahmstorf, A. Robinson, G. Feulner, V. Saba, Observed fingerprint of a weakening Atlantic ocean overturning circulation. Nature 556, 191–196 (2018)
Baudin, M. pydoe: The experimental design package for python, software available under the bsd license (3clause). https://pythonhosted.org/pyDOE/index.html (2013). Accessed 25 Sep 2020
M. Lenzen, K. Kanemoto, D. Moran, A. Geschke, Mapping the structure of the world economy. Environ. Sci. Technol. 46, 8374–8381 (2012)
R. Bierkandt, L. Wenz, S.N. Willner, A. Levermann, Acclimate–a model for economic damage propagation. Part 1: basic formulation of damage transfer within a global supply network and damage conserving dynamics. Environ. Syst. Decis. 34, 507–524 (2014)
L. Wenz, S.N. Willner, R. Bierkandt, A. Levermann, Acclimate–a model for economic damage propagation. Part ii: a dynamic formulation of the backward effects of disasterinduced production failures in the global supply network. Environ. Syst. Decis. 34, 525–539 (2014)
J. Maluck, R.V. Donner, A network of networks perspective on global trade. PLoS One 10, 1–24 (2015). https://doi.org/10.1371/journal.pone.0133310
C. Otto, S.N. Willner, L. Wenz, K. Frieler, A. Levermann, Modeling losspropagation in the global supply network: the dynamic agentbased model acclimate. J. Econ. Dyn. Control 83, 232–269 (2017)
G. Fandel, Limitational Production Functions (Springer, Berlin, 1991), pp. 111–146
A.G. Haldane, R.M. May, Systemic risk in banking ecosystems. Nature 469, 351–355 (2011)
Acknowledgements
We thank Dorothea Kistinger for her work implementing the Hopfbifurcation equation into PyCascades and Benedikt Stumpf for many fruitful discussions during the development of PyCascades. This work has been carried out within the framework of the IRTG 1740/TRP 2015/501220 project funded by DFG and FAPESP. N.W. and R.W. acknowledge their financial support. This work is also part of PIK’s FutureLab on Earth Resilience in the Anthropocene. N.W. is grateful for a scholarship from the Studienstiftung des deutschen Volkes. N.W., J.F.D., J.H. and R.W. are thankful for financial support by the Leibniz Association (project DominoES). A.S. acknowledges support from the Talent Programme grant VI.Veni.202.170 by the Dutch Research Council (NWO). A.S. and J.F.D. acknowledge support from the European Research Council Advanced Grant project ERA (Earth Resilience in the Anthropocene, ERC2016ADG743080). J.F.D. is grateful for financial support by the Stordalen Foundation via the Planetary Boundary Research Network (PB.net) and the Earth League’s EarthDoc program, and S.W. acknowledges support by the German Federal Ministry of Education and Research (BMBF) under the research project CLIC (FKZ: 01LA1817C). The authors gratefully acknowledge the European Regional Development Fund (ERDF), the German Federal Ministry of Education and Research and the Land Brandenburg for supporting this project by providing resources on the high performance computer system at the Potsdam Institute for Climate Impact Research.
Funding
Open Access funding enabled and organized by Projekt DEAL.
Author information
Authors and Affiliations
Contributions
NW designed the study together with RW and JFD. NW performed the simulations and prepared the figures for this work with contributions from JKr (in the section: Structure of the core of PyCascades) and V.W. (in the section: International Trade Network). N.W. led the writing of this work with inputs from all authors. J.Kr. developed the software package PyCascades with inputs and extensions from JKo, VW and NW. JFD supervised this study.
Corresponding authors
Ethics declarations
Code availability
The code of this work has been provided as the open source software package PyCascades written in the programming language Python. It is freely available on github under the http://dx.doi.org/10.5281/zenodo.4153102.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Wunderling, N., Krönke, J., Wohlfarth, V. et al. Modelling nonlinear dynamics of interacting tipping elements on complex networks: the PyCascades package. Eur. Phys. J. Spec. Top. 230, 3163–3176 (2021). https://doi.org/10.1140/epjs/s11734021001554
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1140/epjs/s11734021001554