Version: dev

RainFormation

Rain formation by collision and coalescence (Seinfeld & Pandis 2006, Eqs. 17.104-17.108). Computes collection efficiency, continuous accretion rate, and raindrop size distributions (Best CDF and Marshall-Palmer number density).

.esm schema
1.0.0
Source
components/aerosol/cloud_physics/rain_formation.esm

Description

Rain formation by collision and coalescence (Seinfeld & Pandis 2006, Eqs. 17.104-17.108). Computes collection efficiency, continuous accretion rate, and raindrop size distributions (Best CDF and Marshall-Palmer number density).

Reference

_source_ref: Aerosol.jl@c8c640bb:src/cloud_physics.jl:604 Seinfeld, J. H. and Pandis, S. N. (2006), Atmospheric Chemistry and Physics: From Air Pollution to Climate Change, 2nd Edition, Wiley, Ch. 17. Key equations: 17.104 (collision efficiency), 17.105 (coalescence efficiency), 17.106 (continuous accretion, dm/dt), 17.107 (Best raindrop CDF F(D_p)), 17.108 (Marshall-Palmer raindrop size distribution n(D_p)).

Tolerance rationale (model-level rel=1e-8 / abs=1e-12): time-independent algebraic system (zero ODE states after MTK structural_simplify; RHS depends only on parameters). rel=1e-8 captures float64 roundoff in the exponential functions and power-law expressions. abs=1e-12 provides a floor for near-zero CDF values at very small D_p / very low p_0 where rel comparison is undefined.

Constants (π_val, F_diam_ref, F_exp, one, p0_unit) follow the upstream @constants block convention: they are dimensioned parameters with fixed defaults that should not be overridden in normal use. The one parameter makes the F_dist expression one - exp(...) compatible with the ESM numeric-literal requirement (unit subtrahend cannot be a bare 1). p0_unit nondimensionalizes p_0 in the power-law base so the exponent 0.232 is applied to a dimensionless quantity._

Parameters

NameUnitsDefaultDescription
π_val13.141592653589793Pi (dimensionless)
F_diam_refm0.0013Best distribution diameter scale (Eq. 17.107: 1.3 mm)
F_exp12.25Best distribution exponent (Eq. 17.107, dimensionless)
one11.0Unity (dimensionless)
p0_unitmm/hr1.0Unit rainfall intensity for nondimensionalization
D_pm0.001Collector drop diameter
d_pm1e-05Collected droplet diameter
E_coll10.5Collision efficiency (Eq. 17.104, dimensionless)
E_coal11.0Coalescence efficiency (Eq. 17.105, dimensionless)
w_L10.001Liquid water mass mixing ratio (kg water / kg air) (dimensionless)
v_Dm/s5.0Fall velocity of collector drop
v_dm/s0.01Fall velocity of collected droplet
ρ_akg/m^31.225Air density
p_0mm/hr1.0Rainfall intensity (Eq. 17.107)
n_01/m^48000000.0Marshall-Palmer intercept parameter (Eq. 17.108: 8000 m^-3 mm^-1)
ψ1/m4100.0Marshall-Palmer slope parameter (Eq. 17.108)

Observed

NameUnitsDefaultDescription
E_t1Collection efficiency (Eq. 17.106, dimensionless)
dm_dtkg/sMass accretion rate (Eq. 17.106)
F_dist1Best raindrop CDF (Eq. 17.107, dimensionless)
n_MP1/m^4Marshall-Palmer number density (Eq. 17.108)

Observed expressions

$$ E_{t} = E_{coll} \cdot E_{coal} $$

Collection efficiency (Eq. 17.106, dimensionless)

$$ dm_{dt} = \frac{π_{val}}{4} \cdot E_{t} \cdot \left(D_{p} + d_{p}\right)^{2} \cdot w_{L} \cdot ρ_{a} \cdot \left|v_{D} + \left(-1\right) \cdot v_{d}\right| $$

Mass accretion rate (Eq. 17.106)

$$ F_{dist} = one + \left(-1\right) \cdot e^{\left(-1\right) \cdot \frac{D_{p}}{F_{diam\,ref} \cdot \frac{p_{0}}{p0_{unit}}^{0.232}}^{F_{exp}}} $$

Best raindrop CDF (Eq. 17.107, dimensionless)

$$ n_{MP} = n_{0} \cdot e^{\left(-1\right) \cdot ψ \cdot D_{p}} $$

Marshall-Palmer number density (Eq. 17.108)

Analyses

defaults_trajectory

Reference-run trajectories of E_t, dm_dt, F_dist, and n_MP at upstream Aerosol.jl defaults over a 1-hour window. All four states are time-independent (algebraic constraints), so line plots are horizontal — makes the algebraic structure visually obvious.

Time span: 0.0 → 3600.0

marshall_palmer_distribution

Marshall-Palmer raindrop number density n(D_p) as a function of collector drop diameter. Classic exponential decay (S&P Eq. 17.108): n = n_0 * exp(-ψ*D_p). On a log-linear axis this is a straight line — the canonical representation of continental vs maritime raindrop spectra.

Time span: 0.0 → 60.0

Swept over: D_p

Marshall-Palmer number density n_MP vs D_p (S&P Fig. 17.20 style).

best_cdf_vs_rainfall_intensity

Best raindrop CDF F(D_p) as a function of rainfall intensity p_0 at fixed D_p=1 mm. Higher rainfall shifts the distribution to larger drops so the CDF at 1 mm decreases. Covers the range from light rain (0.1 mm/hr) to heavy rain (100 mm/hr).

Time span: 0.0 → 60.0

Swept over: p_0

Best CDF F_dist at D_p=1 mm vs rainfall intensity p_0 (S&P Eq. 17.107).

accretion_rate_heatmap

Two-dimensional sweep of dm_dt over collector drop diameter (D_p) and liquid water mixing ratio (w_L). Spans from cloud-water (w_L=1e-4) to heavy convective (w_L=5e-3) conditions, and from small collector drops (0.2 mm) to large raindrops (3 mm). The (D_p+d_p)^2 area factor and the default exponential fall-speed scaling make dm_dt grow rapidly with D_p — useful for identifying where accretion rate becomes dynamically significant.

Time span: 0.0 → 60.0

Swept over: D_p, w_L

dm_dt over the (D_p, w_L) plane.

Raw .esm

Raw .esm JSON (this component)
{
  "variables": {
    "π_val": {
      "default": 3.141592653589793,
      "type": "parameter",
      "units": "1",
      "description": "Pi (dimensionless)"
    },
    "F_diam_ref": {
      "default": 0.0013,
      "type": "parameter",
      "units": "m",
      "description": "Best distribution diameter scale (Eq. 17.107: 1.3 mm)"
    },
    "F_exp": {
      "default": 2.25,
      "type": "parameter",
      "units": "1",
      "description": "Best distribution exponent (Eq. 17.107, dimensionless)"
    },
    "one": {
      "default": 1.0,
      "type": "parameter",
      "units": "1",
      "description": "Unity (dimensionless)"
    },
    "p0_unit": {
      "default": 1.0,
      "type": "parameter",
      "units": "mm/hr",
      "description": "Unit rainfall intensity for nondimensionalization"
    },
    "D_p": {
      "default": 0.001,
      "type": "parameter",
      "units": "m",
      "description": "Collector drop diameter"
    },
    "d_p": {
      "default": 1e-05,
      "type": "parameter",
      "units": "m",
      "description": "Collected droplet diameter"
    },
    "E_coll": {
      "default": 0.5,
      "type": "parameter",
      "units": "1",
      "description": "Collision efficiency (Eq. 17.104, dimensionless)"
    },
    "E_coal": {
      "default": 1.0,
      "type": "parameter",
      "units": "1",
      "description": "Coalescence efficiency (Eq. 17.105, dimensionless)"
    },
    "w_L": {
      "default": 0.001,
      "type": "parameter",
      "units": "1",
      "description": "Liquid water mass mixing ratio (kg water / kg air) (dimensionless)"
    },
    "v_D": {
      "default": 5.0,
      "type": "parameter",
      "units": "m/s",
      "description": "Fall velocity of collector drop"
    },
    "v_d": {
      "default": 0.01,
      "type": "parameter",
      "units": "m/s",
      "description": "Fall velocity of collected droplet"
    },
    "ρ_a": {
      "default": 1.225,
      "type": "parameter",
      "units": "kg/m^3",
      "description": "Air density"
    },
    "p_0": {
      "default": 1.0,
      "type": "parameter",
      "units": "mm/hr",
      "description": "Rainfall intensity (Eq. 17.107)"
    },
    "n_0": {
      "default": 8000000.0,
      "type": "parameter",
      "units": "1/m^4",
      "description": "Marshall-Palmer intercept parameter (Eq. 17.108: 8000 m^-3 mm^-1)"
    },
    "ψ": {
      "default": 4100.0,
      "type": "parameter",
      "units": "1/m",
      "description": "Marshall-Palmer slope parameter (Eq. 17.108)"
    },
    "E_t": {
      "type": "unknown",
      "units": "1",
      "description": "Collection efficiency (Eq. 17.106, dimensionless)"
    },
    "dm_dt": {
      "type": "unknown",
      "units": "kg/s",
      "description": "Mass accretion rate (Eq. 17.106)"
    },
    "F_dist": {
      "type": "unknown",
      "units": "1",
      "description": "Best raindrop CDF (Eq. 17.107, dimensionless)"
    },
    "n_MP": {
      "type": "unknown",
      "units": "1/m^4",
      "description": "Marshall-Palmer number density (Eq. 17.108)"
    }
  },
  "equations": [
    {
      "lhs": "E_t",
      "rhs": {
        "op": "*",
        "args": [
          "E_coll",
          "E_coal"
        ]
      }
    },
    {
      "lhs": "dm_dt",
      "rhs": {
        "op": "*",
        "args": [
          {
            "op": "/",
            "args": [
              "π_val",
              4
            ]
          },
          "E_t",
          {
            "op": "^",
            "args": [
              {
                "op": "+",
                "args": [
                  "D_p",
                  "d_p"
                ]
              },
              2
            ]
          },
          "w_L",
          "ρ_a",
          {
            "op": "abs",
            "args": [
              {
                "op": "+",
                "args": [
                  "v_D",
                  {
                    "op": "*",
                    "args": [
                      -1,
                      "v_d"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "F_dist",
      "rhs": {
        "op": "+",
        "args": [
          "one",
          {
            "op": "*",
            "args": [
              -1,
              {
                "op": "exp",
                "args": [
                  {
                    "op": "*",
                    "args": [
                      -1,
                      {
                        "op": "^",
                        "args": [
                          {
                            "op": "/",
                            "args": [
                              "D_p",
                              {
                                "op": "*",
                                "args": [
                                  "F_diam_ref",
                                  {
                                    "op": "^",
                                    "args": [
                                      {
                                        "op": "/",
                                        "args": [
                                          "p_0",
                                          "p0_unit"
                                        ]
                                      },
                                      0.232
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          "F_exp"
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "n_MP",
      "rhs": {
        "op": "*",
        "args": [
          "n_0",
          {
            "op": "exp",
            "args": [
              {
                "op": "*",
                "args": [
                  -1,
                  "ψ",
                  "D_p"
                ]
              }
            ]
          }
        ]
      }
    }
  ],
  "reference": {
    "notes": "source_ref: Aerosol.jl@c8c640bb:src/cloud_physics.jl:604\nSeinfeld, J. H. and Pandis, S. N. (2006), Atmospheric Chemistry and Physics: From Air Pollution to Climate Change, 2nd Edition, Wiley, Ch. 17. Key equations: 17.104 (collision efficiency), 17.105 (coalescence efficiency), 17.106 (continuous accretion, dm/dt), 17.107 (Best raindrop CDF F(D_p)), 17.108 (Marshall-Palmer raindrop size distribution n(D_p)).\n\nTolerance rationale (model-level rel=1e-8 / abs=1e-12): time-independent algebraic system (zero ODE states after MTK structural_simplify; RHS depends only on parameters). rel=1e-8 captures float64 roundoff in the exponential functions and power-law expressions. abs=1e-12 provides a floor for near-zero CDF values at very small D_p / very low p_0 where rel comparison is undefined.\n\nConstants (π_val, F_diam_ref, F_exp, one, p0_unit) follow the upstream @constants block convention: they are dimensioned parameters with fixed defaults that should not be overridden in normal use. The `one` parameter makes the F_dist expression `one - exp(...)` compatible with the ESM numeric-literal requirement (unit subtrahend cannot be a bare 1). `p0_unit` nondimensionalizes p_0 in the power-law base so the exponent 0.232 is applied to a dimensionless quantity."
  },
  "tolerance": {
    "rel": 1e-08,
    "abs": 1e-12
  },
  "tests": [
    {
      "id": "defaults_behavior",
      "description": "Reference run at upstream Aerosol.jl defaults. Reproduces upstream Aerosol test/cloud_physics_test.jl 'RainFormation physical behavior': E_t = E_coll * E_coal = 0.5, dm_dt > 0, 0 <= F_dist <= 1, and Marshall-Palmer distribution is physically sensible. Sampled at t=0, 60, 600, 3600 s to confirm algebraic constraints hold across the full tspan (all states are time-independent, so every sample must return the same constant).",
      "time_span": {
        "start": 0.0,
        "end": 3600.0
      },
      "assertions": [
        {
          "variable": "E_t",
          "time": 0.0,
          "expected": 0.5
        },
        {
          "variable": "E_t",
          "time": 60.0,
          "expected": 0.5
        },
        {
          "variable": "E_t",
          "time": 600.0,
          "expected": 0.5
        },
        {
          "variable": "E_t",
          "time": 3600.0,
          "expected": 0.5
        },
        {
          "variable": "dm_dt",
          "time": 0.0,
          "expected": 2.4487207850181197e-09
        },
        {
          "variable": "dm_dt",
          "time": 60.0,
          "expected": 2.4487207850181197e-09
        },
        {
          "variable": "dm_dt",
          "time": 600.0,
          "expected": 2.4487207850181197e-09
        },
        {
          "variable": "dm_dt",
          "time": 3600.0,
          "expected": 2.4487207850181197e-09
        },
        {
          "variable": "F_dist",
          "time": 0.0,
          "expected": 0.4254396577227785
        },
        {
          "variable": "F_dist",
          "time": 60.0,
          "expected": 0.4254396577227785
        },
        {
          "variable": "F_dist",
          "time": 600.0,
          "expected": 0.4254396577227785
        },
        {
          "variable": "F_dist",
          "time": 3600.0,
          "expected": 0.4254396577227785
        },
        {
          "variable": "n_MP",
          "time": 0.0,
          "expected": 132581.40321409004
        },
        {
          "variable": "n_MP",
          "time": 60.0,
          "expected": 132581.40321409004
        },
        {
          "variable": "n_MP",
          "time": 600.0,
          "expected": 132581.40321409004
        },
        {
          "variable": "n_MP",
          "time": 3600.0,
          "expected": 132581.40321409004
        }
      ]
    },
    {
      "id": "collection_efficiency_scaling",
      "description": "Collection efficiency E_t = E_coll * E_coal must scale linearly with E_coll. At E_coll=0.8 (moderate-efficiency collector), E_t = 0.8 and dm_dt scales proportionally (Eq. 17.106). Exercises the E_t equation and the E_t dependence of dm_dt.",
      "parameter_overrides": {
        "E_coll": 0.8
      },
      "time_span": {
        "start": 0.0,
        "end": 600.0
      },
      "assertions": [
        {
          "variable": "E_t",
          "time": 0.0,
          "expected": 0.8
        },
        {
          "variable": "E_t",
          "time": 600.0,
          "expected": 0.8
        },
        {
          "variable": "dm_dt",
          "time": 0.0,
          "expected": 3.917953256028991e-09
        },
        {
          "variable": "dm_dt",
          "time": 600.0,
          "expected": 3.917953256028991e-09
        }
      ]
    },
    {
      "id": "marshall_palmer_decreasing",
      "description": "Marshall-Palmer number density n(D_p) = n_0 * exp(-ψ*D_p) decreases exponentially with collector drop diameter (Eq. 17.108). At D_p=2 mm, n_MP must be much smaller than at the default 1 mm. Mirrors upstream 'n_MP should decrease with size' test.",
      "parameter_overrides": {
        "D_p": 0.002
      },
      "time_span": {
        "start": 0.0,
        "end": 600.0
      },
      "assertions": [
        {
          "variable": "n_MP",
          "time": 0.0,
          "expected": 2197.22855977714
        },
        {
          "variable": "n_MP",
          "time": 600.0,
          "expected": 2197.22855977714
        }
      ]
    },
    {
      "id": "marshall_palmer_very_large_drop",
      "description": "At D_p=5 mm (large raindrop), Marshall-Palmer distribution predicts extremely low number density (n_MP ~ 0.01 m^-4), demonstrating the exponential cutoff at large sizes. Guards the exponential decay in Eq. 17.108 over an extended range.",
      "parameter_overrides": {
        "D_p": 0.005
      },
      "time_span": {
        "start": 0.0,
        "end": 600.0
      },
      "assertions": [
        {
          "variable": "n_MP",
          "time": 0.0,
          "expected": 0.01000122293109394
        },
        {
          "variable": "n_MP",
          "time": 600.0,
          "expected": 0.01000122293109394
        }
      ]
    },
    {
      "id": "best_cdf_high_rainfall",
      "description": "Best raindrop CDF F(D_p) decreases at higher rainfall intensity (larger p_0) because the reference diameter F_diam_ref * p_0^0.232 shifts to larger sizes (Eq. 17.107). At p_0=10 mm/hr with D_p=1 mm, F_dist falls to ~0.153, confirming the p_0 exponent has correct sign.",
      "parameter_overrides": {
        "p_0": 10.0
      },
      "time_span": {
        "start": 0.0,
        "end": 600.0
      },
      "assertions": [
        {
          "variable": "F_dist",
          "time": 0.0,
          "expected": 0.15344640370427565
        },
        {
          "variable": "F_dist",
          "time": 600.0,
          "expected": 0.15344640370427565
        }
      ]
    },
    {
      "id": "best_cdf_zero_small_dp",
      "description": "CDF F(D_p) approaches zero for very small collector drop diameters (D_p -> 0). At D_p=1e-5 m (drizzle embryo, ~0.8% of the reference scale 1.3 mm), F_dist is small (~1.75e-5). Lower bound of S&P Eq. 17.107: (x/D_ref)^2.25 << 1 so F ≈ (x/D_ref)^2.25.",
      "parameter_overrides": {
        "D_p": 1e-05
      },
      "time_span": {
        "start": 0.0,
        "end": 600.0
      },
      "assertions": [
        {
          "variable": "F_dist",
          "time": 0.0,
          "expected": 1.7523612944936318e-05
        },
        {
          "variable": "F_dist",
          "time": 600.0,
          "expected": 1.7523612944936318e-05
        }
      ]
    },
    {
      "id": "accretion_rate_differential_velocity",
      "description": "dm_dt scales with |v_D - v_d| (Eq. 17.106). When v_D = v_d = 3.0 m/s (no relative fall velocity), dm_dt must be zero — no accretion occurs without differential settling. Tests the absolute-value argument in Eq. 17.106.",
      "parameter_overrides": {
        "v_D": 3.0,
        "v_d": 3.0
      },
      "time_span": {
        "start": 0.0,
        "end": 600.0
      },
      "assertions": [
        {
          "variable": "dm_dt",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "abs": 1e-20
          }
        },
        {
          "variable": "dm_dt",
          "time": 600.0,
          "expected": 0.0,
          "tolerance": {
            "abs": 1e-20
          }
        }
      ]
    }
  ],
  "analyses": [
    {
      "id": "defaults_trajectory",
      "description": "Reference-run trajectories of E_t, dm_dt, F_dist, and n_MP at upstream Aerosol.jl defaults over a 1-hour window. All four states are time-independent (algebraic constraints), so line plots are horizontal — makes the algebraic structure visually obvious.",
      "time_span": {
        "start": 0.0,
        "end": 3600.0
      },
      "plots": [
        {
          "id": "collection_efficiency_vs_time",
          "type": "line",
          "description": "E_t = E_coll * E_coal remains constant at 0.5 for the full hour.",
          "x": {
            "variable": "t",
            "label": "time (s)"
          },
          "y": {
            "variable": "E_t",
            "label": "collection efficiency (dimensionless)"
          }
        },
        {
          "id": "accretion_rate_vs_time",
          "type": "line",
          "description": "dm_dt constant at ~2.45e-9 kg/s (continuous accretion, S&P Eq. 17.106).",
          "x": {
            "variable": "t",
            "label": "time (s)"
          },
          "y": {
            "variable": "dm_dt",
            "label": "dm/dt (kg/s)"
          }
        },
        {
          "id": "best_cdf_vs_time",
          "type": "line",
          "description": "Best CDF F_dist constant at ~0.43 at default 1 mm / 1 mm/hr.",
          "x": {
            "variable": "t",
            "label": "time (s)"
          },
          "y": {
            "variable": "F_dist",
            "label": "Best CDF (dimensionless)"
          }
        }
      ]
    },
    {
      "id": "marshall_palmer_distribution",
      "description": "Marshall-Palmer raindrop number density n(D_p) as a function of collector drop diameter. Classic exponential decay (S&P Eq. 17.108): n = n_0 * exp(-ψ*D_p). On a log-linear axis this is a straight line — the canonical representation of continental vs maritime raindrop spectra.",
      "time_span": {
        "start": 0.0,
        "end": 60.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "D_p",
            "range": {
              "start": 0.0005,
              "stop": 0.005,
              "count": 19,
              "scale": "linear"
            }
          }
        ]
      },
      "plots": [
        {
          "id": "n_MP_vs_Dp",
          "type": "line",
          "description": "Marshall-Palmer number density n_MP vs D_p (S&P Fig. 17.20 style).",
          "x": {
            "variable": "D_p",
            "label": "D_p (m)"
          },
          "y": {
            "variable": "n_MP",
            "label": "n_MP (m^-4)"
          }
        }
      ]
    },
    {
      "id": "best_cdf_vs_rainfall_intensity",
      "description": "Best raindrop CDF F(D_p) as a function of rainfall intensity p_0 at fixed D_p=1 mm. Higher rainfall shifts the distribution to larger drops so the CDF at 1 mm decreases. Covers the range from light rain (0.1 mm/hr) to heavy rain (100 mm/hr).",
      "time_span": {
        "start": 0.0,
        "end": 60.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "p_0",
            "range": {
              "start": 0.1,
              "stop": 100.0,
              "count": 21,
              "scale": "log"
            }
          }
        ]
      },
      "plots": [
        {
          "id": "F_dist_vs_p0",
          "type": "line",
          "description": "Best CDF F_dist at D_p=1 mm vs rainfall intensity p_0 (S&P Eq. 17.107).",
          "x": {
            "variable": "p_0",
            "label": "rainfall intensity (mm/hr)"
          },
          "y": {
            "variable": "F_dist",
            "label": "Best CDF (dimensionless)"
          }
        }
      ]
    },
    {
      "id": "accretion_rate_heatmap",
      "description": "Two-dimensional sweep of dm_dt over collector drop diameter (D_p) and liquid water mixing ratio (w_L). Spans from cloud-water (w_L=1e-4) to heavy convective (w_L=5e-3) conditions, and from small collector drops (0.2 mm) to large raindrops (3 mm). The (D_p+d_p)^2 area factor and the default exponential fall-speed scaling make dm_dt grow rapidly with D_p — useful for identifying where accretion rate becomes dynamically significant.",
      "time_span": {
        "start": 0.0,
        "end": 60.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "D_p",
            "range": {
              "start": 0.0002,
              "stop": 0.003,
              "count": 9,
              "scale": "linear"
            }
          },
          {
            "parameter": "w_L",
            "range": {
              "start": 0.0001,
              "stop": 0.005,
              "count": 7,
              "scale": "log"
            }
          }
        ]
      },
      "plots": [
        {
          "id": "dm_dt_heatmap",
          "type": "heatmap",
          "description": "dm_dt over the (D_p, w_L) plane.",
          "x": {
            "variable": "D_p",
            "label": "D_p (m)"
          },
          "y": {
            "variable": "w_L",
            "label": "w_L (dimensionless)"
          },
          "value": {
            "variable": "dm_dt",
            "reduce": "final"
          }
        }
      ]
    }
  ]
}