Version 169 (modified by schwenkel, 7 years ago) (diff)

--

Particle Parameters

















NAMELIST group name: particles_par

Parameter Name FORTRAN Type Default Value Explanation

aero_type

C*15

'maritime'

Define a aerosol spectrum using three log-normal distributions and the values stated in Jaenicke (1993, doi: 10.1016/S0074-6142(08)60210-7). Possible values are 'polar', 'background', 'maritime', 'continental', 'desert', 'rural', and 'urban'. If 'user' is chosen, the aerosol spectrum is steered by rm, na, and log_sigma. Note that curvature_solution_effects needs to be true to consider aerosol spectra. Note that this aerosol spectrum spectrum determines the aerosol mass, initial wet radius, and the weighting factor of all super-droplets. The weighting factors can be manipulated with aero_weight.

aero_weight

R

1.0

Scale the number concentration defined by aero_type to the desired amount of aerosols by keeping the typical shape of the spectrum.

alloc_factor

R

20.0

Factor (in percent) describing the memory allocated additionally to the memory needed for initial particles at a given grid cell. For example, 100 particles are initialized at a grid cell. Hence, an array for 120 particles (default value of alloc_factor) is allocated providing sufficient memory for particles being transported to this grid cell during the simulation. Note that this array is automatically reallocated if more than 120 particles (following the example above) are transported to this array in order to provide sufficient memory. Thus, it is not necessary to choose alloc_factor too high.

bc_par_b

C*15

'reflect'

Bottom boundary condition for particle transport.
By default, particles are reflected at the bottom boundary. Alternatively, a particle absorption can set by bc_par_b = 'absorb'.

bc_par_lr

C*15

'cyclic'

Lateral boundary condition (x-direction) for particle transport.
By default, cyclic boundary conditions are used along x. Alternatively, reflection (bc_par_lr = 'reflect' ) or absorption (bc_par_lr = 'absorb' ) can be set.
This lateral boundary conditions should correspond to the lateral boundary condition used for the flow (see bc_lr).

bc_par_ns

C*15

'cyclic'

Lateral boundary condition (y-direction) for particle transport.
By default, cyclic boundary conditions are used along y. Alternatively, reflection (bc_par_ns = 'reflect' ) or absorption (bc_par_ns = 'absorb' ) can be set.
This lateral boundary conditions should correspond to the lateral boundary condition used for the flow (see bc_ns).

bc_par_t

C*15

'absorb'

Top boundary condition for particle transport.
By default, particles are absorbed at the top boundary. Alternatively, a reflection condition can be set by bc_par_t = 'reflect'.

collision_kernel

C*15

'none'

Parameter to steer cloud droplet growth by collision processes.

The growth of cloud droplets due to collision is parameterized using the so-called collision kernel. By default, collision is switched off. The user can choose between the following kernels:

'hall'

Collision kernel from Hall (1980, J. Atmos. Sci., 2486-2507), which considers collision due to pure gravitational effects. Larger droplets have a higher terminal fall velocity and are collecting smaller ones. Only terminal droplet velocities are considered in this kernel (not their effective velocities).

'hall_fast'

Same as 'hall' , but a collision efficiency table is calculated only once (at the beginning of the simulation) for fixed radius classes in the range [1.0E-6,1000.0E-6] m. The number of classes to be used (i.e. the resolution of the kernel) can be set by parameter radius_classes. This method significantly reduces the total CPU time of a job.

'none'

Droplet collision is switched off.

'wang'

Beside gravitational effects (treated with the Hall-kernel) also the effects of turbulence on the collision are considered using parameterizations of Ayala et al. (2008, New J. Phys., 10, 075015) and Wang and Grabowski (2009, Atmos. Sci. Lett., 10, 1-8). This kernel includes three possible effects of turbulence: the modification of the relative velocity between the droplets, the effect of preferential concentration, and the enhancement of collision efficiencies.

'wang_fast'

Same as 'wang' , but a collision efficiency table is calculated only once (at the beginning of the simulation) for fixed radius- and dissipation classes in the ranges [1.0E-6,1000.0E-6] m, and [0.0,600.0] cm2/s3 respectively. The number of classes to be used (i.e. the resolution of the kernel) can be set by parameters radius_classes, and dissipation_classes. This method significantly reduces the total CPU time of a job.

Attention: Switching on the collision process drastically increases the CPU time of jobs.

curvature_solution_effects

L

.F.

Parameter to consider solution and curvature effects on the equilibrium vapor pressure of cloud droplets. For the initialization of the corresponding dry aerosol spectrum, see aero_type. In this case, the radius growth equation is integrated in time using a Rosenbrock method.

deallocate_memory

L

.T.

Parameter to enable deallocation of unused memory. If the number of particles in a grid box exceeds the allocated memory, new memory is allocated. However, in case the number of particles per grid box in only temporarily high, most of the memory remains unused. If deallocate_memory = .True., the allocated memory used for particles will be dynamically adjusted with respect to the current number of particles every step_dealloc 's timestep.

density_ratio

R(10)

0.0, 9 * 9999999.9

Ratio of the density of the fluid and the density of the particles.
With the default value the particles are weightless and transported passively with the resolved scale flow. In case of density_ratio /= 0.0 particles have a mass and hence inertia so that their velocity deviates more or less from the velocity of the surrounding flow. Particle velocity is calculated analytically and depends on (besides the density ratio and the current velocity difference between particles and surrounding fluid) the particle radius which is determined via radius as well as on the molecular viscosity (assumed as 1.461E-5 m2/s).

If density_ratio = 1.0, the particle density corresponds to the density of the surrounding fluid and the particles do not feel any buoyancy. Otherwise, particles will be accelerated upwards (density_ratio > 1.0) or downwards (density_ratio < 1.0).

With several groups of particles (see number_of_particle_groups), each group can be assigned a different value. If the number of values given for density_ratio is less than the number of groups defined by number_of_particle_groups), then the last assigned value is used for all remaining groups. This means that by default the particle density ratio for all groups will be 0.0.

dissipation_classes

I

10

Number of dissipation classes to be used in the collision efficiency table.
This parameter comes into effect if the parameter collision_kernel is set to 'wang_fast' . It defines the number of dissipation classes which spawn the collision efficiency table. The interval [1.0,1000.0] cm2/s3 is divided into n (= dissipation_classes) equidistant parts.

dt_dopts

R

value of dt_data
_output

Temporal interval at which time series data of particle quantities shall be output (in s). If particle advection is switched on (see dt_prel) this parameter can be used to assign the temporal interval at which time series of particle quantities shall be output. Output is written in netCDF format on local file DATA_1D_PTS_NETCDF?.

The following list gives a short description of the quantities available. Most quantities are averaged over all particles. The quantity name given in the first column is identical to the respective name of the variable on the netCDF file.

In case of using more than one particle group (see number_of_particle_groups), separate time series are output for each of the groups. The long names of the variables in the netCDF file containing the respective time series all end with the string PG ##, where ## is the number of the particle group (01, 02, etc.).

netCDF Variable Name Explanation
tnpt total number of particles
x_ particle x-coordinate with respect to the particle origin (in m)
y_ particle y-coordinate with respect to the particle origin (in m)
z_ particle z-coordinate with respect to the particle origin (in m)
z_abs absolute particle z-coordinate (in m)
u u particle velocity component (in m/s)
v v particle velocity component (in m/s)
w w particle velocity component (in m/s)
u subgrid-scale u particle velocity component (in m/s)
v subgrid-scale v particle velocity component (in m/s)
w subgrid-scale w particle velocity component (in m/s)
npt_up total number of upward moving particles
w_up vertical velocity of the upward moving particles (in m/s)
w_down vertical velocity of the downward moving particles (in m/s)
npt_max maximum number of particles in a subdomain (=tnpt for non-parallel runs)
npt_min minimum number of particles in a subdomain (=tnpt for non-parallel runs)
x*2 variance of the particle x-coordinate with respect to x_ (in m2)
y*2 variance of the particle y-coordinate with respect to y_ (in m2)
z*2 variance of the particle z-coordinate with respect to z_ (in m2)
u*2 variance of the u particle velocity component with respect to u (in m2/s2)
v*2 variance of the v particle velocity component with respect to v (in m2/s2)
w*2 variance of the w particle velocity component with respect to w (in m2/s2)
u"2 variance of the subgrid-scale u particle velocity component with respect to u" (in m2/s2)
v"2 variance of the subgrid-scale v particle velocity component with respect to v" (in m2/s2)
w"2 variance of the subgrid-scale w particle velocity component with respect to w" (in m2/s2)
npt*2 variance of the number of particles with respect to the average number of particles per subdomain

dt_min_part

R

0.0002

Minimum value for the particle time step when SGS velocities are used (in s).
For a further explanation see package parameter use_sgs_for_particles.

dt_prel

R

9999999.9

Temporal interval at which particles are to be released from a particle source (in s).
By default, particles are released only at the beginning of a simulation (t_init=0). The time of the first release (t_init) can be changed with package parameter particle_advection_start. The time of the last release can be set with the package parameter end_time_prel. If dt_prel has been set, additional releases will be at t = t_init+dt_prel, t_init+2*dt_prel, t_init+3*dt_prel, etc.. Actual release times may slightly deviate from these values (see e.g. dt_dopr).

The domain of the particle source, as well as the distance of released particles within this source, are determined via package parameters pst, psl, psr, pss, psn, psb, pdx, pdy and pdz. By default, one particle is released at all points defined by these parameters. The package parameter particles_per_point can be used to start more than one particle per point.

Up to 10 different groups of particles can be released at the same time (see number_of_particle_groups) where each group may have a different source. All particles belonging to one group have the same density ratio and the same radius. All other particle features (e.g. location of the source) are identical for all groups of particles.

Subgrid scale velocities can (optionally) be included for calculating the particle advection, using the method of Weil et al. (2004, JAS, 61, 2877-2887). This method is switched on by the package parameter use_sgs_for_particles. This also forces the Euler/upstream method to be used for time advancement of the TKE (see initialization parameter use_upstream_for_tke). The minimum time step during the sub-time steps is controlled by package parameter dt_min_part.

By default, particles are weightless and transported passively with the resolved scale flow. Particles can be given a mass and thus an inertia by assigning the package parameter density_ratio a non-zero value (it defines the ratio of the density of the fluid and the density of the particles). In this case, their radius must also be defined, which affects their flow resistance.

Boundary conditions for the particle transport can be defined with package parameters bc_par_t, bc_par_lr, bc_par_ns and bc_par_b.

Time series of particle quantities in netCDF format can be output to local file DATA_1D_PTS_NETCDF by using package parameter dt_dopts.

For analysis, additional output of particle information in equidistant temporal intervals can be carried out using dt_write_particle_data (file PARTICLE_DATA).

Statistical information (e.g. the total number of particles used, the number of particles exchanged between the PEs, etc.) are output to the local file PARTICLE_INFOS, if switched on by the parameter write_particle_statistics.

If a job chain is to be carried out, particle information for the restart run (e.g. current location of all particles at the end of the run) is output to the local file PARTICLE_RESTART_DATA_OUT, which must be saved at the end of the run and given as an input file to the restart run under local file name PARTICLE_RESTART_DATA_IN using respective file connection statements in the mrun configuration file.

So far, the particle transport realized in PALM does only work duly in case of a constant vertical grid spacing!

dt_write_particle_data

R

9999999.9

Temporal interval for output of particle data (in s).
This parameter can be used to assign the temporal interval at which particle data shall be output. Data are output to the local file PARTICLE_DATA. See the file description for more details about its format.
By default, no particle data are output.

end_time_prel

R

9999999.9

Time of the last release of particles (in s).
See also particle_advection_start.

initial_weighting _factor

R

1.0

Factor to define the real number of initial droplets in a grid box.
In case of explicitly simulating cloud droplets (see cloud_droplets), the real number of initial droplets in a grid box is equal to the initial number of droplets in this box (defined by the particle source parameters pst, psl, psr, pss, psn, psb, pdx, pdy and pdz) times the initial_weighting_factor.

max_number_particles_per_gridbox

I

100

Threshold for splitting of super droplets: If the number of particles in a grid box reached max_number_particles_per_gridbox no more splitting operations are conducted.

Remark:
It is important to set this threshold to an appropriate value (if splitting=.T.). Otherwise the unlimited creation of new particles in single grid boxes may significantly increase CPU time of jobs.

merging

L

F

Switch on/off merging algorithm for particles (if cloud_droplets=.T.). If merging=.TRUE. every time step the merging algorithm is executed. The algorithm merge two super droplets into one and can be steered with the parameters radius_merge and weight_factor_split. Due to this procedure the demand of computational resources is reduced.

Remark:
Right now the merging algorithm is only tested for evaporated super droplets (radius smaller than 0.1 µm) with a low weighting-factor (smaller than 0.5* initial_weighting_factor). For this configuration microphysical and macrophysical quantities of the cloud are not affected of the merging.

min_nr_particle

I

50

Minimum number of particles for which memory is allocated at every grid cell.

Remark:
In case you are using larger number of gridpoints and if you release particles in a limited area of the total domain only, you may think about reducing the default value to a small number, e.g. 2. For example, if you release particles only near the surface, you may never need to allocate memory for particles well above the boundary layer. Furthermore, please be aware that you may run out of memory if you are using the default value of min_nr_particle for a larger number of grid points.

number_concentration

R

-1.0

Initial particle number concentration (in units of 1/cm³).
If this value is set, the initial weighting-factor is calculated that the prescribed initial number concentration is ensured in every grid box that contains particles.

number_of_particle _groups

I

1

Number of particle groups to be used.
Each particle group can be assigned its own source region (see pdx, psl, psr, etc.), particle diameter (radius) and particle density ratio (density_ratio).
If fewer values are given for pdx, psl, etc. than the number of particle groups, then the last value is used for the remaining values (or the default value, if the user did not set the parameter).
The maximum allowed number of particle groups is limited to 10.

number_particles_per_gridbox

I

-1

Number of particles which are created in every grid box.
If a value >=1 is chosen, pdx, pdy, and pdz are calculated assuming an isotropic particle distribution. The default value -1 requires initialization by the user with parameters pdx, pdy, and pdz.

na

R(3)

100.0

Number concentration (in m-3) of the log-normal distribution steering the initial dry aerosol spectrum. See aero_type for more details. Up to three values of na can be prescribed.

particles_per_point

I

1

Number of particles to be started per point.
By default, one particle is started at all points of the particle source, defined by the package parameters pst, psl, psr, pss, psn, psb, pdx, pdy and pdz.

particle_advection_start

R

0.0

Time of the first release of particles (in s).
If particles are not to be released at the beginning of the run, the release time can be set via particle_advection_start. If particle transport is switched on in a restart run, then read_particles_from_restartfile = .F. is also required.
See also end_time_prel.

particle_maximum_age

R

9999999.9

Maximum allowed age of particles (in s).
If the age of a particle exceeds the time set by particle_maximum_age, the particle is deleted.

pdx

R (10)

10*dx

Distance along x between particles within a particle source (in m).
If the particle source shall be confined to one grid point, the distances given by pdx, pdy and pdz must be set larger than the respective domain size or psl = psr has to be set alternatively.
pdx can be assigned a different value for each particle group (see number_of_particle_groups).

pdy

R (10)

10*dy

Distance along y between particles within a particle source (in m).

pdz

R (10)

10*
(zu(2)-zu(1))

Distance along z between particles within a particle source (in m).

psb

R (10)

10*zu(nz/2)

Bottom edge of a particle source (in m).
In case of seed_follows_topography switched on, the bottom edge height is interpreted as relative to the given topography.

psl

R (10)

10*0.0

Left edge of a particle source (in m).

psn

R (10)

10*(ny*dy)

Rear ("north") edge of a particle source (in m).

psr

R (10)

10*(nx*dx)

Right edge of a particle source (in m).

pss

R (10)

10*0.0

Front ("south") edge of a particle source (in m).

pst

R (10)

10*zu(nz/2)

Top edge of a particle source (in m).
In case of seed_follows_topography switched on, the top edge height is interpreted as relative to the given topography.

radius

R (10)

0.0, 9*
9999999.9

Particle radius (in m).
The viscous friction (in case of a velocity difference between particles and surrounding fluid) depends on the particle radius which must be assigned as soon as density_ratio /= 0.0.
With several groups of particles (see number_of_particle_groups), each group can be assigned a different value. If the number of values given for radius is less than the number of groups defined by number_of_particle_groups), then the last assigned value is used for all remaining groups. This means that by default the particle radius for all groups will be 0.0.

radius_classes

I

20

Number of radius classes to be used in the collision efficiency table.
This parameter comes into effect if parameter collision_kernel is set to 'hall_fast' or 'wang_fast' . It defines the number of radius classes which spawn the collision efficiency table. The interval [1.0E-6,2.0E-4] m is divided into n (= radius_classes) logarithmic equidistant parts.

radius_merge

R

0.1E-6

Radius threshold for merging of super droplets. Only super droplets with a smaller radius than radius_merge are considered for merging (If merging=.T.).

radius_split

R

40.0E-6

Radius threshold for splitting of super droplets. Only super droplets with a larger radius than radius_split are considered for cloning (If splitting=.T.) . Sensitivity studies showed, that a radius of 40µm seems to be sufficient to achieve better statistics of the rain drop distribution. However, those results are based on simulations of shallow cumulus clouds. Therefore, this parameter may be adjusted for different applications.

random_start_position

L

.F.

Initial position of the particles is varied randomly within certain limits.
By default, the initial positions of particles within the source exactly correspond with the positions given by psl, psr, psn, pss, psb, pst, pdx, pdy, and pdz. With random_start_position = .T. the initial positions of the particles are allowed to randomly vary from these positions within certain limits.

Very important: In case of random_start_position = .T., the random-number generators on the individual PEs no longer run synchronously. If random disturbances are applied to the velocity field (see create_disturbances), then as a consequence for parallel runs the realizations of the turbulent flow fields will deviate between runs which used different numbers of PEs!

read_particles _from_restartfile

L

.T.

Read particle data from the previous run.
By default, with restart runs particle data is read from file PARTICLE_RESTART_DATA_IN, which is created by the preceding run. If this is not requested or if in a restart run particle transport is switched on for the first time (see particle_advection_start), then read_particles_from_restartfile = .F. is required.

rm

R(3)

0.05E-6

Mode radius (in m) of the log-normal distribution steering the initial dry aerosol spectrum. See aero_type for more details. Up to three values of rm can be prescribed.

seed_follows_ topography

L

.F.

Heights of initial particles are interpreted relative to the given topography.
In case of topography, the heights of the initial particle sources set by psb and pst are interpreted as relative to the given topography if seed_follows_topography=.TRUE. . Otherwise, if seed_follows_topography=.FALSE. and the local particle source is below the surface, no particle are released at this location.

splitting

L

F

Switch on/off splitting algorithm for cloud droplets (if cloud_droplets=.T.). If splitting is set .TRUE. every time step the splitting algorithm is executed. The algorithm split particles which fulfill certain criterion's into several super droplets with a reduced number of represented particles of every super droplet. The splitting algorithm can be steered by the following parameters: max_number_particles_per_gridbox, radius_split, splitting_factor, splitting_factor_max, splitting_function, splitting_mode and weight_factor_split. This mechanism allows an improved representation of the right tail of the drop size distribution with a feasible amount of computational costs.

Remark:
The calculation of all physical process (e.g. advection, diffusional growth and collision) depends on the number of simulated particles. Therefore, splitting = .T. may significantly increase CPU time of simulations. Furthermore, the creation of new particles will lead to an increased storage capacity and you may will run out of memory. Due to this reason, the limits of the splitting algortihm should be chosen very carefully.

splitting_factor

I

2

This parameter is used for splitting_mode = 'const'. It defines the number into how many partiles one particle is divided. This means that, if all other splitting criterion's for one super droplet are fulfilled, splitting_factor-1 new particles (with the same properties as the origin super droplet) are created. The weighting factor of each of the super droplets is divided by the splitting_factor. For splitting_mode = 'cl_av' and 'gb_av' this parameter is calculated automatically and given by the ratio of the actual weighting factor of a super droplet and the approximated number concentration for cloud droplets with a similar radius in a grid volum).

splitting_factor_max

I

5

This parameter restricts the splitting_factor to an upper bound. It is used for the splitting_mode 'cl_av_ and 'gb_av' where the splitting_factor is calculated automatically and can get very large values which are not feasible.

splitting_function

C

'gamma'

Parameter to steer splitting algorithm.

For the splitting_mode ='cl_av' and 'gb_av' different functions can be used to approximate the drop size distribution. The user can choose between the following functions:

'exp'

An exponential distribution.

'gamma'

A gamma size distribution.

'log'

A lognormal distribution.

splitting_mode

C

'const'

Parameter to steer splitting algorithm.

The splitting of cloud droplets can be done in using different modes. The user can choose between the following modes:

'const'

In splitting mode 'const' a critical radius radius_split a critical weighting factor weight_factor_split and a splitting_factor must be prescribed. Super droplets which have a larger radius and larger weighting factor are split into splitting_factor super droplets. Therefore, the weighting factor of the super droplet and all created clones is reduced by the factor of splitting_factor.

'cl_av'

In splitting mode 'cl_av' a critical radius radius_split and a splitting function must be prescribed. The critical weighting factor is calculated while approximating a 'gamma', 'log' or 'exp'- drop size distribution. In this mode a drop size distribution (discretized in 100 bins in a range from 1.0 µm to 1 mm) is calculated as an average over all cloudy grid boxes. Super droplets which have a larger radius and larger weighting factor are split into splitting_factor super droplets. In this case the splitting_factor is calculated of weighting factor of the super droplet and the approximated number concentration for droplet of such a size. Due to the splitting, the weighting factor of the super droplet and all created clones is reduced by the factor of splitting_factor.

'gb_av'

Same as for 'cl_av' but a drop size distribution is calculated for every grid box.

step_dealloc

I

100

Number of timesteps after which particle memory is deallocated. The parameter has only an effect if dealloc_memory = .True. .

log_sigma

R(3)

2.0

Logarithm (log10) of geometric standard deviation of the log-normal distribution steering the initial dry aerosol spectrum. See aero_type for more details. Up to three values of log_sigma can be prescribed.

use_sgs_for_particles

L

.F.

Use subgrid-scale velocities for particle advection.
These velocities are calculated from the resolved and subgrid-scale TKE using the Monte-Carlo random-walk method described by Weil et al. (2004, JAS, 61, 2877-2887). When using this method, the time step for the advancement of the particles is limited by the so-called Lagrangian time scale. This may be smaller than the current LES time step so that several particle (sub-) time steps have to be carried out within one LES time step. In order to limit the number of sub-time steps (and to limit the CPU-time), the minimum value for the particle time step is defined by the package parameter dt_min_part.

vertical_particle _advection

L

.T.

Switch on/off vertical particle transport.
By default, particles are transported along all three directions in space. With vertical_particle_advection = .F., the particles will only be transported horizontally.

weight_factor_merge

R

0.5 * initial_weighting_factor

Threshold for merging of super droplets: Only super droplets which have a smaller value than weight_factor_merge will be merged.

weight_factor_split

R

0.1 * initial_weighting_factor

For splitting_mode='const' a critical weighting factor must be prescribed. Super droplets with a larger weighting factor are considered for cloning.

write_particle_statistics

L

.F.

Switch on/off output of particle information.
For write_particle_statistics = .T. statistical information (e.g. the total number of particles used, the number of particles exchanged between the PEs, etc.) which may be used for debugging are output to the local file PARTICLE_INFOS.

Note: For parallel runs files may become very large and performance of PALM may decrease.