Developer Guide#
ODAT-SE is a framework that solves inverse problems by combining a forward problem solver Solver with a search algorithm Algorithm.
In addition to the built-in Solver and Algorithm, users can define and use their own.
flowchart LR
A["<b>Algorithm</b><br/>(search)"] -->|"proposes parameter x"| R["<b>Runner</b><br/>(bridge)"]
R -->|"coordinate transform<br/>& constraints"| S["<b>Solver</b><br/>(objective)"]
S -->|"computes f(x)"| R
R -->|"returns f(x)"| A
This chapter first explains how to add a custom solver through a hands-on tutorial, then provides API details.
- Tutorial: Adding a Custom Solver
A tutorial for optimizing your own objective function with ODAT-SE. Provides a complete, copy-paste-ready example covering file creation, execution, and result verification. Start here if you are new to customization.
- Solver
API reference for the
Solverclass. Details on inheritingSolverBaseand implementing theevaluatemethod.- Algorithm
API reference for the
Algorithmclass. How to define custom search algorithms.- Common items
Explanation of the shared classes
Info,Runner,Mapping, andLimitation, the initialization functionodatse.initialize, and the MPI accessorsodatse.mpi.- Usage
Code example for combining custom Solver / Algorithm and running them.
- API Reference
Reference of all public APIs, generated automatically from the docstrings in the source code. Consult it for the modules not covered in this chapter (
odatse.util.*,odatse.domain.*,odatse.mpi, etc.).