domain
{
#
# physical domain setup in H units, H - height
#   x - streamwise, y - spanwise, z - wall-normal directions
#
	x = 0.0; y = 0.0; z = 0.0;			# point of origin
	length = 6.0; width = 4.0; height = 1.0;	# domain length(x), width(y) and height(z)
}
# -----------------------------------------------------------------------------

grid
{
	cx = 192; cy = 128; cz = 128;			# number of cells in each direction	
	ksi_z = 1.5;					# near-wall grid stretching parameter
}
# -----------------------------------------------------------------------------

mpi_setup
{
#
# MPI-process distribution
#   in 'mpirun -np [N]' [N] overrides config specs if differs
#
	dimx = 1; dimy = 1; dimz = 1;
}
# -----------------------------------------------------------------------------

time
{
	begin = 0.0; end = 50.0;		# start and end time of integration
						#   in H/Umax units, Umax - wall speed difference

	CFL = 0.1;				# Courant-Friedrichs-Lewy number
}
# -----------------------------------------------------------------------------

fluid
{
	Umax = 1.0;				# wall-speed difference in dimensionless units (do NOT change!)
	disturbance_amp = 0.025;		# initial disturbance relative to Umax

	density = 1.0;				# fictitious density value (do NOT change!)
	viscosity = 1.0 / 5200.0;		# fictitious viscosity value <=> inverse of Reynolds number
						#   Re = (Umax * H) / nu

	T0 = 1.0;				# bottom wall temperature
	TH = 2.0;				# top wall temperature

	Prandtl = 0.7;				# molecular Prandtl number
						#   Pr = nu / kappa

	Richardson = 0.01;			# final Richardson number
	Richardson_init = 0.00;			# initial Richardson number
						#   Ri = g * (TH - T0) / T0 * (H / Umax^2)

	T_gravity_init = 200.0;			# start time for increasing Ri
	T_gravity_period = 100.0;		# time step for increasing Ri
}
# -----------------------------------------------------------------------------

# particle simulation setup
#  used only if INCLUDE_PARTICLES is defined
ptcl_opt
{
	n = 262144;#3145728;#786432;	# number of particles to release
	begin = 0.0;				# release time
}
# ----------------------------------------------------------------------

# particle tracking setup
#  used only if INCLUDE_PARTICLES_TRACKING is defined
ptcl_track_opt
{
	n = 128;		# number of particles to release
	begin = 1600.0;		# release time

	group_max_size = 256;			# max number of particles per group
	max_memory = 10 * 1024 * 1024;		# max memory in bytes for keeping trajectories in memory	
}
# ----------------------------------------------------------------------

poisson
{
#
# Poisson equation solver setup
#
	retol = 0.0001; abstol = 0.001;		# relative and absolute tolerance
	miniters = 1; maxiters = 500;		# minimum and maximum number of iterations

	piters = 1;				# number of preconditioner (multigrid) iterations

	multigrid 
	{
		ngrid = 7;			# number of grids in multigrid sequence (= [0] - auto definition)

		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

		smooth_up_omega = 1.84;		# relaxation value on coarse->fine traverse
		smooth_up_omega_fine = 1.64;	# relaxation value on reaching finest grid
	}
}
# -----------------------------------------------------------------------------

output 
{
	DIR = "output/";		# output directory

	begin = 1800.0;			# start time for writing output 
	dt = 200.0;			# time step for writing output

	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

	regular_plt3d_cntrl = false;			# flag for regular output of 3D .plt fields
	regular_bin3d_cntrl = false;			# flag for regular output of 3D .nsx fields
	final_plt3d_cntrl = false;			# flag for final output of 3D .plt fields

	nscreen = 400;					# onscreen output period in time steps

	profiles 
	{
		DIR = "output-rapid/";			# rapid profile output directory

		begin = 2000.0; end = 2100.0;		# start and end time for writing profiles
		dt = 2.0;				# time step for writing profiles

		plt_cntrl = true;			# flag for output of .plt profiles
	}
}
# -----------------------------------------------------------------------------

dump 
{
	DIR = "dump/";			# dump directory

	begin = 400.0;			# start time for writing model dump
	dt = 400.0;			# time step for writing model dump
}
# -----------------------------------------------------------------------------

startup
{
	DIR = "init/";			# initial conditions directory
}
# -----------------------------------------------------------------------------

stats
{
	begin = 1600.0;			# start time for statistics gathering
	time_mod = 10;			# statistics gathering period in time steps

	output {
		DIR = output.DIR + "stat/";		# statistics output directory
	}

	dump {
		DIR = dump.DIR + "stat/";		# statistics dump directory
	}
}
# -----------------------------------------------------------------------------