Skip to content

Add xDeepONet family to experimental models #1575

@wdyab

Description

@wdyab

Description

Propose adding xDeepONet — the extended DeepONet family — to
physicsnemo.experimental.models.xdeeponet. The package provides a
config-driven, unified implementation of eight DeepONet-based
operator-learning architectures for both 2D and 3D spatial domains:

  • deeponet, u_deeponet, fourier_deeponet, conv_deeponet,
    hybrid_deeponet — single-branch variants
  • mionet, fourier_mionet — two-branch multi-input variants
  • tno — Temporal Neural Operator (branch2 = previous solution)

Motivation

DeepONet is a foundational neural-operator architecture with no current
first-class implementation in PhysicsNeMo. This contribution upstreams
a production-tested, config-driven xDeepONet family from the Neural
Operator Factory (#1551)
into the library proper, making it available to all PhysicsNeMo users
and not just reservoir-simulation practitioners.

Scope

  • New package: physicsnemo.experimental.models.xdeeponet
  • Composable Fourier/UNet/Conv spatial branches (reuses
    physicsnemo.nn.SpectralConv2d/3d and physicsnemo.models.unet.UNet)
  • Three decoder types: mlp, conv, temporal_projection
  • Automatic spatial padding, trunk coordinate extraction,
    adaptive-resolution pooling
  • 29 unit tests under test/experimental/models/test_xdeeponet.py
  • CHANGELOG entry
  • Package README with variants table and usage examples

Discussion

Design agreed with @coreyjadams, @peterdsharpe, and @ram-cherukuri in
Slack on. Custom UNet dropped in favour of the library's
physicsnemo.models.unet.UNet; placed under experimental/ per the
new-model convention.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions