Skip to content

🚀[FEA]: Add 4D FNO operator (FNO4D) to experimental xdeeponet #1708

Description

@wdyab

Is this a new feature, an improvement, or a change to existing functionality?

New Feature

How would you describe the priority of this feature request

Medium

Please provide a clear description of problem you would like to solve.

The merged xDeepONet core (physicsnemo.experimental.models.xdeeponet.DeepONet)
is dimension-capped at dimension=2|3 and cannot express a 4D Fourier
Neural Operator
over (B, X, Y, Z, T, C) (3D space + time), which is needed
for volumetric time-dependent problems (e.g. reservoir simulation /
Norne-style datasets).

Proposal: add FNO4D / FNO4DWrapper alongside DeepONet in the same
xdeeponet package, as additive physicsnemo.Module classes (without
modifying the merged core), reusing the existing SpectralConv4d /
ConvNdFCLayer / ConvNdKernel1Layer primitives. The wrapper provides
automatic spectral padding and optional autoregressive time-axis extension.
Output should be bit-identical to the Neural Operator Factory FNO4D source.

Describe any alternatives you have considered

  • The 3D FNO / Conv-FNO / U-FNO operators are not part of this request:
    they are already expressible as DeepONet(trunk=None, dimension=3) with a
    Fourier/UNet/Conv SpatialBranch, so adding them as separate classes would
    be redundant.
  • Extending the merged DeepONet core to dimension=4: rejected to avoid
    modifying already-shipped code and because the 4D variant has distinct
    numerics (e.g. no skip-branches; bit-parity with the NOF source).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions