Implementing the ISUEVO Stellar Evolution Code By Jeffrey Burkett Minnesota State University, Mankato Introduction The ISUEVO stellar evolution code was designed by Dr. Steve Kawaler of Iowa State University for the purpose of studying the interior structure of stars. It creates models using the equations of stellar structure, knowledge of gas properties to determine the opacity within the star, and equations for determining the energy output of the star. These latter equations are the result of understanding the nuclear reactions that occur within the star’s core, the temperatures and pressures needed to sustain them, the amount of hydrogen that the star contains to begin with, and the fraction of that hydrogen that is near enough the core to be consumed as nuclear fuel. When all of these things are considered together, the result is a system of differential equations that is solved, by methods of iteration, for concentric spherical layers of the star; by the FORTRAN programs that make up the ISUEVO code. Models computed with these programs also compute the rotational properties of each shell, assuming conservation of angular momentum per unit mass. It is this differential rotation of conducting fluids within the interior that can give rise to a star’s powerful and complex magnetic field. A further modification to the code, providing for a different prescription of angular velocity in convective zones, is currently under construction. The research I did this summer (2001) was actually the first step of a two part project. I have evolved model stars from their main sequence birth to the point of their imminent deaths. Soon, we will pass these models on to Dr. Adam Frank and his colleagues at the University of Rochester in New York. They will use our models to compute their magnetic fields, and than proceed to evolve them into their planetary nebula phase. The gaseous outer layers of these dying stars may be guided into their unusual shapes, at least in part, by the magnetic field lines. Ultimately, we hope to replicate the conditions of observed planetary nebula with our models, and thus gain a better understanding of the processes that form them. While I evolved models for the purpose of studying planetary nebula formation, this code is ideal for working on any stellar evolution project dealing with stars in the the range of 2.5 to 3.0 solar masses. These stars are massive enough to smoothly ignite helium in their cores, thus avoiding the many problems associated with modeling the helium flash. They are also low enough in mass to end its their lives as planetary nebulae, rather than as neutron stars or a black holes. In addition to building models with the ISUEVO code, I have assembled this manual on its basic use and operation. It is far from complete, and deals only with the aspects necessary to repeat my work. Three things are assumed of the user of this manual. First, that they are familiar with a Linux operating environment. Second, that they possess a basic understanding of the concepts and terminology of stellar astrophysics. Finally, that with permission they have gained access to the ISUEVO directory, and have compiled versions of all of the programs therein. Creating a Zero Age Main Sequence Model 1. In order to choose the parameters for the type of star you wish to create, open the file zmod.par with the vi editor. You will see the following screen: 1.3000 0.74 0.02 0.0120 00 1.40000 0.2750 3.7935 17.2360 7.1912 0.28 0.001 < Mass of model, in solar masses < X, Z, and mass fraction of N14 < ieqep, ieqecc: 1 for equilibrium epsilon: pp, CN < Mixing length, in pressure scale heights < guess at log(L/Lo), log(Te) < guess at log(Pc), log(Tc) < Mass at fitting point < Quality of fit at fitting point 2. Edit the file so that the desired mass and composition are given on the top left of the first two lines. Note that the mass of the star must be given in solar masses. 3. Leave the lines labeled "iequp, ieqecc: 1 for equilibrium epsilon: pp, CN" and "Mixing length, in pressure scale heights" alone. No changes need be made. 4. The next two lines are the place in which to enter guesses of the initial luminosity(L/Lo), effective temperature(Te), central pressure(Pc), and central temperature(Tc). Note that all of these quantities must be given as logarithms, and that the luminosity is in terms of solar luminosity. By the Vogt−Russell theorem the mass and composition will uniquely determine the properties and subsequent evolution of the star. So it doesn’t matter what guesses you choose. Once the mass and composition are specified, any set of guesses will eventually converge upon the same solution. 5. The next line is the fraction of the mass outward from the center of the star at which the program will attempt to converge a solution. The final line is the decimal accuracy of this convergence at the fitting point. For now, these two lines may be left alone. 6. Note that not all sets of guesses will allow the program to converge on a solution, especially if the numbers are very far off. The following table shows guesses that will produce working models for stars of 2.5 to 3.0 solar masses. Leave composition at 0.74 0.02 0.0120. Set mass at fitting point to 0.35 Set quality of fit at fitting point to 0.0001 1 M/Mo 2.5 2.6 2.7 2.8 2.9 3.0 Log L/Lo 1.49 1.56 1.62 1.69 1.75 1.80 Log Te 4.00 4.00 4.00 4.03 4.04 4.05 Log Pc 17.15 17.13 17.12 17.10 17.10 17.10 Log Tc 7.33 7.34 7.34 7.35 7.35 7.35 7. Once the parameters have been set, exit the file to Linux and type the command "zmod2c" to run the program. The created model will be stored as "first.bin". The ISUEVO Program 1. Again, some setup is necessary before the code can be run. Open the file "isuevo.par". The following file will be displayed: 100 NMOD: number of models to compute 20 NSAV: every NSAV models is written to file ISUEVO.BIN 10 2 NPRINT, NZP: print details of every NPRINT models at NPZ.... −0.9 DTFAC: time step control: 0=auto, +=Fixed, − = auto * −DTFAC −−−−−−−−−−−−−−−parameters below rarely need changing−−−−−−−−−−−−−−− 2. The first line (NMOD)indicates how many models you want the program to create. Each model represents a progressively later time in the stars evolution. Change this parameter to the desired number of models. 3. The second line (NSAV) determines how many of these models will actually be recorded in the file "isuevo.bin". It takes longer to write out more models, as the properties of each concentric spherical shell of the star are recorded. However, if the program experiences difficulties, it is advantageous to have a recent model to restart from, after the necessary parameters have been changed. I recommend saving every 20 models or so. 4. The third line (NPRINT<,NPZ) is important primarily for troubleshooting the code, and need not be changed. 5. The forth line (DTFAC) sets the time step at which the star evolves. Setting this quantity to zero causes the program to use it’s own intelligent default. A negative number will increase or decrease the default by that factor. For example, setting this parameter to −0.5 will cause the star to evolve in time increments equal to half of the default time step. Finally, a positive number causes the star to evolve at a time step fixed by the user. By entering 100, the star would evolve in increments of exactly 100 years. Over the course of any model’s evolution, the timestep will vary greatly depending on 2 the complexity of the current reactions within the star. I have found that a timestep of −0.9 to −0.75 is ideal for most models. If the program experiences difficulties evolving a stellar model, as a general rule the first thing to try is reducing the time step. 6. There are more parameters below these that may also be changed, however there is rarely a need to do so. They can simply be ignored by the beginning user. 7. Once the above parameters have been set as desired, save them and exit "isuevo.par". 8. Upon returning to the Linux command window, type "editmod" to run that program. Editmod will prompt you for the name of the model that you wish to work with. For now, enter "first.bin". Later, you may need to use editmod with other models you have extracted and saved, as discussed later in this manual. After returning the desired model, you will be presented with the following options: (1) − dmdt (currently 0.000E+00) (2) − time (currently 1.309E+09 years) (3) − modno (currently 4501) (4) − teffl (currently 3.5414) (5) − fls (currently 3.7025) (6) − mass (currently 2.5000..scale mass only) (7) − mass (currently 2.5000..remove zones) (8) − OBC envelope mass (currently 1.000E−01) (9) − time step (currently 1.363E+00years) (10) − alfa (currently 1.4000) (11) − Surface rotation velocity (99) − DONE Enter parameter to be changed (by number) | 9. In the middle of it’s evolution, it is unlikely that you will wish to change the age, mass, etc. of the star. What does need to be changed is the OBC envelope mass. Enter option "8" and than change that parameter to "0.1". The reason for doing this is that there is no true ’surface’ of the star. The outer shells rapidly become increasing less dense, and the program cannot converge a solution if it is dealing with zones that are too optically thin. 10. Now choose option "11" and enter "1" for the surface rotation velocity. All future velocities will be scaled to this number, and be given as a factor of this initial velocity. When this is done, choose option "99" to quit editmod. 11.Editmod has now created and stored a new model, with these new specifications, in the file "newmod.bin". When the evolution code is initiated, it begins with the model "first.bin" as it’s ZAMS starting point. It is therefore necessary to copy the contents of "newmod.bin" to "first.bin" before beginning the star’s evolution. 3 12.Finally, enter the command "isuevoc" to begin running the evolution code. The program will proceed to generate the number of models specified, at the desired timestep, and store them in the file "isuevo.bin". The code can take anywhere from a few minutes to a few hours to run, depending on how many models are being generated and the current phase of the stars evolution. In general, the main sequence and red giant branches are relatively simple and evolve quickly. Conversely, the period of thermal pulses at the end of the AGB can take quite a long time. Extracting and Working With Stellar Models There are several data files created by the ISUEVO code, as well as several programs accompanying it; that can be used to extract and manipulate the generated stellar models. Each of these is discussed in turn in the following paragraphs. last.bin: This data file contains the final model generated by the ISUEVO program. In order to evolve the star further from the point at which you left off, simply copy the contents of "last.bin" to "first.bin" and enter the command "isuevoc" to run the code again. modxtr: This is an executable program that is implemented in Linux by simply typing the command "modxtr". Upon execution, a list of the models by number is displayed and you will be prompted to enter the model you wish to extract. This model is then stored in the file "temp.bin". It is advisable to immediately copy extracted models that you wish to save for later use into another file, as each time modxtr is used it overwrites temp.bin. isuevo.sum: This data file contains a brief summary of the basic physics of each model generated in the last implementation of isuevoc. For each model there will be two rows of numbers. In order, this is what each of those numbers represent: model number, current age, log L/Lo, log Te, log R/Ro, log g, mass, log Tc, log central density, Xc, Yc, Cc, mass of convective core, mass or convective envelope, mass within which X=0, mass within which Y=0. All of these are standard astronomy notation, with X and Y indicating composition mass fractions, C indicating carbon mass fraction, a subscript ’c’ meaning central, a subscript ’e’ meaning effective, and Lo indicating solar luminosity. It is a good idea to keep a running summary for any star that you are working on. Each time you run isuevoc, be sure to copy the contents of isuevo.sum into a data file for that particular star. It will be very useful for plotting H−R diagrams and other graphs using Super Mango, xgraph, or similar graphing programs. plotmod: This is another program that can be run in by entering the command "plotmod". It is useful for creating data files of specific quantities for 4 specific stellar models. As an example, plotmod can be used to create a file that contains the star’s temperature and density as a function of radius; at a precise time in it’s evolution. When executed the program will prompt you to enter the name of a model. Upon doing so you will see the following menu: (0) − Mr (1) − r (2) − P (3) − T (4) − Lr (5) − rho (6) − delad (7) − delrad (8) − del (9) − Q (10) − Xt (11) − Xd (12) − kappa (13) − kt (14) − kd (15) − eps (16) − epst (17) − epsd (18) − mu (19) − DlnP (20) − DlnT (21) − X (22) − X2 (23) − Y3 (24) − Y4 (25) − Li6 (26) − Li7 (27) − Be7 (28) − C12 (29) − C13 (30) − N14 (31) − N15 (32) − O16 (33) − J/M (34) − I (35) − Omega (36) − zone # Enter X axis quantity number | The ’X’ quantity entered by number will be the first column in a data file entitled plotmod.out". Subsequent ’Y’ quantities will be be assigned to the second, third, and so on, columns of the same file. You will also be given the option of selecting a logarithmic scale for each quantity. The plotmod.out file thus created can than be used in conjunction with one of the aforementioned graphing programs, to gain an understanding of the star’s interior at a specific point in time. Final Commentary As I have already indicated in my introduction, this manual is really only a beginner’s guide. It is my hope that it proves useful in getting someone started on the task of picking up my work where I left off. I also hope that in the future this manual will continue to change and evolve along with the programs it documents. I invite and encourage anyone working with the ISUEVO program to bring about that evolution, so that the documentation eventually encompasses the entire scope and depth of the ISUEVO stellar evolution code. 5