SimVascular / SimVascular/svZeroDSolver
Calibrator: add calibration for Chamber Sphere block
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 22
- Forks
- 44
- PR merge metrics
- No merged PRs in 30d
Description
Problem
Hello everyone,
I am a postdoctoral associate in @mrp089 's lab and I am planning to extend the calibrator functionality to the Chamber Sphere block. Specifically, I want to use inputs from 3D simulations of a ventricle (flow, pressure, etc.) to optimize the initial radius (radius0) and thickness (thick0) of the sphere.
While implementing this, I encountered the following issues:
- No error is raised if calibration is attempted on a block that does not have calibration implemented (i.e., the update_gradient function is missing);
- The current calibration code is not modular and is hardcoded specifically for the Blood Vessel block, making it difficult to extend to other block types like the Chamber Sphere.
Solution
- Modify calibrate.cpp so that an error is raised if calibration is attempted on a block without implemented calibration;
- Modify calibrate.cpp, ChamberSphere.cpp, ChamberSphere.h and LevenbergMarquardtOptimizer.cpp to allow calibration on the Chamber Sphere block and ensure the system can integrate calibration on additional blocks in the future.
Additional context
No response
Code of Conduct
- I agree to follow this project's Code of Conduct and Contributing Guidelines
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading calibrate.cpp and the existing Blood Vessel calibration path, then inspect ChamberSphere.cpp, ChamberSphere.h, and LevenbergMarquardtOptimizer.cpp. The work is done when unsupported calibration attempts raise an error and Chamber Sphere calibration can optimize radius0 and thick0 through a design that can support additional block types.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100