Skip to main content

Dataset-configured native neural operators, deep-learning CFD models, physics-informed models, PIBERT, training, metrics, checkpoints, and recommendation.

Project description

NAVIER-CFD logo

NAVIER-CFD

Neural and Agentic Verification, Integration, Evaluation, and Recommendation for Computational Fluid Dynamics

PyPI Python Apache 2.0 CI Project website Interactive recommender Version 0.5.0 55 catalog models 52 native reference models 11 dataset profiles

NAVIER-CFD is a CFD-first Python platform for importing, configuring, training, testing, comparing, and recommending neural PDE/CFD models across standardized datasets. Version 0.5 makes the dataset a first-class model-construction argument and provides 52 executable native reference models under one common PyTorch workflow.

Install

pip install "navier-cfd[models]"

Core catalog, recommendation, evidence, and dataset-discovery tools:

pip install navier-cfd

Dataset determines the model configuration

from navier_cfd import load_model

# 2D structured CFD configuration
fno = load_model("fno", dataset="cfdbench")

# 3D structured volumetric configuration
p3d = load_model("p3d", dataset="scalarflow")

# 2D point-cloud geometry configuration
transolver = load_model("transolver", dataset="airfrans")

# 3D unstructured geometry configuration
gino = load_model("gino", dataset="drivaerml")

A canonical sample overrides profile assumptions about channels, dimensionality, coordinates, and sensor count:

model, plan = load_model(
    "pibert",
    dataset="realpdebench",
    sample=sample,
    overrides={
        "hidden_dim": 256,
        "num_layers": 8,
        "num_heads": 8,
    },
    return_plan=True,
)

print(plan.to_dict())

Resolution priority:

explicit model keyword arguments
              ↑
user overrides
              ↑
actual CFDSample shapes
              ↑
registered dataset defaults

The build plan records:

  • dataset identifier and representation;
  • dimension and coordinate dimension;
  • input and output channels;
  • normalization description and layout;
  • spectral modes or graph/attention parameters;
  • model input mode;
  • assumptions and scientific cautions.

Registered dataset configurations

Dataset Representation Default dimension Primary use
PDEBench Structured 2D default, sample-aware 1D–3D PDE forecasting and operator learning
CFDBench Structured 2D Cavity, tube, dam and cylinder CFD
RealPDEBench Structured 2D Simulation-to-real forecasting
The Well Structured 3D default Large multiphysics fields
APEBench Structured 2D default Autoregressive PDE emulation
ScalarFlow Structured 3D Volumetric scalar transport
AirfRANS Point cloud 2D RANS airfoil geometry
DrivAerNet++ Point cloud 3D Vehicle aerodynamics
DrivAerML Unstructured 3D High-fidelity vehicle CFD
ShapeNet-Car Point cloud 3D Geometry-conditioned vehicle fields
EAGLE Unstructured 3D default Fluid and geometry learning

Dataset defaults are visible and reviewable. Production experiments should pass an actual CFDSample and explicit adapter keys because historical releases can differ in variable names, ordering, resolution, and targets.

Native reference model inventory

Neural operators and operator learning

  • DeepONet
  • MIONet
  • Fourier-DeepONet
  • Nested Fourier-DeepONet
  • Fourier-MIONet
  • Fourier Neural Operator
  • Physics-Informed Neural Operator
  • Geo-FNO
  • Geometry-Informed Neural Operator
  • U-FNO
  • Factorized FNO
  • U-shaped Neural Operator
  • Latent Spectral Model
  • General Neural Operator Transformer
  • Galerkin Transformer
  • Multiwavelet Transformer
  • FactFormer
  • Orthogonal Neural Operator
  • Transolver
  • Laplace Neural Operator
  • State-Space Neural Operator

Physics-informed machine learning

  • Physics-Informed Neural Network
  • NSFnets
  • PINNsFormer
  • PINO
  • PIBERT
  • PI-MFM
  • RiemannONet
  • DeepM&Mnet

Geometry, graph, transformer, and foundation-style learning

  • MeshGraphNets
  • DoMINO reference
  • Universal Physics Transformer
  • DPOT
  • Poseidon
  • PROSE-FD
  • BCAT
  • PDEformer-1
  • P3D
  • AeroTransformer
  • Tadpole
  • ReViT

Generative, correction, preconditioning, adaptation, and uncertainty

  • FourierFlow reference
  • PDE-Refiner reference
  • Solver-in-the-Loop corrector
  • Indirect Neural Corrector
  • NeuroSEM corrector reference
  • Neural-operator preconditioned Newton reference
  • Geometry-aware neural preconditioner
  • Conformalized-DeepONet reference
  • TANTE-style adaptation
  • Energy Transformer reconstruction reference
  • FunDiff reference
  • Flow Matching for PDEs reference

The three remaining catalog entries—PICT, diffSPH, and NeuralDEM—remain specialized external integrations because meaningful execution requires their dedicated CFD/particle solver runtimes rather than a generic field-network substitute.

Scientific scope

A NAVIER-CFD native reference implementation is:

  • importable from the PyPI package;
  • executable with PyTorch;
  • connected to the dataset-aware configuration system;
  • trainable with the common trainer;
  • checkpointable;
  • forward- and backward-tested;
  • compatible with adapter conformance tests.

It is not automatically:

  • a bit-for-bit copy of an author repository;
  • a reproduction of unpublished preprocessing;
  • a redistribution of private weights;
  • numerically identical to every result in the originating paper.

Each reference model carries provenance and scope metadata such as:

model.navier_reference_model_id
model.navier_reference_notice
model.navier_dataset_id
model.navier_build_plan

Numerical reproduction claims must still validate the official architecture, code revision, dataset split, preprocessing, losses, checkpoint, and evaluation protocol.

Canonical dataset layer

from navier_cfd import AdaptedDataset, AdapterRegistry, make_dataloaders

adapter = AdapterRegistry().adapter(
    "airfrans",
    input_key="node_features",
    target_key="fields",
    coordinate_key="pos",
    target_fields=("pressure", "velocity_x", "velocity_y"),
)

dataset = AdaptedDataset(raw_airfrans, adapter)
loaders = make_dataloaders(
    dataset,
    batch_size=4,
    train=0.70,
    validation=0.15,
    test=0.15,
    seed=42,
)

The canonical CFDSample/CFDBatch layer supports:

  • structured 1D, 2D, and 3D fields;
  • point clouds and mesh nodes;
  • variable-size samples;
  • padding and validity masks;
  • coordinates, parameters, and metadata;
  • deterministic train/validation/test splits.

Unified training

from navier_cfd import CFDTrainer, TrainerConfig

trainer = CFDTrainer(
    model,
    model_id="transolver",
    config=TrainerConfig(
        epochs=200,
        optimizer="adamw",
        learning_rate=1e-3,
        loss="mse",
        scheduler="cosine",
        gradient_clip=1.0,
        mixed_precision=True,
        checkpoint_dir="runs/checkpoints",
        checkpoint_every=25,
        early_stopping_patience=20,
    ),
)

training = trainer.fit(loaders["train"], loaders["validation"])
metrics = trainer.evaluate(loaders["test"], velocity=True)

Supported optimizers and training features include Adam, AdamW, SGD, LBFGS, mixed precision, gradient clipping, cosine and plateau schedulers, early stopping, best checkpoints, periodic checkpoints, and custom forward/loss functions.

High-level experiment API

from navier_cfd import Experiment, TaskSpec, TrainerConfig

experiment = Experiment(
    dataset_id="pdebench",
    model_id="pino",
    task=TaskSpec(
        problem="navier_stokes",
        task_type="forecasting",
        dimension=2,
        mesh_type="structured",
        temporal_mode="autoregressive",
        geometry_mode="fixed",
        physics=("incompressible_navier_stokes",),
    ),
    trainer_config=TrainerConfig(
        epochs=100,
        optimizer="adamw",
        mixed_precision=True,
    ),
    batch_size=8,
    output_dir="runs/pino-pdebench",
)

result = experiment.run(raw_dataset)
print(result.metrics)
print(result.build_plan)
print(result.manifest_path)

Pipeline:

raw dataset
   ↓
dataset adapter
   ↓
CFDSample / CFDBatch
   ↓
dataset-aware model configuration
   ↓
native or official external adapter
   ↓
common trainer
   ↓
checkpoint + CFD metrics + experiment manifest

CFD evaluation

Built-in metrics include:

  • RMSE and MAE;
  • normalized RMSE;
  • relative L2;
  • R²;
  • cosine similarity;
  • maximum absolute error;
  • spectral relative error;
  • velocity-divergence RMS;
  • kinetic-energy relative error;
  • rollout error curves.

Drag, lift, pressure coefficient, wall shear, and other geometry-integrated quantities require case-specific surface normals, areas, reference quantities, and integration rules.

Adapter conformance

from navier_cfd import validate_model_adapter

report = validate_model_adapter(
    "gino",
    sample,
    dataset="airfrans",
)

print(report.to_dict())

Conformance checks registration, dependency availability, dataset-specific construction, parameter count, forward pass, output compatibility, and backward propagation.

Evidence-aware recommendation

navier recommend \
  --problem vehicle_drag \
  --task surrogate \
  --dimension 3 \
  --mesh point_cloud \
  --temporal steady \
  --geometry varying \
  --physics aerodynamics \
  --fidelity rans \
  --memory-gb 80

The recommender combines architecture compatibility with task-matched paper evidence, evidence quality, metric comparability, Bayesian shrinkage, confidence, and coverage reporting.

Validation

pytest tests/test_model_hub.py tests/test_pibert_pipeline.py tests/test_native_suite.py
node --test website/recommender/recommender-core.test.mjs

The dedicated CPU-PyTorch CI job constructs, forwards, and backpropagates through all 52 native reference models and checks dataset-driven configuration for structured, 3D volumetric, point-cloud, and unstructured cases.

Documentation

License

NAVIER-CFD is licensed under Apache-2.0. Original papers, repositories, datasets, model weights, and numerical solvers retain their own licenses and citation requirements.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

navier_cfd-0.5.0.tar.gz (53.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

navier_cfd-0.5.0-py3-none-any.whl (70.9 kB view details)

Uploaded Python 3

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page