Skip to content
Snippets Groups Projects
config.txt 29.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • Maryshca's avatar
    Maryshca committed
    MAIN_DIR = "";
    
    # sometimes you have to set main directory, e.g. on Lengau working in Lustre:
    # MAIN_DIR = "/mnt/lustre/users/my_account/build/";
    
    domain
    {
    #
    # domain setup in [meters]
    #   x - streamwise, y - spanwise, z - wall-normal directions
    #
    
    Maryshca's avatar
    v0  
    Maryshca committed
        x = 0.0; y = 0.0; z = 0.0;              # point of origin
        length = 400.0; width = 200.0; height = 80.0;   # domain length(x), width(y) and height(z)
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    time
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        begin = 0.0; 
        end = 50.0 * 3600.0;    # start and end time of integration [s]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        dt = 0.2;       # time step [s]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # use_calendar = false;     # optional, default = false
        calendar 
        {
            mode = "local"; 
            # mode = "local" - local time
            # mode = "local-UTC" - local UTC time
            # mode = "set" - prescribed time & date as 
            #       [year, month, day, hour, min, sec, UTC_offset] values
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            year = 2020;
            month = 9;
            day = 1;
            hour = 12;
            min = 0;
            sec = 0.0;
            UTC_offset = 3;
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    grid
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        type = "uniform";       # type = "uniform" || "stretched" || "stretched-up" || "z-coord-ascii"
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        filename = "z-coord.txt";   # argument for type = "z-coord-ascii"
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        cx = 80; cy = 40; cz = 16;  # number of cells in each direction
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        ksi_z = 1.2;            # near-wall grid stretching parameter
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        adaptive {
            # mode = false;     # enable adaptive grid [optional, default = false]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            beta = 0.3;     # relaxation time scale [<= 1]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            dz_min = 0.25 * (domain.height / grid.cz);  # min grid step
            dz_max = 4.0 * (domain.height / grid.cz);   # max grid step
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- adaptation parameters
            TKE_threshold_coeff = 0.1;  # threshold coeff. to define hbl
            hbl_max_coeff = 1.1;        # boundary layer height multiplier
            C_smooth_coeff = 5.0;       # number of cells in smoothing region
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- begin & end time of adaptation [optional, default: all integration period]
            # begin = time.begin; end = time.end;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            nskip = 1;      # adaptation once in nskip iterations, each iteration := 1
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    mpi_setup
    {
    #
    # MPI-process distribution
    #   in 'mpirun -np [N]' [N] overrides config specs if differs
    #
    
    Maryshca's avatar
    v0  
    Maryshca committed
        dimx = 2; dimy = 2; dimz = 1;
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    phys
    
    Maryshca's avatar
    v0  
    Maryshca committed
    {   
        f = 0.0;                # coriolis frequency [1/s]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        nu = 1.25 * 0.00001;            # kinematic viscosity [m^2/s]
        xi = (1.0 / 0.7) * nu;          # thermal diffusivity [m^2/s]
        
        rho_ref = 1.25;             # reference density of air [kg/m^3]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        g = 9.81;               # gravitational acceleration [m/s^2]
        Theta_ref = 288.15;         # reference temperature [K]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- no buoyancy
        beta = 0.0;                 # = g * thermal expansion coefficient = g / Theta_ref [m/(K*s^2)]
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    # optinally define state variables
    #  default defs. depend on model configuration 
    state_def
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # Theta_p = false;
        # Tabs = false; 
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # Rho = false;
        # Rho_ideal = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # Exner_pz = false;
        # Pressure_ref_pz = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # Qliquid = false;
        # Qsolid = false;
        # Qvapor = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # Qvs_water = false; Pvs_water = false;
        # Qvs_ice = false; Pvs_ice = false;
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    topography
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        mode = "hand";  # topography def. mode
                    # mode = "hand" -- define only 'patches' in configuration file
                    # mode = "ascii-mask" -- read height map from file
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- using file height map parameters
        # mode = "ascii-mask";
        # filename = "map-ex.txt";      # filename path
        # xmin = domain.x;          # map -x coordinates in computation domain
        # xmax = domain.x + domain.length;
        # ymin = domain.y;          # map -y coordinates in computation domain
        # ymax = domain.y + domain.width;
        # height_scale = 1.0;           # scale height factor
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        npatch = 1;         # number of patches     
        patch_1 {
            type = "box";           # patch type: "box" || "hill"
            
            xmin = 15.0; xmax = 35.0;   # patch dimensions
            ymin = 10.0; ymax = 90.0;
            height = 20.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            xperiod = 50.0;         # optional periodicity in -x
            yperiod = 100.0;                # optional periodicity in -y
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    geo_wind
    {
    # NOTE: skipped if mode not set
    
    Maryshca's avatar
    v0  
    Maryshca committed
    #   forcing priority: [t,z], [t], [const]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- geostrophic wind components
        U = 0.0; V = 0.0;
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    external_pressure_grad
    {
    # NOTE: skipped if mode not set
    
    Maryshca's avatar
    v0  
    Maryshca committed
    #   forcing priority: [t,z], [t], [const]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- pressure gradient components [optional]
        dPdx = -0.0004;         # [Pa/m]
        # dPdy = 0.0;               # [Pa/m]
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    subsidence 
    {
    }
    # -----------------------------------------------------------------------------
    
    external_tendency
    {
    }
    # -----------------------------------------------------------------------------
    
    nudging
    {
    }
    # -----------------------------------------------------------------------------
    
    rayleigh_friction
    {
    }
    # -----------------------------------------------------------------------------
    
    surface
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        Theta {
            mode = "const";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- fixed surface temperature
            value = 288.15;     # initial surface temperature [K]
        }
        Qhum {
            # --- predefined mode [land surface model]
            mode = "lsm";
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        z0_m = 0.1;     # aerodynamic roughness [m]
        z0_h = 0.1;     # heat roughness [m]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        kappa = 0.4;        # von Karman constant
        Pr_t_0 = 1.0;       # turbulent Prandt number (neutral)
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- stability function coefficients
        Cm = 4.8;
        Ch = 7.8;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        alpha_m = 16.0;
        alpha_h = 16.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- latent heat flux alpha/beta model
        lhflux_alpha = 1.0;
        lhflux_beta = 0.025;
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    initial_conditions
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # optional [U], [V]
        #   if not set initial profiles are set to match geostrophic wind
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        U {
            # mode = "half-channel";
            # bulk = 6.0;
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        Theta { 
            # --- predefined mode
            mode = "const";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            surface_value = 288.15; # initial boundary layer temperature [K]
            height = 0.0;       # boundary layer height [m]
            grad_z = 0.0;       # humidity gradient above boundary layer [kg/(kg*m)]
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        Qhum { 
            # --- predefined mode
            mode = "mixed-layer";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            surface_value = 0.0025; # initial boundary layer humidity [kg/kg]
            height = 0.0;       # boundary layer height [m]
            grad_z = 0.0;       # humidity gradient above boundary layer [kg/(kg*m)]
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    damping
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        is_enabled = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # use_avgxy_ref = false;        # damp to -xy average profile [optional]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        f = 0.2;                # damping frequency [1/s], = 0.2 (WRF model)
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- damping layer [z1, z2]
        z1 = domain.z + 0.75 * domain.height;   # [m]
        z2 = domain.z + domain.height;      # [m]
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    les
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        is_dynamic_momentum = true;
        is_dynamic_scalar = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        is_ssm_mixed_momentum = false;
        is_ssm_mixed_scalar = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        is_amd_model = false;       # use AMD subgrid model 
                        # dynamic, ssm keys not supported, have to be := false
    
    Maryshca's avatar
    Maryshca committed
    
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- SSM model params
        C_ssm_momentum = 1.0;
        C_ssm_scalar = 1.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- static LES model params
        C_smag = 0.08;          # GABLS-1 fit = 0.08
                        # Lilly = 0.17
        Prandtl_sgs = 0.7;      # subgrid scale Prandtl [0.4, 1.0]  
    
    Maryshca's avatar
    Maryshca committed
    
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- dynamic LES model params
        dynamic {
            # --- dynamic coefficient = (C_{s} * delta_{g})^2 clipping
            C_smag_max = 0.25;
            Prandtl_sgs_min = 0.4;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            alpha = 1.73;       # test-to-base filter width ratio
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            avg_mode = "lagrange";  # "none", "plane", "filter", "lagrange"
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            nskip = 3;
            use_transport = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            C_T_lagrange_momentum = 1.5;
            C_T_lagrange_scalar = 3.0;
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        base_filter_reset = false;
        test_filter_reset = false;
        clip_filter_reset = false;
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    passive_tracers
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # num = 2;  # number of tracers, skipped if not defined
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- each tracer field defines diffusivity & surface values
        tracer_1 { 
            diffusivity = phys.xi;
    
    Maryshca's avatar
    Maryshca committed
     
    
    Maryshca's avatar
    v0  
    Maryshca committed
            surface { 
                flux = -0.01;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
                # --- setting localized source, all surface if not defined
                xmin = 180.0; xmax = 220.0;
                ymin = 180.0; ymax = 220.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
                # --- active in [begin, end], [time.begin, time.end] if not defined
                begin = 7.0 * 3600.0;
                # end = time.end;
            }
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        tracer_2 {
            # name = "tracer[2]";   # optional tracer name
    
    Maryshca's avatar
    Maryshca committed
     
    
    Maryshca's avatar
    v0  
    Maryshca committed
            diffusivity = phys.xi; 
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- setting 'life-time' using decay frequency [1/s] [optional]
            # f_decay = 1.0 / 600.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            surface {
                flux = -0.02;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
                # --- active in [begin, end], [time.begin, time.end] if not defined
                begin = 7.0 * 3600.0;
                # end = time.end;    
            }
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    # particle simulation setup
    #  used only if INCLUDE_PARTICLES is defined, see [model-defines.h]
    ptcl
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        is_passive_transport = false;       # passive particles flag
        
        # --- particle parameters for all sources
        density = 1000.0;           # particle density [kg/m^3]
        diameter = 0.000001;            # particle diameter [m]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        g = -9.81;              # gravity acceleration [m/s^2]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # f_decay = 1.0 / 100.0;        # optional decay constant [1/s]
                            # half-life = ln(2) / f
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- number of sources
        nsources = 1;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        source_1 {
            n = 524288 * 8;             # number of particles to release
            begin = 5.0 * 3600.0;           # release time
            end = time.end;         # instant release if not defined
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- setting flux [lower priority than 'n' -- number of particles]
            #   both begin & end must be specified -- not instant source
            # flux = 10.0;
            # flux_direction = "X";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- source volume
            xmin = domain.x + 50.0 - 10.0; xmax = domain.x + 50.0 + 10.0;
            ymin = domain.y;               ymax = domain.y + domain.width;
            zmin = domain.z;               zmax = domain.z + 5.0;
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- number of sinks [optional]
        nsinks = 1;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        sink_1 {
            # --- optional, default mode = "inside"
            mode = "outside";       # "inside" || "outside"
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- define volume
            xmin = domain.x;              xmax = domain.x + domain.length;
            ymin = domain.y - 0.5 * domain.width; ymax = domain.y + 1.5 * domain.width;
            zmin = domain.z + 0.01;           zmax = domain.z + domain.height;      
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    # particle tracking setup
    #  used only if INCLUDE_PARTICLES_TRACKING is defined, see [model-defines.h]
    ptcl_track
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        is_passive_transport = ptcl.is_passive_transport;
        
        # --- particle parameters for all sources
        density = ptcl.density;     # particle density [kg/m^3]
        diameter = ptcl.diameter;   # particle diameter [m]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        g = ptcl.g;         # gravity acceleration [m/s^2]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # f_decay = ptcl.f_decay;       # optional decay constant [1/s]
                            # half-life = ln(2) / f
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        group_max_size = 256;           # max number of particles per group
        max_memory = 10 * 1024 * 1024;      # max memory in bytes for keeping trajectories in memory
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- number of sources
        nsources = 1;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        source_1
        {
            n = 128;        # number of particles to release
            begin = 8.0 * 3600.0;   # release time
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- setting flux [lower priority than 'n' -- number of particles]
            #   both begin & end must be specified -- not instant source
            # flux = 100.0;
            # flux_direction = "Z";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- source volume
            xmin = domain.x + 0.4 * domain.length; xmax = domain.x + 0.6 * domain.length;
            ymin = domain.y + 0.4 * domain.width; ymax = domain.y + 0.6 * domain.width;
            zmin = domain.z; zmax = domain.z + 0.1 * domain.height;
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- number of sinks [optional]
        nsinks = 0;     
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    # canopy setup
    #  used only if INCLUDE_CANOPY_DRAG is defined, see [model-defines.h]
    canopy
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        Cd = 0.15;
        drag_type = "non-linear"; # || "linearized" || "mean"
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        num = 0;
        patch_1 { 
            type = "sharp"; # || "fancy" || "obs"
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- patch volume
            xmin = domain.x; xmax = domain.x + domain.length;
            ymin = domain.y; ymax = domain.y + domain.width;
            zmin = domain.z; zmax = domain.z + 50.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- make patch 'periodic' in -x and/or -y directions
            #   single patch if not defined
            # xperiod = 1.0;
            # yperiod = 1.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            LAI = 1.0;
            # --- set zm - height of max(LAD) for type = "obs":
            # zm = zmin + 0.8 * (zmax - zmin);
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- OR: set a file
            # type = "sharp-map";
            # filename = "map-ex.txt";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # switch_ij_order = false;  # [optional, default = false]
            # normalize_height = 1.0;   # [optional, default = 1.0]
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    poisson
    {
    #
    # Poisson equation solver setup
    #
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # use_cg_solver = false;        # use CG as base solver [optional, default = BiCGstab]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        retol = 0.0001; abstol = 0.00001;   # relative and absolute tolerance
        miniters = 1; maxiters = 100;       # minimum and maximum number of iterations
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        piters = 1;             # number of preconditioner (multigrid) iterations
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        multigrid 
        {
            ngrid = 5;          # number of grids in multigrid sequence (= [0] - auto definition)
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            down_iters = 2;         # number of smoother iterations on fine->coarse traverse
            up_iters = 3;           # number of smoother iterations on coarse->fine traverse
            direct_iters = 5;       # number of smoother iterations on coarsest grid
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            smooth_up_omega = 1.84;     # relaxation value on coarse->fine traverse
            smooth_up_omega_fine = 1.64;    # relaxation value on reaching finest grid
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    output 
    {
    # NOTE: netcdf output is enabled only if INCLUDE_NETCDF is defined in [nse-sys.h]
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        DIR = MAIN_DIR + "output/";     # output directory
        make_unique_DIR = true;     # make output directory unique for each run
    
        convert_dsq_to_tecplot = true;  # convert series .dsq output to .plt [tecplot] format
                            #   *: on model completion only
        # convert_dsq_to_netcdf = false;    # convert series .dsq output to .nc [netcdf] format
                            #   *: on model completion only
    
        num = 1;            # number of output units
    
        unit_1 
        {
            SUBDIR = "";                # unit sub-directory
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            begin = 1.0 * 3600.0;           # start time [s] for writing output
            dt = 1.0 * 3600.0;          # time step [s] for writing output
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- output subdomain [optional, applicable in 3D output only]
            xmin = domain.x; xmax = domain.x + domain.length;   # -x output domain setup
            ymin = domain.y; ymax = domain.y + domain.width;    # -y output domain setup
            zmin = domain.z; zmax = domain.z + domain.height;   # -z output domain setup
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- output controls [default, if not defined, value is 'false']
            cntrl_avgxy_plt = true;     # 1D -xy averaged .plt fields
            cntrl_avgxy_netcdf = false;     # 1D -xy averaged netcdf fields
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            cntrl_3d_plt = true;            # 3D .plt fields
            cntrl_3d_bin = false;           # 3D .nsx fields
            cntrl_3d_netcdf = false;        # 3D netcdf fields
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            cntrl_geometry_3d_plt = false;      # geometry 3D .plt fields
            cntrl_geometry_3d_netcdf = false;   # geometry 3D netcdf fields
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            cntrl_topography_plt = true;        # topography .plt fields
            cntrl_topography_netcdf = false;    # topography netcdf fields
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            cntrl_2d_plt = false;           # 2D .plt fields
            cntrl_2d_netcdf = false;        # 2D netcdf fields
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            cntrl_surface_plt = true;       # surface .plt fields
            cntrl_surface_netcdf = false;       # surface netcdf fields
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            cntrl_grid_plt = false;         # grid .plt data
            cntrl_grid_netcdf = false;      # grid netcdf data
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            cntrl_meteo_avgxy_plt = false;      # 1D -xy averaged meteo forcing .plt fields
            cntrl_meteo_all_plt = false;        # all meteo forcing .plt fields
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- output keys for filtered fields
            cntrl_filtered_3d_plt = false;
            # filter { kxmin = 0; kxmax = 0; kymin = 0; kymax = 5; is_remove_mean = true; }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- spectrum output
            spectrum
            {
                # --- controls
                x_cntrl = true;
                y_cntrl = true;
                xy_cntrl = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
                # np = 2;       # number of z planes, skipped if not defined
                z_1 = 50.0; 
                z_2 = 100.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
                # --- additional options for 1d & 2d spectrum, default all = true if not defined
                # is_remove_mean_1d = true;
                # is_centered_fft_1d = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
                # is_remove_mean_2d = true;
                # is_centered_fft_2d = true;
                # is_log10_2d = true;
            }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- particles & trajectories output
            #  used only if INCLUDE_PARTICLES is defined
            cntrl_ptcl_bin = false;         # particles binary output
            cntrl_ptcl_plt = true;          # particles .plt output
            cntrl_ptcl_coords_plt = false;      # particles coordinates .plt output
            #  used only if INCLUDE_PARTICLES_TRACKING is defined
            cntrl_ptcl_traj_bin = false;        # particles trajectories binary output
            cntrl_ptcl_traj_plt = false;        # particles trajectories .plt output
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- profiles [= 0 if not defined]
            x_profile_num = 0;
            y_profile_num = 0;
            z_profile_num = 0;
            # --- e.g.:
            x_profile_1 { y = domain.y + 0.5 * domain.width; z = domain.z + 0.5 * domain.height; }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- slices [ = 0 if not defined]
            xy_slice_num = 0;
            xz_slice_num = 0;
            yz_slice_num = 0;
            # --- e.g.: 
            xy_slice_1 { z = domain.z + 0.5 * domain.height; }
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        screen {
            begin = time.begin; # start time [s] of onscreen output
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # nskip = 360;      # output once in nskip iterations, each iteration := 1
            dt = 0.05 * 3600.0; # output time step [s], --higher-- priority than 'nskip'
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- screen controls [optional, default = true]
            # cntrl_status = true;
            # cntrl_progress_bar = true;
            
            # --- screen controls [optional, default = false]
            # cntrl_terminal_mode = false;
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    checkup
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- additional checkups [InF, NaN values etc.]
        begin = 0.0;        # start time of checks
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        nskip = 3600;       # check once in nskip iterations, each iteration := 1
        # dt = 1.0 * 3600.0;    # check time step, --higher-- priority than 'nskip'
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    dump 
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        DIR = MAIN_DIR + "dump/";   # dump directory
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        begin = 10.0 * 3600.0;      # start time [s] for writing model dump
        dt    = 10.0 * 3600.0;      # time step [s] for writing model dump
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    startup
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        DIR = MAIN_DIR + "init/";   # initial conditions directory
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    series
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        begin = 60.0;       # start time [s]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # nskip = 2;        # calculate once in nskip iterations, each iteration := 1
        dt = 1.0;       # time step [s], --higher-- priority than 'nskip'
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- point flow measurements
        point_set
        {
            # mode = "define";  # optional point set mode
                        #  = "define" [default] || "grid-xy" 
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # np = 3;   # number of points, skipped if not defined
            point_1 { x = domain.x + 0.5 * domain.length; y = domain.y + 0.5 * domain.width; z = 25.0; }
            point_2 { x = domain.x + 0.5 * domain.length; y = domain.y + 0.5 * domain.width; z = 50.0; }
            point_3 { x = domain.x + 0.5 * domain.length; y = domain.y + 0.5 * domain.width; z = 100.0; }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- OR: set point set grid on z=const planes
            # mode = "grid-xy";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- domain
            # x = domain.x; y = domain.y;
            # length = domain.length; width = domain.width;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- grid dimensions, number of edges
            # nx = 7; ny = 5;
            # --- number of z=const planes
            # nz = 3;
            # z_1 = 25.0;
            # z_2 = 50.0;
            # z_3 = 100.0;
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- [xy] averaged energy at fixed 'z'
        energy_avgxy_set 
        {
            # np = 2;   # number of z planes, skipped if not defined
            z_1 = 50.0; 
            z_2 = 100.0;
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- [xy] averaged fluxes at fixed 'z'
        flux_avgxy_set
        {
            # np = 2;   # number of z planes, skipped if not defined
            z_1 = 50.0;
            z_2 = 100.0;
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- additional parameters
        #   --- TKE hbl def. [optional]
        # TKE_hbl_threshold_stable = 0.3;
        # TKE_hbl_threshold_unstable = 0.1;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        #   --- max length to hold data in memory [optional]
        # max_mem_length = 100 * 1024;
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    spectrum_series
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        begin = time.begin; # start time
        
        nskip = 1;      # calculate once in nskip iterations, each iteration := 1
        # dt = 1.0;     # time step, --higher-- priority than 'nskip'
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # num = 3;      # number of series, skipped if not defined
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- wavevenumbers in: - kxmax <= kx <= kmax, 0 <= ky <= kymax 
        unit_1 { zp = domain.z + 0.3 * domain.height; kxmax = 3; kymax = 3; }
        unit_2 { zp = domain.z + 0.2 * domain.height; kxmax = 3; kymax = 3; }
        unit_3 { zp = domain.z + 0.1 * domain.height; kxmax = 3; kymax = 3; }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        #   --- max length to hold data in memory [optional]
        # max_mem_length = 100 * 1024;
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    time_scan
    {
    # NOTE: dump is not supported for time scans
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        begin = 60.0;       # scan start time [s]
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # nskip = 1000;     # calculate once in nksip iterations, each iteration := 1
        dt = 60.0;      # scan time step [s], --higher-- priority than 'nskip'
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # --- optionally set output variables
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        cntrl_grid = false;     # all keys, optional, default = all 'false'
        cntrl_grid {
            # dz = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- cell center & edge coordinates
            # pz = true; 
            # ez = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- only in adaptive grid mode
            # monitor_function = true;
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        cntrl_avgxy = true;     # all keys, optional, default = all 'false'
        cntrl_avgxy {
            # U = true;
            # V = true;
            # W = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # Theta = true;
            # Theta_p = true;
            # Tabs = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # Q = true;
            # Qvapor = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # UW_flux = true;
            # VW_flux = true;
            # TW_flux = true;
            # QW_flux = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # U_variance = true;
            # V_variance = true;
            # W_variance = true;
            # Theta_variance = true;
            # Q_variance = true;
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        cntrl_z_profile = false;    # all keys, optional, default = all 'false'
        cntrl_z_profile {
            # U = true;
            # V = true;
            # W = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # Theta = true;
            # Theta_p = true;
            # Tabs = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # Q = true;
            # Qvapor = true;
        }
        
        z_profile_num = 0;
        z_profile_1 { x = domain.x + 0.5 * domain.length; y = domain.y + 0.5 * domain.width; }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    stats
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        num = 2;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        unit_1 {
            begin = time.end - 4.0 * 3600.0;        # start time for averaging
            end = time.end;     # end time for averaging, to \infty if not defined  
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            nskip = 10;
            axis = "XYZ";
            type = "energy-eq";     
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            output.SUBDIR = "stat_end/";
            dump.SUBDIR = "stat_end/";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- regular mode [optional] -- shifts accumulation window
            # is_regular = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- ensemble mode [optional] -- ensemble averaging
            # is_ensemble = false;
        }
        unit_2 {
            begin = time.end - 8.0 * 3600.0;        # start time for averaging
            end = time.end - 4.0 * 3600.0;      # end time for averaging, to \infty if not defined  
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            nskip = 10;
            axis = "XYZ";
            type = "energy-eq";     
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            output.SUBDIR = "stat_end-1/";
            dump.SUBDIR = "stat_end-1";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- regular mode [optional] -- shifts accumulation window
            # is_regular = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- ensemble mode [optional] -- ensemble averaging
            # is_ensemble = false;
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    pdf
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # num = 1;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        unit_1 { 
            begin = 7.5 * 3600.0;
            end = 9.0 * 3600.0;
            dt = 1.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            zp = domain.z + 0.25 * domain.height;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            output.SUBDIR = "pdf/";
            dump.SUBDIR = "pdf/";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            cntrl_default = true;
            nbins_default = 256;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- reset options: [begin, reset_time] -- find histogram parameters 
            #   if not defined set min-max range for each variable in controls
            reset_time = 8.0 * 3600.0;
            reset_safety = 0.25;    # relative to min-max found
                        # e.g.: min' = min - reset_safety * (max - min)
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- regular mode [optional] -- shifts accumulation window
            # is_regular = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- change default control using keys
            # cntrl { 
            #   U = true; V = true; W = true; Pressure = true;
            #   U_grad_x = true; U_grad_y = true; U_grad_z = true;
            #   V_grad_x = true; V_grad_y = true; V_grad_z = true;
            #   W_grad_x = true; W_grad_y = true; W_grad_z = true;
            #   Suv = true; Suw = true; Svw = true;         # strain-tensor
            #   Omega_uv = true; Omega_uw = true; Omega_vw = true;  # vorticity-tensor
            #   Theta = true;
            #   Theta_grad_x = true; Theta_grad_y = true; Theta_grad_z = true;
            #   Q = true;
            #   Q_grad_x = true; Q_grad_y = true; Q_grad_z = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- tracers 'C' correspond to passive_tracers {} def. [use index in: 1...passive_tracers.num]
            #   C1 = true;
            #   C1_grad_x = true; C1_grad_y = true; C1_grad_z = true;
            #   C2 = true;
            #
            # }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- setting min-max for any variable
            #   this has to be defined if 'reset_time' is skipped, e.g.:
            # U { min = -1.0; max = 1.0; }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- setting number of bins for any variable, e.g.:
            # U { nbins = 512; }
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    joint_pdf
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # num = 1;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        unit_1 { 
            begin = 7.5 * 3600.0;
            end = 9.0 * 3600.0;
            dt = 1.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            zp = domain.z + 0.25 * domain.height;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            output.SUBDIR = "joint-pdf/";
            dump.SUBDIR = "joint-pdf/";
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            cntrl_default = true;
            nxbins_default = 256;
            nybins_default = 256;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- reset options: [begin, reset_time] -- find histogram parameters 
            #   if not defined set min-max range for each variable in controls
            reset_time = 8.0 * 3600.0;
            reset_safety = 0.25;    # relative to min-max found
                        # e.g.: min' = min - reset_safety * (max - min)
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- regular mode [optional] -- shifts accumulation window
            # is_regular = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- change default control using keys
            # cntrl { 
            #   UV = true; UW = true; VW = true;
            #   PSuu = true; PSvv = true; PSww = true;
            #   PSuv = true; PSuw = true; PSvw = true;
            #   TU = true; TV = true; TW = true;
            #   QU = true; QV = true; QW = true;
            #   QT = true;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- tracers 'C' correspond to passive_tracers {} def. [use index in: 1...passive_tracers.num]
            #   C1U = true; C1V = true; C1W = true; 
            #   C1T = true; C1Q = true;
            # --- tracer/tracer joint pdf, using strict upper diagonal notation, e.g.:
            #   C1C2 = true; C1C3 = true; C2C3 = true;
            #
            # }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- setting min-max for any variable
            #   this has to be defined if 'reset_time' is skipped, e.g.:
            # UV { xmin = -1.0; xmax = 1.0; ymin = - 1.0; ymax = 1.0; }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            # --- setting number of bins for any variable, e.g.:
            # UV { nxbins = 512; nybins = 512; }
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------
    
    runtime_filter
    {
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # begin = 600.0;    # set a regular filter
        # dt = 600.0;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        mark = 600.0;       # OR: apply filter at time = mark only
                    # mark has --higher-- priority than regular mode
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        # num = 0;  # number of filters applied, output = sum of all units
                # u = u_f[1] + u_f[2] + ...
                # --- skipped if not defined
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        unit_1 { 
            # --- keep some rolls
            mode = "include";
            is_remove_mean = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            kxmin = 0; kxmax = 0;
            kymin = 0; kymax = 5;
        }
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
        unit_2 {
            # --- add small scale disturbances
            mode = "exclude";   # adding (u - u_f)
            is_remove_mean = false;
    
    Maryshca's avatar
    Maryshca committed
    
    
    Maryshca's avatar
    v0  
    Maryshca committed
            kxmin = 0; kxmax = 10;
            kymin = 0; kymax = 10;
        }
    
    Maryshca's avatar
    Maryshca committed
    }
    # -----------------------------------------------------------------------------