Having recently gotten a basic Swarm model running (with a lot of help
from the Support
list), I think it's time I migrated questions over to this list as I move
on to refinements. So,
hello all! My interest is braided rivers, rivers with either sand or
gravel riverbeds, with
typically wide floodplains and relatively steep slopes. Since the bed is
made up of
movable material, these sands and gravels are moved around by the flowing
water, and
in the process form multiple channels (hence the name braided). You can
see these
processes at work next time you're at the beach and come across water
flowing over the
sand. An interesting aspect of these rivers is their scaling
properties. Regardless of
whether it's a trickle of water flowing over sand or the Bhramaputra River
(a rather large
river), the behaviour seems to be the same: the channels tend to follow a
power law
distribution in both time and space (not unlike turbulence or
earthquakes). There is
debate about why this should be (and it's certainly not the only natural
phenomenon that
seems to do this) and I see Swarm as an ideal environment for some
hypothesis testing.
There are some feedback loops affecting how the river channels evolve,
namely, the
water moves sediment from certain places and deposits it elsewhere, which
in turn
affects where the water flows, which affects the sediment, etc. It's a
classic example of
independent agents following (simple) local rules with global behaviour
emerging from
the interactions (or so I claim).
I currently have a model in which the agents are finite volumes of
water that flow over a
cell surface containing elevation values. The agent moves about by going
in the direction
of steepest slope to the neighbouring cells. A next step is to
incorporate the ability of the
water agent to pick up sediment in certain conditions and deposit it
somewhere else
under different conditions. Then it gets a bit tricky. There will likely
be multiple agents in
certain cells which are fatal (given Discrete2d) but I'm at work on
that. I'm sure
everyone's Swarm model has unique requirments, and here are some of mine.
One theory I'd like to test is that braided rivers are hiearchically
structured, i.e. what
happens at one scale can constrain what happens at another scale. Is it
possible to
have multiple cell surfaces, each with its own resolution (cell size)
living in the same
space such that linkages can be set up between the scales? The nature and
direction of
the linkages are things to be investigated. What it might mean in effect
is that before a
water agent can move to a particular cell, it might need to check with
what's happening at
another scale (or scales) before doing so.
Another challenge - anyone who's watched a river flow will recognise
that different
parts of the river flow at different velocities, which gets us into the
area of asynchronus
updates. Much of my preliminary reading of the Swarm documentation led me
to believe
that this is possible and is one of the main attractions of using
Swarm. Does anyone
have any direction on how to carry that out?
My apologies if that's been a rather long-winded buildup and thanks
for any responses.
Crile
Dr Crile Doscher
Natural Resources Engineering
Lincoln University
Canterbury
New Zealand