Skip to content

Latest commit

Β 

History

History
97 lines (73 loc) Β· 3.65 KB

File metadata and controls

97 lines (73 loc) Β· 3.65 KB
title Home

Casanova Drift Model (CDM)

The Casanova Drift Model (CDM) is a mechanistic model that simulates the trajectory and fate of pesticide spray droplets released from agricultural spray equipment. The model predicts the transport and deposition of spray droplets under various atmospheric and application conditions.

πŸ”¬ Mechanistic Simulation

Physics-based droplet transport using ODE integration with CVODE, accounting for drag, evaporation, and wind interactions.

πŸ“Š Deposition Profiles

Predicts ground deposition as a function of downwind distance, validated against SETAC DRAW test cases.

🌬️ Vertical Drift Profiles

Extracts vertical drift concentration profiles at specified downwind distances for non-target organism risk assessment.

πŸ”— Multiple Interfaces

C API shared library, command-line interface (CLI), and R package for flexible integration.

Key Capabilities

  • Droplet Size Distribution: Parameterized via non-linear least squares curve fitting
  • Atmospheric Modeling: Temperature, pressure, humidity, wet bulb temperature depression
  • Wind Profile: Characterized by friction velocity and friction height
  • Spray Fan Geometry: Multiple streamline vectors spanning ejection angles from βˆ’40Β° to βˆ’140Β°
  • Evaporation: Droplet evaporation modeled via wet bulb temperature depression calculations
  • Deposition: Ground and canopy deposition accounting for size-dependent transport

How It Works

Physical processes in the Casanova Drift Model

Test Cases

The model is validated against SETAC DRAW test cases:

Case Trial ID Nozzle Type Nozzle Pressure Surfactant Input File
B FR_1_017 AXI 11002 250 kPa (36 psig) None Case_B.json
G NL_1_660 XR 11004 300 kPa (44 psig) Agral Case_G.json
I DE_4_006 XR 11004 250 kPa (36 psig) None Case_I.json

Quick Start

CLI

# Run model with a test case
cdmcli tests/Case_B.json

# Save JSON output
cdmcli tests/Case_B.json -o results.json

C API

#include <cdm/CDM.h>

cdm_model_t* model = cdm_create_model(json_config);
int status = cdm_run_model(model);
cdm_print_report(model);
char* output = cdm_get_output_string(model);
cdm_free_string(output);
cdm_free_model(model);

R Package

library(cdm)
result <- cdm_run("tests/Case_B.json")
demo("caseB", package = "cdm")

Dependencies

CDM relies on high-quality scientific computing libraries, all managed through vcpkg:

  • SUNDIALS β€” ODE solver (CVODE)
  • Ceres Solver β€” Non-linear least squares optimization
  • Blaze β€” Linear algebra and matrix operations
  • Boost.Math β€” Mathematical functions
  • nlohmann/json β€” JSON parsing and serialization
  • fmt β€” String formatting

Version

Current Version: 1.2.0