SimVascular / SimVascular/svZeroDSolver

We should test time integration in simple test cases

Open
#99 0 comments 0 reactions 1 assignee View on GitHub

@AndreaZanoni is already working on this.

Since Feb 26, 2024.

good first issue
Dominant language
C++
Stars
22
Forks
44
PR merge metrics
No merged PRs in 30d

Description

Description

The current tests which have pulsatile boundary conditions only compare the first time step with an expected/analytical solution. We should be testing them against analytical/semi-analytical solution at multiple time steps to make sure the integration is being tested.

Reproduction

Example for RCR BC test case:
https://github.com/SimVascular/svZeroDSolver/blob/06d2f2485cc7415c8be2e0a75e76719943f66216/tests/test_solver.py#L294-L298

Example for coronary BC test case:
https://github.com/SimVascular/svZeroDSolver/blob/06d2f2485cc7415c8be2e0a75e76719943f66216/tests/test_solver.py#L310-L314

In both the tests above, only timestep 0 is compared with the reference solution.

Expected behavior

For simple test cases, such as the RCR and coronary BC blocks, we should compare with semi-analytical solutions. We can write out the governing equations for specific quantities (inlet pressure, for example) and integrate them in time using simple Euler/RK schemes to compute a reference solution to compare against.

Additional context

This is related to #95

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.