Changes between Version 27 and Version 28 of doc/app/examples/turbinf


Ignore:
Timestamp:
Feb 22, 2021 4:51:58 PM (4 years ago)
Author:
wagner
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • doc/app/examples/turbinf

    v27 v28  
    11= Setup for turbulent inflow =
    22
    3 Starting from version 3.5 PALM includes a so-called turbulence recycling method which allows a turbulent inflow with non-cyclic horizontal boundary conditions. The method follows the one described by [#lund1988 Lund et al. (1998)], modified by [#kataoka2002 Kataoka and Mizuno (2002)]. The method is switched on by setting the initial parameter [../../inipar#turbulent_inflow turbulent_inflow] = ''.TRUE.''.
     3Starting from version 3.5 PALM includes a so-called turbulence recycling method which allows a turbulent inflow with non-cyclic horizontal boundary conditions. The method follows the one described by [#lund1988 Lund et al. (1998)], modified by [#kataoka2002 Kataoka and Mizuno (2002)]. The method is switched on by setting the initial parameter [../../initialization_parameters#turbulent_inflow turbulent_inflow] = ''.TRUE.''.
    44
    5 The turbulent signal A'(y,z) to be imposed at the left inflow boundary is taken from the same simulation at a fixed distance x,,r,, from the inflow (given by parameter [../../inipar#recycling_width recycling_width]): A'(y,z) = A(x,,r,,,y,z) - '''A(x,,r,,,z)''', where '''A(x,,r,,,z)''' is the line average along y. The turbulent quantity A'(y,z) is then added to a mean inflow profile a(z) which is the horizontal (and temporal) average as calculated from a precursor run. This is done after each timestep.
     5The turbulent signal A'(y,z) to be imposed at the left inflow boundary is taken from the same simulation at a fixed distance x,,r,, from the inflow (given by parameter [../../initialization_parameters#recycling_width recycling_width]): A'(y,z) = A(x,,r,,,y,z) - '''A(x,,r,,,z)''', where '''A(x,,r,,,z)''' is the line average along y. The turbulent quantity A'(y,z) is then added to a mean inflow profile a(z) which is the horizontal (and temporal) average as calculated from a precursor run. This is done after each timestep.
    66
    7 In order to avoid a continous growth of the turbulent layer with time, the height up to which turbulence is recycled is limited by parameter [../../inipar#inflow_damping_height inflow_damping_height]. By default, this height is equal to the the height of the boundary layer z_i calculated by the precursor run. In the case of a strictly neutral flow you have to set the parameter [../../inipar#inflow_damping_height inflow_damping_height] because the value of z_i calculated by the precursor run is zero.   
     7In order to avoid a continous growth of the turbulent layer with time, the height up to which turbulence is recycled is limited by parameter [../../initialization_parameters#inflow_damping_height inflow_damping_height]. By default, this height is equal to the the height of the boundary layer z_i calculated by the precursor run. In the case of a strictly neutral flow you have to set the parameter [../../initialization_parameters#inflow_damping_height inflow_damping_height] because the value of z_i calculated by the precursor run is zero.   
    88
    99'''So far, a turbulent inflow is realized from the left (west) side only (2019/06/17)! '''
     
    1515    A precursor run with cyclic horizontal boundary conditions has to be carried out in order to create a (quasi-) stationary state. Since the horizontal average from this precursor run is used as the mean inflow profile for the main run, '''the wall-normal velocity component must point into the domain at every grid point and its magnitude should be large enough in order to guarantee an inflow even if a turbulence signal is added.'''
    1616
    17     The main run must be initialized using [../../inipar#initializing_actions initializing_actions] = '' 'cyclic_fill' ''. Therefore, restart (binary) data of the precursor run must be saved.
     17    The main run must be initialized using [../../initialization_parameters#initializing_actions initializing_actions] = '' 'cyclic_fill' ''. Therefore, restart (binary) data of the precursor run must be saved.
    1818
    1919    The main run requires the mean profiles from the precursor run to be used at the inflow. For this, the horizontally and temporally averaged mean profiles as provided with the standard PALM output are used. The user has to set parameters [../../d3par#dt_dopr dt_dopr], [../../d3par#averaging_interval averaging_interval], etc. for the precursor run appropriately, so that an output is done '''at the end''' of the precursor run. The profile information is then contained in the restart (binary) file created at the end of the precursor run and can be used by the main run. '''It is very important that the mean profiles at the end of the precursor run are in a stationary or quasi-stationary state''', because otherwise it may not be justified to use them as constant profiles at the inflow. '''Also, turbulence at the end of the precursor run should be fully developed.''' Otherwise, the main run would need an additional spinup-time at the beginning to get the turbulence to its final stage.
     
    2323  * Set options for turbulent inflow in the parameter file of the main run
    2424
    25     For initialization set [../../inipar#initializing_actions initializing_actions] = '' 'cyclic_fill' ''. Note that the initial flow field has a perfectly regular structure with a periodicity of the precursor run. This regularity can persist for a very long time. To break up this regularity, use a domain width that is not an integer multiple of the precursor run domain width. The occurring flow field discontinuity at the lateral domain boundary initiates a fast break up of the regularity.
     25    For initialization set [../../initialization_parameters#initializing_actions initializing_actions] = '' 'cyclic_fill' ''. Note that the initial flow field has a perfectly regular structure with a periodicity of the precursor run. This regularity can persist for a very long time. To break up this regularity, use a domain width that is not an integer multiple of the precursor run domain width. The occurring flow field discontinuity at the lateral domain boundary initiates a fast break up of the regularity.
    2626
    27     Horizontal boundary conditions have to be set to [../../inipar#bc_lr bc_lr] = '' 'dirichlet/radiation' ''. '''The radiation boundary condition at the outflow requires that the wall-normal velocity component at the outflow must point out of the domain at every grid point and at every timestep.''' Special care has to be taken in case of obstacles near the outflow, because their recirculations may violate this condition.
     27    Horizontal boundary conditions have to be set to [../../initialization_parameters#bc_lr bc_lr] = '' 'dirichlet/radiation' ''. '''The radiation boundary condition at the outflow requires that the wall-normal velocity component at the outflow must point out of the domain at every grid point and at every timestep.''' Special care has to be taken in case of obstacles near the outflow, because their recirculations may violate this condition.
    2828
    29     Because of the Dirichlet condition at the inflow, the flow does not require any further driving force in general. An external pressure gradient or a geostrophic wind can be used, but should have the same value as for the precursor run. Otherwise, the horizontally diverging wind field will induce vertically descending or ascending motions. An application of volume flow conservation ([../../inipar#conserve_volume_flow conserve_volume_flow] = ''.TRUE.'') should be done with care, because it may have the same effects.
     29    Because of the Dirichlet condition at the inflow, the flow does not require any further driving force in general. An external pressure gradient or a geostrophic wind can be used, but should have the same value as for the precursor run. Otherwise, the horizontally diverging wind field will induce vertically descending or ascending motions. An application of volume flow conservation ([../../initialization_parameters#conserve_volume_flow conserve_volume_flow] = ''.TRUE.'') should be done with care, because it may have the same effects.
    3030
    3131    The main run allows to use a larger domain along x and y than in the precursor run. Along z, however, the main run and the precursor run must be exactly the same.
    3232
    33     Set [../../inipar#turbulent_inflow turbulent_inflow] = .T. .
     33    Set [../../initialization_parameters#turbulent_inflow turbulent_inflow] = .T. .
    3434
    35     Define the position of the recycling plane via [../../inipar#recycling_width recycling_width]. The distance between the inflow and the recycling plane should be large enough to cover at least one lifetime (Lagrangian time scale) of the largest eddies. Otherwise, the turbulent structures do not have enough time to change before they are recycled, resulting in regular patterns in the flow field and distorted statistics. For estimating the Lagrangian time scale refer to [#anfossi2006 Anfossi et al. (2006)]. Typically, the recycling width will be about the same size as the domain size of the precursor run. It is, however, recommended that both sizes do not exactly match to prevent the development of fixed-sized structures.
     35    Define the position of the recycling plane via [../../initialization_parameters#recycling_width recycling_width]. The distance between the inflow and the recycling plane should be large enough to cover at least one lifetime (Lagrangian time scale) of the largest eddies. Otherwise, the turbulent structures do not have enough time to change before they are recycled, resulting in regular patterns in the flow field and distorted statistics. For estimating the Lagrangian time scale refer to [#anfossi2006 Anfossi et al. (2006)]. Typically, the recycling width will be about the same size as the domain size of the precursor run. It is, however, recommended that both sizes do not exactly match to prevent the development of fixed-sized structures.
    3636
    37     A damping layer for the turbulence signal can be set at top of the domain via [../../inipar#inflow_damping_height inflow_damping_height] and [../../inipar#inflow_damping_width inflow_damping_width]. Inside the damping layer the turbulence signal is linearly damped to 0%. For [../../inipar#inflow_damping_height inflow_damping_height] the boundary layer height from the precursor run should be used.
     37    A damping layer for the turbulence signal can be set at top of the domain via [../../initialization_parameters#inflow_damping_height inflow_damping_height] and [../../initialization_parameters#inflow_damping_width inflow_damping_width]. Inside the damping layer the turbulence signal is linearly damped to 0%. For [../../initialization_parameters#inflow_damping_height inflow_damping_height] the boundary layer height from the precursor run should be used.
    3838
    3939    The recycled turbulence, which is mapped from the recycling plane to the inflow boundary, can be shifted in y direction. This y-shift reduces persistent streaks that may occur within the recycling domain. To use the y-shift set [../../initialization_parameters#y_shift y_shift] to a non-zero value. The distance of the y-shift is given in number of processors (PE) and should be roughly equal to the boundary layer height. For an effective reduction of streaks it is important that the flow passes the domain many times until it is shifted to its initial y-position. The number of flowthroughs is given by the least common multiple of y_shift and [../../initialization_parameters#npey npey] divided by y_shift. Note that this is only true for a perfectly x-aligned flow. For further details refer to Munters (2016; ​http://www.dx.doi.org/10.1063/1.4941912).