Cellular Automata Model of Wood Combustion

An important, if a little out-of-fashion, class of simulations is cellular au­tomata. Cellular automata were particularly popular in the 1980’s because they are simple to implement and computationally efficient. At the heart of cellular automata is the idea that by making the computer follow very simple rules in local areas, or cells, quite rich and complicated behavior can emerge. For example, the equations that capture fluid dynamics (Navier Stokes equa­tions) can be quite complicated to solve numerically, yet lattice gas cellular automata can capture fluid dynamics by locally propagating and colliding discrete particles of fluid on a lattice. The correct fluid dynamics can emerge from these simple rules, and avoid the complexities of having to solve differen­tial equations. However, as computers have become increasingly faster, solving complex systems of equations is now rather routine and more efficient cellular automata models are no longer a necessity. Furthermore, cellular automata models can be more difficult to parameterize. That said, cellular automata models are still an important class of models that may well come back into fashion in the future, and remain very computationally efficient. This makes cellular automata models perfect for our considerations here, as we can im­plement such models very easily in a spreadsheet.

The cellular automata model considered here captures the combustion of a log of wood (or other solid fuel) through a model which is similar in many aspects to the traditional forest fire models. The forest fire models consider regions in space to be populated with trees or other vegetation, which can change state to a region which is on fire. The probability of a region, or cell, being ignited depends on whether or not neighboring cells are also on fire. Once a cell is on fire, there is a probability that the cell will burn out and the site is considered to be empty. This is a classic model, and has been used to capture the dynamics of disease spreading and other phenomena, besides that of the spread of forest fires. Here, however, we will apply the model to burning solid fuel. In contrast to traditional forest fire models, oxygen supply is important to burning wood, where wood will char without oxygen but not burn, and heat can be transferred through radiation in a non-local manner. While the model considered here is much simpler than models which incorporate differential equations which couple mass transport, chemical reactions, heat transfer, and fluid dynamics, the cellular automata model can capture the basic behavior of these systems.

The burning wood consists of a series of states. First we start with wet wood, and then progress through two states of drying wood, a state of dry wood, three states of char, a state of burning char, before finally ending up with a state of ash. Although, after ash the site can be transitioned to being empty (or occupied with air). For each possible transition, from one state to the next, there is a minimum amount of energy which is required for the transi­tion to occur. Once a transition occurs, energy is either consumed (considered a negative energy contribution) or released (considered a positive energy con­tribution), and this energy is stored locally within the cells. Finally, for a transition to occur a stochastic condition must be met, and there is a proba­bility of a given transition occurring within the model. Some transitions may also require an neighboring empty cell (if oxygen is needed for the underlying process).

The table below lists the index for a given state (which simply helps define which state we are in), the minimum energy required to transition to the next state (Etrmansltlon), the amount of energy which will be released if the transition occurs (ЕГЄІЄс+і^), and the probability of a transition occurring to the next state (ЙГЛ+ГП).

Type of cell

index

Etransition

Emin

Ereleased

1

transition

Pk^k + 1

air/empty

0

wet wood

1

1

-1

1/2

drying wood

2

1

-1

1/2

drying wood

3

1

-1

1/2

dry wood

4

2

-1

1/2

char

5

2

2

1

char

6

2

2

1

char

7

3

2

1

burning char

8

0

4

1

ash

9

0

0

1/5

This is a very new model, and as such most of the parameters are rough estimates, but if the model is to describe an exothermic reaction which can sustain itself then during the entire process the sum of energy released (neg­ative if energy is consumed) must be greater than zero. Furthermore, in the original model energy “packages” were considered to be mobile, which enables the fire to spread, and each “package” (an energy of 1) was subject to random walk statistics. In other words, during each iteration there is a probability of the local energy moving in discrete packets in different directions. Here, to make the model more tractable to spreadsheet modeling, the energy diffuses out continuously using a moving average approach.

The spreadsheet implementation of the cellular automata model is depicted in Figures 6.8 through 6.15. In Figure 6.8 the above table is written at the top of the spreadsheet, and referenced in the cells below when required. Also at the top is a measure of the porosity of the system (the fraction of the system which initially consists of empty space). A section to the right of the area of the spreadsheet shown in Figure 6.8 (not shown) is used to calculate the initial configuration using code of the form

The parameters for the model include the index, which indictaes the state of a cell, the minimum energy required to transition to the next state, the energy released when transitioning to the next state and, finally, the probability of undergoing the transition in a given time step.

A

В

C

/Л*

E

F

G

H

1

J

1

Cellular Autorr

lata Model of

Combustion.

2

гУ/

3

Constants

Г>

4

A

5

index

E rninfttrans

E t-sk+1

p k-sk+i

Porosity

0.1

6

Air

0

7

Wet wood

l

1

-1

0.5

8

dryinq wood

2

1

-1

0.5

Iterate

9

drying wood

3

1

-1

0.5

10

dry wood

4

2

-1

0.5

11

char

5

2

2

1

12

char

6

2

2

1

13

char

7

3

2

1

14

burning char

a

0

4

1

15

ash

9

0

0

0.2

16

17

18

19

State

20

1

2

3

4

5

6

7

8

9

21

1

0

1

1

1

1

1

1

1

1

22

2

1

1

Л 1

1

1

1

1

1

1

23

3

1

1

f/ 4

1

1

1

1

1

1

24

4

1

3

/У’ 2

2

3

1

1

2

1

25

5

6

У *

9

9

1

4

0

5

26

6

9

Л

9

0

0

9

7

9

0

27

7

0

//e

0

0

0

0

9

0

0

In cells B21:AO60 the current state of the system is contained – with the integers in the cells indicating the local state as defined by the indices.

FIGURE 6.8

The spreadsheet implementation of a cellular automata model of wood com­bustion. System parameters, a button and the state of the system are depicted.

=IF($I$5>RAND(), 0, 1)

Once the initial configuration is established it is possible to copy and paste this across to the actual cells which contain the state variables (the index which characterizes what state the burning wood is in). The state variables are stored in cells B21:AO60 (these cells just contain numerical values and not any code) and shown at the bottom of Figure 6.8. Also in Figure 6.8 is a button which runs a macro necessary to update the simulation (copy the calculated solution for the next time step over the numerical values representing the current time step). We’ll come back to this macro later.

Figure 6.9 depicts the region of the spreadsheet containing the energy stored in the system (cells B67:AO106). Recall that in the current model this energy variable represents energy (for example, in the form of heat transfer) and temperature as well. This energy variable is updated locally as the fire burns the wood, but also spreads out spatially which we’ll discuss in a moment.

In cells B112:AO151 we check to see if a site in the simulation is neigh-

Cellular Automata Model of Wood Combustion

FIGURE 6.9

The spreadsheet implementation of a cellular automata model of wood com­bustion. Local energy in the system.

boring an empty site. This is depicted in Figure 6.10. For example, the code in cell C113 is

=IF((C21=0) OR (B22=0) OR (C23=0) OR (D22=0), 1, 0)

This is important as a couple of the reactions require air or empty space in order to occur. In particular, the reactions of char to burning char (index 7 to 8) requires oxygen and the removal of ash requires empty space. In other words, for either of these reactions to occur the site has to be adjacent to an empty space.

In cells B158:AO197 we check to see if any of the sites occupied by wet wood (index 1) are going to undergo a reaction to dry wood (index 2). For example, the code in cell B158 is

=IF(AND((B21=1), (B67>$C$7),($E$7>RAND())), 1, 0)

where the first part of the AND statement is just checking that the index is 1 (B21=1), the second part is checking that the energy at this site (cell B67) is greater than the minimum required (cell C7) and, finally, that the probability that this reaction is to occur has been met. If all these conditions are met, then the cell is filled with a number 1, to indicate that the reactions will occur, else it is filled with a number 0. Similar calculations are required for the other reaction in the system in an almost identical fashion. Except for the reactions which require oxygen or empty space, which have an additional condition. For example, the reaction from char to burning char requires oxygen and so the check to see if a reaction from state 7 to state 8 is to occur is of the form calculated in cell B434

A

в

C

D

E

| F

G

H

1

J

154

Is transition g

oing to occur? #1

155

156

157

1

2

3

4

5

6

7

8

9

158

1

0

0

0

0

0

0

0

159

2

0

0

0

0

0

0

0

0

160

3

0

0

0

0

0

0

0

0

161

4

1

0

0

0

1

0

0

0

162

5

0

0

0

0

0

1

0

0

0

163

6

0 0

0

0

0

0

0

0

0

164

7

0

0

0

0

0

0

0

0

0

165

8

0 0

0

0

0

0

0

0

0

166

9

____________ 0____________ 0

0

0

0

0

0

0

0

167

10

0

0

0

V q

0

0

0

0

168

11

0

0

0

/

0

0

0

0

169

12

0

0

0

I

A о

0

0

0

0

170

13

0 0

0

0

0

0

0

0

171

14

0

0

0

0

0

0

0

0

In cells В 158:A0197 we check to see if a reaction from state 1 to state 2 is to occur. The code in cell В158 is

=IF(AND((B21=1), (B67>$C$7),($E$7>RAND())), 1, 0)

Similar calculations are required to check if other reactions are to occur.

Cellular Automata Model of Wood Combustion

Подпись: FIGURE 6.10 The spreadsheet implementation of a cellular automata model of wood combustion. Check if a site has access to oxygen.

FIGURE 6.11

The spreadsheet implementation of a cellular automata model of wood com­bustion. Determination of whether a transition from state 1 to state is to occur.

A

В

c

D

E

F

G

H

1

J

568

Is transition gi

Ding to occur?

Combined

569

570

571

1

2

3

A

5

6

7

8

9

572

1

0

0

0

0

0

0

0

0

0

573

2

0

0

0

0

0

0

0

0

0

574

3

0

0

0

0

0

0

0

0

0

575

4

1

1

1

0

1

1

0

0

0

576

5

1

0

0

0

0

1

0

0

1

577

6

0

0

0

0

0

0

0

0

0

578

7

0

0

0

0

0

0

1

0

0

579

8

0

0

0

0

0

0

0

0

0

580

9

0

0

0

0

0

0

0

0

0

581

10

0

0

0

0

0

0

0

0

0

582

11

0

0

0

0

0

0

0

0

0

583

12

0

0

0

0

0

0

0

0

0

584

13

0

0

0

/

0

0

0

0

0

585

14

0

0

0

7

A о

0

0

0

0

586

15

0

0

0

c

0

0

0

0

0

587

16

0

0

0

c

0

0

0

0

0

Once we have checked to see if individual reactions might occur, we combine these to see if any reaction is going to occur. For example, the code in cell B572 is =SUM(B 158,B204,B250,B296,B342,B388,B434,B480,B526)

FIGURE 6.12

The spreadsheet implementation of a cellular automata model of wood com­bustion. Determination if any reaction is to occur.

=IF(AND((B21=7), (B67>$C$13),(B112 = 1),($E$13>RAND())), 1, 0)

where the additional check (B112 = 1) simply looks at the above determi­nation as to whether or not a site is neighbored by an empty site. This is depicted in Figure 6.11.

We also have to determine if any reaction is going to occur (regardless of which reaction it is) and so in cells B572:AO611 we simply add up all the numbers which checked if any of the reactions were to occur. See Figure 6.12. For example, the code in cell B572 is

=SUM(B158,B204,B250,B296,B342,B388,B434,B480,B526)

Of course, only one reaction can occur within a given cell and so the result of this is still an integer which is 1 if a reaction is to occur (any reaction this time) and 0 if nothing is to occur.

Based upon the above determination of any reaction occurring we need to transition the state of the variables. This is depicted in Figure 6.13, which simply shows the area of the spreadsheet where we check if a transition occurs and if it has we add 1 to the current state, such that it transitions to the next state. For example, in cell B618 we include the code

=IF(B572=1, B21+1, B21)

Note, however, that if a site is occupied by ash then it will react to index 10 (which doesn’t exist) and so we need to loop this back around to make any sites with index of 10 equal to 0. For example, the code in cell B664 (not shown) is

614

A

В

c

D

E

F

G

H

1

J

Update state

in transition

615

616

617

1

2

3

4

5

6

7

8

9

618

l

0

1

1

1

1

1

1

1

1

619

2

l

1

1

1

1

1

1

1

1

620

3

l

1

0

1

1

1

1

1

1

621

4

2

4

3

2

4

2

1

2

1

622

5

7

0

4

9

9

2

4

0

6

623

6

9

0

9

0

0

9

7

9

0

624

7

0

0

0

0

0

0

10

0

0

625

8

0

0

0

0

0

0

0

0

0

626

9

0

0

0

0

0

0

0

0

0

627

10

0

0

0

0

0

0

0

0

0

628

11

0

0

0

0

0

0

0

0

0

629

12

0

0

0

Л о

0

0

0

0

0

630

13

0

0

0

0

0

0

0

0

0

631

14

0

0

0

г0

0

0

0

0

0

632

15

0

0

0

0

0

0

0

0

0

633

16

0

0

0

0

0

0

0

0

0

If a transition occurs then simply update the index. The code in cell B618 is =IF(B572=1, B21+1, B21)

FIGURE 6.13

The spreadsheet implementation of a cellular automata model of wood com­bustion. Index is updated if a transition occurs.

=IF(B618=10, 0, B618)

which performs this calculation and creates the final updated state variables of the system (just waiting to be copied and pasted up to the top of the simulation for an iteration in the model). However, we still have to update the energy in the system.

If a reaction occurs then energy can be released (or if the reaction requires energy then a negative amount is released). To determine how much energy is released we need to check if any of the reactions occurred. This is depicted in Figure 6.14. For example, the code in cell B709 is

=IF(B158=1, $D$7,0) + IF(B204=1, $D$8,0) + IF(B250=1, $D$9,0) +

IF(B296=1, $D$10,0) + IF(B342=1, $D$11,0) + IF(B388=1, $D$12,0)

+ IF(B434=1, $D$13,0) + IF(B480=1, $D$14,0) +

IF(B526=1, $D$15,0) + B67

which simply adds the energy from the reactions to the original energy (in cell B67). For example, in the above code, IF(B158=1, $D$7,0) simply states that if a reaction from index 1 to 2 occurs (which was calculated in cell B158) then add the energy released during this reaction (stored in the table at the top of spreadsheet in cell D7) but if no reaction occurred then add nothing.

Figure 6.15 depicts the region of the spreadsheet where we take this up­dated energy and allow it to spread out to some extent. Recall that in the original model there was a random walk assigned to “units” of energy (with

A

В

C

D

E

F

G

H

7 1

705

Update energy if in transitio

i.

706

707

708

1

2

3

4

5

6

7

8

9

709

1

0.235953163

0.218327078

0.199560644

0.183937447

0.174020087

0.150797116

0.132161421

0.116900689

0.09580261

710

2

0.312606826

0.322901783

0.271637687

0.286811298

0.2599731

0.234683963

0.205934

0.192726222

0.158311457

711

3

0.454158847

0.528266574

0.483359546

0.6218722

0.572211445

0.453768154

0.440817587

0.292166873

0.380806572

712

4

0.340333643

0.045591487

0.336658371

2.37845083

1.246272982

0.020374922

0.900387033

0.748877227

0.732421782

713

5

5.834559097

3.28699747

4.312839918

6.464667979

5.866733335

2.046037928

2.36916638

2.413541752

4.306664825

714

6

5.722652015

5.388365227

5.931539119

6.375636012

5.688678329

4.198497328

4.30484526

4.797614611

5.240949707

715

7

5.476464142

5.388687355

5.758924968

5.62535266

5.381618332

5.209875496

5.279914223

5.581090983

5.929899981

716

8

5.122279124

5.08556159

5.350947811

5.385847985

5.483577324

5.508705844

5.511644804

5.571727849

5.693973395

717

9

5.143878525

5.191662566

5.28952341

5.395949121

5.50853433

5.554438867

5 535058874

5.48979204

5.461063928

718

10

5.292747032

5.321791365

5.375625154

5.451955992

5.529184121

5.565757514

5.546649592

5.481077496

5.392247066

719

11

5.419619573

5.435603658

5.470432394

5.520260276

5.567545653

5.588681917

5.568082535

5.503076828

5.405133909

720

12

5.55561548

5.562559216

5.582488203

5.609488991

,5.630782917

5.631400226

5.600163998

5.534244132

5.440083119

721

13

5.73110926

5.7296748

5.732604011

5.73479562Ї 5.9028326ЗІ

‘6.727711569

5.701937635

5.650924111

5.574419442

5.478294517

722

14

5.954243804

5.944085514

5.927897576

.864349593

5.807582457

5.729810924

5.633069008

5.52410799

723

15

6.220910838

6.201885732

6.16608487

6.113138441

6.042145248

5.952158701

5.843646336

5.7204115

5.590131563

724

__________ 16

6.523768482

6.496270522

6.441588669

6.361589794

6.258523587

6.134868594

5.993950058

5.841197146

5.684948546

We add together the energies that are released from the reactions to the original energy to get the new energy. The code in cell B709 is =IF(B 158=1, $D$7,0) + IF(B204=1, $D$8,0) + IF(B250=1, $D$9,0) +

IF(B296=1, $D$10,0) +IF(B342=1, $D$11.0) + IF(B388=1, $D$12,0) + IF(B434=1, $D$13,0) + IF(B480=1, $D$14,0) + IF(B526=1, $D$15,0) + B67

FIGURE 6.14

The spreadsheet implementation of a cellular automata model of wood com­bustion. Calculation of new energy after transition occurs.

an energy value of 1) and these units randomly wandered around. To simplify the implementation in a spreadsheet (without I believe substantively changing the model) we will just apply a moving average to the energy and allow the energy to diffuse out.

For example, the code in cell C756 is

=0.2*(2*C710+0.75*(C709+D710+B710+C711))

This mimics the probability of “units” of energy moving to a neighboring direction (either up, down, left or right) being 0.15 and the probability of the energy not moving being 0.4 (although here we don’t have the probability of “units” of energy moving around, but in effect split the “units” up and allow these proportions to move instead). To maintain similar probabilities at the boundaries (with less directions for the energy to move in) we modify the above code. For example, in cell B755 the code is

=0.2857*(2*B709+0.75*(C709+B710))

and in cell C755 the code is

=0.23529*(2*C709+0.75*(D709+B709+C710))

Although it might be better to allow the probability of the energy moving

A | В

C | D

E

F | G

H

■ 1 j 1

751

Energy diffuses out

752

753

754

1

2 3

4

5 6

7

8 9

755

1 0.2485895

0.236576059 0.212831086

0.203095014

0.186836947 0.166407285

0.145773142

0.129249283 0.106675457

756

2 0.325870532

0.328786438 0.302550066

0.315337584

0.294148259 0.254444441

0.232431979

0.193087442 0.181075485

757

3 0.422162724

0.407208379 0.457109043

0.806873848

0.616167543 0.371720449

0.454165444

0.38135089 0.364946515

758

4 1.277953955

0.692075003 1.217699615

2.251801062

1.824174773 0.705119883

0.897040231

0.950328507 1.20775716

759

5 4.395594968

3.652002347 4.128115408

5.425916206

4.663541917 2.686630966

2.397388348

2.798765157 3.308819595

760

6 5.63986492

5.204827485 5.647980566

6.106790118

5.548844083 4.266814483

4.218716985

4.55011 5.731484905

761

762

7 5.441820568

8 5.18202377

5.411872331 5.648049029 5.192261165 5.368357818 5.20277826 5.312937062 5.323062308 5.380305536

5.685445159

5.432713232

5.453769904 5.139260557 5.461136903 5.467412811

5.20308417

5.48896894

5.469309893 5.77947746 5.570166323 5.698646026

763

764

9 5.174679698 10 5.293898217

5.403758906

5.453935198

5.497886147 5.539484031 5.525742672 5.55914618

5.529402345

5.5411563

5.503256038 5.487829256 5.482195827 5.401580217 5.499511442 5.404589592 5.531359161 5.437380198 5.574247542 5.477303607 5.635540081 5.526308931 5.724371208 5.594707784 5.845365328 5.690318635

765

766

767

768

769

770

11 5.423955379

12 5.563713692

13 5.739162877

__________ 14 5.960029066

__________ 15 6.223831126

__________ 16 6.52375954

5.440401846 5.475269551

5.523017565 5.567354646 5.585390656

5.563018864

5.570531008 5.589257973 5.73742362 5.739270034 5.949689492 5.933000085

5.614044649 5.632735133 5.630795061 5.739813829 /730864493 5.703417808 5.907160239/ ^67780624 5.810271511

5.59776325

5.651319444

5.732207656

6.204857055 6.169110511 6.496522244 6.442312955

6.116153258 045083647 5.955099876 6.36286808 260340989 6.137240542

5.846908212

5.997058464

In the current model the combustion spreads spatially through the diffusion of the energy. The code in cell C756 is =0.2*(2*C710+0.75*(C709+D710+B710+C711))

FIGURE 6.15

The spreadsheet implementation of a cellular automata model of wood com­bustion. Allow energies to diffuse to neighboring regions (required for fire to spread).

to be less if this is an actual physical barrier (such as the edge of the burn­ing sample), and include energy being released to its environment (which is essentially the entire point point of burning the fossil fuel).

Once we have the updated states and the updated energy calculated, to finish the iteration we simply have to copy these up to the top of the simulation to replace the old values. Upon doing this, of course, the spreadsheet will repopulate itself with new values and another iteration will have occurred. However, if we copy the new states first then the energy will update based on these states (and not on the current states as it should do) or vice versa, if we copy the new energies then the states will be recalculated based on these new energies before we’ve had a chance to copy the states. Therefore, we copy the energy and states and paste (using paste special to paste only the numbers) to a separate portion of the spreadsheet (not shown). Then copy these values to the top of the spreadsheet. This avoids updating the state or energy separately. The above copy and pasting is recorded in a macro, such that running the macro allows an iteration to occur. Once we have this macro, we can create a button which when pressed will perform this macro and update the system to the next iteration.

Some preliminary results from this simulation are shown in Figure 6.16. Three snapshots are shown after 12, 24, and 36 iterations. The shades of gray correspond to the state of the burning sample, with an index of 0 representing empty space. An index of 1 represents wet wood and as it burns the state transitions through to ash which has an index of 9. In the initial conditions some of the sites are considered empty, while most of the sites are considered to be wet wood. The initial energy is 0 everywhere in the system, except for a small region of the simulation on the left boundary of the simulation which is subject to a localized high energy input (ignition). As a consequence the wood burns in this localized region, releasing more energy in the process, while also spreading out. As can be seen, the fire spreads out and propagates through the sample, and would eventually consume all of the biofuel. It should be noted that while this model is a wonderfully simple model that correctly captures the qualitative behavior of the burning of fossil fuels, it is very hard to parameterize such models. Perhaps this model could be mapped on to a more complicated model (incorporating, for example, mass transport, chemical reactions, heat transfer, and fluid dynamics) which might allow the above parameters in this simple cellular automata model to be parameterized.

6.1 Exercises

1. Systematically vary the parameters in the Droop model and determine which parameters are most important when optimizing biomass yield.

2. Systematically change the frequency with which the light intensity varies in the photosynthetic factory model. Is there a frequency which maximizes the algae growth rate? Plot the maximum algae growth rate as a function of frequency.

3. Simulate the growth of algae using the photosynthetic factory model in a photobioreactor. Note that the variation in light intensity, in a real photo­bioreactor, is likely to depend on the amount of algae present in the water. If the water is free of algae then the light intensity will be constantly high, as the water is clear. However, if there is a substantial amount of algae in the water then it may be quite opaque and only the algae at the surface of the photobioreactor tube will receive any light. Using the Beer-Lambert law modify the photosynthetic factory model such that the variations in light in­tensity are due to the different levels of light experienced by the algae as they circulate around the photobioreactor tube. The Beer-Lambert law is given by

I = Ioe-xaN (6.23)

where I is the light intensity, I0 is the light intensity outside the photobiore­actor, x is the distance through the water which the light passes, N is the algae concentration (calculated in the photosynthetic factory model), and a is an attenuation coefficient for the algae in the water.

4. Simulate a photobioreactor subject to the optimum amount of light using

Cellular Automata Model of Wood Combustion

FIGURE 6.16

Example of combustion of a piece of wood (two-dimensional square in current model) using a cellular automata model. The index varies from 0 (empty space), through wet wood (1) all the way up to 9 (ash).

 

the photosynthetic model. In particular, when the algae concentrations are small the entire photobioreactor is subject to light, and the optimum amount of light for growing algae is likely to be small. However, as the algae grows and and the water becomes increasingly turbid, the optimum intensity of light is likely to increase.

5. Rather than have the energy diffuse out as a continuous function in the cel­lular automata model of wood burning, incorporate a scheme where packets of energy are able to randomly move around in the form of a random walk. Should this random walk be guided, or biased in any way?

6. To capture gravitational effects in the cellular automata model of wood burning, enable filled sites to “fall” down and occupy empty sites. In other words, if there is an empty site in the model then there should be a probability that the solid material above it would be unstable enough to fall down and occupy this empty space. Obviously this wouldn’t happen all the time, as the burning wood still maintains some structural stability, but over time we might expect to find a pile of ash on the floor and not a solid block of ash filled with air pockets (as would occur currently in the model).

Additional Reading

Barsanti, L., & Gualtieri, P. (2014). Algae: Anatomy, Biochemistry, and Biotechnology. CRC Press, Taylor & Francis Group, Boca Raton, FL.

Updated: September 24, 2015 — 2:11 am