Skip to content

1D to 3D splines with (optional) periodic boundary conditions

Notifications You must be signed in to change notification settings

jonathanschilling/pypspline3

Repository files navigation

PyPSPLINE

PyPSPLINE is a Python interface to the Fortran spline library PSPLINE.

build

The routines of the compact F77 interface are wrapped in Python classes. Internal documentation of the underlying Fortran routines can be found in the PSPLINE Help at F77_standard_software --> Compact_Splines .

Usage

The use of this package is demonstrated in a few scripts in the demo folder:

Prerequisites

A Fortran 90 and a C compiler.

I assume the platform to be UNIX. If you manage to build PSPLINE/pypspline on Windows, let me know.

Building PyPSPLINE

A minimal subset of PSPLINE required for 1D, 2D and 3D spline interpolation with periodic boundary conditions is included in this repository.

The setup relies on numpy.disttools as suggested in the f2py documentation. This will likely shift to meson once SciPy and NumPy have migrated as well.

For now, the build and installation process goes as follows:

pip install --user .

The f2py signature file src/fpspline.pyf was auto-generated using the included run_f2py.sh script and then hand-adjusted to line up with the assumptions made in the original.

For Arch Linux users, a PKGBUILD is available at aur/PKGBUILD.

History

This package was originally created by Alexander Pletzer and published on SourceForce as pypspline.

The old PyPSPLINE CVS repository was migrated to this Git repository. One needs the cvs and cvs2svn packages to do this on Arch Linux.

rsync -ai a.cvs.sourceforge.net::cvsroot/pypspline/ cvs2git-pypspline
cd cvs2git-pypspline
cvs2git --blobfile=blob.dat --dumpfile=dump.dat \
    --username=pletzer --default-eol=native \
    --encoding=utf8 --encoding=latin1 --fallback-encoding=ascii \
    .
cd ..
mkdir pypspline
cd pypspline
git init
cat ../cvs2git-pypspline/blob.dat ../cvs2git-pypspline/dump.dat | git fast-import
git remote add origin git@github.com:jonathanschilling/pypspline.git
git checkout
git push origin --mirror
mv pypspline{,_old}
mv pypspline_old/* .
rmdir pypspline_old
rm -r CVSROOT
git add .
git commit -m "one folder less"
git branch --set-upstream-to=origin/master master
git pull
git push