1 PH700 Projects 2015/16 Prof Michael D. Smith Centre for Astrophysics & Planetary Science University of Kent THIS IS A DRAFT FOR 2015-16 THE EXACT STUDIES ARE TO BE DEFINED. EG. STUDY MACH NUMBER, DENSITY, PULSES, SHEAR, OPENING ANGLE. ………. THE PLUTO CODE COMPILATION NEEDS TO BE CHECKED, AND THE IDL FILES ALSO BUT TRY TO GAIN SOME BACKGROUND ………..AND LET ME KNOW YOUR PROGRESS Towards a resolution of a burning issue in Astrophysics, from the fields of solar system, galactic or extragalactic astronomy. Recent problems between observational data and theory provide a rich source of issues to be investigated. This project will focus on a specific phenomenom of high interest and motivation, in one of extragalactic astronomy, galactic astronomy, or solar system astronomy. The study will begin with a review of recent publications which address the issue and an evaluation of possible solutions. To achieve this, all major physical processes involved will be understood in depth and detail. Then, data will be obtained from an appropriate source and analysed in order to generate, in an original way, fresh evidence for or against the available solutions. The study will then consider new or hybrid solutions before considering how these can be tested. The relevance of new ground-based telescopes or space missions will be discussed. Supermassive black holes in the nucleus feed back energy into the galaxy and intergalactic medium when they are being feed i.e. when they are active. They may control the formation of the entire galaxy. They do this by forming the largest entities in the Universe: Radio galaxies. Radio galaxies are driven and supplied by twin channels called jets. So, to understand our Universe, we need to understand how jets operate, amongst other things. Radio galaxies: what shapes them? What determines their different structures? How do they evolve? This project investigates some of the fundamental properties of jets. We take the simplest form which still has not been thoroughly studied. Non-relativistic, adiabatic hydrodynamics. The jets are injected from a small ‘nozzle’ from one side of a cylindrical region. We use cylindrical coordinates and assume axial symmetry, so we have the two dimensions to consider: the distance along the cylinder and the distance away from the axis. YOU WILL NEED THE PLUTO CODE The pluto code project (computational fluid dynamics/MHD). http://plutocode.ph.unito.it/ http://plutocode.ph.unito.it/files/userguide.pdf YOU WILL NEED IDL software. This runs on all platforms, OS, You will need to make an appointment with Dr Mark Price to get the software installed on your laptop. That is easiest since you can then work on the code anywhere.. email: mcp2@star.kent.ac.uk Alternatively you can gain a UNIX account for the PCs in SPS106 and work in there when it is open. Again, you will need to request an account on these PCs through Dr 2 Price. He will probably not do this until after you have completed the Health & safety in Week 1. I have a UNIX primer if you request it to learn the basic UNIX commands. Machines should run IDL. (Note: PLUTO can be used without IDL, using png files that it outputs, or VISIT https://wci.llnl.gov/codes/visit/home.html (using VTK output?) , or other visualisation including MATLAB but I cannot guarantee help and, apart from MATLAB, they could be limited in what they can achieve Pluto can also output PNGimages. That is very handy for quick visualisation while the code is running. ) ) Stage 1 Review Subject: literature from journals. Use ADS system to perform literature review. http://adsabs.harvard.edu/abstract_service.html Low Mach number RGs: http://adsabs.harvard.edu/abs/1986ApJ...305..109B http://adsabs.harvard.edu/abs/1993ApJ...417..515L http://adsabs.harvard.edu/abs/1995ApJ...445...80L http://adsabs.harvard.edu/abs/2002MNRAS.336.1161L Might be of interest: http://adsabs.harvard.edu/abs/2005MNRAS.359..781S http://adsabs.harvard.edu/abs/2003ApJ...594L.103G http://adsabs.harvard.edu/abs/1993ApJ...405L..13D http://adsabs.harvard.edu/abs/1985MNRAS.216..971W Diamond shock: http://adsabs.harvard.edu/abs/2011ApJ...737...54B http://adsabs.harvard.edu/abs/2012MNRAS.420L..48N In the Lab: http://adsabs.harvard.edu/abs/2013A%26A...554A..99B Nirvana, Gaibler: http://adsabs.harvard.edu/abs/2009MNRAS.400.1785G http://adsabs.harvard.edu/abs/2013Sci...341.1082M http://adsabs.harvard.edu/abs/2013arXiv1309.1386K Anything else referred to below is contained in: http://astro.kent.ac.uk/mds/Modules/1516/PH700/ Jamie Ryan’s PH700 from 2014 (note that he ran out of steam after a good start! Nicola Abraham’s PH700 2014, uses dzeus rather than PLUTO, is pretty good. Chapters from my jet book Book: chapters 1-4, 9, 10. 3 C1 – C4: http://astro.kent.ac.uk/mds/Modules/1314/PH700/Jetbook/ C1: Introduced C2: Radiation (synchrotron, X-ray bremsstrahlung (free-free), inverse Compton off CMB C3: Hydordymaics C4: radio galaxies C9 Launching C10: Propagation Stage 2: Understand the PLUTO code Read http://adsabs.harvard.edu/abs/2007ApJS..170..228M http://adsabs.harvard.edu/abs/2012ApJS..198....7M Stage 3: Setting up and running PLUTO Get pluto code running. There are detailed instructions in the user manual about compiling it: http://plutocode.ph.unito.it/files/userguide.pdf IF YOU CANNOT SET UP ON YOUROWN PC, with UNIX or Cygwin, then we will get you on to forge TO RUN SIMULATIONS ON FORGE To login to Forge from PC in room SPS106: ssh -l nanumber forge.kent.ac.uk To run dzeus ...... Basic Installation and Usage ============================ 1) define the shell variable PLUTO_DIR as the main PLUTO directory, e.g., if you are using tcsh: > setenv PLUTO_DIR "/home/user/PLUTO" (In my case: Add to .cshrc: setenv PLUTO_DIR "/home/mds1/PLUTO" setenv IDL_STARTUP /home/mds1/idl/idlstartup ) if you're using bash: > export PLUTO_DIR="/Users/ovidiu/PLUTO" 2) select a working dir anywhere on your hard disk; at the command prompt, just type 4 > python $PLUTO_DIR/setup.py configure your problem and select makefile; 3) edit your init.c and pluto.ini to assign initial conditions and problem specific information; 4) compile with > make or (gmake); For Mac choose: Darwin.i386.gcc.defs 4) run with > ./pluto See the documentation in Doc/ for more information. Have fun! If you encounter problems during the previous steps, or have any other question regarding the code, please send an e-mail to mignone@ph.unito.it A simulation is easy to set up. Usually only 3 files need to be modified: "definitions.h" is for changing general code settings such as setting MHD or HD. "pluto.ini" changes specific simulation settings such as number of zones and output file frequency. Pluto runs reading in pluto.ini "init.c" is the main file to modify in order to set up your own model. THESE WILL BE PROVIDED IN THE 1516 Directory. Pluto also comes with a "Test_problem" folder where there are plenty of examples including a few jet examples. I think there may even be an adiabatic jet in the Pluto "Test_problem/HD/Underexpanded_jet" folder. Stage 4: Understand the IDL Code What is IDL and how does it work? Quick Start: What it is and why is it so good? http://www.astro.virginia.edu/class/oconnell/astr511/IDLguide.html http://chaos.swarthmore.edu/courses/phys6_2004/IDL_Notes_P6.pdf There are many other IDL guides on the internet. Find your favourite. e.g. http://www.dfanning.com/ 5 There is also the help associated with the installed programme. Stage 4: Running IDL Look at files in: http://astro.kent.ac.uk/mds/Modules/1516/PH700/IDL/ What you need to know….quick confidence booster: All IDL programmes have the explicit extension '.pro'. Save the programme intro.pro Click on your IDL icon to start IDL. Go to the top bar and 'file' 'open...' and open intro.pro Find wherever you put intro.pro and click on that. it appears in the main grey area, where it can be edited. This IDL file is just a calculator, reading in useful constants and then calculated a density near the end and giving print commands. To run it: Go to the top bar and choose Run, compile intro.pro The answer comes in the middle window. ************************************************** Next level: More complicated: Open intro-cosmo run intro-cosmo In the middle window appears the names of two modules: PARAMETERS and COSMO These are the two separate programmes contained in intro-cosmo.pro. In this case, actually, running PARAMETERS will ask it to also run COSMO before finishing. You can see that if you scan through it. To run the programme, go to the command line right at the bottom ....the one-liner with IDL> Type just the one word: parameters Then you should see that it calculates, in the middle window, the complete set of parameters for 3c465 ....this is my own tool for calculating the distance of a quasar or galaxy from its redshift - you have to integrate from us to the object 6 to do it. There is a loop in the code over 30000 steps which does the integration - dont worry about that - its the whole concept of programming contained here. Take a look at how the programme is constructed. More help ideas: http://vis.lbl.gov/NERSC/Software/idl/help/docs6.0/getstart.pdf eg there are commands to write images into various formats…..lots to get familiar with. MAKING IDL DO THE WORK FOR YOU This is important to make things work properly – be precise. Make a directory in some tidy place where it can stay. Put the setup.pro in it. Open it up in IDL and change the first line.to YOUR directory. Save it. Put the other two .pro files in the same directory Having set up setup.pro ............ (2) START IDL In IDL select Preferences under the File menu. (3) Click STARTUP. Click SELECT WORKING DIRECTORY and browse and select your working folder. Click SELECT STARTUP FILE and browse and select the file setup.pro (4) Click PATHS Click INSERT and browse and select your working folder Click the box in the window next to the listing of your working folder (check mark should appear) (5) Click APPLY Click SAVE Click OK - if it asks. (6) Restart IDL Now it should automatically choose the directory In the future setup.pro may contain anything you always use, loaded in at the start automatically. Neat...see idl-notes.pdf for the full instructions....it all worked on my toshiba. Create idlstartup file – see version in /home/mds1/idl idlstartup contains path to pluto tools: !path=!path+':/home/mds1/PLUTO/Tools/IDL' 7 To run IDL: .r pload .r jetpluto (provided on 1516) jetpluto ,rho,vx1,vx2,prs,tr1 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Will compile a list of the parameters as you requested. Will also compile a file of basic equations which sets up the runs Will generate a couple of equations in IDL to make sychrtron radio maps ....might not be easy in 2D cylindrical. Will look at the background of nozzle flows and provide references. Will suggest possible systematic study....since these run fast at present reolsution this can be done. Will make IDL Stage 6: PLUTO jet parameters The set up follows: Norman et al 1982: mach number = 6 jet density/ambient density = 0.1 http://adsabs.harvard.edu/abs/1982A%26A...113..285N PRELIM NOTE: Code is setup internally to take: Length scale = 1 (we take R_JET=1 so jet radius is always one) Ambient medium sound speed camb = 1 (density = damb doesn’t have to be fixed) Therefore: time unit is 1 also, units of R_JET/camb (don’t change R_JET). SUPPLIED PLUTO.INI: Take a UNIFORM ambient medium before the jet enters: Take specific heat ratio as g_gamma = 5/3 (monatomic or fully ionised gas) So thermodynamics of ideal gas, the pressure is Pamb = (g_gamma – 1) x eamb, eamb =Internal energy per unit volume camb^2 = g_gamma x pamb/damb = G_gamma) x (g_gamma – 1) x eamb, So eamb = 0.9 pamb = 0.6 for g_gamma=5/3 Choices: D_RATIO 0.1 = density ratio, often called eta = djet/damb P_RATIO 1.0 =pressure ratio, often called kappa = pjet/pamb MACH 6.0 = Mach Number Of jet, M = vjet/Cjet Where Sound speed is given: Cjet = sqrt(g_gamma*pjet/djet) R_JET 1.0 radius unit, length unit THETA_R 0. = Spray Angle (conserved total jet speed) CHECK CAREFULLY IF DEGREES OR RADIANS!!! 8 See init.c: thetar=g_inputParam[THETA_R]; d->Vc[VX1][k][j][i] = vjet*sin(thetar*R[i]/rjet); d->Vc[VX2][k][j][i] = vjet*cos(thetar*R[i]/rjet); So: on axis VX2 = Vjet VX1 = 0 At r=R_JET, VX2 = vjet cos(thetar) VX1 = vjet sin(thetar) (note: IDL always puts jet axis along horizontal direction by swapping arrays) F_PULSE 0. Amplitude of jet speed pulsations. See init.c: fpulse = g_inputParam[F_PULSE]* sin(ompulse*glob_time); So fpulse = F_PULSE sin (omega t), t = time vjet=g_inputParam[MACH]*(1.-fpulse)*sqrt(g_gamma*pjet/djet) to be clear vjet = MACH*cjet*]*(1.-fpulse) OM_PULSE 0. Angular rate of sinusoidal pulses (they steepen into shock waves – remind me to explain!) Period of introduced pulsations, P = 2 pi/OM_PULSE F_SHEAR 0.: Fractional reduction in jet speed (shear across the jet) NOT TESTED – new version of init.c fshear = g_inputParam[F_SHEAR]; Added this to velocity components: *(1.-fshear*cos(1.5708*R[i]/rjet)) Note: jet has a uniform grid of 100x200 and a staggered grid adding 25%: 125x250 The staggered part allows flow out much farther – so boundary condition don’t influence the nozzle. BUT, the staggered grid is displayed with IDL – giving distortions on the outer parts of the images. This is removed in the new IDL versions by setting, Unigrid or uniform near top of .pro files. Note: there is a REFLECTIVE boundary along the nozzle entrance plane: like a solid surface (relevant ? – but if the nozzle were to be a ‘tube’ rather than a hole in a surface, then an outflow BC would be more appropriate…..). Reflection makes for very nice nozzle patterns I think! Dzeus was set up for outflow – so the gas can escape and the pressure doesn’t build up. The nozzle is then not so well-defined. I will change this so they are directly comparable….. One other point to sort out: the tracer max and min are spat out when you run idl – and shows that it doesn’t stay as 1 (jet amterial) or 0 (ambient), but has mixed zones at the interface. However, min and max are -0.03 and 1.08 !!! It should be impossible to get out of the range 0 – 1 !! Ok to use since small errors, but the definition and calculation of tracer needs to be looked at…perhaps it doesn’t work properly in cylindrical coordiantes? ++++++++++++++++++++++++++++++++++++++++++++ Final Stage: Research – On some platforms you need: python $PLUTO_DIR/setup.py --no-curses To run on forge: choose option 20 TRIALS: M=1 P_RATIO = 2, 4, ……. M=1.5 P_RATIO = 1, 2, 4, ……. M = 3 and 6, P=1, P_RATIO = ? 2 or higher? M = 6 or 3, P_RATIO = 1 THETA_R = 0.1, 0.25, 0.5 ? 9 SUGGESTED QUESTIONS TO ANSWER: Where do high pressure/density knots form in jets? Where do high temperatures occur? Do these locations depend on the parameters chosen? How do these knots form and move out initially? Is a stable/stationary flow pattern obtained? IDL SYNCHROTRON IMAGES: This is an approximation, synthetic, since we don’t have magnetic field or relativistic electrons. We assume emission is proportional to pressure^n where n is a constant. Sync2d.pro: to make images from a 2D cylindrical run. 1. read in data 2. calculate sync per zone 3. integrate through over XY grid 4. Double Grid and display IDL: .r pload .r jetpluto jetpluto ,rho,vx1,vx2,prs,tr1 python $PLUTO_DIR/setup.py –no-curses 10