Skip to content

724: Establish common solver math layer - #727

Merged
bearsontheloose merged 9 commits into
SimVascular:mainfrom
bearsontheloose:feature/724-establish-common-math-layer
Oct 27, 2026
Merged

bearsontheloose merged 9 commits into
SimVascular:mainfrom
bearsontheloose:feature/724-establish-common-math-layer

Conversation

@bearsontheloose

Copy link
Copy Markdown
Collaborator

Current situation

The solver’s reusable Matrix, Vector, and dense linear algebra utilities currently live under FE/Math and use the svmp::FE::math namespace. These utilities are not inherently FE-specific and are already used outside the FE implementation.
As proposed in #724, they should form a small, reusable math component under solver/common/math, with a public include boundary and a dedicated CMake target. This establishes the first low-level component boundary identified in #676 without redesigning the existing math APIs.
Closes #724.

Release Notes

  • Establish solver/common/math as a reusable solver math component.
  • Introduce the svmp_math CMake target.
  • Move dense linear algebra utilities from FE/Math to common/math.
  • Move the math APIs from svmp::FE::math to svmp::math.
  • Allow svmp_math to depend on svmp_core without depending on FE.
  • Preserve the existing math APIs and behavior.

##Documentation

  • Organize public headers under common/math/include/math.
  • Update consumers to use public includes such as math/Matrix.h and math/Vector.h.
  • Update include guards and namespaces to reflect the new component structure.
  • Move the focused dense linear algebra tests to tests/unitTests/common/math.

##Testing

  • RelWithDebInfo build completed successfully.
  • Unit tests passed.
  • Integration tests passed.

Code of Conduct & Contributing Guidelines

@zasexton zasexton left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this all looks good; I just left a minor question

@zasexton zasexton added the OOP Refactor Object-Oriented Programming Refactor of Code label Oct 26, 2026
@bearsontheloose
bearsontheloose merged commit ec8aea9 into SimVascular:main Oct 27, 2026
10 checks passed
@bearsontheloose
bearsontheloose deleted the feature/724-establish-common-math-layer branch October 27, 2026 17:47

This branch was previously deployed

1 inactive deployment
review-policy — 9994380d Deployed Oct 27, 2026 by bearsontheloose via evaluate #1510
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OOP Refactor Object-Oriented Programming Refactor of Code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Establish a common solver math layer

3 participants