ARTS built-in documentation server

Workspace Method psdModifiedGamma


Modified gamma distribution PSD using n0, mu, la and ga as parameters.

The modified gamma distribution is a 4-parameter (n0, mu, la and ga)
distribution [Petty & Huang, JAS, 2011)]:
   n(x) = n0 * x^mu * exp( -la*x^ga )
where x is particle size or mass.

The parameters can be given in two ways, either by pnd_agenda_input or
as GIN arguments. The first option allows the parameter to vary, while
in the second case the parameter gets a constant value. If a parameter is
part of pnd_agenda_input, the corresponding GIN argument must be set
to NaN (which is default). This means that the number of columns in
pnd_agenda_input and the number of non-NaN choices for n0, mu, la and
ga must add up to four.

Data in pnd_agenda_input are linked to the MGD parameters in term of
order, the naming in pnd_agenda_input_names is free. If all four
parameteras are specified by pnd_agenda_input, the data in the first
column are taken as n0, the second column as mu etc. If a parameter is
given as a GIN argument, the columns are just shifted with one position.
For example, if mu and ga are specified as GIN arguments, pnd_agenda_input
shall have two columns, with n0-values in the first one and la-values in
the second one.

The GIN route is especially suitable for selecting special cases of MGD.
For example, by setting mu=0 and ga=1, an exponential PSD is obtained:
   n(x) = n0 * exp( -la*x )
With mu=1 and ga=1, the gamma PSD is obtained:
   n(x) = n0 * x^mu *exp( -la*x )
There should be little overhead in using the method for exponential
and gamma PSDs, there is an internal switch to dedicated expressions
for those PSDs.

Derivatives can only be obtained for parameters that are specified by

If temperature is outside [*t_min*,*t_max*] psd=0 and dpsd=0 if
picky=0, or an error is thrown if picky=1.

These requirements apply to the MGD parameters:
  la > 0
  ga > 0

Authors: Patrick Eriksson


psdModifiedGamma( psd_data, dpsd_data_dx, psd_size_grid, pnd_agenda_input_t, pnd_agenda_input, pnd_agenda_input_names, dpnd_data_dx_names, n0, mu, la, ga, t_min, t_max, picky )


OUTpsd_data(Matrix)Particle size distribution values for a set of points.
OUTdpsd_data_dx(Tensor3)Partial derivates of psd_data.
INpsd_size_grid(Vector)The particle sizes associated with psd_data.
INpnd_agenda_input_t(Vector)Temperature input to one element of pnd_agenda_array.
INpnd_agenda_input(Matrix)The variable input to one element of pnd_agenda_array.
INpnd_agenda_input_names(ArrayOfString)Naming of (existing or expected) data in pnd_agenda_input.
INdpnd_data_dx_names(ArrayOfString)Selection of partial derivatives of pnd_data.
GINn0(Numeric, Default: NaN)n0
GINmu(Numeric, Default: NaN)mu
GINla(Numeric, Default: NaN)la
GINga(Numeric, Default: NaN)ga
GINt_min(Numeric)Low temperature limit to calculate a psd.
GINt_max(Numeric)High temperature limit to calculate a psd.
GINpicky(Index, Default: 0)Flag whether to be strict with parametrization value checks.