AiDotNet icon indicating copy to clipboard operation
AiDotNet copied to clipboard

Fix Issue 400

Open ooples opened this issue 2 months ago โ€ข 1 comments

This commit implements comprehensive physics-informed machine learning capabilities for solving PDEs and learning operators between function spaces.

Physics-Informed Neural Networks (PINNs):

  • Core PINN implementation for solving PDEs
  • Deep Ritz Method for variational problems
  • Variational PINNs (weak formulation)
  • PDE specification interfaces (IPDESpecification, IBoundaryCondition, IInitialCondition)
  • Standard PDE implementations (Heat, Burgers, Poisson, Wave equations)
  • Physics-informed loss function combining data, PDE, BC, and IC losses
  • Automatic differentiation helper for computing derivatives

Neural Operators:

  • Fourier Neural Operator (FNO) for learning operators on regular grids
  • DeepONet (Deep Operator Network) for operator learning with branch-trunk architecture
  • Graph Neural Operators for irregular, graph-structured domains

Scientific Machine Learning:

  • Hamiltonian Neural Networks for conservative systems
  • Lagrangian Neural Networks for mechanical systems
  • Universal Differential Equations (ODEs with neural network components)
  • Symbolic Physics Learner for discovering interpretable equations

Key Features:

  • Comprehensive educational documentation with "For Beginners" sections
  • Generic type support (T) for numerical flexibility
  • Follows existing AiDotNet patterns and conventions
  • Integration with existing neural network infrastructure
  • Support for various boundary and initial conditions
  • Collocation point sampling for PDE enforcement
  • Energy-conserving architectures for physical systems

Directory Structure:

  • src/PhysicsInformed/Interfaces/ - PDE and boundary condition interfaces
  • src/PhysicsInformed/PDEs/ - Standard PDE implementations
  • src/PhysicsInformed/PINNs/ - PINN variants
  • src/PhysicsInformed/NeuralOperators/ - FNO, DeepONet, Graph operators
  • src/PhysicsInformed/ScientificML/ - HNN, LNN, UDE, Symbolic learner

Fixes #400

User Story / Context

  • Reference: [US-XXX] (if applicable)
  • Base branch: merge-dev2-to-master

Summary

  • What changed and why (scoped strictly to the user story / PR intent)

Verification

  • [ ] Builds succeed (scoped to changed projects)
  • [ ] Unit tests pass locally
  • [ ] Code coverage >= 90% for touched code
  • [ ] Codecov upload succeeded (if token configured)
  • [ ] TFM verification (net46, net6.0, net8.0) passes (if packaging)
  • [ ] No unresolved Copilot comments on HEAD

Copilot Review Loop (Outcome-Based)

Record counts before/after your last push:

  • Comments on HEAD BEFORE: [N]
  • Comments on HEAD AFTER (60s): [M]
  • Final HEAD SHA: [sha]

Files Modified

  • [ ] List files changed (must align with scope)

Notes

  • Any follow-ups, caveats, or migration details

ooples avatar Nov 08 '25 20:11 ooples

[!WARNING]

Rate limit exceeded

@ooples has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 10 minutes and 6 seconds before requesting another review.

โŒ› How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

๐Ÿšฆ How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

๐Ÿ“ฅ Commits

Reviewing files that changed from the base of the PR and between f99b0d2cc5304fcd1d2d0645a1c925a171c2ad99 and 7a17024433a55a3730f53e1bc58a0ab0a66918a0.

๐Ÿ“’ Files selected for processing (17)
  • src/PhysicsInformed/AutomaticDifferentiation.cs (1 hunks)
  • src/PhysicsInformed/Interfaces/IPDESpecification.cs (1 hunks)
  • src/PhysicsInformed/NeuralOperators/DeepOperatorNetwork.cs (1 hunks)
  • src/PhysicsInformed/NeuralOperators/FourierNeuralOperator.cs (1 hunks)
  • src/PhysicsInformed/NeuralOperators/GraphNeuralOperator.cs (1 hunks)
  • src/PhysicsInformed/PDEs/BurgersEquation.cs (1 hunks)
  • src/PhysicsInformed/PDEs/HeatEquation.cs (1 hunks)
  • src/PhysicsInformed/PDEs/PoissonEquation.cs (1 hunks)
  • src/PhysicsInformed/PDEs/WaveEquation.cs (1 hunks)
  • src/PhysicsInformed/PINNs/DeepRitzMethod.cs (1 hunks)
  • src/PhysicsInformed/PINNs/PhysicsInformedNeuralNetwork.cs (1 hunks)
  • src/PhysicsInformed/PINNs/VariationalPINN.cs (1 hunks)
  • src/PhysicsInformed/PhysicsInformedLoss.cs (1 hunks)
  • src/PhysicsInformed/ScientificML/HamiltonianNeuralNetwork.cs (1 hunks)
  • src/PhysicsInformed/ScientificML/LagrangianNeuralNetwork.cs (1 hunks)
  • src/PhysicsInformed/ScientificML/SymbolicPhysicsLearner.cs (1 hunks)
  • src/PhysicsInformed/ScientificML/UniversalDifferentialEquations.cs (1 hunks)
โœจ Finishing touches
  • [ ] ๐Ÿ“ Generate docstrings
๐Ÿงช Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment
  • [ ] Commit unit tests in branch claude/fix-issue-400-011CUw2ARApkikgUeGwqDRyo

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

โค๏ธ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Nov 08 '25 20:11 coderabbitai[bot]