text:
# On the canonical formula of C. Lévi-Strauss

(Date: 6 June 2003) The author was supported in part by the NSF
> ‘No’, was the answer. ‘We have come to give you metaphors for poetry’. W.B. Yeats, A Vision

This note sketches a formal mathematical interpretation for the anthropologist Claude Lévi-Strauss’s ‘canonical formula’

$$F_x(a):F_y(b)F_x(b):F_{a^1}(y)$$

which he has found useful in analysing the structure of myths. Maranda’s volume  is a useful introduction to this subject, which has a somewhat controversial history  among mathematicians. In view of the perspective proposed here (in terms of finite non-commutative groups), I believe that skepticism is quite understandable. Nevertheless, I believe that Lévi-Strauss knows what he means to say, and that difficulties in interpreting his formula are essentially those of translation between the languages of disciplines (anthropology and mathematics) that normally don’t engage in much conversation.

I am posting this in the hope of encouraging such dialog. This document is addressed principally to mathematicians, and does not attempt to summarize any anthropological background; but in hopes of making it a little more accessible to people in that field, I have spelled out a few technical terms in more detail that mathematicians might think necessary.

I believe that Lévi-Strauss perceives the existence of a nontrivial anti-automorphism of the quaternion group of order eight; the latter is a mathematical object similar to, but more complicated than, the Klein group of order four which has appeared elsewhere in his work, cf. eg. \[7 §6.2 p. 403\], \[14 p. 135\]. In the next few paragraphs I will define some of these terms, and try to explain why I believe the formulation above captures what LS means to say. I want to thank the anthropologist Fred Damon for many discussions about this topic, and in particular for drawing my attention to Maranda’s volume, which has been extemely helpful.

1 I was especially happy to find, in at least three separate places in that book, anthropologists raising the question of whether the two sides of the canonical formula are intended to be understood on a symmetrical footing \[see \[12 p. 35\], \[13 p. 83\], and, most clearly, \[3 p. 202\]\]; in other words, whether the symbol $``$ in Lévi-Strauss’s formula is meant to be an equivalence relation in the mathematical sense.

If formal terms, an equivalence relation is a relation between two objects (to be concrete: triangles in the plane), with the properties that

i) if object $`A`$ is related to object $`B`$ (in symbols: $`AB`$), and object $`B`$ is related to object $`C`$ (ie $`BC`$) then necessarily $`AC`$, ie object $`A`$ is related to object $`C`$;

ii) if $`A`$ is related to $`B`$, then $`B`$ is similarly related to $`A`$ (this is the axiom of symmetry, which can be stated symbolically: if $`AB`$ then $`BA`$), and finally

iii) the axiom of reflexivity: any object is related to itself, ie $`AA`$.

This notion permits us to disguish equivalence from identity; thus in plane geometry the symbol $``$ is traditionally used for the relation of similarity, which means that two triangles have the same angles, but are not necessarily of the same size. The point is that things can resemble each other in various ways \[size, color,…\], and that there may be good reason to compare differing sorts of equivalences (in the way that CLS says that his formula is about ‘analogies between analogies’). What Côté, Racine, and Schwimmer all suggest is an interpretation of the canonical formula in which the right-hand side is a transformation of the left; in more standard mathematical notation, this might be written

$$F_x(a):F_y(b)F_x(b):F_{a^1}(y)$$

The existence of such a transformation turning the left side into the right does not preclude that transformation from being an equivalence; all it does is allow us to regard axiom ii) above as optional. This fits quite naturally with current thinking about category theory.

2 To explain why this is relevant involves a short digression about the roles of the two characters $`a,b`$ and the two functions $`x,y`$ in the formula, cf. \[13 p. 73-76\]. This is in turn related to the role of symbolic notation in the first place.

Mathematicians use what they call variables, ie symbols such as $`a,b,x,y`$, to express relations which hold for a large class of objects, cf. \[1 Ch. A §7\]; but to interpret these relations, it is necessary to understand where the assertion is intended to hold. Thus, for example, a relation which makes sense for triangles might not make sense for real numbers. Another important background issue in the interpretation of mathematical formulas is the role of what are called quantifiers, which tell us whether (for example) the formula is intended to hold for every object in an appropriate class, or perhaps only that some object exists, for which the relation holds.

In the case of the canonical formula, this is particularly important, because such background information about quantifiers and domain of validity has been left unspecified. The formula requires one of its characters ($`a`$) to have an associated function ($`a^1`$), cf. \[12 p. 83\], and it also requires one of the functions ($`y`$) to play the role of a character, on the right side of the formula: this is a key part of the formula’s assertion, in some ways its central essential double twist. The formula is thus intrinsically unsymmetric: it is not required that the character $`b`$ have an associated function $`b^1`$, nor that the function $`x`$ have a sensible interpretation as a character. This suggests that the canonical formula can be paraphrased as the assertion:

$``$ In a sufficiently large and coherent body of myths we can identify characters $`a,b`$ and functions $`x,y`$, such that the mythical system defines a transformation which sends $`a`$ to $`b`$, $`y`$ to $`a^1`$, and $`b`$ to $`y`$, while leaving $`x`$ invariant.

This transformation will therefore send the ratio, or formal analogy, $`F_x(a):F_y(b)`$ into the ratio $`F_x(b):F_{a^1}(y)`$: this is the usual statement of the formula.

3 I don’t think this is very controversial; several of the contributors to  have suggested similar interpretations. I have gone into the question in some detail, however, to make the point that if we can treat the right-hand side of the canonical formula on an equal footing with the left-hand side, we should then be able to apply the canonical formula again; but with $`b`$ now as the new $`a`$, $`y`$ as the new $`b`$, and $`a^1`$ as the new $`y`$, defining a chain

$$F_x(a):F_y(b)F_x(b):F_{a^1}(y)F_x(y):F_{b^1}(a^1).$$

which is consistent with the interpretation of $`F_x(a)`$ as kind of ratio $`x/a`$ of $`x`$ to $`a`$: the left and right-hand sides of the chain above then become the valid rule

$$\frac{x/a}{y/b}=\frac{x/y}{b^1/a^1}$$

for the manipulation of grammar-school fractions. Mosko’s  variant

$$F_x(a):F_y(b)F_x(b):F_y(a),$$

of Lévi-Strauss’s formula also has such an interpretation, when the algebraic values assigned to the variables lie in a commutative group in which every element has order two, neutralizing the opposition between $`a`$ and $`a^1`$. This presents Mosko’s equation as a version of the CF valid in particularly symmetrical situations.

4 I’ve spelled this argument out because it suggests that interpreting the canonical formula as expressing the existence of a transformation relating its two sides is a useful idea. The remainder of this note will be concerned with the quaternion group mentioned in the first paragraph, as an example of a consistent classical mathematical system exemplifying Lévi-Strauss’s formula.

It may be useful to say here that a group, in mathematical terminology, is a system of ‘elements’ (real numbers, for example), together with a system of rules for their combination (eg addition). There are lots of such critters, and some of them are not commutative, in the sense that the order in which we combine the elements may be significant. In the case of real numbers, order is not important (and hence it’s conceivable one’s checkbook might balance); but rotations in three-dimensional space (cf. Rubik’s cube) form another example of a group, in which the order of operations is important.

The quaternion group of order eight (there are other quaternion groups, cf. \[2 §5.2\]) is the set

$$Q=\{\pm 1,\pm i,\pm j,\pm k\},$$

with a noncommutative law of multiplication, in which the product of the elements $`i`$ and $`j`$ (in that order) is $`k`$, but the product in the opposite order is $`k`$; in other words,

$$ij=k=ji,jk=i=kj,ki=j=ik.$$

To complete the ‘multiplication table’ for this group, we have to add the relations

$$ii=jj=kk=1,$$

as well (last but not least) as the relation $`(1)^2=+1`$. The Klein group $`K`$ , which has appeared previously in Lévi-Strauss’s work, can be similarly described, as a commutative version of the group $`Q`$; in other words, the multiplication table is as before, except that we don’t bother with the plus and minus signs:

$$K=\{1,i,j,k\},$$

given the simpler multiplication table

$$ij=k=ji,jk=i=kj,ki=j=ik,$$

together with the relations

$$ii=jj=kk=1$$

(and of course relations like $`1i=i=i1`$, etc.).

Two groups are isomorphic if their elements correspond in a way which preserves the multiplication laws: thus in Lévi-Strauss’s writings the Klein group is described as the set of transformations which send a symbol $`x`$ to the possible values $`x,x,\mathrm{\hspace{0.33em}1}/x,1/x`$; the first such transformation \[$`xx`$\] corresponds to the ‘identity’ element $`1`$ in the presentation of $`K`$ given above, while the second, ie $`xx`$, corresponds to the element $`i`$; similarly $`x1/x`$ corresponds to $`j`$, etc. It is straightforward to check that the multiplication tables of these two structures correspond, eg the composition of the transformations $`xx`$ (corresponding to $`i`$) with the composition $`x1/x`$ (corresponding to $`j`$) is the transformation $`x1/(x)=1/x`$ corresponding to $`k`$, and so forth.

Similarly, an anti-isomorphism of groups is an invertible transformation which reverses multiplication: it is a map which sends the product of any two elements $`g,h`$ (in that order) to the product of the image elements, in the reverse order. In the case of commutative groups, this is a distinction without a difference, but in the case of a noncommutative group such as $`Q`$, it can be significant.

5 For example: the transformation $`\lambda :QQ`$ which sends $`i`$ to $`k,j`$ to $`i^1=i`$, and $`k`$ to $`j`$ is a nontrivial example of an antiautomorphism: for example,

$$\lambda (ij)=\lambda (k)=j=(i)k=\lambda (j)\lambda (i),$$

while

$$\lambda (jk)=\lambda (i)=k=j(i)=\lambda (k)\lambda (j),$$

etcetera. Once this is established, it is easy to check that the assignment

$$x1,ai,yj,bk$$

sends the antiautomorphism $`\lambda `$ to the transformation

$$xx,ab,ya^1,by$$

defining the canonical formula.

6 Quod, as we say in the trade, erat demonstrandum: this presents an example of a consistent mathematical system, satisfying a version of Lévi-Strauss’s formula.

It is a standard principle of mathematical logic, that the consistency of a system of axioms can be verified by giving just one example of an interpretation in which those axioms hold true; but I believe that in this case, there may be more to the story. Logicians are concerned with questions of logical truth, which can be formulated in terms of the commutative group $`\{\pm 1\}`$ \[which can alternately be described in terms of two-valued ‘yes-no’ judgements, or in terms of the even-odd distinction among integers\]. The Klein group is an interesting kind of ‘double’ of this group, with four elements rather than two, and the quaternion group takes this doubling process yet one step further. Something similar seems to occur in the study of kinship structures , but the groups encountered in that field remain necessarily commutative.

7 I believe the interpretation proposed here is also helpful in understanding another aspect of the canonical-formula problem, which other commentators have also found confusing: in \[8 Ch. 6 p. 156\], Lévi-Strauss invokes the formula

$$F_x(a):F_y(b)F_y(x):F_{a^1}(b).$$

This differs from the previous version: now $`x`$ on the left of the equation becomes $`y`$ on the right, while $`a`$ on the left becomes $`x`$ on the right, $`y`$ is transformed into $`a^1`$, and finally $`b`$ remains invariant. In the framework of paragraph six above, the assignment

$$xi,yj,ak,b1$$

expresses this transformation as another anti-automorphism of $`Q`$, defined now by

$$\sigma (i)=j,\sigma (j)=k^1=k,\sigma (k)=i.$$

The two transformations differ by the cyclic transformation

$$\tau :ijki$$

which group-theorists call an outer automorphism, of order three, of the quaternion group $`Q`$: in these terms, $`\lambda =\tau \sigma `$. The point is that the symmetries  of $`Q`$ form a larger group; if we include anti-automorphisms among them, we get a very interesting group of order twenty-four, in which both transformations $`\lambda `$ and $`\sigma `$ might be understood as playing a distinguished role.

8 Perhaps it will be useful to mention that modern mathematical logic (cf. eg ) is very sophisticated, and is willing to study systems with ‘truth-values’ in quite general commutative groups, in a way entirely consistent with Chris Gregory’s Ramusian  precepts; but to my knowledge, logic with values in non-commutative groups has been studied only in contexts motivated by higher mathematics (see eg ). This may explain, to some extent, the difficulty people have had, in finding a mathematical interpretation of Lévi-Strauss’s ideas; but it seems clear to me that such an interpretation does exist, and that as far as I can see, it fits integrally with Lèvi-Strauss’s earlier work on the subject.

I hope those who read this will not be offended if I close with a personal remark. When I first encountered Lévi-Strauss’s formula, my reaction was bemusement and skepticism; I took the question seriously, in large part because I was concerned that it might represent an aspect of some kind of anthropological cargo-cult, based on a fetishization of mathematical formalism. I am an outsider to the field, and can make judgements of Lévi-Strauss’s arguments only on the basis of internal consistency (in so far as I am competent to understand them); but I have to say that I am now convinced that the man knows his business.


format: text

text:
# Radio and submillimetre observations of wind structure in 𝜁 Pup

## 1 Introduction

Zeta Puppis (HD 66811; O4I(n)f) is one of the most-studied O-type stars. Its stellar wind is driven by radiation pressure, whereby the momentum of the stellar photons is transferred to the wind material via line opacity. With other early-type stars it shares the property that its wind is structured. Evidence for this structure for O-type stars in general is seen in the Discrete Absorption Components (DACs) and black troughs in the ultraviolet resonance lines (e.g. Prinja et al. Prinja+al90 (1990)), the presence of X-ray emission (Sciortino et al. Sciortino+al90 (1990)) and the excess flux at infrared and millimetre wavelengths (Runacres & Blomme Runacres+Blomme96 (1996)). Specifically for $ζ$~Pup, the significant discrepancy between the mass loss rate derived from the H$`\alpha `$ spectral line and that from the radio continuum flux (Petrenz & Puls Petrenz+Puls96 (1996)) also points to structure in the wind.

Various types of structure have been proposed to explain the observations. Inhomogeneities on the stellar surface (e.g., due to non-radial pulsations), or magnetic fields, result in somewhat different radiative forces, thereby creating fast and slow streams of gas. As these streams also rotate, they collide, creating Corotating Interaction Regions (CIRs). These are large-scale, spiral-shaped structures in the wind that corotate with the stellar surface. In some cases, the CIRs can explain the most interesting property of DACs: the recurrence time scale is in agreement with the estimated rotation period (Mullan Mullan86 (1986), Cranmer & Owocki Cranmer+Owocki96 (1996)).

Another type of structure that can exist in the wind is of a smaller-scale, stochastic type. It is caused by the inherent instability of the radiative driving mechanism (Owocki Owocki00 (2000)). Stochastic structure has been used to explain the X-ray fluxes (Lucy 1982a , Hillier et al. Hillier+al93 (1993), Feldmeier et al. Feldmeier+al97 (1997)), the black troughs in the UV resonance lines (Lucy 1982b ) and the excess millimetre flux (Blomme et al. Blomme+al02 (2002)).

Finally, it should be noted that $`\zeta `$ Pup is a rapid rotator (at 43 % of critical velocity). This suggests the possibility that $`\zeta `$ Pup has a disk, or at least some enhancement of its density near the equatorial plane. Harries & Howarth (Harries+Howarth96 (1996)) derived a density contrast of at least 1.3 from their linear spectropolarimetry of H$`\alpha `$. Such equatorial density enhancement has been used (Petrenz & Puls Petrenz+Puls96 (1996)) to explain the discrepancy that smooth and spherically symmetric models give for the mass loss rates derived from H$`\alpha `$ and radio observations.

While observational evidence for the existence of disks in certain stars (e.g. Be stars) is strong, there are theoretical difficulties in understanding how these disks form (Owocki et al. Owocki+al98 (1998)). One of the explanations proposed was the wind-compressed disk model (Bjorkman & Cassinelli Bjorkman+Cassinelli93 (1993)), but a more detailed study showed that the non-radial component of the line force and gravity darkening can combine to inhibit the formation of the disk. Interestingly, in some circumstances, the detailed models show an enhancement of the density towards the poles rather than the equator (Owocki et al. Owocki+al96 (1996), Owocki+al98 (1998), Petrenz & Puls Petrenz+Puls00 (2000)).

Observations at submillimetre and radio wavelengths are relevant to structure. This is because bremsstrahlung, the dominant emission process at these wavelengths, has two interesting properties. First, its opacity is proportional to the wavelength squared. Therefore, the observed emission originates above a characteristic radius that increases with wavelength (typical values are $`5R_{}`$ at 1 mm and $`100R_{}`$ at 20 cm). Secondly, free-free emission also depends on the density squared. This makes it a good indicator of structure: a structured wind will have more radio emission than a smooth one. By looking for variability at a certain wavelength, one can hope to distinguish between structure that has azimuthal symmetry (stochastic, disk or polar outflow) and structure that lacks azimuthal symmetry (CIRs). By looking at increasing wavelengths, one can see how the “amount” of structure changes in the wind.

We have already applied these techniques to the submillimetre and radio observations of the B0Ia star $ϵ$~Ori (Blomme et al. Blomme+al02 (2002)). For this star, we did not detect variations in the radio emission (at the 25 % level), but we found that the millimetre flux is substantially higher than a smooth wind model predicts. This discrepancy was interpreted with a model for stochastic structure, showing that considerable structure must persist up to at least $`10R_{}`$ in the wind of $`ϵ`$ Ori. The present paper extends the study of structure in the outer wind to a luminous early O-type star.

To look for variability at radio wavelengths, we acquired 3.6 and 6 cm observations with the Australia Telescope Compact Array111The Australia Telescope is funded by the Commonwealth of Australia for operation as a National Facility managed by CSIRO. (ATCA), during a 12-day observing session, which covers about two rotational periods of the star. To see how structure changes as a function of distance, observations were collected at 850 $`\mu `$m with the James Clerk Maxwell Telescope222The JCMT is operated by the Joint Astronomy Centre in Hilo, Hawaii on behalf of the parent organizations Particle Physics and Astronomy Research Council in the United Kingdom, the National Research Council of Canada and The Netherlands Organization for Scientific Research. (JCMT), and at 20 cm with the NRAO Very Large Array333The National Radio Astronomy Observatory is a facility of the National Science Foundation operated under cooperative agreement by Associated Universities, Inc. (VLA). We supplemented this material with data from the VLA archive. A log of all data used in this paper is given in Table 1. Upper limits from other observations (not discussed here) are listed in Wendker (Wendker95 (1995)).

In Sect. 2, we present the stellar parameters of $`\zeta `$ Pup. The ATCA, VLA and JCMT observations are discussed in Sects. 3, 4 and 5 respectively. The interpretation of the observational material is discussed in Sect. 6 and conclusions are drawn in Sect. 7.

## 2 The parameters of $`\zeta `$ Pup

Table 2 lists the $`\zeta `$ Pup parameters we use in this paper. The stellar parameters and wind parameters are taken from the unified NLTE model of Puls et al. (Puls+al96 (1996)). These values are in close agreement with models by Bohannan et al. (Bohannan+al90 (1990)) and Pauldrach et al. (Pauldrach+al94 (1994)). The traditionally assumed distance of 450 pc (Kudritzki et al. Kudritzki+al83 (1983)) falls well within the Hipparcos error bar, so we will use $`d=450`$ pc throughout this paper. The radius of 19 $`R_{\mathrm{}}`$ at a distance of 450 pc corresponds to an angular diameter of 0.39 milli-arcsec (mas), in good agreement with interferometric measurements ($`\theta _{\mathrm{LD}}=0.42\pm 0.03`$ mas; Hanbury Brown et al. HanburyBrown+al74 (1974)).

$`\zeta `$ Pup shows considerable evidence for structure in its stellar wind. Discrete Absorption Components (DACs) are seen to move through the ultraviolet resonance lines (Prinja et al. Prinja+al92 (1992) and references therein). In 1995, $`\zeta `$ Pup was one of three targets observed continuously during 16 days by the International Ultraviolet Explorer (IUE Mega Campaign, Massa et al. Massa+al95 (1995)). The analysis of this high-quality dataset by Howarth et al. (Howarth+al95 (1995)) reveals a 19.2 h and a 5.2 day period. The 19.2 h period is the recurrence time of the DACs. The 5.2 day period indicates modulation on a global scale, and is in good agreement with the rotation period estimated from $`v\mathrm{sin}i`$, suggesting that material in the wind corotates with the star. One possible cause for this corotating material is the presence of a (weak) magnetic field. Attempts to detect the magnetic field for $`\zeta `$ Pup have so far yielded a null result with an uncertainty of 100-200 G (Barker et al. Barker+al81 (1981), Chesneau & Moffat Chesneau+Moffat02 (2002)).

$`\zeta `$ Pup also shows variability in the H$`\alpha `$ and He ii 4686 line profiles (Moffat & Michaud Moffat+Michaud81 (1981) and references therein, Hendry & Bahng Hendry+Bahng81 (1981), Reid & Howarth Reid+Howarth96 (1996), Eversberg et al. Eversberg+al98 (1998)). The presence of variability in these wind-formed lines is consistent with large-scale structures corotating through the wind. Eversberg et al. however interpret their He ii 4686 observations in terms of smaller-scale structures (“clumps”) moving out in the wind. Fullerton et al. (Fullerton+al96 (1996)) and Reid & Howarth (Reid+Howarth96 (1996)) detected variability in a number of optical lines (He i, He ii, N iv, C iv). The variations have a period of 8.54 h. Both papers attempt to interpret the variations in terms of non-radial pulsations, but they also raise concerns that these lines might be wind contaminated. The photospheric perturbations due to non-radial pulsations are another possible way of creating CIRs.

Optical continuum fluxes also show variability: the 5.2 day rotation period was detected in optical photometry (Balona Balona92 (1992)). From Hipparcos photometry, Marchenko et al. (Marchenko+al98 (1998)) derive a period which is half the rotation period.

Other indicators of structure are the continuum flux excess at infrared and millimetre wavelengths (Runacres & Blomme Runacres+Blomme96 (1996)) and the presence of X-ray emission (Long & White Long+White80 (1980)). Models by Hillier et al. (Hillier+al93 (1993)) and Feldmeier et al. (Feldmeier+al97 (1997)) show that structure can explain the X-ray emission. Earlier claims that the observed X-ray emission is variable (Collura et al. Collura+al89 (1989)) were later shown to be incorrect (Berghöfer & Schmitt Berghoefer+Schmitt94 (1994)). Later, Berghöfer et al. (Berghoefer+al96 (1994)) found variability in the ROSAT X-ray data (on roughly the same time scale as the H$`\alpha `$ variability), but this was not confirmed by the ASCA data (Oskinova et al. Oskinova+al01 (2001)).

## 3 ATCA observations

### 3.1 Data

We used the Australia Telescope Compact Array (ATCA) for a long observing session on $`\zeta `$ Pup in September 1999. The $``$ 27 h on-target integration time was divided into 8 runs, spread over 12 days, thus providing coverage of the $``$ 5.2 day rotation period. A detailed observing log is presented in Table 3. At the time of the observation, ATCA was in configuration 6A, with the longest baseline at 5939 m and the shortest one at 337 m. The continuum observations were done simultaneously at 3.6 cm (X-band; 8.688 GHz) and 6 cm (C-band; 4.848 GHz). The observing bandwidth was 128 MHz. A single observing run consists of repetitively observing $`\zeta `$ Pup for 15 min and then the phase calibrator PKS B0823-500 for 5 min. The flux calibrator PKS B1934-638 was observed when possible at the beginning or end of the run. The flux calibrator could not be observed during the fourth (SEP20) and seventh observing run (SEP25) due to scheduling or technical problems.

### 3.2 Reduction

As the level of variability we expect is small, the reduction needs to be done as carefully as possible. For this reason, we also discuss the reduction in detail. The data were reduced in Miriad following the user guide (Sault & Killeen Sault+Killeen99 (1999)). The data were read into Miriad and corrected for self-interference of the array, as well as for the phase difference between the X and Y channels. Next, the programme blflag was used to flag out bad datapoints interactively. The calibrators were then used to determine the antenna gains as a function of time (using mfcal).

The flux assigned to the flux calibrator PKS B1934-638 is 5.85 Jy (with a 2 % error) at 6 cm. The flux value determined with uvflux of the phase calibrator PKS B0823-500 is 3.0 Jy. At 3.6 cm the flux calibrator is 2.88 Jy (with a 2 % error) and the phase calibrator is 1.53 Jy. In those runs where the flux calibrator had not been observed, we used the phase calibrator with the above mentioned flux values to calibrate the data. We determined the bandpass function from the flux calibrator.

We interpolated the instrumental gains and applied them to the $`\zeta `$ Pup observation. The task invert was then used to produce an image from the visibility datasets by Fourier transform. In the inversion we used multi-frequency synthesis (MFS), which compensates for the spectral index of the source across the bandwidth. Because of the sparse UV-coverage per observation, we used robust uniform weighting (Briggs Briggs95 (1995)) to improve the RMS in the map. To de-convolve the image we used mfclean. The resulting clean components are then convolved with a Gaussian and added to the residual image. Besides $`\zeta `$ Pup, 6 other objects were detected in the primary beam at 6 cm and 4 at 3.6 cm (see Fig. 1 and Table 4).

The cleaning was stopped when the absolute maximum in the residual map (i.e. the map from which the clean components have been subtracted) reached 0.30 mJy. This is about 3 to 4 times the theoretical noise of each map, where the theoretical noise is calculated taking only the system temperature of the front-end receiver into account, not the calibration errors, side-lobes or any other instrumental effects. Experience shows that at this cutoff the RMS in the cleaned map and in the residual map are both about equal to the theoretical RMS. At the end, to correct for primary beam attenuation, the task linmos was used.

All images were reduced in exactly the same way with exactly the same parameters.

### 3.3 Fluxes and error bars

The flux of $`\zeta `$ Pup was determined by fitting an elliptical Gaussian, with values for the major and minor axis and position angle kept fixed to the beam values. Table 3 lists the flux values at 3.6 and 6 cm, and the respective beam sizes with their position angle. Because the observations at 3.6 and 6 cm were done simultaneously, the position angles are the same at both wavelengths. The data obtained on SEP23-24 were split in two sets in order to have the same time span as in the other observing runs. The 6 cm fluxes of the other sources in the image are less than 1.2 mJy, except S2 and S6 which are about 4 mJy (uncorrected for the primary beam effect): these values are low enough that we do not have to worry about the effect of their sidelobes. The fitting procedure (imfit) gives an RMS error on the flux measurement. To take into account the calibration error, we added 2 % of the flux values to this RMS, and thus arrived at the final error bars (listed in Table 3).

This error bar only covers the random sources of error. To get a feeling for the systematic errors, we redid the reduction in a slightly different way. Instead of robust uniform weighting, we tried both uniform weighting (by setting the robust parameter to $`2`$) and natural weighting (robust parameter = $`+2`$). In the latter, the RMS in the maps is lower at the expense of the more elongated beam and worse side-lobe levels. In the former, the beam shape is smaller at the expense of higher RMS levels in the map. The robust uniform and natural weighting flux determinations agree well within the error bar. As usual, the better the UV coverage and beam shape the less difference there is among the different flux determinations. We also measured the flux by determining the maximum intensity of the point source, instead of fitting an elliptical Gaussian. This alternative flux determination always falls within the error bar.

### 3.4 Results

The resulting 3.6 and 6 cm fluxes are plotted in the top panel of Fig. 2. While this figure suggests that $`\zeta `$ Pup is variable at both wavelengths, we found a similar behaviour in other sources on the map. We therefore compared the flux values for $`\zeta `$ Pup with two of the brightest sources close-by (S2=EQ 0801-398 and S3=NVSS J080327-395828, see Fig. 1). The comparison (lower panels on Fig. 2) shows that all three sources follow the same trend. Hence, this argues strongly against $`\zeta `$ Pup showing variability. A further argument against variability follows from the fluxes derived from the complete data set (see below) which are also plotted on Fig. 2 (dotted lines). Obviously, the flux of the complete data set is not the straight average of the separate fluxes. This points to problems in the interpolation of the instrumental gain phases during the first few runs of the observing session, causing part of the $`\zeta `$ Pup flux to be scattered over the rest of the image. These runs get less weight in the complete data set due to the non-linear nature of the cleaning process. Having concluded that the present data do not show detectable variability in $`\zeta `$ Pup, we can derive upper limits on the amount of variability from the range in fluxes (with their error bars): these are $`\pm 20`$ % of its flux value at 3.6 and at 6 cm.

In principle, the non-detection of variability could be caused by a bad coverage of the phase for the various periods. However, the 8 observations spread over 12 days cover the 5.2 day rotation period reasonably well. We also checked the phase coverage of the variability cycle for possible periods around 8.5 h and 19 h (see Sect. 2) and found it to be good.

As there is no variability, we combined all visibility data and Fourier transformed them to obtain a single map. Because the RMS in this combined map is lower than in each individual map, we cleaned it deeper, down to 0.1 mJy. The resulting images at 3.6 and 6 cm are shown in Fig. 3. The measured fluxes and their error bars (RMS + 2% of the flux) are listed in Table 3.

To get a feeling for the systematic errors on the combined data set, we investigated the effect of the cutoff limit in the cleaning procedure: we cleaned the total map at 6 cm (robust=0.5, rms=0.024 mJy) down to 0.07 mJy and 0.15 mJy. In the former case the number of clean components was 2769 in the latter 160. The resulting $`\zeta `$ Pup fluxes fall well within the error bar. Also using a single, large, cleaning box instead of multiple cleaning boxes gave negligible differences in the flux. Finally, we redid the reduction, systematically dropping one of the observing runs. The range of values thus obtained again falls within the error bar.

## 4 VLA observations

### 4.1 20 cm observation

We obtained a 20 cm (L-band) observation on 2002 March 27 with the VLA in A configuration (i.e. the configuration with the highest spatial resolution). The observation alternated between $`\zeta `$ Pup and the phase calibrator 0814-356 (J2000). Two runs of 7 min were made on $`\zeta `$ Pup and 3 runs of 2 min on the phase calibrator. For the flux calibration we also observed 3C48 = 0137+331 (J2000). The observation consists of two sidebands (at 1.3851 and 1.4649 GHz), each of 50 MHz bandwidth.

The reduction of these data was done using the NRAO package AIPS (Astronomical Image Processing System), following the same steps as for the ATCA data (Sect. 3). Technical details of the reduction are listed in Table 5. We stopped cleaning when the algorithm started finding about the same number of negative as positive components. The resulting map is shown in Fig. 4.

By fitting an elliptical Gaussian to $`\zeta `$ Pup, we found a 20 cm flux of $`0.76\pm 0.09`$ mJy. The error bar is the RMS noise in the total map. We also added a 2 % calibration error to the result (Perley & Taylor Perley+Taylor02 (2002)), but this does not change the resulting error bar significantly. The maximum intensity of $`\zeta `$ Pup is 0.74 mJy/beam: the close agreement with the value from the Gaussian fit shows that $`\zeta `$ Pup is indeed a point source.

To judge the robustness of our flux determination, we repeated the reduction, systematically dropping one antenna, using different weightings of distant visibilities, or natural weighting instead of robust uniform, or doubling or halving the number of clean components. In all cases, the results fall within the error bar. The RMS error bar therefore not only covers the statistical uncertainty, but the systematic errors as well.

### 4.2 Archive observations

The VLA archive contains a number of $`\zeta `$ Pup observations, which are listed in Table 1. Many of these observations have not been published previously. To avoid introducing systematic effects we decided to reduce the whole set. The procedure is the same as that followed in Sect. 4.1. The details of the reductions are summarized in Table 5. In principle, the 1.3 cm (K-band) and 2 cm (U-band) observations should be corrected for differential atmospheric extinction (using the AIPS task elint), but in none of those cases was there sufficient information to apply this.

The resulting maps are shown in Fig. 5 and the fluxes are listed in Table 5. The error bars show the range of results found by various reductions where we systematically dropped one antenna, used different weightings of distant visibilities, or natural weighting instead of robust uniform. The error bars are always larger than the RMS noise in the map. For each observation, we compared the peak intensity of the source to the flux derived from the Gaussian fit. With the only exception of the 3.6 cm observation of AH365 (see below), there is very good agreement, showing that the sources are indeed point sources. When we doubled or halved the number of clean components, we were always well within the error bar. The error bars of the 3.6, 6 and 20 cm observations include a 2 % calibration error, and the 2 cm a 5 % calibration error.

As $`\zeta `$ Pup is rather low on the horizon from the VLA, the quality of the observations is not always good. The AB327 observations at 2 and 6 cm show large variations in the gain phases (30-50 degrees) of the calibrators. All sources on the 6 cm image (including $`\zeta `$ Pup) are 30-50 % lower in flux compared to other observations. The 2 cm $`\zeta `$ Pup flux is heavily dependent on tapering, and is compatible with a value of $`3`$ mJy. The 3.6 cm observation of AH365 is the only one where the measured peak intensity is systematically higher (by $`40`$ %) than the flux derived from the Gaussian fit. This suggests that, due to phase problems, the source is not quite a point source. The measured peak intensity is 2 mJy. Minor comments on other observations are given in Table 5.

In general, the agreement of the fluxes we derived with published values is quite good (see notes to Table 5). Only for the AA28 - 6 cm observation do we find a value (1.49 $`\pm `$ 0.1 mJy) significantly higher than the published value (1.3 $`\pm `$ 0.1 mJy, Bieging et al. Bieging+al89 (1989)).

There is an additional observation available (AC308 – see Table 1) made at 20 cm. This observation is part of the NRAO VLA Sky Survey (NVSS – Condon et al. Condon+al98 (1998)). We checked this survey and found that $`\zeta `$ Pup was not detected (but EQ 0801-398 is detected).

### 4.3 Long term variability

We now compare the different VLA observations, wavelength by wavelength, to see if we can detect variability at timescales much longer than the rotation period.

We have only two 2 cm flux determinations. The error bars do not overlap, which might suggest variability. However, we recall the considerable difficulties in the reduction of these data (Sect. 4.2), and based on that, we do not consider them to present evidence of variability. For completeness, we also mention the 2 cm observations of $`\zeta `$ Pup by Morton & Wright (Morton+Wright79 (1979)): they list 7.2$`\pm `$1.1 mJy as the average of two observing runs. This value is significantly higher than ours. However, these observations were made with a single-dish antenna (Parkes 64-m), which has a beam of 2$`\stackrel{}{.}`$3. When targeting $`\zeta `$ Pup, the beam also covers S2=EQ 0801-398 (see Fig. 1), which will dominate the measured flux. These data can therefore not be used to look for variability of $`\zeta `$ Pup.

The single VLA 3.6 cm observation ($`1.4\pm 0.3`$ mJy) can be compared to the ATCA determination ($`2.38\pm 0.09`$ mJy). In Sect. 4.2 we showed that the AH365 observation was quite problematic. Comparing the ATCA measurements of sources S2=EQ 0801-398 and S3=NVSS J080327-395828 to the AH365 measurements shows only a 20 % effect for S2, and none for S3, suggesting that the Gaussian fit fluxes would be reliable. In that case, the AH365 $`\zeta `$ Pup flux would be significantly different from the ATCA determination. However AH365 shows such an accumulation of problems (the flux of the secondary calibrator is considerably less than expected, there are reasonably high phase changes and there is the difference between peak intensity and Gaussian integrated flux) that we do not consider this convincing evidence of variability.

The single 20 cm determination is compatible with the two upper limits.

The only wavelength for which we have a reasonable number of flux determinations, is 6 cm. Fig. 6 shows these fluxes as a function of time. The flux from the ATCA combined data goes through the error bars of almost all observations, indicating that there is no detectable variability.

The only exception is the significantly lower flux of AB327. In Sect. 4.2 we discussed the phase problems of this observation, which lead to the lower flux. Another possible factor might be that we are starting to resolve the stellar wind of $`\zeta `$ Pup (this is the observation with the highest spatial resolution we have). To estimate how much flux we would lose, we use a Wright & Barlow (Wright+Barlow75 (1975)) approach. By their definition of the characteristic radius ($`R_\nu `$) of the radio-emitting region, the observed flux ($`S_\nu `$) is given by:

$$S_\nu =10^{26}_{R_\nu }^+\mathrm{}dr\frac{4\pi r^2}{D^2}K(\nu ,T)\gamma \left(\frac{\dot{M}}{4\pi r^2v_{\mathrm{}}\mu m_\mathrm{H}}\right)^2B_\nu (T),$$
(1)
where $`r`$ is the radius, $`D`$ the distance to the star, $`K(\nu ,T)`$ the free-free absorption coefficient, $`\gamma `$ the ratio of electron to ion number densities, $`\dot{M}`$ the mass loss rate, $`v_{\mathrm{}}`$ the terminal velocity, $`\mu `$ the average atomic mass, $`m_\mathrm{H}`$ the proton mass and $`B_\nu (T)`$ the Planck function at frequency $`\nu `$ and temperature $`T`$. All units are cgs, except for $`S_\nu `$ which is in mJy. If, instead of integrating to $`+\mathrm{}`$, we only integrate to a radius $`R_{\mathrm{max}}`$, we lose a fraction of the flux given by:

$$\frac{\mathrm{\Delta }S_\nu }{S_\nu }=\frac{R_\nu }{R_{\mathrm{max}}}.$$
(2)
The beamsize ($`\theta _{\mathrm{beam}}`$) determines $`R_{\mathrm{max}}`$ by: $`\theta _{\mathrm{beam}}=2R_{\mathrm{max}}/D`$. Combining this with the Wright & Barlow expression for $`R_\nu `$, we get:

$$\frac{\mathrm{\Delta }S_\nu }{S_\nu }=3.8\times 10^5\frac{(\gamma gZ^2)^{1/3}T^{1/2}}{D\theta _{\mathrm{beam}}}\left(\frac{\dot{M}\lambda }{\mu v_{\mathrm{}}}\right)^{2/3},$$
(3)
where $`\dot{M}`$ is in $`M_{\mathrm{}}/\mathrm{yr}`$, $`v_{\mathrm{}}`$ in km/s, $`\lambda `$ in cm, $`\theta _{\mathrm{beam}}`$ in arcsec, $`D`$ in kpc. We take $`\dot{M}=5.9\times 10^6`$ (Puls et al. Puls+al96 (1996)), $`\mu `$=1.4, $`\gamma `$=1, $`Z`$=1 and the Gaunt-factor $`g`$=7. Other parameters are taken from Table 2. With a beam of $`\theta _{\mathrm{beam}}`$=0$`\stackrel{}{.}`$7, we find a flux loss of $`612`$ %, depending on whether we take a hot wind (42 000 K) or a cool wind (10 000 K). If we use the mass loss rate derived from our model for the radio observations (Table 7), we find a $`48`$ % effect.

The low AB327 flux can thus not be explained by our starting to resolve the stellar wind, but is due to problems with the interpolation of the gain phases.

## 5 JCMT observation

We also determined the 850 $`\mu `$m flux of $`\zeta `$ Pup using the Submillimetre Common-User Bolometer Array (SCUBA, Holland et al. Holland+al99 (1999)) on JCMT (see Table 1). The instrument observes simultaneously at 450 and 850 $`\mu `$m using two hexagonal arrays of bolometers. The sensitivity at 450 $`\mu `$m is too low for a detection, so we will only discuss the 850 $`\mu `$m data. Our flexibly scheduled observations were taken in medium weather conditions (850 $`\mu `$m zenith opacity was 0.32 – 0.47) during a half-shift on 2000 October 12. The beam at 850 $`\mu `$m is 14$`\stackrel{}{.}`$5.

As the data were collected in the same run as the $`ϵ`$ Ori observation discussed by Blomme et al. (Blomme+al02 (2002)), we refer to that paper for details on the observation and the reduction. The total on-target integration time for $`\zeta `$ Pup was 15 min. After reduction, the RMS on the $`\zeta `$ Pup observation turns out to be about 16 %. We tried variants in the reduction (e.g. using other bolometers than the inner ring for sky-noise removal), but this changes the flux by considerably less than 16 %.

The $`\zeta `$ Pup observations are preceded and succeeded by an observation of the calibrator OH231.8. Taking the average of these two calibration observations, we arrive at $`31\pm 5`$ mJy for the flux. The error bar takes into account the measurement errors on the target and the calibrator as well as the calibration error. However, OH231.8 is somewhat variable and the flux of the calibrator at the time of our observation could be different from the reference flux we used.

If we use the HL Tau calibration observation that precedes our run, we have $`28\pm 5`$ mJy. Trying to use other calibrators that were observed during that night (but of course further away in time from our observation) tends to favour the lower value. In view of this we propose $`28\pm 5`$ mJy as the best determination of the flux. The $`\zeta `$ Pup value is then also based on the same calibrator as the $`ϵ`$ Ori observation analysed by Blomme et al. (Blomme+al02 (2002)).

If we want to compare our 850 $`\mu `$m value with the 1.3 mm determination of Leitherer & Robert (Leitherer+Robert91 (1991)), we need to correct for the difference in wavelength. If we assume an $`\alpha =0.6`$ spectrum, we find that our value corresponds to $`22\pm 4`$ mJy at 1.3 mm, which agrees very well with the Leitherer & Robert value of $`20.2\pm 1.8`$ mJy. Our value is also compatible with the Altenhoff et al. (Altenhoff+al94 (1994)) upper limit of 33 mJy at 1.2 mm.

## 6 Discussion

### 6.1 Smooth wind model

Table 6 summarizes the submillimetre and radio fluxes we will discuss in this section. Other fluxes either agree with these, or possible disagreements have been explained in Sect. 4.2.

From the 1.3 mm and 6 cm fluxes we can derive the spectral index $`\alpha `$ (defined by $`F_\nu \lambda ^\alpha `$). The measured value of $`\alpha =0.66\pm 0.03`$ defines a power law that goes through the error bars of all observations, with the exception of the 2 cm fluxes (where it is intermediate between the two determinations). This spectrum is somewhat steeper than expected from the Wright & Barlow (Wright+Barlow75 (1975)) model (where $`\alpha =0.6`$), indicating some discrepancy between the millimetre and radio fluxes.

To better quantify this discrepancy, we also made a smooth wind model for $`\zeta `$ Pup in the same way as in Runacres & Blomme (Runacres+Blomme96 (1996)). The model solves the equations of radiative transfer and statistical equilibrium in a spherically symmetric stellar wind, containing only hydrogen and helium. The density in the wind is determined by solving the time-independent hydrodynamical equations (following Pauldrach et al. Pauldrach+al86 (1986)). When fitting the model to the observations, the visual and near-infrared fluxes were used to determine the interstellar extinction and the radio fluxes to determine the mass loss rate. The far-infrared and millimetre fluxes are unconstrained and can therefore be used to see how well the smooth wind model fits the observations. Further details of the model are given in Runacres & Blomme. A new version of their $`\zeta `$ Pup model was calculated that uses the parameters listed in Table 2.

In fitting the model, we fixed the mass loss rate from our ATCA 6 cm observation. We choose this observation because it has the smallest error bar. The best fit gives a mass loss rate of $`\dot{M}`$ = $`3.5\pm 0.1\times 10^6`$ $`M_{\mathrm{}}`$/yr. The error bar on $`\dot{M}`$ corresponds only to the error bar on the 6 cm flux, and does not include the more important errors due to stellar parameters or distance. E.g., the error in the Hipparcos distance converts to a ($`0.9`$, $`+1.5`$) $`\times 10^6`$ $`M_{\mathrm{}}`$/yr error on $`\dot{M}`$.

Because it is such a well-studied star, a large number of mass loss rate determinations have been made for $`\zeta `$ Pup. In our comparisons we will only consider the more recent determinations (Table 7). Our radio mass loss rate of $`3.5\times 10^6`$ $`M_{\mathrm{}}`$/yr is different from the $`5.9\times 10^6`$ $`M_{\mathrm{}}`$/yr value by Puls et al. (Puls+al96 (1996)) based on fitting the H$`\alpha `$ line profile. This difference is significant, considering that we used the same stellar parameters as they did. We recall that Petrenz & Puls (Petrenz+Puls96 (1996)) already noted this discrepancy and tried to explain it by invoking an equatorial density enhancement, caused by the large rotational velocity of the star. Our results are in acceptable agreement with both the radio and H$`\alpha `$ determinations by Lamers & Leitherer (Lamers+Leitherer93 (1993)), but we note that they used a simpler model for the H$`\alpha `$ emission than Puls et al. Contrary to what the Lamers & Leitherer numbers suggest, $`\zeta `$ Pup is therefore an exception to the usually good agreement between the H$`\alpha `$ and radio mass loss rates.

The observed fluxes are compared to the best-fit smooth wind model in Fig. 7. The figure shows the millimetre and radio observations listed in Table 7, supplemented by visual and infrared data listed in Runacres & Blomme (Runacres+Blomme96 (1996)). As found by Runacres & Blomme, there is an excess flux at millimetre wavelengths. Due to our somewhat higher 6 cm flux, the effect found here (24 %) is somewhat lower than what they found (35 %). The present result is significant at the 2 sigma level. In view of the large error bars, it is not clear what happens at 2 cm, but the 3.6 cm flux could be marginally in excess. The 20 cm flux is in good agreement with the smooth wind model. We stress that the same discrepancy is found when a much simpler Wright & Barlow (Wright+Barlow75 (1975)) model is used instead of our smooth wind model.

### 6.2 Explaining the millimetre excess

The millimetre excess is the most important result from this work. Various explanations will be considered in this section. To study the excess we will make considerable use of models similar to the one developed by Wright & Barlow (Wright+Barlow75 (1975)).

We start by noting that the Wright & Barlow formula for the flux is not very sensitive to temperature, so a radial gradient of the temperature will not explain the excess. There could be an indirect effect of the temperature however, due to the recombination of important ions. This explanation has been proposed by Leitherer & Robert (Leitherer+Robert91 (1991)). As He++ will recombine much more quickly than H+, we only consider the recombination of He++. A careful evaluation of the ionization-dependent factors in the Wright & Barlow (Wright+Barlow75 (1975)) formula for the radio flux shows that, if we assume all helium to be He++ in the millimetre formation region and all helium to be He+ in the centimetre formation region, the discrepancy between the fluxes can be explained. It should be noted that our own smooth-wind model does not show recombination, but it does not include important effects, such as line blanketing due to metals. Recent models of early-type stars arrive at lower effective temperatures than the one we used here (Bianchi & Garcia Bianchi+Garcia02 (2002), Bianchi et al. Bianchi+al03 (2003), Martins et al. Martins+al02 (2002)), which would favour recombination. Further evidence that recombination occurs, comes from models of the stellar wind of $`\zeta `$ Pup (Hillier et al. Hillier+al93 (1993), Pauldrach et al. Pauldrach+al01 (2001), Puls 2003, pers. comm.). Due to the recombination in these models, it is necessary to assume that the X-rays are formed out to large distances in the wind ($`>100R_{}`$), because X-rays formed too close to the star get absorbed. However, the X-ray spectral lines of $`\zeta `$ Pup (Cassinelli et al. Cassinelli+al01 (2001), Kahn et al. Kahn+al01 (2001)) seem to require formation closer to the stellar surface and less opacity in the wind (Kramer et al. Kramer+al03 (2003)). This fact is difficult to reconcile with He recombination.

A slower velocity law has been claimed to explain the far-infrared discrepancies seen on Fig. 7 (Kudritzki & Puls Kudritzki+Puls00 (2000)). To explain the millimetre discrepancies would require a very much slower velocity law. To investigate this we adapted the Wright & Barlow (Wright+Barlow75 (1975)) model to include a $`\beta `$-type velocity law. In such case, an analytical solution is no longer possible, and all integrations were done numerically. We find that $`\beta 5`$ is needed to explain the millimetre fluxes, which is not compatible with other observational indicators such as the H$`\alpha `$ profile, which requires $`\beta 1.15`$ (Puls et al. Puls+al96 (1996)).

The existence of a flux excess at millimetre wavelengths can also be due to structure in the wind. As there is a wealth of evidence for structure in these winds, it seems obvious to explore a model based on that.

The model in question is the same as used in Blomme et al. (Blomme+al02 (2002)) for $`ϵ`$ Ori. The smooth wind opacity in a Wright & Barlow (Wright+Barlow75 (1975)) model is multiplied by the clumping factor to get the clumped wind opacity. The clumping factor is defined as $`<\rho ^2>`$/$`<\rho >^2`$, where the symbol $`<>`$ stands for a time-average, which we have approximated by integrating over a small volume of the wind. Optical depth, emergent intensity and flux are then calculated as in Wright & Barlow. As our model allows the clumping factor and velocity to change as a function of distance, all integrations have to be done numerically. We used a run of the clumping factor based on the work of Runacres & Owocki (Runacres+Owocki01 (2001)), who calculated time-dependent hydrodynamical models to study the effect of the line-driving instability at large distances from the star. The clumping factor in their models rises to reach a maximum rather far away from the star ($`1050R_{}`$) and then decreases again. If we simplify their results somewhat, we can approximate the typical behaviour for the clumping factor by a piece-wise linear curve fixed by specifying three points. We let the clumping factor rise linearly from close to the surface of the star (point 1) to a certain distance (point 2), and then let it fall off again linearly till it becomes one (point 3). The inset to Fig. 8 shows an example (dotted line). We also used piece-wise linear curves fixed by four points. By setting the clumping factor equal to one at large distances, we ensure that there is no excess at radio wavelengths.

Fig. 8 shows a number of fits we attempted. Although no unique solution is found, it is quite clear that the clumping factor has to be significantly higher than 1 in the inner part of the wind, and needs to diminish considerably beyond 70 $`R_{}`$. To stress this last point, Fig. 8 includes a model with substantial clumping up to 120 $`R_{}`$ (dashed line); the fluxes clearly overshoot the 3.6 and 6 cm observations. The fact that structure diminishes beyond a certain distance is similar to what we found for $`ϵ`$ Ori (Blomme et al. Blomme+al02 (2002)), except that for $`ϵ`$ Ori, this started happening around $`40R_{}`$.

While structure diminishes around 70 $`R_{}`$, it does not necessarily disappear. For $`ϵ`$ Ori we showed that a model where structure persists up to large distances (with a constant clumping factor) could equally well explain the observations, provided we reduce the mass loss rate accordingly. For $`\zeta `$ Pup, we see that the 20 cm observation is in reasonable agreement with the 6 cm one. This shows that, if there is still clumping left, it falls off considerably slower than it does in the inner 70 $`R_{}`$ of the wind. Obviously, a more accurate 20 cm flux and observations in the 1 mm – 3.6 cm region will further constrain the extent and amount of structure.

The above model was very much inspired by the small-scale structure expected from the instability of the radiative driving mechanism. However, CIRs, a disk or a polar enhancement should have similar effects on the millimetre flux. In these cases the 70 $`R_{}`$ radius will be significant as well, in that it shows where the structure diminishes substantially, or maybe even disappears. A detailed comparison of models for different types of structure is beyond the scope of the present paper.

## 7 Conclusions

Radio observations of $`\zeta `$ Pup covering about two rotational periods, supplemented by archive observations covering a much longer time scale, do not show variability at more than the $`\pm 20`$ % level. The long integration time gives us an accurate flux determination of 2.38 $`\pm `$ 0.09 mJy at 3.6 cm and 1.64 $`\pm `$ 0.07 mJy at 6 cm. These values are slightly higher than the ones previously known.

Converting the fluxes into a mass loss rate, we find $`\dot{M}`$ = $`3.5\times 10^6`$ $`M_{\mathrm{}}`$/yr. This value confirms the significant discrepancy with the H$`\alpha `$ mass loss rate (Petrenz & Puls Petrenz+Puls96 (1996)).

A smooth wind model shows that the millimetre fluxes are too high compared to the radio fluxes. While recombination of helium in the outer wind cannot be discounted as an explanation, we favour a model that ascribes the discrepancy to structure. A simple model shows a substantial decay, or maybe disappearance, of structure beyond 70 $`R_{}`$. Fig. 8 shows how observations at wavelengths between 1 mm and 3.6 cm can further constrain models for structure.

The present data do not allow a distinction between the various types of structure (stochastic, CIRs, disk or polar enhancement). Attempting to detect variability at far-infrared or millimetre wavelengths should provide better constraints on the azimuthal symmetry of the structure, thereby allowing us to decide whether it is in the form of CIRs.

###### Acknowledgements.

We thank Joan Vandekerckhove for his help with the reduction of the VLA data. We are grateful to Thomas Lowe for making the JCMT observation. We also thank the original observers of the VLA archive data we used. We thank Joachim Puls for information about the helium recombination in the stellar wind models. This work benefitted from discussions with Stan Owocki. This research has made use of the SIMBAD database, operated at CDS, Strasbourg, France and NASA’s Astrophysics Data System Abstract Service. We also consulted the High Energy Astrophysics Science Archive Research Center (HEASARC), provided by NASA’s Goddard Space Flight Center. M.C.R. acknowledges support from ESA-Prodex project no. 13346/98/NL/VJ(ic), financed by ESA-Prodex. Part of this research was carried out in the framework of the project IUAP P5/36 financed by the Belgian State, Federal Office for Scientific, Technical and Cultural Affairs.


text:
# Revison Control in the Grid Era - the unmet challenge

## I Concerns

I’m here to talk about revision control because this has emerged lately as an issue of major concern within CDF, especially as we start to integrate our own code with the SAM data handing system previously used only at the Fermilab D0 experiment, and as we start using Grid tools to submit jobs at remote sites.

We have considerable experience distributing the CDF offline analysis code on a wide variety of hardware and software platforms, and in a number of runtime environments ( online Level 3 triggers, online monitoring, interactive and batch systems. )

When a user comes to us saying ”It’s Broken !”, we need to know just what it is that they are running. There can be a surprisingly large number of possibilities if you stop to count them carefully. It is important to do so occasionally, and to take steps to keep this under some level of control. I will show several specific examples.

## II CDF Releases

First, let me outline what kinds of offline software releases we support, just so that the terminology is understood.

Then let’s count how many varieties of code we might be dealing with for a single given line of source code, in the development release.

This is a worst case, but it’s what got me worrying about this problem, and it is interesting to look at the numbers.

### II.1 Types of Releases

* Base

These are fully tested for specified purposes (Production, Analysis ) Version numbers are for example 4.8.0 for general purpose use.
* Point

Point releases are numbered like 4.8.1, and are otherwise just like base releases. They have specific corrections for operations, and are usually not on the main line of development. For example, 4.8.4 for Production track restruction for the 2003 winter conferences, and 4.9.1hpt2, for physics analysis for the same conferences.
* Integration

Integration releases are (bi)weekly frozen releases which have much less testing than base release. We only require that the code compile and link for integration releases. They provide a stable base against which major code development is conducted.
* Development

We build a release using the latest source code from the head of the CVS code repository each night, using the code present at midnight. We also perform rudementary code execution validition nightly. This gives early feedback in case of broken code or global problems.
* Patch

Inevitably there are slight administrative code changes need in the Level3, online monitoring, and production farm operations which do not merit a formal code release, but which need to be reproducible from CVS tags. Patch releases are a formalization of the usual developers temporary working area, using a standard creation script and named patch list.

You can find a current list of base, point and integration releases on the web 111http://cdfkits.fnal.gov/DIST/logs/rel/Releases.html .

### II.2 Development 2001

Here we count the different ways in which a given line of code might have been compiled in the nightly development release, in 2001 .

* 5 - OS

We were building with Linux 2.0, Linux 2.2, IRIX , OSF/1 and SunOS
* 3 - Optimization

We built variously with default, minopt (K1) and maxtop (K3)-
* 3 - History

Some systems do full clean rebuilds daily. Some systems force a full clean rebuild every Sunday. Most do daily incremental builds, and rarely if ever do full rebuilds. These three different histories could leave stale code in some libraries, as gmake does not know how to clean up when source code is removed. We have ways of forcing global rebuilds when we think it is needed. This is not usually a problem, but we have to worry about it nevertheless.
* 3 - Languages

You might find code built with with the KAI KCC 3, KCC 4 or gcc compilers.
* 4 - database

There was automatically generated code for connecting to text, mSQL, Oracle OCT or Oracle OTL. So any calibration database code would exist in for different forms.
* 2 - Library mode

The libraries are mostly built for static linking. But when for rapid development, developers often exercise an option to make local shared object libraries.
* 2 - build style

Through early 2001, we had only built libraries one at a time, using a single processor. Then we transitioned, on the large central systems, to doing parallel rebuilds. This is not trivial, as part of the gmake process involved generating headers and code which need to be subsequently used by other packages. We think we have this correctly set up now, but this was less obvious in 2001.

The net result of these possibilities is that a given single line of code in the development release could be built 2160 different ways.

It is clear impossible to exercise and test all of the possibilities with our finite resources.

We survived because very few of the options were exercised by normal users. Most developers ran under Linux 2.2 or IRIX, with default optimization, with weekly clean rebuilds, KAI 3, using the Oracle OCI interface, with static libraries and using the standard distributed libraries built in parallel. So the IRIX/Linux choice was the most commmon issue.

But remember that the team of people supporting the code do have to be aware of all 2160 variations. There were people exercising all the options listed above, in various combinations. It is essential to track down just what a developer is doing before starting to investigate a problem.

### II.3 Development 2003

The situation was not just a relic of rapid transitions during 2001.

Fewer people work out of the development release, now that Integration releases are available. So these choices are exercised less often by regular developers.

* 3 - Operating System

Linux 2.2, Linux 2.4, IRIX

We have dropped OSF1 and SunOS, and will probably drop IRIX soon.
* 3 - Optimization

Debug (K0), default (K1) and maxopt
* 5 - Database

text, mSQL, Oracle OTL MySQL, ODBC

It looks like we have added more options here. We’d like to cut back to text plus one ODBC type API to all the back end databases, reducing this to 2 varieties of code.
* 3 - History

clean, weekly clean, stale just as before.
* 2 - Languages

KAI KCC 4, gcc

We expect to drop KCC, moving to gcc 3.2+ before 2004.
* 2 - Codegen

We are testing a new simplified code generation structure at the moment. Eventually this will allow the single database API, making things better. A this moment, though, it creates one more option to track.

There are still a net 810 varieties possible for each line of code. Again, most are not exercised. Almost all development is now on Linux 2.4, default optimization, Oracle OTL, using the Integration base release, with KCC 4, and the old codegen. The parallel versus serial builds are now considered equivalent.

### II.4 Product versions

So far we have just discussed how many ways a single line of code could get built within the CDF offline release. That release itself depends on many external products, which we do not build as part of the release.

We try to take strong control of these versions, and support only a single specific version of each for a given CDF offline code release.

A current snapshot is given in Table 1

There are also a small number of products for which a fixed version is not appropriate, where we need to use the ’current version.

These products provide overall infrastructure support (UPS, UPD), or provide services not tied to any single release (diskcache\_i, kai\_key).

The development and current product versions are updated by requiring each system to run a nightly update of a ’development lite’ release of the CDF code, containing a few standard maintenance and operations scripts, database access configurations, other small operations data files.

## III SAM versions

Having this experince in mind, it was natural when we started to integrate the SAM data handling software with the CDF offline code to look at similar issues.

Just as we did when looking at varieties of code in the CDF development releases, we can look at varieties of operating environments for the SAM code. We encountered about 60 configuration files, used by a variety of programs, tailored for each of the following :

* 2 - Experiments

D0 or CDF
* 3 - Databases

development, integration, or production
* 5 - Operating systems

IRIX, Linux, OSF/1, SunOS and generic
* \- usage

User, Station, Stager, CORBA server

This makes 120 varieties to consider, clearly excessive.

After some investigation, we found that the D0 experiment does not use these configuration files. CDF runs SAM clients only under Linux, and does not want the option of different product versions for any of the options listed above. So in this case, we can reduce the complexity by simply removing the options entirely.

I have mentioned this small example mainly because this is what immediately motivated the presentation of this talk.

## IV Java

There is the temptation to look to portable virtual environments such as Java for a solution to portability and revision control problems. So I’ll deliver a little word of warning that things are not so simple.

At this time there are at least five versions of java used in the CDF offline environment, each somewhat incompatible with the other in function or licensing. I’m sure that even more versions are in use in the online system.

* v1.1.6 on IRIX
* v1.2.2b on Linux
* v1.1.7 was used on SunOS and OSF1 before we retired them
* v1.3 used for dcache data handling software development
* v1.4 used for dcache deployment in production at Fermilab

Even in the very simple offline application, where we use Java to convert data struction descriptions into C++ calibration database interface code (reading and writing plain text), we have had severe portability problems, particularly on SMP systems. The java application will die with strange and inappropriate diagnostics, something we’ve never really been able to find a cause for. At the moment we seem to be able to work around this by setting environment variable LD\_ASSUME\_KERNEL=2.2.5 ,

## V Operating systems

It is tempting when faced with operating system release issues to demand that everyone run the same system. But CDF is a worldwide collaboration. Most of the systems are not under Fermilab control, and are subject to legitemate local constraints.

Here is a little snapshot of RedHat releases, and kernels in use within CDF on 22 March 2003.

The hundreds of centrally managed systems in the Production farms and the Central Analysis Farm batch system all run Fermi Linux 7.3 .

The office desktop systems in Table 2 and offsite systems in Table 3 are a very mixed bag. Note that the offsite survery only lists systems I can log into, and does not include any of the large offsite farm systems.

There are 21 different Linux kernels in use offsite, each on 1 to 4 nodes, as shown in Table 4

Therefore, we try very hard, and change the code if necessary, to keep the CDF offline code independent of the kernel.

## VI root

Even for a single release of a single product, such as root, there can be many varieties when faced with the requirements of various experiments just at Fermilab. We presently build 15 varieties of each release of root, listed in Table 5 . We are working hard to reduce this work load, by moving to a common gcc compiler, and moving to enable C++ exception handling in the CDF code.

Note that the UPS/UPD tools for selecting and using just the desired version of a product is essential for survival If a given system can only have one version of root in use, shared by all projects, then most users will be unable to use it.

## VII File systems

Likewise, there are many filesystems in use, and one hopes that none of the offline physics code depends on these systems. This is not a trivial task.

Under Linux, one can use ext2, ext3, xfs and reiserfs transparently.

There is also limited use of afs, but without Fermilab support. So we try to avoid doing things that would break thisafs usage.

On the other hand, file systems like NTFS which do not distinguish upper and lower case characters in file names cannot be used safely, and we will not try to ’fix’ this in the CDF code.

## VIII Grid issues

It is hard to quantify the complexity of the Grid space, as the tools to be used are just emerging. Some of the choices will involve :

* Authentication

Who is the user requesting services ? There are a variety of methods in use outside the Grid ( kerberos 4 and 5, ssh, etc.) Various Grid certificate authorities have been commissioned, and are in negotiations right now over issues of mutual trust and subsequent use of these certificates for authorization.
* Authorization What is the user allowed to do. The classic issues are file access (as in afs), job submission/login, and file copying. In the Grid this is generalized to a broader range of services, hopefully with a single integrated set of authorization tools.
* Batch systems The primary initial use of Grid tools seems to be to access batch computing facilities. There are a large number of local batch system, (lsf, pbs, fbsng, etc.),and effort is underway to make this transparent to the end user.
* Database access It take more to run a job these days than just handline input, output, and the executeable environment. Database access to a central server is ofter requires, raising issues of network performance, or cacheing when multiple tier servers are involved.
* Multi experiments It is quite nontrivial to manage the environment for even one experiment. In the Grid world we are expected to share the same environment. This will require careful attention to detail to see that undesired couplings do not arise.

## IX Conclusions

A few simple items of advice seem to have emerged

* Count the varieties or configurations, and pay attention.
* Reduce cross-project couplings
* Reduce sensitivity to revisions (file systems, kernels, etc)