novaphy.solvers¶
Newton-aligned novaphy.solvers namespace. Solver classes, configuration
objects, and solver-metadata enums live exclusively here; there is no
novaphy.SolverXXX top-level shortcut.
import novaphy
solver = novaphy.solvers.SolverSemiImplicit(model)
pipeline = novaphy.CollisionPipeline(model)
contacts = pipeline.contacts()
pipeline.collide(state_in, contacts)
solver.step(state_in, state_out, control, contacts, dt)
All solvers share the contract:
solver.step(state_in: SimState, state_out: SimState,
control: Control | None, contacts: Contacts | None,
dt: float) -> None
state_in and state_out may alias for in-place stepping. Pass distinct
SimState objects when the input buffer must be preserved.
Collision is explicit: populate contacts with CollisionPipeline.collide
before solver.step whenever the step should enforce contacts.
Solver Classes¶
| Class | Description |
|---|---|
| SolverBase | Newton-aligned base contract. |
| SolverFeatherstone | Articulated-body Featherstone solver. |
| SolverIPC | IPC / libuipc solver (CUDA). May be None when IPC is not built. |
| SolverLBM | Lattice Boltzmann fluid backend. |
| SolverMPM | Material Point Method backend. |
| SolverPBF | Position Based Fluids solver. |
| SolverSPH | SPH fluid solver (CPU + optional CUDA). |
| SolverSemiImplicit | Free-body semi-implicit Euler + PGS. |
| SolverVBD | VBD / AVBD primal-dual solver (CPU SolverBase path). |
| SolverXPBD | XPBD maximal-coordinate constraint solver. |
These entries are Newton-aligned SolverBase subclasses driven by the
solver.step(state_in, state_out, control, contacts, dt) contract.
SolverMPM and SolverLBM may report backend_info().is_scaffold when the
corresponding backend is not implemented in the current build.
Configuration Objects¶
| Class | Description |
|---|---|
| IPCConfig | IPC solver configuration. |
| PBFConfig | Position Based Fluids configuration. |
| SolverFeatherstoneSettings | Featherstone solver settings. |
| SolverSettings | Shared rigid solver settings (semi-implicit / XPBD shared knobs). |
| SPHConfig | SPH solver configuration. |
| VBDConfig | SolverVBD configuration. |
| XPBDSolverSettings | XPBD-specific solver settings. |
Enumerations and Metadata¶
| Symbol | Description |
|---|---|
| JointSupportMatrix | Per-solver joint capability table. |
| SolverBackendInfo | Backend descriptor (device, fixed-dt, etc.). |
| SolverBackendKind | Backend device classifier. |
| SolverNotifyFlags | Cache invalidation flags after Model mutation. |
| SolverStateOwnership | Whether a solver owns its own state. |
| SPHBackendKind | SPH explicit backend selector (CUDA when available). |
| VbdBackend | VBD backend selector (CPU / CUDA). |
Legacy Backend Containers¶
In IPC-enabled builds, novaphy.IPCWorld remains a backend container exposed
at the top level of novaphy (not under novaphy.solvers). It is not a
Newton-aligned SolverBase subclass, is not advertised in novaphy.__all__,
and emits a DeprecationWarning on construction.
| Container | Target / replacement | Status |
|---|---|---|
novaphy.IPCWorld |
SolverIPC | Deprecated — prefer SolverIPC. |