solidcore

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 unitDeferred cases
query.brep claimed3
query.face_p1 claimed2
topology.brep_p1 claimed2

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 functionDefined atLinesRust (from the file header)
SmIntegFuncEvalObj::EvaluateSmIntegrator.h:572
SmIntegrator::~SmIntegratorSmIntegrator.h:831
SmIntegrator::SmIntegratorSmIntegrator.h:1054
SmODEIntegFuncEvalObj::EvaluateSmIntegrator.h:1263
SmODEIntegrator::~SmODEIntegratorSmIntegrator.h:1741
SmBrep::ComputePrecisePropertiesSmBrep.cpp:1627218
SmEdge::ComputePrecisePropertiesSmEdge.cpp:35571
SmODEAreaIFEO::SmODEAreaIFEOSmFace.cpp:566312
SmFace::ComputePrecisePropertiesSmFace.cpp:600215
SmFace::ComputePrecisePropertiesSmFace.cpp:6027116
SmODEEval::SmODEEvalSmIntegrator.cpp:451[integrate]
SmODEEval::EvaluateSmIntegrator.cpp:5712
SmIntegrator::IntegrateItSmIntegrator.cpp:7845[integrate]
SmODEIntegrator::SmODEIntegratorSmIntegrator.cpp:30711[OdeIntegrator]
SmODEIntegrator::RungeKutta5thOrderStepSmIntegrator.cpp:36849[OdeIntegrator::step]
SmODEIntegrator::RungeKuttaCashKarpAdvanceSmIntegrator.cpp:42483[OdeIntegrator::step]
SmODEIntegrator::RungeKuttaODEIntegrateSmIntegrator.cpp:516124[OdeIntegrator::integrate]
sm_BrepComputePropertiesAboutSmApiQueries.cpp:77316
SmApiBrepComputeVolumeSmApiQueries.cpp:79828
SmApiBrepComputeAreaSmApiQueries.cpp:83828
SmApiBrepComputeMassPropertiesSmApiQueries.cpp:88085
sm_FaceAreaEstimateSmApiQueries.cpp:10736
SmApiFaceComputeAreaSmApiQueries.cpp:109137
SmApiFaceComputeCentroidSmApiQueries.cpp:125142
SmApiEdgeComputeLengthSmApiQueries.cpp:133521
Module file-header table (4 rows)
RustUpstream
[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