Skip to content

FiPyRhizome

Jonathan Guyer edited this page Sep 26, 2014 · 1 revision

!FiPy: Rhizome

Something new is happening in writing. For decades, theorists have attempted to stage small literary revolutions by creating and dissecting a variety of novel methods for approaching the Text. The hope has been that the proper application of critical theory might cause a book to stand on its head and dance around. But books are, if prone to magic and revolution, also prone to recalcitrance. At one moment they're atop the barricades waving flags, at the next they're on an end table gathering dust. Soon enough, claims are being made that theorists were only dreaming about these magical dancing texts. Show the naysayers a book and it just lies limply in your hands. Laughter, mockery, and shame abound.

But now something new has emerged. A form of text with gusto to spare. Proof positive that text can perform and speak and act, not only in the hidden rooms of the academic ivory tower, but out there in the Real world. A text whose authors might die or trade seats or take vacations or continue writing furiously, and still it is endlessly born and living. A text whose rhizomatic lines of flight and infinite machine connections are plainly visible. A text that makes no efforts to disguise its role in an economy of discourse and social power, that brandishes it with relish. A text written by a group of computational physicists in the Metallurgy Division and Center for Theoretical and Computational Materials Science (CTCMS) in the Materials Science and Engineering Laboratory (MSEL) of the US government-run National Institute of Science and Technology (NIST). (1)

FiPy, or A Finite Volume PDE Solver Using Python is a package (a collection of code that facilitates the writing of computer programs) that models a variety of microscopic physical processes. It uses a finite volume (FV) approach (a method of simplifying coupled sets of partial differential equations) to approximate gradual changes of various physical properties as fields of intensive states. (2) It is used by scientists to create maps of how alterations in a variety of procedures will affect the materials upon which they act. I use the term "maps" specifically in the sense that Deleuze and Guattari establish in A Thousand Plateaus, designating something "entirely oriented toward an experimentation in contact with the real." (3) These models do not simply trace what is already known about the material world; they construct an understanding of processes that were previously known only through their results. They "dissect the mechanism" of physical laws that would otherwise be aesthetically pleasurable mathematical form without material content, much like "[t]he law... written in a porno book" (4) of Kafka's Trial.

To provide a more concrete example: PDE models produced using FiPy have been used to map out a method for the electrodeposition of microscopic amounts of copper to create wiring for circuits in silicon computer chips. (5) This means that, rather than plugging a series of numbers into the necessary equations and seeing which one produces the kind of wiring they need, scientists examine these models and are told what values will lead them to their desired outcome. FiPy was (and will continue to be) written to provide a set of tools that will enable all scientists to quickly write programs modeling various aspects of physics. Rather than spending great amounts of time and energy to write a sloppy, idiosyncratic program that solves only a single problem at a time, scientists can now quickly compose a program for mapping out the physical process that interests them. They write these programs using bits and pieces, terms and modules, that have been coded into FiPy. (6)

Given this background, it quickly becomes evident that FiPy is a perfect rhizome. "Any point of a rhizome can be connected to anything other." (7) Because of its engagement with the physics of materials, FiPy forms a rhizome with all physical substrates. It is determining the characteristics of the steel that will construct our cities. It is creating the alloys that will assemble our war-machine. It has already started to define the circuits that will replace the computer I am using to write this text and build the computers on which FiPy will be continually reconstructed. At the same time, it connects with the discourse of scientific research. It attaches to the production of knowledge. Even using it requires installing the package itself into your installed version of Python, (8) meaning it reconstructs the language in which it is constructed.

The FiPy-text-machine itself only exists to the extent that it is written and rewritten into new programs by its users. Rewritability means there is no fixed point or unity in the code-texts that are produced with and make up FiPy. (9) Even the body of FiPy as defined by the installable package can be and is rewritten infinitely. It is no "mother tongue" (10) because the extent of its use and modification forms an endless continuum of intensive states. Even Python itself experiences constant flux; packages and libraries and modules are added and changed at will. FiPy is therefore an assemblage of multiplicities; "it ceases to have any relation to the One as subject or object." (11) There is no One subject of authorship because the users all serve as authors, and the package itself is developed by a rotating team consisting of many scientists who join the project for varying amounts of time. There is no One object of FiPy because its object is every possible user and every possible problem. As per the principle of asignifying rupture, (12) any break in the chain of authorship or use or content of FiPy extends infinite lines to new potential accumulations of authors or problems or code. It is encoded in countless forms and stored in countless places (some argue that it inheres in the very study of physics); to reliably destroy it one would need to destroy every computer, burn every scrap of paper, kill everybody who knows about the project and eliminate all scientific pursuit for good measure. Otherwise it simply regrows and sends out new connections and is distributed. It extends endlessly into a multiplicity of physical products created by a multiplicity of programs written for a multiplicity of problems by a multiplicity of users, who employ a multiplicity of versions of FiPy that have been worked on by a multiplicity of coders.

In spite of all this rhizomatic spectacle, there are some potential criticisms of this reading of FiPy that deserve consideration. One might point out that Deleuze and Guattari insist on the complete disjuncture between the rhizome and any sort of genetic axis or deep structure. (13) Aren't the laws of physics precisely the "objective pivotal unity upon which [FiPy] is organized" (14) ? Can't we find a "base sequence" in Python's syntax or the overly hierarchical nature of computers? To put it very bluntly, no. First of all, the "laws" of physics (upon which FiPy is based) are the absolute structure of the physical universe to the same extent that the Constitution is a precise transcription of the will of God. They are simply the best guesses made by certain men after a great deal of thought about a very limited set of observations. Our knowledge of physics approximates what can be seen taking place in the physical world, just as FiPy's Finite Volume method approximates the outcome of the equations that have been derived from these physical laws. On both levels, these "absolute" laws reveal themselves as a somewhat inconsistent set of tendencies that modulate the speed and direction of the endless, unrestrained pursuit of an ever-receding Truth. The scientific method consists of observing a phenomenon, writing a law that might cause such a phenomenon, attempting to set up a situation where that law might be followed, and trying to determine whether or not what occurred had any bearing on the law. This is the sort of law upon which FiPy is based. Objectivity is nowhere to be found.

As for the computational aspect of FiPy, the situation appears even more grave. Deleuze and Guattari have already pronounced that computer programmers "still cling to the oldest modes of thought in that they grant all power to a memory or central organ." (15) Indeed, the computer science of the 1980s was dominated by this mindset. But this is no longer the case. Instead of bowing to the old order, FiPy epitomizes the kind of computational practice that has pulled the rug out from under the punchcard-wielding dictators. FiPy and Python were not designed to remain caged in the rudimentary architecture of lumbering, room-sized mainframes operated by a handful of professionals. Python began its existence as a programming language for Amoeba, (16) an experimental operating system designed to engage with precisely the sort of "acentered systems" (17) Deleuze and Guattari demanded as an alternative to arbor-computers. Their musings about the possibility of a "finite networks of automata in which communication runs from any neighbor to any other, the stems or channels do not preexist, and all individuals are interchangeable, defined only by their state at a given moment- such that the local operations are coordinated and the final, global result synchronized without a central agency" (18) more or less perfectly predict the standard operating environment in which most work with Python and FiPy is done. Both the development team (a term which simply designates the most active participants in the project) and the user base engage with FiPy through an endless exchange of discourse and code-text over the internet. Discussions arise over mailing lists, personal emails, message boards, etc. Code is written and submitted by independent individuals, interdependent groups, and especially pairs of coders who type over one another's shoulders on the same machine (I will discuss this method in greater detail later). Additionally, the design of Python is expressly intended to enable it to adapt to any operating system or environment. Each machine and each OS has its own "base sequence" of constituent forms, but Python (and therefore FiPy) can engage with any possible structural iteration with a relatively trivial amount of work. The problem of hierarchical structure therefore dissolves.

We must now deal with a much more fundamental problem. This whole time, I have been entirely blas� in reading FiPy according to what amounts to literary theory. I would be delighted if this application were entirely transparent, but this is not the case. In an effort to at least acknowledge the demands of orthodoxy, I ought to provide some justification for all this mischief. Fortunately, Deleuze and Guattari are more than happy to provide it for me in the form of "minor literature". As they describe it, "[a] minor literature doesn't come from a minor language; it is rather that which a minority constructs within a major language." (19) Within a major language? Yes, on a number of levels. Python itself, as a so-called "high-level" programming language, is essentially a method of writing computer programs in plain English. To the extent that it is feasible and relevant, it employs the terms and syntax of normal written language. Obviously, it is the kind of written language that one mostly finds in descriptions of math or computation, but it is certainly a far cry from the gobbledygook of ones and zeros or gibberish of hash marks and abstruse commands that one finds in most code. Additionally, FiPy is a construct by material physicists within the language of computers; Python doesn't inherently contain any discourse of Finite Volume physics-modeling. Even the mathematical language describing these physical processes is a linguistic colonization; it is an attempt to enact subjective experiences of concrete physics within the abstract language of calculus.

FiPy therefore embodies a whole interrelated system of language in varying states of deterritorialization. Deleuze and Guattari discuss this process in terms of "a subject of enunciation, who is in connection with sense, and a subject of the statement, who is in connection, directly or metaphorically, with the designated thing." (20) In the linguistic accretions around FiPy, as in Kafka's work, the process of "sensing" dissolves. "Sense" in this case amounts to experience or observation of the world as a physical substrate. The goal of FiPy, in replacing expensive physical experiments with predictive and determining models, is to create a sort of "language torn from sense, conquering sense, bringing about an active neutralization of sense" (21) in that the outcome of material interactions can be produced without the need to actually observe anything "real". Reality becomes an afterthought, a post-facto method of "validation". Within the model-world, the "thing" becomes code and data, an articulation of pure statement and designation. Transformed into pulses of electricity and information, a modeling problem within FiPy is "nothing but a sequence of intensive states... [within] a circuit for intensities that one can make race around in one sense or another, from high to low, or from low to high." (22) Stripped of all fixed context; the deterritorialized enunciation of a subjectless assemblage.

Read in terms of "minor literature" one can even begin to discern in FiPy the workings of a certain literary style which (in a supremely unexpected flash of rhetorical convenience) bears some parallels to Kafka's. One immediately observes that the "diabolical" process of doubling that Deleuze and Guattari find in Kafka's letters seems to have a great deal in common with the process of modeling in FiPy. They describe it as the product of the desire of his generic letters, asserting that "it transfers movement onto the subject of the statement; it gives the subject of the statement an apparent movement, an unreal movement, that spares the subject of enunciation all need for a real movement." (23) FiPy describes precisely this sort of transference of movement, from the physical substrate (which gives rise to the sense-based enunciation of physical law) to the mathematical model (which is the product of physics as stated in equations and data). When FiPy runs and the user views fluid flows or copper electrodeposition or some other interaction of materials, he is seeing these processes acting out sort of unreal movement. No fluid is flowing anywhere that he can see, and no copper wire is being deposited; they are spared.

This is the power of the Faustian pact between coder and code; problems are solved in exchange for a departure from the physical. (24) The exchange relies on the emphasis of problem-solving for the sake of increased productivity. This should come as no surprise. As Foucault points out, "the techniques of power are invented to meet the demands of production." (25) Production of Physics must halt until the problem is solved, and this is terrifying. The unsolved problem is "greatest horror for the subject of enunciation" (26) and in keeping with Kafka's methodology of doubling, it is "presented as an external obstacle that the subject of the statement, relegated to [the], will try at all costs to conquer." (27) The programmer finds his solution, the system functions, and FiPy continues to interpenetrate with physics.

FiPy bears a number of other similarities to the more anxious, terrified, paranoid aspects of Kafka's literary machines. The programmer who benefits from the diabolical modeling/doubling pact must also suffer the effects of Faust's panic; the panic "that the writing machine will turn against the mechanic." (28) This panic is the motivation behind "extreme programming," the writing method that the primary developers use to engage with the text-machine. It is based a profound fear of releasing buggy, unusable code, or any code that refuses to solve problems. The rules of extreme programming call for every element of the code to include a coded system that tests the working of that element. (29) In this way, the code is designed to tell you if you've rewritten it in a way that breaks it. One imagines that the writing machine of The Penal Colony might not have run itself into ruin if only there had been a bug-checking machine built into it.

The fact that FiPy is written as an open source, freely distributed package is a response to this same failure-panic. Anyone can examine, use, or rewrite FiPy in any way they like. This is in sharp contrast to other PDE solvers, which are expensive, proprietary programs whose workings are as mysterious and absolute as Kafka's law with no interior (30) and whose content is as inviolate as that of a Deleuzian root-book. (31) It is impossible for the user to be certain whether closed-source code is written in an entirely reliable fashion, and there is often no recourse if the code does not work properly. It could fail, in any way, at any time, and bring ruin to both itself and the user. Open source programming tames this anxiety by putting the programmers and the code under the strict Panoptic gaze of every potential user. They are immersed in "a field of total visibility where the opinion, observation and discourse of others would restrain them from harmful acts." (32) They cannot even consider running bad or sloppy code. Like Kafka's assemblages of the machine, the supervisory coder-user assemblage witnesses and disassembles any bad code before it harms the process of solving problems.

The gaze of the Panopticon is even internalized, in extreme programming, directly into the coder's place in front of the computer. The rules insist on the principle of pair programming; "[a]ll code to be included in a production release is created by two people working together at a single computer." (33) Each coder observes and is observed. Pair programming exemplifies the overall desire to maximize efficiency and productivity within the code-writing-machine. The stated reason for its usefulness is that it "increases software quality without impacting time to deliver." (34) The emphasis on quality again evokes the nagging panic surrounding buggy, harmful, non-productive code.

Coupled with the trust-panic complex of total visibility, the free and infinite distribution of FiPy over the internet is meant to enable anybody who has any need to engage in these productive forms of problem-solving to become a user. The goal of this effort, as stated by NIST, is to standardize and rationalize the practice of computational physics. If everyone is using the same set of tools, the same language, everyone will produce results that can engage with same scientific discourse as the government. This rationalization makes sense as an objective of NIST, since they operate as a sort of "scientific police," with a function strongly resembling that of early "medical police"; to strengthen the State by incorporating all science into state science. (35) FiPy's free distribution is therefore meant to serve as both a linguistic and discursive colonization by the State, as a pathologization (36) of physics problems.

In an equally State-like move, extreme programming also puts an emphasis on "user stories," asking users to describe what they want the code to do for them in a given usage scenario. This occurs at the very beginning of the project, and works in much the same way as early examples of state power. Requesting a feature, like requesting a lettre de cachet from the king, entails describing the scenario in question and an ideal outcome. The absolute power of the king or the development team is called down and employed to forge a solution. (37) The accumulation of user stories begins to suggest an overall structure for the project and the code. There is "a kind of immense and omnipresent call for the processing of these disturbances and these petty sufferings into discourse." (38) The discourse of the program thus accumulates in the same fashion as the discourse of social power.

As power attempts to pathologize and rationalize and panopticize and wear FiPy like a jackboot, the user-coder assemblage continues to write it and to rewrite it. The government is facilitating the production of minority literature. Foucault points out that government "is not simply eye and ear: it makes people act and speak." (39) However, the speech in Foucault serves primarily to produce and construct the speakers as subjects of discourse. FiPy, as a minority literature, is a product of collective enunciation rather than an individual subject. (40) It is schismatic ("inherently political")- a common action with revolutionary intent. The intended revolution, in this case, is an open-source utopia in which anybody can engage productively with a free, common discourse of code. The authors of FiPy have followed Deleuze and Guattari's admonishment, "Write, form a rhizome, increase your territory by deterritorialization." (41) The extent to which the physical substrate and the physical world undergo doubling, modeling, and interchange with the computer-rhizome is the extent to which the Programmer gains new points of entry into discourse, culture, and power.

The paradox of FiPy is similar to that within many power-relations; in one revolutionary moment, these vast, powerful libraries of open-source code will bring the citizen-programmer-subject to life, and force him into permanent subjugation. Though we tend to associate revolution with some kind of liberation from power, power can spread itself according to the rhizomatic principle of asignifying break. In successfully severing economic and scientific dependencies from code by making it freely available, FiPy and other works within the open source genre have simply freed people to write more code, feeding more and more power into the "free culture" machine. It is an assemblage that disassembles its own machine; (42) as problem-solving becomes increasingly swift and transparent, problems and their solutions become an increasingly necessary aspect of existence, until the problems and solutions merge into an endless, ongoing, insoluble problem around which the problem-solving machine quietly disassembles itself.

In final analysis, FiPy is so perfectly rhizomatic, so ready to interconnect with the "mutual and indefinite blackmail" (43) of power relations, it cannot provide us even with a satisfying telos. As open-source, infinitely distributed programs multiply and spread to encompass all aspects of life or thought or labor, as they begin to inhere to life and thought and labor to varying degrees, the distinction in terms will simply vanish. If we wish to draw a comparison to the genetic process by which "we form a rhizome with our viruses," (44) one might compare open source to the Ebola virus. The deterritorialization is so swift and so complete that the host is gone before he can even spread the virus any more. Anything that open source code can touch is already indistinguishable from open source code. FiPy is only the beginning.

Works Cited

Deleuze, Gilles and Feliz Guattari. A Thousand Plateaus: Capitalism and Schizophrenia. Trans. Brian Massuimi. Minneapolis: U of Minnesota P, 1987.

---. Kafka: Toward a Minor Literature. Trans. Dana Polan. Minneapolis: U of Minnesota P, 1986.

Foucault, Michel. The Essential Works of Foucault. Volume Three: Power. Trans. Robert Hurley, et al. Ed. James D, Faubion. New York: The New Press, 2000.

---. Power/Knowledge: Selected Interviews and Other Writings, 1972-1977. Trans. Colin Gordon, et al. Ed. Colin Gordon. New York: Pantheon Books, 1980.

FiPy: A Finite Volume PDE Solver Using Python. Ed. Jonathan Guyer, et al. National Institute of Science and Technology, June 2006.

http://www.ctcms.nist.gov/fipy/

The Python Programming Language. Python Software Foundation, 2006. http://www.python.org

Wells, Don. Extreme Programming: A Gentle Introduction. 17 February 2006. http://www.extremeprogramming.org

1 Fipy site

2 Fipy site

3 Plateaus 12

4 Kafka 43-49

5 FiPy

6 FiPy

7 Plateaus 7

8 FiPy

9 Plateaus 8

10 Plateaus 7

11 Plateaus 8

12 Plateaus 9

13 Plateaus 12

14 Plateaus 12

15 Plateaus 16

16 Python

17 Plateaus 17

18 Plateaus 17

19 Kafka 16

20 Kafka 20

21 Kafka 21

22 Kafka 21-22

23 Kafka 31

24 Kafka 31

25 Power/Knowledge 161

26 Kafka 31

27 Kafka 31

28 Kafka 33

29 Extreme Programming

30 Kafka 43

31 Plateaus 5

32 Power/Knowledge 153

33 Extreme Programming

34 Extreme Programming

35 Power 139-141

36 Power 184

37 Power 65

38 Power 169

39 Power 172

40 Kafka 17

41 Plateaus 11

42 Kafka 47

43 Power/Knowledge 159

44 Plateaus 10

Clone this wiki locally