KVSlab / VaMPy

A collection of tools for pre-processing, simulating, and post-processing vascular morphologies.
https://kvslab.github.io/VaMPy
GNU General Public License v3.0
15 stars 8 forks source link

Spline parameter for moving atrium simulation #154

Open lshahid opened 2 weeks ago

lshahid commented 2 weeks ago

Hello,

I am trying to run the moving atrium simulation, but I am getting this error:

Creating initial folders Loading displacement points Creating splines for displacement /home/lshahid/miniconda3/envs/oasismove/lib/python3.11/site-packages/scipy/interpolate/_fitpack_py.py:295: RuntimeWarning: The maximal number of iterations (20) allowed for finding smoothing spline with fp=s has been reached. Probable cause: s too small. (abs(fp-s)/s>0.001) res = _impl.splrep(x, y, w, xb, xe, k, task, s, t, full_output, per, quiet)

The MovingAtrium.py file states that the spline parameter needs to be set objectively.

def eval(self, _, x):
    self.counter += 1
    _, index = self.tree.query(x)
    # FIXME: Set spline parameter objectively
    s = 1E-2
    x_ = splrep(self.time, self.points[index, 0, :], s=s, per=True)
    y_ = splrep(self.time, self.points[index, 1, :], s=s, per=True)
    z_ = splrep(self.time, self.points[index, 2, :], s=s, per=True)

    self.motion_mapping[self.counter] = [x_, y_, z_]

How can I fix this problem? Is there a value of s that works for this problem? I tried iterating with a large range of values of s but none of them wroked.

I would appreciate your help with this.

Thanks, Labib