5.3.7 Hydrodynamics Control

`character hdscheme`

:

With this parameter the type of the hydrodynamics scheme can be specified as incharacter hdscheme f=A80 b=80 n='Hydrodynamics scheme' & c0='Roe (approximate Riemann solver of Roe type)' & c1='VanLeer (operator splitting: advection + source terms)' & c2='None (skip hydrodynamics step entirely)' Roe

Possible values are`None`

: The hydrodynamics step is skipped entirely (for test purposes). Note that in this case some initializations necessary for the generation of the mean file are omitted, too.`Roe`

: (default) The standard Riemann solver of Roe type is activated. This value will in almost every case be chosen.`VanLeer`

: A half ready simple VanLeer advection scheme is activated. Avoid!

`character reconstruction`

:

This parameter determines the order and ``aggressiveness'' of the reconstruction scheme with e.g.character reconstruction f=A80 b=80 n='Reconstruction method' & c0=Constant c1=Minmod/VanLeer/Superbee c2=PP Minmod

Possible values are`Constant`

: The run of the partial waves inside the cells is assumed to be constant. A highly dissipative first order scheme results. This values will usually only be used for test (or comparison) purposes.`Minmod`

: Chooses the smallest slope which still results in a second order scheme. It is the most diffusive (and most stable) one in this class.`VanLeer`

: (default) The recommended second order scheme.`Superbee`

: The ``most aggressive'' stable 2nd order scheme. It results in the steepest shocks, which works well in some test cases but might be to difficult for the radiation transport module to handle.`PP`

: Chooses the piecewise parabolic reconstruction of the PPM scheme (``Piecewise Parabolic Method'', Colella & Woodward 1984). Results in 3rd order accuracy for the advection.

`VanLeer`

reconstruction is a good choice. If a more stable (and diffusive) scheme is needed, take`Minmod`

. The`PP`

reconstruction gives the highest accuracy.`integer n_hydcellsperchunk`

:

In every directional sub-step neighboring 1D columns are independent from each other. They can be grouped and computed in chunks of arbitrary size. The approximate number of grid cells per chunk can be specified e.g. withinteger n_hydcellsperchunk f=I9 b=4 & n='Number of cells per hydro chunk' & c0='0 => one 2D slice at a time' & c0='1 => minimum chunk size (inefficient)' & c0='2500: reasonable value' & c0='1000000000: maximum chunk size (inefficient and memory intensive)' 20000

The exact number is determined at run time to get (approximately) equal sizes of the individual chunks. The choice of this parameter does not affect the result of the computation but the memory usage and performance: Smaller (and more) chunks may result in an optimum cache usage and need the smallest amount of memory, but result in additional overhead due to frequent subroutine calls. Bigger (and less) chunks are to be preferred for vector machines and processors with large caches. Very rough guide values may be`2500`

: Pentium III processor`20000`

: RISC processor`100000`

: Vector machine

`real c_visdrag`

:

This viscosity parameter controls the drag force which is (if requested) applied inside the hydrodynamics routines themselves. It does not act on velocity gradients as usual viscosity but applies a force proportional to the velocity itself (but with the opposite sign). The amount can be specified e.g. withreal c_visdrag f=E15.8 b=4 & n='Drag viscosity parameter' u=1 0.001

The value gives the fraction the velocity is reduced per time step. Therefore, reasonable values lie between`0.0`

and`1.0`

. In almost every case the drag forces will be switched off (`c_visdrag`

=`0.0`

). If e.g. strong pulsation have to be damped in the initial phase of a simulation a value around`0.001-0.01`

seems appropriate.`real c_visbound`

:

An additional drag force can be added locally in inflow cells in the outer layer when the`transmitting`

boundary condition is chosen. The value can be set e.g. withreal c_visbound f=E15.8 b=4 & n='Boundary drag viscosity parameter' u=1 0.001

This extra drag force is usually not necessary and should be switched off (with`c_visbound`

=`0.0`

).