HARM
harm and utilities
 All Data Structures Files Functions Variables Typedefs Macros Pages
init.koral.h
Go to the documentation of this file.
1 
7 //undefs
8 #undef DOYFL
9 #undef MAXWELL
10 #undef TRACKVPOT
11 #undef EVOLVEWITHVPOT
12 #undef DOGRIDSECTIONING
13 #undef MERGEDC2EA2CMETHODEM
14 #undef MERGEDC2EA2CMETHODMA
15 #undef MERGEDC2EA2CMETHOD
16 #undef ACCURATESINCOS
17 #undef ACCURATESOURCEDIAG
18 #undef ACCURATEDIAG
19 #undef REMOTEHOST
20 #undef WENO_REDUCE_A2C_LOOK_OTHER_DIRECTIONS
21 #undef WENO_USE_PRIM_REDUCTION
22 #undef LIMIT_FLUXC2A_PRIM_CHANGE
23 #undef COMPDIM
24 #undef SPLITNPR
25 #undef FIELDSTAGMEM
26 #undef HIGHERORDERMEM
27 #undef MAXBND
28 #undef MCOORD
29 #undef ALLOWMETRICROT
30 #undef PERCELLDT
31 #undef PRODUCTION
32 #undef FULLOUTPUT
33 #undef MAILWHENDONE
34 #undef EMAILMESSAGE
35 #undef EMAILADDRESS
36 #undef PERFTEST
37 #undef DOAVG
38 #undef DOJETDIAG
39 #undef DOAVG2
40 #undef DODEBUG
41 #undef DO_WENO_DEBUG
42 #undef DOENODEBUG
43 #undef DODISS
44 #undef DOEVOLVEMETRIC
45 #undef EVOLVEMETRICSUBSTEP
46 #undef LIMITDTWITHSOURCETERM
47 #undef LIMITSOURCES
48 #undef USEGRAVITYDTINDTLIMIT
49 #undef RESTRICTDTSETTINGINSIDEHORIZON
50 #undef DOLUMVSR
51 #undef DODISSVSR
52 #undef DOSELFGRAVVSR
53 #undef DOFIELDLINE
54 #undef ROEAVERAGEDWAVESPEED
55 #undef ATHENAROE
56 #undef STOREWAVESPEEDS
57 #undef USESTOREDSPEEDSFORFLUX
58 #undef VCHARTYPE
59 #undef PRECISEINVERSION
60 #undef WHICHVEL
61 #undef WHICHEOM
62 #undef REMOVERESTMASSFROMUU
63 #undef RELTYPE
64 #undef EOMTYPE
65 #undef UTOPRIMTRYAGAIN
66 #undef WHICHEOS
67 #undef CHECKONINVERSION
68 #undef CHECKONINVERSIONRAD
69 #undef DOENTROPY
70 #undef WHICHENTROPYEVOLVE
71 #undef FIXUPAFTERINIT
72 #undef FIXUPAFTERRESTART
73 #undef CHECKSOLUTION
74 #undef GAMMAPERCDIFFMAX
75 #undef UPERCDIFFMAX
76 #undef DOEXTRAINTERP
77 #undef LIMADJUST
78 #undef HYDROLIMADJUSTONLY
79 #undef FLUXADJUST
80 #undef HYDROFLUXADJUSTONLY
81 #undef STEPOVERNEGU
82 #undef STEPOVERNEGRHO
83 #undef STEPOVERNEGRHOU
84 #undef UTOPRIMADJUST
85 #undef UTOPRIMFAILRETURNTYPE
86 #undef SMOOTHSING
87 #undef COORDSINGFIX
88 #undef SINGSMALL
89 #undef DOSTOREPOSITIONDATA
90 #undef CONNDERTYPE
91 #undef VOLUMEDIFF
92 #undef GDETVOLDIFF
93 #undef FIXGDETSPC_WHEN_1DRADIAL
94 #undef MINDT
95 #undef JONCHECKS
96 #undef JONCHECKS2
97 #undef FLOORDIAGS
98 #undef ANALYTICGCON
99 #undef ANALYTICCONNECTION
100 #undef ANALYTICSOURCE
101 #undef OUTFLOWAVOIDBC
102 #undef FLUXDIMENSPLIT
103 #undef A2CDIMENSPLIT
104 #undef DODQMEMORY
105 #undef BOUNDFLUXRECON
106 #undef DOENOFLUXMEMORY
107 #undef BOUNDARYINTERPADJUST
108 #undef COMPUTEFRDOT
109 #undef CALCFARADAYANDCURRENTS
110 #undef WHICHCURRENTCALC
111 #undef FARADAYT0
112 #undef CURRENTST0
113 #undef EVOLVECHECKS
114 #undef FIXUPZONES
115 #undef HLLBOUNDARY
116 #undef FIXUPFLUX
117 #undef ZEROOUTFLOWFLUX
118 #undef ZEROPOLEFLUX
119 #undef RESCALEINTERP
120 #undef BDIRCONT
121 #undef HYPERHLL
122 #undef HORIZONSUPERFAST
123 #undef VARTOINTERP
124 #undef USEAVGPRIMITIVEFORWENOFLAT
125 #undef USEPRIMITIVEFROMAVGCONSERVED
126 #undef CONTACTINDICATOR
127 #undef COMPUTEDRHODP
128 #undef SUPERFASTDIVREDUCE
129 #undef MINPREFORDER
130 #undef SHOCKINDICATOR
131 #undef WHICHPARA
132 #undef HOT2ENTROPY
133 #undef HOT2COLD
134 #undef ENTROPY2COLD
135 
136 //undefine the grid size parameters if they have already been defined
137 #ifdef N1
138 #undef N1
139 #endif
140 
141 #ifdef N2
142 #undef N2
143 #endif
144 
145 #ifdef N3
146 #undef N3
147 #endif
148 
149 
150 
151 
152 
153 
154 
155 //****************************************//
156 //****************************************//
157 //****************************************//
158 //****************************************//
159 //****************************************//
160 
161 #define DOYFL 2 // track floors as scalars
162 
163 #define ACCURATESOURCEDIAG 2 // 2 means full component decomposition is accurate as well as sum.
164 #define ACCURATEDIAG 1 // 1 means fluxes are accurate
165 
166 
167 #define MAXWELL PRIMMAXWELL
168 #define TRACKVPOT 1 // now on by default
169 #define EVOLVEWITHVPOT 0 // not on by default
170 #define DOGRIDSECTIONING 0 // not on by default
171 #define MERGEDC2EA2CMETHODEM 0
172 #define MERGEDC2EA2CMETHODMA 0
173 #define MERGEDC2EA2CMETHOD 0
174 #define WENO_REDUCE_A2C_LOOK_OTHER_DIRECTIONS 1
175 //#define WENO_USE_LIM_PRIM_CORRECTION_FOR_FLUX_LIMITING 1
176 #define WENO_USE_PRIM_REDUCTION 1
177 #define LIMIT_FLUXC2A_PRIM_CHANGE 0
178 
179 
180 
181 
182 #define ALLOWMETRICROT 0 // WALD->1
183 #if(ALLOWMETRICROT==1)
184 #undef CONNAXISYMM
185 #define CONNAXISYMM 0 //required to be 0 if really rotating metric
186 #undef DOMIXTHETAPHI
187 #define DOMIXTHETAPHI 1
188 #endif
189 
190 #undef DOPOLEDEATH
191 #undef DOPOLESMOOTH
192 #undef DOPOLEGAMMADEATH
193 // needed to avoid random death at pole at large distances when grid focuses on axis and so makes-up information a bit.
194 // no, causes injection of lots of radiation and violates energy-momentum conservation alot, even changes solution alot.
195 #define DOPOLEDEATH 1
196 //#define DOPOLEDEATH 0 // WALD
197 #define DOPOLESMOOTH 0 // GODMARK: Need to reject outliers
198 #define DOPOLEGAMMADEATH 1
199 //#define DOPOLEGAMMADEATH 0 // WALD
200 // Note that if DOPOLESMOOTH>=DOPOLEGAMMADEATH or DOPOLESMOOTH>=DOPOLEDEATH, then DOPOLEGAMMADEATH or DOPOLEDEATH do nothing -- they are overwritten by DOPOLESMOOTH.
201 
202 #undef IF3DSPCTHENMPITRANSFERATPOLE
203 #define IF3DSPCTHENMPITRANSFERATPOLE 0 // need to reject outliers and use full 3D info before this is used again. Otherwise (more) problems at r>rbr when hyperexpoential grid is used.
204 
205 #define PERCELLDT 0
206 #define COMPDIM 3
207 #define SPLITNPR 0 // TESTING
208 #define FIELDSTAGMEM 1 // testing
209 #define HIGHERORDERMEM 0
210 #define MAXBND 4 // 4 for PARAFLAT, 6 for WENO5BND wo/a2c stuff : 11 for full point-field FLUXRECON method
211 #define PRODUCTION 1 // WALDPROD
212 //#define FULLOUTPUT MAXBND // TESTING BCs
213 #define FULLOUTPUT 0
214 
215 #define MAILWHENDONE 1
216 #define MAILFROMREMOTE 0
217 #define REMOTEHOST "relativity.cfa.harvard.edu"
218 #define EMAILADDRESS "jmckinney@cfa.harvard.edu"
219 #define EMAILMESSAGE "Done with GRMHD run DEFAULT"
220 #define PERFTEST 0
221 #define DOAVG 0
222 #define DOJETDIAG 0
223 #define DOAVG2 0
224 #define DODEBUG 1
225 #define DO_WENO_DEBUG 0
226 #define DOENODEBUG 0
227 #define DOEVOLVEMETRIC 0
228 #define EVOLVEMETRICSUBSTEP 1 // evolve metric every substep
229 #define LIMITSOURCES 0
230 #define LIMITDTWITHSOURCETERM 0 // causes problems, drops dt too low
231 #define USEGRAVITYDTINDTLIMIT 0
232 #define RESTRICTDTSETTINGINSIDEHORIZON 2
233 #define DODISS 0
234 #define DOLUMVSR 0
235 #define DODISSVSR 0
236 #define DOSELFGRAVVSR 0
237 #define DOFIELDLINE 1
238 #define ROEAVERAGEDWAVESPEED 0
239 #define ATHENAROE 0
240 
241 //set this and the following one to unity to use the DONOR interpolated states for computing wavespeeds
242 #if(1 || SPLITNPR==1 || FIELDSTAGMEM==1) // should also be on if FLUXB==FIELDSTAG
243 #define STOREWAVESPEEDS 2 // no choice
244 #else
245 #define STOREWAVESPEEDS 0 // choice
246 #endif
247 
248 #define USESTOREDSPEEDSFORFLUX (STOREWAVESPEEDS>0) // choice really
249 #define VCHARTYPE VERYLOCALVCHAR
250 #define PRECISEINVERSION 1
251 #define WHICHVEL VELREL4
252 #define WHICHEOM WITHGDET
253 //#define WHICHEOM (ISSPCMCOORD(MCOORD) ? WITHNOGDET : WITHGDET) // now default is WITHNOGDET for normal problems -- assumes half or full \theta hemispheres since main benefit is near poles. // still seems wrong -- need to test.
254 #define REMOVERESTMASSFROMUU 2
255 #define RELTYPE RELEOM
256 #define EOMTYPE EOMGRMHD
257 #undef EOMRADTYPE
258 #define EOMRADTYPE EOMRADM1CLOSURE
259 //#define EOMTYPE EOMFFDE
260 //#define EOMTYPE EOMCOLDGRMHD
261 #define UTOPRIMTRYAGAIN 0
262 #define WHICHEOS IDEALGAS
263 
264 #define CHECKONINVERSION 1 // can slow things down
265 #define CHECKONINVERSIONRAD 1 // can independently check radiation inversion when no corrections
266 
267 #if(DODISS || DOLUMVSR || DODISSVSR)
268 // for diss: testing CHANGINGMARK
269 #define DOENTROPY DOEVOLVEENTROPY
270 #define WHICHENTROPYEVOLVE EVOLVEFULLENTROPY
271 #else
272 // no diss/entropy
273 #define DOENTROPY DONOENTROPY
274 #define WHICHENTROPYEVOLVE EVOLVESIMPLEENTROPY
275 #endif
276 
277 // force entropy variable enabled so can use HOT2ENTROPY
278 #undef DOENTROPY
279 #define DOENTROPY DOEVOLVEENTROPY
280 
281 #undef EVOLVENRAD
282 #define EVOLVENRAD 0
283 
284 #define FIXUPAFTERINIT 1
285 #define FIXUPAFTERRESTART 1
286 
287 #define CHECKSOLUTION 0 // can cause erratic behavior near BH -- when gamma jumps are relatively large this averages causing large heating -- could just use internal energy check
288 
289 #define GAMMAPERCDIFFMAX (2.0)
290 #define UPERCDIFFMAX (1E3) // 10.0 too restrictive
291 #define LIMADJUST LIMITERFIXED
292 #define HYDROLIMADJUSTONLY 0
293 #define FLUXADJUST FLUXFIXED
294 #define HYDROFLUXADJUSTONLY 0
295 //#define STEPOVERNEGU NEGDENSITY_NEVERFIXUP
296 //#define STEPOVERNEGRHO NEGDENSITY_NEVERFIXUP
297 //#define STEPOVERNEGRHOU NEGDENSITY_NEVERFIXUP
298 //#define STEPOVERNEGU NEGDENSITY_FIXONFULLSTEP
299 //#define STEPOVERNEGRHO NEGDENSITY_FIXONFULLSTEP
300 //#define STEPOVERNEGRHOU NEGDENSITY_FIXONFULLSTEP
301 
302 // to be thermodynamically consistent on sub-steps as required to make sense of TVD type RK2 or RK3 methods or RK4 method.
303 #define STEPOVERNEGU NEGDENSITY_ALWAYSFIXUP
304 #define STEPOVERNEGRHO NEGDENSITY_ALWAYSFIXUP
305 #define STEPOVERNEGRHOU NEGDENSITY_ALWAYSFIXUP
306 
307 #define UTOPRIMADJUST UTOPRIMAVG
308 #define UTOPRIMFAILRETURNTYPE UTOPRIMRETURNADJUSTED
309 #define SMOOTHSING 0 // near BH
310 #define COORDSINGFIX (1) // for FLUXB==FLUXCTSTAG
311 // whether to move polar axis to a bit larger theta
312 // theta value where singularity is displaced to
313 //#define SINGSMALL (1E-3)
314 #define SINGSMALL (10000*NUMEPSILON) // must be larger than machine precision to work for outer M_PI boundary!
315 // Hawley uses 0.06283 (0.02Pi)
316 
317 #define DOSTOREPOSITIONDATA 1 // DEBUG
318 #define CONNDERTYPE DIFFGAMMIE // DEBUG
319 //#define CONNDERTYPE DIFFNUMREC
320 #define VOLUMEDIFF 0
321 #define GDETVOLDIFF 0 // doesn't help much
322 #define FIXGDETSPC_WHEN_1DRADIAL 1
323 
324 #define MINDT 1.e-20
325 #define JONCHECKS 1 //SASMARK - do I need this?
326 #define JONCHECKS2 1 //SASMARK - do I need this?
327 #define FLOORDIAGS 1
328 #define ANALYTICGCON 0
329 #define ANALYTICCONNECTION 0 //SASMARK - Don't I need this?
330 #define ANALYTICSOURCE 0
331 #define OUTFLOWAVOIDBC 0
332 #define FLUXDIMENSPLIT PERFECTUNSPLIT
333 #define A2CDIMENSPLIT PERFECTUNSPLIT
334 #define DODQMEMORY 1
335 #define BOUNDFLUXRECON 0 // can set this to 1 if want to bound fluxes instead for FLUXRECON method (may be useful near poles)
336 #define DOENOFLUXMEMORY 0
337 #define BOUNDARYINTERPADJUST 0 //should be set to zero always
338 #define COMPUTEFRDOT 0
339 #define CALCFARADAYANDCURRENTS 0 // WALD->1
340 #define WHICHCURRENTCALC CURRENTCALC1
341 #define FARADAYT0 1
342 #define CURRENTST0 1
343 
344 
345 #define EVOLVECHECKS 1
346 #define FIXUPZONES FIXUP1ZONE
347 #define HLLBOUNDARY 0
348 #define FIXUPFLUX 0
349 #define ZEROOUTFLOWFLUX 0
350 #define ZEROPOLEFLUX 0
351 #define BDIRCONT 1
352 #define HYPERHLL 0
353 #define HORIZONSUPERFAST 0
354 
355 //#define VARTOINTERP PRIMTOINTERP
356 #define VARTOINTERP PRIMTOINTERP_GDETFULLVERSION
357 //#define VARTOINTERP PRIMTOINTERP_GDETFULLVERSION_WALD // WALD
358 //#define VARTOINTERP PRIMTOINTERP_RHOU
359 //#define VARTOINTERP PRIMTOINTERP_VSQ
360 // #define VARTOINTERP PRIMTOINTERP_3VELREL_GAMMAREL (used in Sasha tests)
361 #undef VARTOINTERPFIELD
362 //#define VARTOINTERPFIELD GDETVERSION
363 #define VARTOINTERPFIELD NOFIELDRESCALE
364 #define RESCALEINTERP 1
365 #undef RESCALEINTERPFLUXCTSTAG
366 #define RESCALEINTERPFLUXCTSTAG 1 // WALD: 0->1
367 #define DOEXTRAINTERP 0
368 
369 #define USEAVGPRIMITIVEFORWENOFLAT 1
370 #define USEPRIMITIVEFROMAVGCONSERVED 0
371 #define CONTACTINDICATOR 0
372 #define COMPUTEDRHODP 1
373 #define SUPERFASTDIVREDUCE 0
374 #define MINPREFORDER 3
375 #define SHOCKINDICATOR 1
376 #define WHICHPARA PARA4
377 
378 #undef DO_VORTICITY_IMAGE
379 #define DO_VORTICITY_IMAGE 0
380 
381 #define HOT2ENTROPY 1
382 #define HOT2COLD 1
383 #define ENTROPY2COLD 1
384 
385 #define ACCURATESINCOS 1
386 
387 #undef FLIPGDETAXIS
388 #define FLIPGDETAXIS 1
389 //#define FLIPGDETAXIS 0
390 
391 #undef BOUNDPLPR
392 #define BOUNDPLPR 0
393 
394 #undef NOFLUXCTONX1DN
395 #define NOFLUXCTONX1DN 0
396 
397 #undef NUMPANALYTICOTHER
398 #undef DODUMPOTHER
399 
400 #define NUMPOTHER 0
401 #define DODUMPOTHER 0
402 
403 #undef FLUXDUMP
404 #define FLUXDUMP 2
405 
406 #undef OUTERRADIALSUPERFAST
407 #define OUTERRADIALSUPERFAST 0 // can be better, but can also be much worse.
408 
409 
410 struct Ccoordparams {
411  double timescalefactor;
412 } coordparams;
413 
414 
415 // problem-dependent code activation
416 #undef USERRESETREGION
417 #define USERRESETREGION 0
418 
420 //
421 // disable things that are not really needed because they are debugging type things
422 //
424 
425 #if(PRODUCTION>=2)
426 #undef DOEOSDUMP
427 #define DOEOSDUMP 0
428 #undef DODISSMEASUREDUMP
429 #define DODISSMEASUREDUMP 0
430 #undef DOVPOTDUMP
431 #define DOVPOTDUMP 0
432 #undef DODEBUGDUMP // very large, only for speed debug
433 #define DODEBUGDUMP 0
434 //#undef DOJETDIAG
435 //#define DOJETDIAG 0
436 #endif
437 
438 #if(PRODUCTION>=3)
439 #undef DOFLOORDUMP // for accounting for energy from floor and controls if radial fluxes are dumped
440 #define DOFLOORDUMP 0
441 #endif
442 
443 #if(PRODUCTION>=4)
444 
445 // only needed files for python, not SM
446 #undef DOMAINDUMP
447 #undef DORADDUMP
448 #undef DOIMAGEDUMP
449 
450 #define DOMAINDUMP 0
451 #define DORADDUMP 0
452 #define DOIMAGEDUMP 0
453 
454 #endif
455 
456 
457 
458 
459 
460 
461 
462 
464 // Set or Override with RADIATION settings
466 
467 
468 
469 
470 
471 
472 
473 
474 
475 //problem names
476 #define RADBEAM2D (1) // beam of light in SPC
477 #define RADTUBE (6) // radiative shock tubes as in Farris et al 09 - assumes Edd.approximation which is currently not handled
478 #define RADBONDI (7) // like in Fragile's paper (called BONDI in koral)
479 #define RADPULSE (10) // radiative blob spreading around
480 #define RADSHADOW (11) // radiative shadow
481 #define RADATM (12) // atmosphere enlighted
482 #define RADPULSEPLANAR (1000) // like RADPULSE but with scattering
483 #define RADWAVE (15) // 1d linear rad wave with periodic BC
484 #define RADPULSE3D (16) // radiative blob spreading around
485 #define RADDBLSHADOW (17) // radiative shadow with two beams inclined
486 #define ATMSTATIC (18) // simple hydrostatic atmosphere in SPC
487 #define RADBEAM2DKS (19) // like RADBEAM2D, just chooses MCOORD KSCOORDS
488 #define RADBEAMFLAT (24) // beam of light in Cartesian
489 #define RADDONUT (25) // 2d radiative Polish donut in KS (called RDONUT in koral. Similar setup to RADNT.)
490 #define RADBEAM2DKSVERT (26) // 2d radiative beam in r,theta plane (does more than KS)
491 #define FLATNESS (27) // flat (koral: but with non-zero four-force)
492 #define RADWALL (29) // flat with wall
493 #define RADNT (30) // emission from midplane
494 #define RADFLATDISK (31) // emission from flat disk (called FLATDISK in koral. Very similar to RADNT.)
495 #define RADCYLBEAM (32) // beam towards the axis in cylindrical (called CYLBEAM in koral. Somewhat similar to RADFLATDISK but in CYL coords.)
496 #define RADDOT (33) // radiating dot (Olek changes this while I was testing)
497 #define RADCYLBEAMCART (40) // similar to RADCYLBEAM but in cartesian
498 
499 
500 
501 
502 // TOTRY : optically thin dot in SPC or pulse in SPC.
503 
504 // TOTRY: Maybe need to avoid bounding if not in PBOUNDLOOP? Generally true.
505 
506 
507 //TODO:
508 #define RADDOTFLAT (41) // similar to RADDOT but in cartesian (well, RADDOT was similar, but still different after Olek changes)
509 #define RVDONUT (42) // radiative and viscous
510 #define RVDONUTIN (43) // radiative and viscous dougnut inflowing
511 #define RADNTCYL (44) // emission from midplane in cylindrical
512 
513 // non-implemented NON-radiative problems in KORAL that are semi-duplicated by some other radiative tests
514 #define RADINFALL (2) // RADBEAM2D with FLATBACKGROUND=0 is like this
515 #define DONUT (3) // initboundcode/*fishmon* similar
516 #define GEODESICINFALL (4) //like RADINFALL but with blobs
517 #define HDTUBE (8) // as in HARM paper
518 #define HDTUBE2 (9) // 2D of HDTUBE
519 #define DONUTOSC (13) // 2d Polish donut oscillating
520 #define ATMKS (20) // radial atmosphere infalling in KS
521 #define DONUTKS (21) // 2d Polish donut in KS (like DONUT)
522 #define DONUTMKS1 (22) // 2d Polish donut in MKS1 (like DONUT)
523 #define ATMMKS1 (23) // radial atmosphere infalling in MKS1 (like ATMKS)
524 #define BOWSHOCK (28) // bow shock hydro test
525 
526 // non-implemented radiative problems in KORAL. Olek says not interesting pre-test versions of other actual tests.
527 #define RADWAVEBC (14) // 1d linear rad wave imposed on boundary (not setup in koral yet -- looks like time-dep BC for density on left boundary)
528 #define EDDINFALL (5) // infall with flux from inside
529 
530 
531 // other additional tests
532 #define KOMIPROBLEM 50
533 
534  // other applications
535 #define RADCYLJET (51)
536 
537 
538 
539 
540 // RADDONUT types
541 #define NODONUT 0
542 #define DONUTOLEK 1
543 #define DONUTOHSUGA 2
544 #define DONUTTHINDISK 3
545 #define DONUTTHINDISK2 4
546 
547 
549 // other BCTypes beyond those in definit.h (can't overlap numbers from there)
551 #define RADBEAMFLATINFLOW 201
552 #define RADSHADOWINFLOW 202
553 #define RADSHADOWINFLOWX2UP 203
554 #define RADSHADOWINFLOWX2DN 204
555 #define RADBEAM2DBEAMINFLOW 205
556 #define RADBEAM2DFLOWINFLOW 206
557 #define RADATMBEAMINFLOW 207
558 #define RADWALLINFLOW 208
559 #define RADBONDIINFLOW 209
560 #define RADNTBC 210
561 #define RADCYLBEAMBC 211
562 #define RADBEAM2DKSVERTBEAMINFLOW 212
563 #define RADCYLBEAMCARTBC 213
564 #define HORIZONOUTFLOWSTATIC 214
565 #define OUTFLOWSTATIC 215
566 #define RADCYLJETBC 216
567 
568 #define WALDMONOBC 300
569 
570 
576 
577 //#define WHICHPROBLEM FLATNESS
578 //#define WHICHPROBLEM RADBEAMFLAT
579 //#define WHICHPROBLEM RADPULSE
580 //#define WHICHPROBLEM RADPULSEPLANAR
581 //#define WHICHPROBLEM RADPULSE3D
582 //#define WHICHPROBLEM RADTUBE
583 //#define WHICHPROBLEM RADSHADOW
584 //#define WHICHPROBLEM RADDBLSHADOW
585 //#define WHICHPROBLEM ATMSTATIC
586 //#define WHICHPROBLEM RADATM
587 //#define WHICHPROBLEM RADBEAM2D
588 //#define WHICHPROBLEM RADWALL
589 //#define WHICHPROBLEM RADWAVE
590 //#define WHICHPROBLEM RADBONDI
591 //#define WHICHPROBLEM RADDOT
592 //#define WHICHPROBLEM RADNT
593 //#define WHICHPROBLEM RADFLATDISK
594 #define WHICHPROBLEM RADDONUT
595 //#define WHICHPROBLEM RADCYLBEAM
596 //#define WHICHPROBLEM RADBEAM2DKSVERT
597 //#define WHICHPROBLEM RADCYLBEAMCART
598 //#define WHICHPROBLEM RADCYLJET
599 
600 
601 
602 
603 
604 
605 
606 
607 //****************************************//
608 //****************************************//
609 //****************************************//
610 // If set any dimensional constants, should not convert to code units here since conversion not yet defined. Just set MPERSUN here and convert in init.c
611 //****************************************//
612 //****************************************//
613 
614 // number of solar masses to define units
615 
616 //#define MPERSUN (1.0)
617 
618 // odd default choice by koral that gives Mass in cm as 1cm.
619 #define MPERSUN (6.77255E-1)
620 //#define MPERSUN (67725.2) // GM/c^2=1cm if gTILDA=1E-10 and cTILDA=1
621 //#define MPERSUN (6.77255E-11) // with koral's gTILDA=1E-10
622 
623 
624 
625 
626 
627 
628 
629 //****************************************//
630 //****************************************//
631 
632 #if(WHICHPROBLEM==FLATNESS)
633 
634 #undef WHICHRADSOURCEMETHOD
635 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
636 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
637 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
638 
639 #define N1 20
640 #define N2 20
641 #define N3 1
642 
643 #define MCOORD CARTMINKMETRIC2
644 
645 #endif
646 
647 //****************************************//
648 //****************************************//
649 
650 #if(WHICHPROBLEM==RADPULSE || WHICHPROBLEM==RADPULSEPLANAR)
651 
652 #undef RADSHOCKFLAT
653 #define RADSHOCKFLAT 1
654 
655 #undef FORCESOLVEL
656 #define FORCESOLVEL 0 // for testing against koral
657 
658 #define N1 100
659 #define N2 1
660 #define N3 1
661 
662 #endif
663 
664 #if(WHICHPROBLEM==RADPULSE3D)
665 
666 // due to memory per core limited by many variables, can't do 50^3. Roughly can't do more than 32^3 per core.
667 #define N1 32
668 #define N2 32
669 #define N3 32
670 
671 #endif
672 
673 #if(WHICHPROBLEM==RADPULSE || WHICHPROBLEM==RADPULSEPLANAR || WHICHPROBLEM==RADPULSE3D)
674 
675 #undef WHICHRADSOURCEMETHOD
676 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
677 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
678 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
679 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
680 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICITSUBCYCLE
681 
682 #define MCOORD CARTMINKMETRIC2
683 
684 
685 #endif
686 
687 
688 //****************************************//
689 //****************************************//
690 
691 #if(WHICHPROBLEM==RADBEAMFLAT)
692 
693 #undef FORCESOLVEL
694 #define FORCESOLVEL 0 // to compare against koral
695 
696 #undef RADSHOCKFLAT
697 #define RADSHOCKFLAT 1
698 
699 #undef WHICHRADSOURCEMETHOD
700 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
701 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
702 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
703 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK // works!
704 
705 //#define N1 20
706 //#define N2 20
707 //#define N1 30
708 //#define N2 30
709 #define N1 31 // making like problem24 in koral code
710 #define N2 31 // making like problem24 in koral code
711 #define N3 1
712 
713 #define MCOORD CARTMINKMETRIC2
714 
715 #endif
716 
717 
718 
719 //****************************************//
720 //****************************************//
721 
722 #if(WHICHPROBLEM==RADTUBE)
723 
724 #undef EOMRADTYPE
725 //#define EOMRADTYPE EOMRADEDD // used by calc_Rij_ff() to set IC so IC use Eddington approximation with Prad=(1/3)Irad (intensity)
726 #define EOMRADTYPE EOMRADM1CLOSURE
727 
728 #undef WHICHRADSOURCEMETHOD
729 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
730 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
731 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICITSUBCYCLE
732 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
733 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
734 
735 #define N1 800
736 #define N2 1
737 #define N3 1
738 
739 #define MCOORD CARTMINKMETRIC2
740 
741 #endif
742 
743 
744 
745 //****************************************//
746 //****************************************//
747 
748 
749 
750 #if(WHICHPROBLEM==RADSHADOW)
751 
752 #undef EOMRADTYPE
753 //#define EOMRADTYPE EOMRADEDD // used by calc_Rij_ff() to set IC so IC use Eddington approximation with Prad=(1/3)Irad (intensity)
754 #define EOMRADTYPE EOMRADM1CLOSURE
755 
756 #undef WHICHRADSOURCEMETHOD
757 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
758 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
759 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICITSUBCYCLE
760 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
761 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
762 
763 #define N1 100
764 #define N2 50
765 #define N3 1
766 
767 #define MCOORD CARTMINKMETRIC2
768 
769 #endif
770 
771 
772 
773 //****************************************//
774 //****************************************//
775 
776 
777 
778 #if(WHICHPROBLEM==RADDBLSHADOW)
779 
780 #undef EOMRADTYPE
781 //#define EOMRADTYPE EOMRADEDD // used by calc_Rij_ff() to set IC so IC use Eddington approximation with Prad=(1/3)Irad (intensity)
782 #define EOMRADTYPE EOMRADM1CLOSURE
783 
784 #undef WHICHRADSOURCEMETHOD
785 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
786 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
787 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICITSUBCYCLE
788 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
789 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
790 
791 //#define N1 120 // code
792 #define N1 100 // paper
793 //#define N2 20 // code
794 #define N2 50 // paper
795 #define N3 1
796 
797 #define MCOORD CARTMINKMETRIC2
798 
799 #endif
800 
801 
802 
803 
804 //****************************************//
805 //****************************************//
806 
807 #if(WHICHPROBLEM==RADBEAM2D || WHICHPROBLEM==RADBEAM2DKS)
808 
809 #undef FORCESOLVEL
810 #define FORCESOLVEL 0 // doesn't seem to help avoid failures for this test.
811 
812 
813 #undef RADSHOCKFLAT
814 #define RADSHOCKFLAT 1
815 
816 #undef WHICHRADSOURCEMETHOD
817 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
818 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
819 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
820 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
821 
822 // KORALNOTE: Paper says 30x60 for rin-rout and phi=0..pi/2, which is same as 30x30 for rin-rout and phi=0..pi/4 as setup in koral
823 #define N1 30
824 #define N2 1
825 //#define N3 30
826 #define N3 60 // so like koral paper.
827 
828 // can choose any spherical polar coordinate system
829 #if(WHICHPROBLEM==RADBEAM2D)
830 //#define MCOORD SPCMINKMETRIC
831 #define MCOORD BLCOORDS // default koral is a=0 BLCOORDS
832 #elif(WHICHPROBLEM==RADBEAM2DKS)
833 #define MCOORD KSCOORDS
834 #endif
835 
836 #endif
837 
838 
839 //****************************************//
840 //****************************************//
841 
842 #if(WHICHPROBLEM==RADBEAM2DKSVERT)
843 
844 // below required to avoid runaway energy gains when putting singulary on the grid. With singularity on grid, can either fail or not in very sensitive way due to machine precision issues right around the singularity.
845 #undef FORCEGDETPOSITIVE
846 #define FORCEGDETPOSITIVE 1
847 
848 #undef RADSHOCKFLAT
849 #define RADSHOCKFLAT 1
850 
851 #undef WHICHRADSOURCEMETHOD
852 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
853 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
854 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
855 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
856 
857 #define N1 30
858 #define N2 30
859 #define N3 1
860 
861 //#define MCOORD SPCMINKMETRIC
862 #define MCOORD KSCOORDS
863 
864 #endif
865 
866 
867 
868 //****************************************//
869 //****************************************//
870 
871 #if(WHICHPROBLEM==ATMSTATIC)
872 
873 #undef ANALYTICMEMORY
874 #define ANALYTICMEMORY 1
875 
876 //#define DOSTOREPOSITIONDATA 0
877 
878 //#undef VARTOINTERP
879 //#define VARTOINTERP PRIMTOINTERP
880 //#define VARTOINTERP PRIMTOINTERP_GDETFULLVERSION
881 
882 
883 #undef WHICHRADSOURCEMETHOD
884 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
885 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
886 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
887 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
888 
889 #define N1 400
890 #define N2 1
891 #define N3 1
892 
893 // can choose any spherical polar coordinate system
894 //#define MCOORD SPCMINKMETRIC
895 //#define MCOORD KSCOORDS
896 #define MCOORD BLCOORDS
897 
898 #endif
899 
900 
901 //****************************************//
902 //****************************************//
903 
904 #if(WHICHPROBLEM==RADATM)
905 
906 #undef WHICHRADSOURCEMETHOD
907 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
908 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
909 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
910 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
911 
912 #define N1 40
913 #define N2 1
914 #define N3 1
915 
916 // can choose any spherical polar coordinate system with gravity
917 //#define MCOORD KSCOORDS
918 #define MCOORD BLCOORDS
919 
920 #undef MPERSUN
921 #define MPERSUN (1.0) // So mass=1 as in koral for gTILDE=1.0
922 
923 
924 #endif
925 
926 //****************************************//
927 //****************************************//
928 
929 #if(WHICHPROBLEM==RADWALL)
930 
931 #undef WHICHRADSOURCEMETHOD
932 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
933 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
934 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
935 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
936 
937 #define N1 60
938 #define N2 20
939 #define N3 1
940 
941 #define MCOORD CARTMINKMETRIC2
942 
943 #endif
944 
945 //****************************************//
946 //****************************************//
947 
948 #if(WHICHPROBLEM==RADWAVE)
949 
950 #undef WHICHRADSOURCEMETHOD
951 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
952 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
953 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
954 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
955 
956 #define N1 100
957 #define N2 1
958 #define N3 1
959 
960 #define MCOORD CARTMINKMETRIC2
961 
962 #endif
963 
964 
965 //****************************************//
966 //****************************************//
967 
968 #if(WHICHPROBLEM==RADBONDI)
969 
970 #undef MPERSUN
971 #define MPERSUN (3.0)
972 
973 #undef RADSHOCKFLAT
974 #define RADSHOCKFLAT 1
975 
976 #undef WHICHRADSOURCEMETHOD
977 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
978 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
979 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
980 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
981 
982 //#define N1 112 // KORALTODO: 512 in paper
983 #define N1 512 // KORALTODO: 512 in paper
984 #define N2 1
985 #define N3 1
986 
987 // can choose any spherical polar coordinate system with gravity
988 //#define MCOORD BLCOORDS
989 #define MCOORD KSCOORDS
990 
991 #endif
992 
993 
994 
995 //****************************************//
996 //****************************************//
997 
998 #if(WHICHPROBLEM==RADDOT)
999 
1000 //#undef MPERSUN
1001 //#define MPERSUN (1.0/MSUN)
1002 
1003 #undef RADSHOCKFLAT
1004 #define RADSHOCKFLAT 1
1005 
1006 #undef WHICHRADSOURCEMETHOD
1007 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
1008 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
1009 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
1010 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
1011 
1012 // choose odd so DOT is located at center of single cell symmetrically around grid rather than at edge of grid or offset.
1013 #define N1 41
1014 #define N2 41
1015 //#define N3 41 // koral original is 3D, but ok to test in 2D
1016 #define N3 1
1017 
1018 #define MCOORD CARTMINKMETRIC2
1019 
1020 #endif
1021 
1022 
1023 //****************************************//
1024 //****************************************//
1025 
1026 #if(WHICHPROBLEM==RADNT || WHICHPROBLEM==RADFLATDISK || WHICHPROBLEM==RADDONUT || WHICHPROBLEM==RADCYLBEAM || WHICHPROBLEM==RADCYLBEAMCART)
1027 
1028 #undef OUTERDEATH
1029 #define OUTERDEATH 1 // do it
1030 //#define OUTERDEATH 0 // don't do it // WALD
1031 #undef OUTERDEATHRADIUS
1032 #define OUTERDEATHRADIUS (3E3)
1033 #undef OUTERDEATHGAMMAMAX
1034 #define OUTERDEATHGAMMAMAX (6.0)
1035 #undef OUTERDEATHGAMMAMAXRAD
1036 #define OUTERDEATHGAMMAMAXRAD (GAMMAMAXRAD)
1037 
1038 #undef MPERSUN
1039 #define MPERSUN (10.0)
1040 
1041 #undef RADSHOCKFLAT
1042 #define RADSHOCKFLAT 1
1043 
1044 #undef WHICHRADSOURCEMETHOD
1045 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
1046 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
1047 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
1048 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
1049 
1050 #undef ANALYTICMEMORY
1051 #define ANALYTICMEMORY 1 // set disk BC using analytical result (at least partially so don't duplicate code.)
1052 
1053 
1054 #if(WHICHPROBLEM==RADNT)
1055 
1056 #define N1 30
1057 #define N2 30
1058 #define N3 1
1059 
1060 // can choose any spherical polar coordinate system
1061 //#define MCOORD SPCMINKMETRIC
1062 //#define MCOORD BLCOORDS
1063 #define MCOORD KSCOORDS
1064 
1065 #elif(WHICHPROBLEM==RADDONUT)
1066 
1067 #undef DOCOMPTON
1068 #define DOCOMPTON 1 // enable thermal Comptonization
1069 
1070 #undef ENSURECONS
1071 #define ENSURECONS 1
1072 
1073 #undef DOPERF
1074 #define DOPERF 1 // enable performance enhancements
1075 
1076 #undef BORROWENTROPY
1077 #define BORROWENTROPY 1
1078 
1079 #undef ENFORCEMHDCONS2RADCONS
1080 #define ENFORCEMHDCONS2RADCONS 1 // assumes not true that pmhd>>prad beyond machine precision
1081 
1082 #undef WHICHRADSOURCEMETHOD
1083 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE // WALD
1084 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
1085 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
1086 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
1087 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICITSUBCYCLECHECKSFROMIMPLICIT // least stable result since doesn't use time-advanced prnew to get force since assumes will be doing accurate substeps.
1088 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK // SUPERKORALTODO: Actually doesn't work -- donut heats-up improperly and grows and unsteady. Even with using time-advanced prnew, leads to problems eventually and noisy overall.
1089 
1090 // N1=30 if using log coords from r=1.7 to r=50
1091 // N1=60 if using 1.5*hor - 40 (or 27.8)
1092 // N1=70 if using 1.5*hor - 30 (or 27.8)
1093 #define N1 32
1094 #define N2 16
1095 #define N3 1
1096 
1097  //#define N1 128
1098 //#define N2 64
1099 //#define N3 1
1100 
1101 // can choose any spherical polar coordinate system
1102 //#define MCOORD SPCMINKMETRIC
1103 //#define MCOORD BLCOORDS
1104 #define MCOORD KSCOORDS
1105 
1106 #undef cTILDA
1107 #define cTILDA (1.0) // like koral
1108 #undef gTILDA
1109 //#define gTILDA (1E-10) // like koral (no longer)
1110 #define gTILDA (1.0)
1111 
1112 #undef MPERSUN
1113 #define MPERSUN (10.0*gTILDA) // due to koral fixing MSUNCM, have to do this.
1114 
1115 #undef RADIUSMOREDEATH
1116 #define RADIUSMOREDEATH (300.0)
1117 
1118 
1119 
1120 #elif(WHICHPROBLEM==RADFLATDISK)
1121 
1122 //#define N1 120 // older koral
1123 #define N1 40 // new koral
1124 #define N2 40
1125 #define N3 1
1126 
1127 //#undef WHICHRADSOURCEMETHOD// DEBUG
1128 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
1129 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
1130 
1131 
1132 #define MCOORD SPCMINKMETRIC // i.e. RADFLATDISK
1133 
1134 #undef cTILDA
1135 #define cTILDA (1.0) // like koral
1136 #undef gTILDA
1137 #define gTILDA (1E-10) // like koral (no longer)
1138 //#define gTILDA (1.0)
1139 
1140 #undef MPERSUN
1141 #define MPERSUN (10.0*gTILDA) // due to koral fixing MSUNCM, have to do this.
1142 
1143 //#undef FORCESOLVEL
1144 //#define FORCESOLVEL 1
1145 
1146 
1147 #undef ARAD
1148 //#define ARAD (ARAD0*gTILDA*gTILDA) // stupid koral issue with units
1149 #define ARAD (ARAD0) // stupid koral issue with units
1150 
1151 #elif(WHICHPROBLEM==RADCYLBEAM)
1152 
1153 #define N1 50 // R // 120 for defcoord=UNIFORMCOORDS
1154 #define N2 1 // z
1155 #define N3 30 // \phi
1156 
1157 #define MCOORD CYLMINKMETRIC
1158 
1159 #elif(WHICHPROBLEM==RADCYLBEAMCART)
1160 
1161 #define N1 80
1162 #define N2 80
1163 #define N3 1
1164 
1165 #define MCOORD CARTMINKMETRIC2
1166 
1167 #endif
1168 
1169 
1170 #endif
1171 
1172 
1173 
1174 
1175 
1176 //choose which Komissarov's test number to use (1-9 and 101-106)
1177 #define WHICHKOMI 1
1178 
1179 
1180 #if(WHICHPROBLEM==KOMIPROBLEM)
1181 
1182 #define MCOORD CARTMINKMETRIC2
1183 //#undef EOMTYPE
1184 //#define EOMTYPE EOMGRMHD
1186 //#undef EOMRADTYPE
1187 //#define EOMRADTYPE EOMRADNONE // EOMRADM1CLOSURE
1188 //#undef WHICHRADSOURCEMETHOD
1189 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
1190 
1191 #undef WHICHRADSOURCEMETHOD
1192 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
1193 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
1194 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
1195 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
1196 
1197 
1198 #define N2 1
1199 #define N3 1
1200 
1201 #if(WHICHKOMI==1)
1202 #define N1 40
1203 
1204 #elif(WHICHKOMI==2)
1205 #define N1 200
1206 
1207 #elif(WHICHKOMI==3)
1208 #define N1 150
1209 
1210 #elif(WHICHKOMI==4)
1211 #define N1 150
1212 
1213 #elif(WHICHKOMI==5)
1214 #define N1 200
1215 
1216 #elif(WHICHKOMI==6)
1217 #define N1 200
1218 
1219 #elif(WHICHKOMI==7)
1220 #define N1 400
1221 
1222 #elif(WHICHKOMI==8)
1223 #define N1 500
1224 
1225 #elif(WHICHKOMI==9)
1226 #define N1 200
1227 
1228 #elif(WHICHKOMI>=101 && WHICHKOMI<=109)
1229 #define N1 200 // all use 200, see McKinney (2006) FFDE code paper
1230 
1231 #undef EOMTYPE
1232 //#define EOMTYPE EOMGRMHD // can use this as long as bsq/rho large and rho,P constant
1233 #define EOMTYPE EOMFFDE // what these problems really are for
1234 
1235 #endif
1236 #endif
1237 
1238 
1239 
1240 
1241 
1242 #if(WHICHPROBLEM==RADCYLJET)
1243 
1244 #undef CONNMACHINEBODY
1245 #define CONNMACHINEBODY 1
1246 
1247 //#undef ANALYTICMEMORY
1248 //#define ANALYTICMEMORY 1
1249 
1250 #undef ADJUSTFLUX
1251 #define ADJUSTFLUX 1
1252 
1253 #undef DOYFL
1254 #define DOYFL 0
1255 
1256 
1257 #undef OUTERDEATH
1258 #define OUTERDEATH 0 // don't do it
1259 #undef OUTERDEATHRADIUS
1260 #define OUTERDEATHRADIUS (1E3)
1261 #undef OUTERDEATHGAMMAMAX
1262 #define OUTERDEATHGAMMAMAX (6.0)
1263 #undef OUTERDEATHGAMMAMAXRAD
1264 #define OUTERDEATHGAMMAMAXRAD (GAMMAMAXRAD)
1265 
1266 #undef MPERSUN
1267 #define MPERSUN (10.0)
1268 
1269 #undef RADSHOCKFLAT
1270 #define RADSHOCKFLAT 1
1271 
1272 #undef WHICHRADSOURCEMETHOD
1273 //#define WHICHRADSOURCEMETHOD SOURCEMETHODNONE
1274 //#define WHICHRADSOURCEMETHOD SOURCEMETHODEXPLICIT
1275 #define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICIT
1276 //#define WHICHRADSOURCEMETHOD SOURCEMETHODIMPLICITEXPLICITCHECK
1277 
1278 
1279 //#undef DOCOMPTON
1280 //#define DOCOMPTON 1 // enable thermal Comptonization
1281 //#undef ENSURECONS
1282 //#define ENSURECONS 1
1283 //#undef DOPERF
1284 //#define DOPERF 1 // enable performance enhancements
1285 //#undef BORROWENTROPY
1286 //#define BORROWENTROPY 1
1287 //#undef ENFORCEMHDCONS2RADCONS
1288 //#define ENFORCEMHDCONS2RADCONS 1 // assumes not true that pmhd>>prad beyond machine precision
1289 
1290 // RADCYLJET_TYPE==6 needs 2D, rest 1D
1291 
1292 #define N1 64 // R // 120 for defcoord=UNIFORMCOORDS
1293 #define N2 32 // z
1294 #define N3 1 // \phi
1295 
1296 #define MCOORD CYLMINKMETRIC
1297 
1298 #endif
1299 
1300 
1301 
1302 
1303 
1304 
1305 // DEBUG sometimes with the below to check code and geometry issues
1306 #if(0)
1307 
1308 #undef WHICHEOM
1309 #define WHICHEOM WITHNOGDET
1310 
1311 #undef CONNMACHINEBODY
1312 #define CONNMACHINEBODY 0
1313 
1314 #undef DOSTOREPOSITIONDATA
1315 #define DOSTOREPOSITIONDATA 0
1316 
1317 #undef STOREFLUXSTATE
1318 #define STOREFLUXSTATE 0
1319 
1320 #undef STORESHOCKINDICATOR
1321 #define STORESHOCKINDICATOR 0
1322 
1323 #undef VARTOINTERP
1324 #define VARTOINTERP PRIMTOINTERP
1325 //#define VARTOINTERP PRIMTOINTERP_GDETFULLVERSION
1326 
1327 #undef RADSHOCKFLAT
1328 #define RADSHOCKFLAT 0
1329 
1330 #endif
1331 
1332 
1333 
1334 
1335 
1336 
1337 
1338 
1339 
1340