SimVascular / SimVascular/svZeroDSolver

Calibrator: add calibration for Chamber Sphere block

Open
#188 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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:

  1. 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);
  2. 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
  1. Modify calibrate.cpp so that an error is raised if calibration is attempted on a block without implemented calibration;
  2. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.