HPCSys-Lab/simwave

`findiff`

krober10nd opened this issue · 8 comments

  • I think it'd be useful to compare performance. This appears to be a pure Python package but very flexible.

Because this package requires no more dependencies other than numpy, sympy, and scipy (two of which are already used). and can give you literally any order coefficients, I think we should incorporate this package to calculate the coefficients on the fly for the stencil.

I would also imagine a scenario where you could make findiff optional and then in the case it's optional only have a limited spatial order set. This way we maintain the philosophy of as little as possible dependencies.

I agree It is a good ideia to incorporate findiff to calculate the coefficients. I am gonna do that.

You can make packages optional too via the setup.cfg file like this:

https://github.com/krober10nd/SeismicMesh/blob/1d15a6abee2391719b98e86c9a20c666c77a2397/setup.cfg#L41

so then you could something like this

pip install pywave[all] 

which would install all package dependencies

or

pip install pywave[lite]

which wouldn't and thus would have reduced functionality but be easier to install.

I think we can just use it without options. It is not a complex package.

Okay, just to note that by default the [all] option is used so it just gives you more flexibility. In fact, if you do benchmarking with another package (which is necessary), then you don't want that the benchmarking dependencies install with the main package.

In general, the philosophy should be as-few-as-possible dependencies.

We're already seen how well the opposite works :]

We're already seen how well the opposite works :]

Yep, I know haha

But, In this case findiff is going to be a fundamental (and also required) package to calculate the coefficients, for both space and time (only second time order for now, but more options in the future)