-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathoptions_example
More file actions
286 lines (209 loc) · 11.2 KB
/
options_example
File metadata and controls
286 lines (209 loc) · 11.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
#THIS IS AN OPTION FILE FOR KROME
############# NOTES ###################
#Note that this file is an alternative to call the options from command line, e.g. -cooling=H2,HD
#You can call this file by using -options=FILENAME, where FILENAME is the path of this file.
#The options can be (un)selected in several ways:
#if the option do not requires any argument (e.g. -conserve) you can write one of the following
# conserve
# conserve YES
# conserve TRUE
# conserve T
# conserve 1
#or to exclude the command
# conserve NO
# conserve FALSE
# conserve F
# conserve 0
#When the option requires a parameter (e.g. -ATOL=1d-10)
# you must specify the parameter as
# ATOL 1d-10
# ATOL=1d-10
#note that you can prepend "-" character before the option, e.g.
# -ATOL 1d-10
# -conserve
#comments are allowed via hash (#) and C-like comments (//)
############# END NOTES ###################
#absolute tolerance, the default is 1d-20
#ATOL 1d-10
#create a C wrapper to call KROME from a C program, see wrapC example in tests, or call it using -test=wrapC
# -C
#prepare a single file that stores all the KROME modules in one. Less intelligible, but more compact. See -test=compact for an example
# -compact
#check mass conservation during integration (slower). Returns an error if the mass conservation relative error is larger than 0.001
# intended for debugging purposes
# -checkConserv
#check network for reverse reactions. Write warning on screen if missing.
# -checkReverse
#print a warning when thermochemistry data are not found for a given species. Intended for reverse reactions.
# -checkThermochem
#clean the build directory before write, including krome_user_commons.f90. Warning, you cannot undo this action.
# -clean
#in the ODE the fluxes are stored in a single variable instead of explicitly written. For old compilers.
# -compressFluxes
#conserves the species total number and charge global neutrality. Works with some limitations, please read the manual before using,
# especially for non-primordial environments with heteronuclear molecules.
# -conserve
#conserves the charge global neutrality by changing the electrons number density in order to balance the ions
# -conserveE
#select the filename to be used to load external cooling. See also tools/lamda2.py script for a LAMDA<->KROME converter.
# Default FILENAME is data/coolZ.dat, which contains fine-structure atomic metal cooling for C,O,Si,Fe, and their first ions.
# It can also be a list of files comma-separated.
# -coolFile=your/cooling/file
#cooling options, TERMS can be ATOMIC, H2, HD, Z, DH, DUST, H2GP98,
# COMPTON, EXPANSION, CIE, DISS, CI, CII, SiI, SiII, OI, OII, FeI, FeII, CHEM (e.g. -cooling=ATOMIC,CII,OI,FeI).
# Note that further cooling options can be added when reading cooling function from file. If you want a complete list of
# the available cooling options type -cooling=?
-cooling=H2,HD
#quenching cooling using a multiplication factor of (tanh(T-Tcrit)+1)/2, where Tcrit in K is the critical temperature
# around where the factor starts to have effect. You can modify this function in the cooling() function in the krome_cooling module
# -coolingQuench=Tcrit
#a file with the list of the individual ATOLs in the form SPECIES ATOL in each line, e.g.
# H2 1d-20
# HD 1d-6
# See also -ATOL. Note that comments (#) are allowed
# -customATOL=your/custom/atol/file
#file with the list of custom ODEs to extend the ODEs employed by the chemistry. See -test=lotkav for an example and the
# file tests/lotkav/lotkav
# -customODE=custom/ODE/file
#a file with the list of the individual RTOLs in the form SPECIES RTOL in each line, e.g.
# H2 1d-4
# HD 1d-2
# See also -RTOL. Note that comments (#) are allowed
# -customRTOL=your/custom/rtol/file
#dry pre-compilation: does not write anything in the build directory. Employed To test and debug the python pre-processor.
# -dry
#include dust ODE using N bins for each TYPE, e.g. -dust 10,C,Si set 10 dust carbon bins and 10 dust silicon dust bins.
# Note: requires a call to the krome_init_dust subroutine. See -test=dust for an example.
# -dust=10,C,Si
#activate dust options: (GROWTH) dust growth, (SPUTTER) sputtering, (H2) molecular hydrogen formation on dust, and (T) dust temperature.
# The last option provide a template for the FEX routine.
# -dustOptions=GROWTH,SPUTTER,H2
#create patches for ENZO code in the build folder
# -enzo
#create patches for FLASH code in the build folder
# -flash
#force explicit sparsity and Jacobian
# -forceMF21
#force internal generated sparsity and Jacobian (default)
# -forceMF222
#force RWORK size to N. Use this option in case of solver error.
# -foceRWORK=3000
#define the adiabatic index according to OPTION that can be FULL for employing Grassi et al.
# 2011, i.e. a density dependent but temperature independent adiabatic index, VIB to calculate the vibrational
# partition function and keeping the rotational part constant to 2, ROT to keep into account the rotational partition function and the
# vibrational part to zero, or EXACT to evaluate the adiabatic index accurately taking into account both contributions.
# Finally a custom F90 expression e.g. -gamma="1.5d0" can also be used, as well as any fortran expression. Default value is 5/3 (ideal atomic gas).
-gamma=FULL
#heating options, TERMS can be COMPRESS, PHOTO, CHEM, DH. If you want
# a complete list of the available heating options type -heating=?
-heating=CHEM
#see useIERR
# -ierr
#implicit loop-based RHS (suggested for large systems, e.g. >1000 reactions). This option compacts the FEX construction into a loop instead of
# writing explicit equations. It's faster during compilation, but slower at running time, even if depends on the solver employed.
# -iRHS
#max order of the BDF solver. Default (and maximum values) is 5. Reducing the order to 2 can be helpful to increase the stability in some
# cases.
# -maxord=2
#use the same reaction index for equivalent reactions (same reactants and products) that have different temperature limits
# -mergeTlimits
#reaction network file path
-n networks/react_primordialZ2
#same as -n
# -network networks/react_primordialZ2
#skip reaction charge check. Helpful with nuclear networks
# -nochargeCheck
#skip reaction charge and mass check. Equivalent to -nomassCheck -nochargeCheck options (see).
# -noCheck
#do not write test.f90 and Makefile in the build directory. Ignored if -test option is enabled.
# -noExample
#skip reaction mass check
# -nomassCheck
#ignore rate coefficient temperature limits.
# -noTlimits
#keep into account reactants multiplicity, and modify fluxes according to this. Intended for nuclear networks.
# -nuclearMult
#uses a pedantic Makefile from tests\ folder. Slow at run-time but traps errors.
# -pedantic
#build everything in a folder called build_NAME instead of building all in the
# default build folder. It also creates a NAME.kpj file with the KROME input used.
# -project=myProject
#print a quote and exit. All other options are ignored.
# -quote
#create patches for RAMSES, see also -enzo and -flash
# -ramses
#add an offset to the array of the passive scalar. The default is 3.
# -ramsesOffset=5
#create patches for RAMSES_TH. This is a private version and probably does not fix your needs.
# -ramsesTH
#generate report file in the main call to KROME as KROME_ERROR_REPORT and when calling the fex as KROME_ODE_REPORT.
#It also stores abundances evolution in fex as fort.98, and prepares a report.gps gnuplot script file to plot evolutions
#callable in gnuplot with load 'report.gps'. Warning: it slows the whole system!
# -report
#create reverse reaction from the current network using NASA polynomials and thermochemistry data.
# -reverse
#set solver relative tolerance to the float double value RTOL, e.g. -RTOL 1e-5 Default is RTOL=1d-4,
#see also -ATOL and -customRTOL
# -RTOL=1d-4
#write a shorter header in the f90 files
# -sh
#use H2 self-shielding, TYPE can be DB96 for Draine+Bertoldi 1996, WG11 for the more accurate Wolcott+Greene 2011
# -shielding=DB96
#skip duplicate reactions, e.g. same reactants and products, but not same temperature range. Use with caution!
# -skipDup
#do not write Jacobian in krome_ode.f90 file. Useful to reduce compilation time when Jacobian is not needed (MF=222).
# Note that Jacobian is written also if not used. If it is very large this could increase the compilation time.
# -skipJacobian
#do not compute dT/dt in the ODE RHS function
# -skipODEthermo
#use FOLDER as source directory instead of the default folder src\
# -source=source/directory
#use star module for nuclear reactions.
# -stars
#create a test model in /build . Type make and ./krome in build/ folder to run it
#tests are listed in the folder tests/
# -test=collapseZ
#et the operators for all the reaction temperature limits where opLow is the operator for the first temperature
#value in the reaction file, and opHigh is for the second one. e.g. if the T limits for a given reaction are 10.
#and 1d4 the option -Tlmit GE,LE will provide (Tgas>=10. AND Tgas<=1d4) as the reaction range of validity.
#Operators opLow and opHigh must be one of the following: LE, GE, LT, GT. Noe that in the reaction file you can
#indicate the limits for individual reactions. The latter override the default.
# -Tlimit=GE,LT
#skip to check if the build folder is empty or not and replace everything
# -unsafe
#use a user-defined custom function that returns a real*8 array of size NREA = number of reactions, that replaces
#the standard rate coefficient calculation function. Note that FUNCTION must be explicitly included in krome_user_commons module.
#You can also use an array also defined in the krome_user_commons module
# -useCustomCoe=mycoe(:)
#use Dvode implementation in F90 (slower and not fully maintained)
# -useDvodeF90
#check if the solver has reached the equilibrium. If so break the solver's loop and return the values found.
#It is useful when the system oscillates around a solution (as in some photoheating cases).
#To be used with caution!
# -useEquilibrium
#use the reaction index in the reaction file instead of using the automatic progressive index starting from 1.
#Useful with rate coefficients that depends on other coefficients, e.g. k(10) = 1d-2*k(3)
# -useFileIdx
#use H2 opacity for H2 cooling using Ripamonti+Abel2004
#-useH2opacity
#use ierr in the interface with KROME to return errors instead of stopping the execution, see also -ierr.
# -useIERR
#use number densities (1/cm3) as input/output instead of fractions (#)
-useN
#postpone an expression to each ODE. EXPRESSION must be a valid f90 expression starting with an operator (e.g. *3.d0 or +1.d-10)
# -useODEConstant="+1d-2"
#include photochemistry
# -usePhIoniz
#use kA format for isotopes instead of [k]A format, where k is the isotopic number and A is the atom name,
#e.g. KROME looks for 14C instead of [14]C in the reactions file.
# -usePlainIsotopes
#use tabulated rate coefficients. Note that if your rates depend on a parameter other than the temperature
#you may incur on errors. For this reason KROME has the possibility to add some statement in the reaction
#file to prevent tabulation: for a single reaction just add in the line before @noTab_next or @noTabNext
#while for blocks of reactions use @noTab_start / @noTab_stop or @noTab_begin / @noTab_end. Note that these
#statements are case insensitive
-useTabs
#print the current version of KROME
# -v
# -ver
# -version