Look at the results¶
A ProDiMo run generate a log file (that can be saved as an ascii file) and a number of output files (ascii and fits). The log file is human-readable and help to ensure that the run proceeded successfully. The other output files need either IDL or python and some provided routines to be read. We do not provide a description of the output format since most of the data can be accessed by our reading routines.
The log file¶
The standard log prodimo.log provides general information about the run. If the code has crashed, the reason may be shown in the log. Please have a look and correct the potential mistakes (mistakes in the input, lack of an input file, wrong values for a switch/parameter, incompatible set of switches/parameters, ...). If the code has crashed due to a runtime error, please contact the code developers with all the input as well as this log file.
The log file starts with
o
/ \
/-------------------------------------------------\
/ \
| This is ProDiMo |
| |
| Version: master |
| Revision: 8b1fe501 2023/12/07 |
| /Users/wing-faithi/Projects/ProDiMo/gitlab/prodi|
| |
| (c) 2009-2022 P.Woitke, I.Kamp, W.-F.Thi, Ch.Rab |
\ /
\-------------------------------------------------/
WRITE_SYSINFO: ...
running in folder /Users/wing-faithi/Projects/ProDiMo/test_op_ratio_20231206
using 12 processors
using OMP version: 201511
compiler version: GCC version 13.2.0
compiler options: -ffixed-form -cpp -iprefix /usr/local/Cellar/gcc/13.2.0/bin/../lib/gcc/current/gcc/x86_64-apple-darwin23/13/ -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk -D__DYNAMIC__ -D LAPACK_SOLVER -D CHECK_NAN -fPIC -m64 -mfpmath=sse -msse2 -mmacosx-version-min=14.0.0 -mtune=core2 -O3 -Wuninitialized -std=legacy -fdefault-real-8 -fdefault-double-8 -fopenmp -ftree-vectorize -ftree-loop-optimize -finline-functions -fbounds-check -fbacktrace
using cfitsio version: 4.03010
ProDiMo_datapath: /Users/wing-faithi/Projects/ProDiMo/gitlab/prodimo/data/
The header gives some system information:
- The version of the code (here it is the master)
- The specific revision number (hash) and the date of the revision
- The full path to the running folder (where all the input and output are located
- The number of processors used in that particular run (see how to run ProDiMo for more for more information on how to run ProDiMo in parallel mode)
- The OMP (OpenMP version)
- The compiler name and version (see the entry for a list of supported compilers)
- The compiler flags
- The cfitsio version
- The full path to the ancillary data used by ProDiMo
The log then shows the different steps of the code intialization. This part can vary depending on the switches. If an error occurs during this phase, an error message may be shown. If this is not clear to the user if it can be fixed, please contact one of the developers. Warning can also appear. Warnings are mostly physical limitations/caveats due to a lack of data (molecular, atomic, dust, astrophysical, ...) or of the approximation made in the code due to a limited physical understanding of a phenomenon. The warnings do not prevent the code to run. Generally the warnings concern small details that do not prevent a physically-sounded output from the code but may restrict the physical scope of the results in very specific cases.
The continuum radiative transfer is performed (requested by default)
SOLUTION OF CONTINUUM RADIATIVE TRANSFER ...
ADJUSTING theta,phi-grid 1 ... mu,phi-change mean/max = 5.884E-01 2.606E+00
RT-iteration 1: J-change= 1.74E+06 T-change= 1.00E+00
midplane_tau_UV= 2.20365E+05 time= 32.38 sec
Nrays= 810600 steps/ray= 79.67 fcalls/step= 2.103
worst point 20 28 Td= 312.573 -> 483.300
worst point 12 7 Jnu= 8.624E-27 -> 1.890E-19 lam= 0.588742
hottest grains at 10 19 Td= 1505.846 K
coolest grains at 68 1 Td= 4.378 K
RT DIFFUSION APPROXIMATION:
tau_cutoff = 1.000E+01 ...
compute mean opacities ...
compute Rosseland optical depths ...
12 r[AU]=7.0023E-02 11 z/r<= 0.0350
13 r[AU]=7.0083E-02 16 z/r<= 0.0633
After the continuum radiative transfer is done. At the last iteration, one should check that the hottest dust grains do not exceed the estimated dust sublimation temperature.
RT DIFFUSION APPROXIMATION: tau_cutoff = 1.000E+01 ...
compute mean opacities ...
iter,change= 1 2.436E-03 worst= 16 21
RT-iteration 142: J-change= 2.76E-03 T-change= 7.57E-05
midplane_tau_UV= 2.20365E+05 time= 31.35 sec
Nrays= 810600 steps/ray= 73.21 fcalls/step= 2.099
worst point 18 20 Td= 492.413 -> 492.450
worst point 19 15 Jnu= 7.020E-23 -> 7.040E-23 lam= 0.588742
hottest grains at 9 6 Td= 1575.656 K
coolest grains at 69 1 Td= 4.899 K
RT total time= 4770.9 sec
CALCULATING MONOCHROMATIC FACE-ON SED ...
applying energy-conserving Jnu-interpolation ...
... finished Jnu-interpolation. time= 1.689E+00 sec, max. bg-err= 0.000E+00
CALCULATING MONOCHROMATIC SED incl= 45.0 ...
RT_GRID: NZONES=1 R1in= 0.07 Ntot= 225
requested continum image FOV = 1313.50 AU
actual image FOV = 1325.76 AU
Nrays= 15024 steps/ray= 77.74 fcalls/step= 2.254
... done. CPU time = 76.98 sec
time = 9.21 sec
Here the hottest grain is at Td= 1575.656 K, which is at the upper limit for the survival of silicate grains. The images and SEDs for a disk seen face-on and at an inclination requested by the user (0 deg means face-on) are computed. Finally the CPU time and the (actual) user time for the SED computations are shown.
The log proceeds in showing the progress of the run
60 ............................
59 ............................
and
CHEMISTRY POINTS FINISHED: 1226 / 4200 ( 29.2%)
CHEMISTRY POINTS FINISHED: 1237 / 4200 ( 29.5%)
CHEMISTRY POINTS FINISHED: 1248 / 4200 ( 29.7%)
CHEMISTRY POINTS FINISHED: 1253 / 4200 ( 29.8%)
CHEMISTRY POINTS FINISHED: 1264 / 4200 ( 30.1%)
Here 4200 (70 x 70) grid points have been requested, the chemistry and gas heating cooling has been computed for 1264 grid points.
At the end, some further statistics are given
CPU-time= 23644.60 sec
time= 2398.56 sec
max element conservation error : 1.08E-08
max chemical equilibrium error : 9.57E-05
max heating/cooling balance error: 4.00E-03
non-LTE calls, %sparse, : 2319975 0.000% 3.0450
solve_chemistry calls : 32625
quadp chemistry calls : 420
advance_chemistry calls : 45
NR converged after advance_chem : 23
NR failed after advance_chem : 20
advance_chemistry failed : 2
SOUNDSPEED ...
Calculate VELOCITY_ONGRID ...
Write ProDiMo.out ...
Write restart.fits.gz ...
Write FlineEstimates.out
FIXED DISK_STRUCTURE: ...
muH = 2.3299569933334273E-024
fac= 1.0000046616404610
zone 1: ix= 1 r= 0.07000000000000AU n<H>=9.80E+15cm-3 dx=9.79E+02cm dNH=9.60E+18cm-2
dtau1mic= 1.13E-04 #points(tau<1)= 8
... is OK.
DUST STRUCTURE: ...
calculating dust settling according to ...
method=2, alpha= 1.00E-02
(parameter values may depend on zones)
Vol[cm^3] = 1.6579369915060095E+048 1.6540646307428417E+048
Mgas[Msun] = 1.0002847068188173E-002
Mdust[Msun] = 1.0002847068188153E-004
DUST_WRITE_SIGMAA ...
/--------------------------------------------\
| finished disk structure after iter = 3 |
| convergence = 0.0000E+00 |
\--------------------------------------------/
It is not uncommon that some chemistry computations fail (i.e. single points in the grid). This does not affect the outcome unless the number of failures is very high.
time is the actual time spent to run the model while CPU time is the time used by the CPUs (much higher if parallel run has been requested).
NR means Newton-Raphson convergence algorithm which is used to determine the chemical abundances.
The number of iteration accounts for the number of restart (here the model has been run after 2 restart after the initial run).
The convergence value is 0 for fixed disk structure. The value has a meaning only in the vertical hydrostatic mode.
The user is encourage to have a detailed look at the log when the model has been selected for publication to ensure that no artefact can hamper the results. In case something is not clear, an expert can help.
Parameter.out¶
One of the output files is named Parameter.out. It contains the actual values of the parameters of the model as used by the code. The values in this file are the references since a few parameters can be changed by the code itself. The units of those values can differ from those used in Parameter.in. It is recommended to check the values in Parameter.in and those in Parameter.out before a model is published. It can happen that the Parameter.in file currently present in the directory has been tempered and the values do not correspond to the run output in that directory.
Many other parameters are present in the Parameter.out file. They are default values chosen by the codes when they are not overwritten by the users in Parameter.in or they are intrinsic technical parameters of interest only to the developers (especially when a bug occurs). The few first lines give information about the code version of the code, the date of the run and the running time.
ProDiMo 8b1fe501 2023/12/07
Run date 20231208
Run time 124520.811
The first line is the same value than in prodimo.log.
Analysis and plotting¶
We provide two ways to look at ProDiMo results, IDL scripts and python (prodimopy). The IDL routines are part of the main ProDiMo source distribution. The python package is independently maintained on gitlab and can be used without access to the main ProDiMo source repository (public project). We do not support GDL.
IDL¶
The ProDiMo idl scripts are part located in the idl directory of prodimo source code. If you have not used conda to install ProDiMo check if you have set the IDL environment variables properly (see OS environment), before you ran IDL.
ProDiMo uses the IDL Astronomy User Library which require also the IDL COYOTE library. However, there is no need to install them, as some version is included with ProDiMo. If you use those libraries for other things, take care that you have set the IDL path properly. You might need to be somewhat careful with possible sub-folders in IDL_PATH, depending on your installation. Check the path via
> idl
IDL> print,!PATH
To produce the plot for a prodimo model, change into the directory of the model and start idl and type start idl and type:
IDL> .r prodimo
IDL> exit
NOTE: You may have to try the command .r prodimo.pro. This sould produce a file out.ps that contains all the plots for your models. You can view it with any postscript viewer e.g.
> gv out.ps
IDL virtual machine¶
TODO: There is no prodimo.sav in the current git ... so I guess that is not working.
If you do not have a IDL license, you can install the IDL virtual machine for free (see IDL Virtual machine). In the directory of your model, type
> cp ../idl/prodimo.sav .
> idl rt='prodimo.sav'
you will generate the out.ps file.
A few IDL tricks¶
to reset all the variables: IDL > .Reset_Session
to have the screen text output into an ascill file. at the LINUX
prompt: IDL > filename.txt
IDL > .r prodimo.pro
IDL > exit
prompt: emacs filename.txt &
Other idl macros¶
In addition, there are several other idl-macros in ProDiMo/idl for special purposes, which can be run in an analogous way when a model, or a series of models, is completed, for example
prodimo_1D.pro : make vertical 1D-cuts
RTinterpolation.pro : see how well the spline interpolation in log(lambda) works on the stellar input spectrum
make_movie.pro : make a series of plots for a series of models
rotCO.pro : make a rotational diagram
Jnu.pro : visualize the internal radiation field
line3D.pro : make channel maps
evo_plot.pro : visualize the progress of an auto-optimization run
Python (prodimopy)¶
If IDL is not available, ProDiMo output can be analysed with python tool, called prodimopy. How to install the package and extensive documenation can be found in the public prodimopy gitlab repository.
Please note that no user is required to use this package. That can be usefull for people who do not run ProDiMo but do want to extract information from existing ProDiMo models.
Any contributions (e.g. new fancy plots) to this package are very welcome. You do not have to be a ProDiMo developer to do this!