Skip to content

Stochastic Systems

Support for stochastic PDEs is planned for future PDEForge releases.

Motivation

Many physical systems involve inherent randomness:

  • Turbulence in fluid flows
  • Thermal fluctuations
  • Material heterogeneity
  • Measurement noise

Training neural operators on deterministic data alone may not capture these uncertainties.

Planned Models

Model Description
stochastic_heat_2d Heat equation with additive noise
stochastic_burgers_1d Burgers equation with forcing noise
stochastic_allen_cahn_2d Phase separation with fluctuations

Output Formats

Multiple Realizations

Generate multiple noise realizations per input:

dataset = generate_dataset(
    model="stochastic_heat_2d",
    n_samples=100,
    params={"n_realizations": 50},
)
# dataset.outputs.shape = (100, 50, nx, ny)

Useful for training generative models that learn the full output distribution.

Moment-Based

Compute mean and variance across realizations:

dataset = generate_dataset(
    model="stochastic_heat_2d",
    n_samples=100,
    params={"output_moments": True, "n_realizations": 100},
)
# dataset.output_mean.shape = (100, nx, ny)
# dataset.output_var.shape = (100, nx, ny)

Useful for training models that directly predict uncertainty.

Integration with Uncertainty Quantification

Stochastic systems provide natural test cases for UQ methods:

  • Compare learned uncertainty against true output variance
  • Validate coverage guarantees on systems with known noise
  • Benchmark different UQ approaches

Status

This feature is under development. See the GitHub repository for updates.