Units / mass
mass.integrator partial
- Layer
- 48
- Upstream lines
- 1,031
- Functions
- 25
- Rust module
mass::integrator
Source: crates/solidcore/src/mass/integrator.rs
Upstream: source/SMLib/inc/SmIntegrator.h, source/SMLib/src/SmBrep.cpp, source/SMLib/src/SmEdge.cpp, source/SMLib/src/SmFace.cpp, source/SMLib/src/SmIntegrator.cpp, source/SM_API/src/SmApiQueries.cpp
Notes
PARTIAL (PR #119): difftest 1528 cases, 1521 pass, 0 fail, 7 deferred (query.brep 3, query.face_p1 2, topology.brep_p1 2; the thick-face case deferred on surface.offset_surface passes since PR #62), max_rel_err 4.979280456316938e-14, no absolute floors. Real C++ scalar/ODE integrators, precise edge/face properties and API queries; all 63 face masks in both orientations; disk/annulus trims, rotated planes and curved B-spline patches; exact rational arcs, weighted curves, cusps, zero spans, tight-accuracy failures/retries and nested AreaIntegrand; 1200 fixed-seed generated cases and 155 review regressions, adaptive step sizes/counts, scale mutation, evaluator failures, reversed and near-zero intervals, small/large magnitudes. Full precise-property and SM_API control flow ported with explicit stubs for missing bounding-box/enumeration/oriented-boundary/region/offset callees; boundary_properties accepts already-oriented trims. All 3 UNPORTED(mass.integrator) sites wired (curve.curve_p5, surface.surface_p1, topology.face_p2). Dimensions <=4096, steps <=1000000, rejected-step retries <=1024, no input-driven recursion. 25 fns; largest: SmBrep::ComputePreciseProperties, SmODEIntegrator::RungeKuttaODEIntegrate, SmFace::ComputePreciseProperties, SmApiBrepComputeMassProperties; entry points: SmApiBrepComputeArea, SmApiBrepComputeMassProperties, SmApiBrepComputeVolume, SmApiEdgeComputeLength, SmApiFaceComputeArea, SmApiFaceComputeCentroid; cycle back-edges (call into later units; stub or co-port): query.brep(2), query.face_p1(2); unit-SCC #22 (220 units); 146 upstream test entry points reach this unit; Re-run in PR #154: SmRegion::IsVoid wired to topology::Region::is_void (topology.shell); re-run after merging main: same 1528 cases, 1521 pass, 0 fail, 7 deferred
Difftest
- Cases
- 1,528
- Passed
- 1,521
- Deferred
- 7
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 4.979280456316938e-14
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
query.brep claimed | 3 |
query.face_p1 claimed | 2 |
topology.brep_p1 claimed | 2 |
Report JSON (per-case results)
Dependencies
Depends on: geom.a_object partial geom.extent3d green geom.object partial geom.vector3d green topology.brep_p1 claimed topology.brep_p2 claimed topology.edge partial topology.edgeuse_p1 partial topology.face_p1 partial topology.face_p2 partial
Soft dependencies: curve.curve_p2 green curve.curve_p5 partial geom.attribute green geom.context green geom.extent1d green geom.extent2d green geom.tol green nurbs.b_spline_curve_p1 green topology.shell partial topology.vertex partial
Dependents: audit.recursion todo
Soft dependents: none
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmIntegFuncEvalObj::Evaluate | SmIntegrator.h:57 | 2 | |
SmIntegrator::~SmIntegrator | SmIntegrator.h:83 | 1 | |
SmIntegrator::SmIntegrator | SmIntegrator.h:105 | 4 | |
SmODEIntegFuncEvalObj::Evaluate | SmIntegrator.h:126 | 3 | |
SmODEIntegrator::~SmODEIntegrator | SmIntegrator.h:174 | 1 | |
SmBrep::ComputePreciseProperties | SmBrep.cpp:1627 | 218 | |
SmEdge::ComputePreciseProperties | SmEdge.cpp:355 | 71 | |
SmODEAreaIFEO::SmODEAreaIFEO | SmFace.cpp:5663 | 12 | |
SmFace::ComputePreciseProperties | SmFace.cpp:6002 | 15 | |
SmFace::ComputePreciseProperties | SmFace.cpp:6027 | 116 | |
SmODEEval::SmODEEval | SmIntegrator.cpp:45 | 1 | [integrate] |
SmODEEval::Evaluate | SmIntegrator.cpp:57 | 12 | |
SmIntegrator::IntegrateIt | SmIntegrator.cpp:78 | 45 | [integrate] |
SmODEIntegrator::SmODEIntegrator | SmIntegrator.cpp:307 | 11 | [OdeIntegrator] |
SmODEIntegrator::RungeKutta5thOrderStep | SmIntegrator.cpp:368 | 49 | [OdeIntegrator::step] |
SmODEIntegrator::RungeKuttaCashKarpAdvance | SmIntegrator.cpp:424 | 83 | [OdeIntegrator::step] |
SmODEIntegrator::RungeKuttaODEIntegrate | SmIntegrator.cpp:516 | 124 | [OdeIntegrator::integrate] |
sm_BrepComputePropertiesAbout | SmApiQueries.cpp:773 | 16 | |
SmApiBrepComputeVolume | SmApiQueries.cpp:798 | 28 | |
SmApiBrepComputeArea | SmApiQueries.cpp:838 | 28 | |
SmApiBrepComputeMassProperties | SmApiQueries.cpp:880 | 85 | |
sm_FaceAreaEstimate | SmApiQueries.cpp:1073 | 6 | |
SmApiFaceComputeArea | SmApiQueries.cpp:1091 | 37 | |
SmApiFaceComputeCentroid | SmApiQueries.cpp:1251 | 42 | |
SmApiEdgeComputeLength | SmApiQueries.cpp:1335 | 21 |
Module file-header table (4 rows)
| Rust | Upstream |
|---|---|
[integrate] | SmIntegrator::IntegrateIt, SmODEEval |
[OdeIntegrator] | SmODEIntegrator |
[OdeIntegrator::integrate] | RungeKuttaODEIntegrate |
[OdeIntegrator::step] | RungeKutta5thOrderStep, RungeKuttaCashKarpAdvance |
Upstream tests reaching this unit
prog_test:my_test_curve_interface, prog_test:my_test_methods, SM_API_test:TestSmCreateSkinPrimitive, prog_test:my_test_bsplinecurve, prog_test:my_test_closed_sphere_properties, prog_test:my_test_squeeze_edge_tracks_removal