diff --git a/CPM1D/.gitignore b/CPM1D/.gitignore new file mode 100644 index 0000000..a786415 --- /dev/null +++ b/CPM1D/.gitignore @@ -0,0 +1,2 @@ +/build/ +*.egg-info diff --git a/CPM1D/README.md b/CPM1D/README.md index 18a59ba..789d459 100644 --- a/CPM1D/README.md +++ b/CPM1D/README.md @@ -13,3 +13,30 @@ description: This folder contains services to compute the 1D integral A libraty for collision probability method in 1d reference frames (slab, cyclinder and sphere), created by [ndarmage](https://github.com/ndarmage). + +# Install (in a virtual environment) + +Create an activate a virtual environment: + +```sh +# create virtual env +python3 -m venv my-virtual-env +# activate virtual env +my-virtual-env/bin/activate +``` + +Install the package (each time package sources are modified) + +```sh +pip install path_to_this_directory +``` + +Use it +```sh +python +``` +```python +import KinPy.algo609 as algo +dir(algo) +['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '__version__', '_algo609_error', 'bdiff', 'bkias', 'bkisr', 'bskin', 'd1mach', 'dbdiff', 'dbkias', 'dbkisr', 'dbskin', 'dexint', 'dgamrn', 'dhkseq', 'dpsixn', 'dqckin', 'exint', 'fdump', 'gamrn', 'hkseq', 'i1mach', 'j4save', 'psixn', 'qckin', 'r1mach', 's88fmt', 'xerabt', 'xerclr', 'xerctl', 'xerdmp', 'xermax', 'xerprt', 'xerror', 'xerrwv', 'xersav', 'xgetf', 'xgetua', 'xgetun', 'xsetf', 'xsetua', 'xsetun'] +``` diff --git a/CPM1D/pyproject.toml b/CPM1D/pyproject.toml new file mode 100644 index 0000000..8b88f61 --- /dev/null +++ b/CPM1D/pyproject.toml @@ -0,0 +1,2 @@ +[build-system] +requires = ["setuptools", "wheel", "numpy"] diff --git a/CPM1D/setup.py b/CPM1D/setup.py new file mode 100644 index 0000000..63f23b2 --- /dev/null +++ b/CPM1D/setup.py @@ -0,0 +1,33 @@ +"""from https://numpy.org/doc/stable/f2py/buildtools/distutils.html""" +from pathlib import Path + +from numpy.distutils.core import Extension, setup +from setuptools import find_packages + + +src_dir = Path('src') # Path allows to be complient wit Linux and Windows +f_flags = [ # from CPM1D/tools/wrap_f77_to_pylib.sh + '-ffixed-line-length-72', + '-Wextra', + '-Wall', + '-std=legacy' + ] +extension = Extension(name='KinPy.algo609', + sources=[str(src_dir / 'KinPy' / 'algo609.f')], + # see https://numpy.org/doc/stable/reference/generated/numpy.distutils.core.Extension.html#numpy.distutils.core.Extension + # for compile options. + extra_f77_compile_args=f_flags, + extra_f90_compile_args=f_flags, + ) + +setup(name='CPM1D', + description=("Services to compute the 1D integral transport" + "equation by the collision probability method"), + author="Daniele tomatis", + author_email="???", + version="0.0.1", + ext_modules=[extension,], + install_requires = ["setuptools", "wheel", "numpy"], + package_dir={"": "src"}, # To install KinPy and all python files in it (requires __init__.py in each subfolders to install) + packages=find_packages(where="src"), # to locate src dir + ) diff --git a/CPM1D/src/KinPy/__init__.py b/CPM1D/src/KinPy/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/CPM1D/KinPy/algo609.f b/CPM1D/src/KinPy/algo609.f similarity index 100% rename from CPM1D/KinPy/algo609.f rename to CPM1D/src/KinPy/algo609.f diff --git a/CPM1D/KinPy/609.gz b/CPM1D/tools/609.gz similarity index 100% rename from CPM1D/KinPy/609.gz rename to CPM1D/tools/609.gz diff --git a/CPM1D/KinPy/newer_c10f_from_slatec_not_tested.tgz b/CPM1D/tools/newer_c10f_from_slatec_not_tested.tgz similarity index 100% rename from CPM1D/KinPy/newer_c10f_from_slatec_not_tested.tgz rename to CPM1D/tools/newer_c10f_from_slatec_not_tested.tgz diff --git a/CPM1D/KinPy/warning b/CPM1D/tools/warning similarity index 100% rename from CPM1D/KinPy/warning rename to CPM1D/tools/warning diff --git a/CPM1D/KinPy/wrap_f77_to_pylib.sh b/CPM1D/tools/wrap_f77_to_pylib.sh similarity index 100% rename from CPM1D/KinPy/wrap_f77_to_pylib.sh rename to CPM1D/tools/wrap_f77_to_pylib.sh diff --git a/CPM1D/KinPy/wrap_f77_to_pylib_mingw64_cmd.bat b/CPM1D/tools/wrap_f77_to_pylib_mingw64_cmd.bat similarity index 100% rename from CPM1D/KinPy/wrap_f77_to_pylib_mingw64_cmd.bat rename to CPM1D/tools/wrap_f77_to_pylib_mingw64_cmd.bat diff --git a/CPM1D/KinPy/wrap_f77_to_pylib_mingw64_msys64.sh b/CPM1D/tools/wrap_f77_to_pylib_mingw64_msys64.sh similarity index 100% rename from CPM1D/KinPy/wrap_f77_to_pylib_mingw64_msys64.sh rename to CPM1D/tools/wrap_f77_to_pylib_mingw64_msys64.sh