summaryrefslogtreecommitdiff
path: root/python-ttcrpy.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-ttcrpy.spec')
-rw-r--r--python-ttcrpy.spec596
1 files changed, 596 insertions, 0 deletions
diff --git a/python-ttcrpy.spec b/python-ttcrpy.spec
new file mode 100644
index 0000000..be6fc0e
--- /dev/null
+++ b/python-ttcrpy.spec
@@ -0,0 +1,596 @@
+%global _empty_manifest_terminate_build 0
+Name: python-ttcrpy
+Version: 1.2.1
+Release: 1
+Summary: Code to perform raytracing for geophysical applications
+License: GNU General Public License v3 or later (GPLv3+)
+URL: https://pypi.org/project/ttcrpy/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a8/ad/ea3a55f22959ad70054d0d7ed5adfb853f190db10b5e9bf3532569548d86/ttcrpy-1.2.1.tar.gz
+
+
+%description
+[![pypi](https://img.shields.io/pypi/v/ttcrpy.svg)](https://pypi.org/project/ttcrpy/)
+[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](./01_LICENSE.txt)
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1162725.svg)](https://doi.org/10.5281/zenodo.1162725)
+[![Build status](https://ci.appveyor.com/api/projects/status/t2kgoici4ydm9erv?svg=true)](https://ci.appveyor.com/project/bernard-giroux/ttcr)
+[![Documentation Status](https://readthedocs.org/projects/ttcrpy/badge/?version=latest)](https://ttcrpy.readthedocs.io/en/latest/?badge=latest)
+[![Downloads](https://pepy.tech/badge/ttcrpy)](https://pepy.tech/project/ttcrpy)
+This repo contains C++ and python codes for raytracing on regular and unstructured meshes.
+Matlab wrappers are provided as well.
+- [Python package](#heading)
+- [Stand alone command-line programs](#heading)
+- [Matlab mex files](#heading)
+- [References](#heading)
+<!-- toc -->
+## Python package
+`ttcrpy` is a package for computing traveltimes and raytracing that was
+developed with geophysical applications in mind, e.g. ray-based seismic/GPR
+tomography and microseismic event location (joint hypocenter-velocity
+inversion). The package contains code to perform computation on 2D and 3D
+rectilinear grids, as well as 2D triangular and 3D tetrahedral meshes. Three
+different algorithms have been implemented: the Fast-Sweeping Method, the
+Shortest-Path Method, and the Dynamic Shortest-Path Method. Calculations can
+be run in parallel on a multi-core machine.
+The core computing code is written in C++, and has been wrapped with cython.
+Documentation can be found on [Read The Docs](https://ttcrpy.readthedocs.io/)
+If you use `ttcrpy`, please cite
+[Giroux B. 2021. ttcrpy: A Python package for traveltime computation and raytracing.
+SoftwareX, vol. 16, 100834. doi: 10.1016/j.softx.2021.100834](https://www.sciencedirect.com/science/article/pii/S2352711021001217)
+## Stand-alone command-line programs
+There are three programs that can be called from the command line:
+- `ttcr2d` : raytracing on planar 2D meshes
+- `ttcr2ds` : raytracing on undulated surfaces
+- `ttcr3d` : raytracing in 3D
+See [documentation](https://github.com/groupeLIAMG/ttcr/blob/master/docs/command_line.md) for
+command-line programs options and file formats.
+### Examples
+Look at the files in the examples directory for some samples.
+### Compiling
+The programs are coded in C++ and follow the C++11 standard. You must have VTK
+(http://vtk.org) installed on your system, to benefit from full functionalities.
+Files from the eigen3 (http://eigen.tuxfamily.org) and boost
+(http://www.boost.org) libraries are distributed with the source to facilitate
+compilation. These codes were compiled and tested on macs with the default
+compiler (clang). They were also tested to some extent under linux with g++
+version 4.8.
+## Matlab wrappers
+To compile the mexfiles, you will need:
+- a C++ compiler that conforms to the C++11 standard
+- the source codes of the ttcr package
+On my OS X machine, I use this command to compile from a terminal:
+```
+MATLAB=/Applications/MATLAB_R2014a.app
+$MATLAB/bin/mex -O CXXFLAGS='$CXXFLAGS -std=c++11 -stdlib=libc++' \
+LDFLAGS='$LDFLAGS -std=c++11 -stdlib=libc++' -largeArrayDims -v \
+-I$HOME/src/ttcr/ttcr -I$HOME/src/ttcr/boost_1_81_0 \
+-I$HOME/src/ttcr/eigen-3.4.0 grid2dunsp_mex.cpp
+```
+3D classes must be compiled with `verbose.cpp` in the list of source files, i.e.
+```
+$MATLAB/bin/mex -O CXXFLAGS='$CXXFLAGS -std=c++11 -stdlib=libc++' \
+LDFLAGS='$LDFLAGS -std=c++11 -stdlib=libc++' -largeArrayDims -v \
+-I$HOME/src/ttcr/ttcr -I$HOME/src/ttcr/boost_1_81_0 \
+-I$HOME/src/ttcr/eigen-3.4.0 grid3dunfs_mex.cpp verbose.cpp
+```
+On a windows machine with intel compiler installed, I could compile it from the matlab prompt with:
+```
+mex -v -O COMPFLAGS='$COMPFLAGS /Qstd=c++11' -largeArrayDims -I../ttcr -I../boost_1_81_0 -I../eigen-3.4.0 grid2dunsp_mex.cpp
+```
+Unfortunately, I cannot offer extensive support for compiling on other platforms, especially windows variants.
+Please report bugs to https://github.com/groupeLIAMG/ttcr/issues
+## References
+```
+@article{doi:10.1111/1365-2478.12930,
+ author = {Nasr, Maher and Giroux, Bernard and Dupuis, J. Christian},
+ title = {A hybrid approach to compute seismic travel times in three-dimensional tetrahedral meshes},
+ journal = {Geophysical Prospecting},
+ volume = {n/a},
+ number = {n/a},
+ pages = {},
+ keywords = {Travel time, Seismic modelling, Ray tracing, Seismics, Computing aspects},
+ doi = {10.1111/1365-2478.12930},
+ url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/1365-2478.12930},
+ eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1111/1365-2478.12930},
+}
+@inbook{nasr18,
+ author = { Maher Nasr and Bernard Giroux and J. Christian Dupuis },
+ title = {An optimized approach to compute traveltimes in 3D unstructured meshes},
+ booktitle = {SEG Technical Program Expanded Abstracts 2018},
+ chapter = {},
+ pages = {5073-5077},
+ year = {2018},
+ doi = {10.1190/segam2018-2997918.1},
+ URL = {https://library.seg.org/doi/abs/10.1190/segam2018-2997918.1},
+ eprint = {https://library.seg.org/doi/pdf/10.1190/segam2018-2997918.1}
+}
+@InProceedings{giroux14,
+ Title = {Comparison of grid-based methods for raytracing on unstructured meshes},
+ Author = {Bernard Giroux},
+ Booktitle = {SEG Technical Program Expanded Abstracts},
+ Year = {2014},
+ Pages = {3388-3392},
+ Chapter = {649},
+ DOI = {10.1190/segam2014-1197.1},
+ Eprint = {http://library.seg.org/doi/pdf/10.1190/segam2014-1197.1},
+ URL = {http://dx.doi.org/10.1190/segam2014-1197.1}
+}
+@ARTICLE{giroux13,
+ author = {Bernard Giroux and Beno\^{\i}t Larouche},
+ title = {Task-parallel implementation of {3D} shortest path raytracing for
+ geophysical applications},
+ journal = {Computers & Geosciences},
+ year = {2013},
+ volume = {54},
+ pages = {130--141},
+ number = {0},
+ doi = {10.1016/j.cageo.2012.12.005}
+ url = {http://dx.doi.org/10.1016/j.cageo.2012.12.005}
+}
+@INPROCEEDINGS{giroux13b,
+ author = {Bernard Giroux},
+ title = {Shortest path raytracing on tetrahedral meshes},
+ booktitle = {75$^{th}$ EAGE Conference \& Exhibition},
+ year = {2013},
+ address = {London},
+ organization = {EAGE},
+ doi = {10.3997/2214-4609.20130236}
+ url = {http://dx.doi.org/10.3997/2214-4609.20130236}
+}
+@ARTICLE{lelievre11,
+ author = {Leli\`evre, Peter G. and Farquharson, Colin G. and Hurich, Charles A.},
+ title = {Computing first-arrival seismic traveltimes on unstructured 3-{D}
+ tetrahedral grids using the Fast Marching Method},
+ journal = {Geophysical Journal International},
+ year = {2011},
+ volume = {184},
+ pages = {885-896},
+ number = {2},
+ doi = {10.1111/j.1365-246X.2010.04880.x}
+ url = {http://dx.doi.org/10.1111/j.1365-246X.2010.04880.x}
+}
+@ARTICLE{qian07,
+ author = {Qian, Jianliang and Zhang, Yong-Tao and Zhao, Hong-Kai},
+ title = {Fast Sweeping Methods for Eikonal Equations on Triangular Meshes},
+ journal = {SIAM Journal on Numerical Analysis},
+ year = {2007},
+ volume = {45},
+ pages = {83--107},
+ number = {1},
+ doi = {10.1137/050627083},
+ publisher = {Society for Industrial and Applied Mathematics},
+ url = {http://www.jstor.org/stable/40232919}
+}
+@Article{zhang06,
+ Title = {High Order Fast Sweeping Methods for Static {H}amilton–{J}acobi Equations},
+ Author = {Yong-Tao Zhang and Hong-Kai Zhao and Jianliang Qian},
+ Journal = {Journal of Scientific Computing},
+ Year = {2006},
+ Number = {1},
+ Pages = {25--56},
+ Volume = {29},
+ DOI = {10.1007/s10915-005-9014-3},
+ URL = {http://dx.doi.org/10.1007/s10915-005-9014-3}
+}
+@Article{zhao05,
+ Title = {A Fast Sweeping Method for Eikonal Equations},
+ Author = {Zhao, Hongkai},
+ Journal = {Mathematics of Computation},
+ Year = {2005},
+ Month = apr,
+ Number = {250},
+ Pages = {603--627},
+ Volume = {74},
+ Publisher = {American Mathematical Society},
+ URL = {http://www.jstor.org/stable/4100081}
+}
+```
+
+%package -n python3-ttcrpy
+Summary: Code to perform raytracing for geophysical applications
+Provides: python-ttcrpy
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+BuildRequires: python3-cffi
+BuildRequires: gcc
+BuildRequires: gdb
+%description -n python3-ttcrpy
+[![pypi](https://img.shields.io/pypi/v/ttcrpy.svg)](https://pypi.org/project/ttcrpy/)
+[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](./01_LICENSE.txt)
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1162725.svg)](https://doi.org/10.5281/zenodo.1162725)
+[![Build status](https://ci.appveyor.com/api/projects/status/t2kgoici4ydm9erv?svg=true)](https://ci.appveyor.com/project/bernard-giroux/ttcr)
+[![Documentation Status](https://readthedocs.org/projects/ttcrpy/badge/?version=latest)](https://ttcrpy.readthedocs.io/en/latest/?badge=latest)
+[![Downloads](https://pepy.tech/badge/ttcrpy)](https://pepy.tech/project/ttcrpy)
+This repo contains C++ and python codes for raytracing on regular and unstructured meshes.
+Matlab wrappers are provided as well.
+- [Python package](#heading)
+- [Stand alone command-line programs](#heading)
+- [Matlab mex files](#heading)
+- [References](#heading)
+<!-- toc -->
+## Python package
+`ttcrpy` is a package for computing traveltimes and raytracing that was
+developed with geophysical applications in mind, e.g. ray-based seismic/GPR
+tomography and microseismic event location (joint hypocenter-velocity
+inversion). The package contains code to perform computation on 2D and 3D
+rectilinear grids, as well as 2D triangular and 3D tetrahedral meshes. Three
+different algorithms have been implemented: the Fast-Sweeping Method, the
+Shortest-Path Method, and the Dynamic Shortest-Path Method. Calculations can
+be run in parallel on a multi-core machine.
+The core computing code is written in C++, and has been wrapped with cython.
+Documentation can be found on [Read The Docs](https://ttcrpy.readthedocs.io/)
+If you use `ttcrpy`, please cite
+[Giroux B. 2021. ttcrpy: A Python package for traveltime computation and raytracing.
+SoftwareX, vol. 16, 100834. doi: 10.1016/j.softx.2021.100834](https://www.sciencedirect.com/science/article/pii/S2352711021001217)
+## Stand-alone command-line programs
+There are three programs that can be called from the command line:
+- `ttcr2d` : raytracing on planar 2D meshes
+- `ttcr2ds` : raytracing on undulated surfaces
+- `ttcr3d` : raytracing in 3D
+See [documentation](https://github.com/groupeLIAMG/ttcr/blob/master/docs/command_line.md) for
+command-line programs options and file formats.
+### Examples
+Look at the files in the examples directory for some samples.
+### Compiling
+The programs are coded in C++ and follow the C++11 standard. You must have VTK
+(http://vtk.org) installed on your system, to benefit from full functionalities.
+Files from the eigen3 (http://eigen.tuxfamily.org) and boost
+(http://www.boost.org) libraries are distributed with the source to facilitate
+compilation. These codes were compiled and tested on macs with the default
+compiler (clang). They were also tested to some extent under linux with g++
+version 4.8.
+## Matlab wrappers
+To compile the mexfiles, you will need:
+- a C++ compiler that conforms to the C++11 standard
+- the source codes of the ttcr package
+On my OS X machine, I use this command to compile from a terminal:
+```
+MATLAB=/Applications/MATLAB_R2014a.app
+$MATLAB/bin/mex -O CXXFLAGS='$CXXFLAGS -std=c++11 -stdlib=libc++' \
+LDFLAGS='$LDFLAGS -std=c++11 -stdlib=libc++' -largeArrayDims -v \
+-I$HOME/src/ttcr/ttcr -I$HOME/src/ttcr/boost_1_81_0 \
+-I$HOME/src/ttcr/eigen-3.4.0 grid2dunsp_mex.cpp
+```
+3D classes must be compiled with `verbose.cpp` in the list of source files, i.e.
+```
+$MATLAB/bin/mex -O CXXFLAGS='$CXXFLAGS -std=c++11 -stdlib=libc++' \
+LDFLAGS='$LDFLAGS -std=c++11 -stdlib=libc++' -largeArrayDims -v \
+-I$HOME/src/ttcr/ttcr -I$HOME/src/ttcr/boost_1_81_0 \
+-I$HOME/src/ttcr/eigen-3.4.0 grid3dunfs_mex.cpp verbose.cpp
+```
+On a windows machine with intel compiler installed, I could compile it from the matlab prompt with:
+```
+mex -v -O COMPFLAGS='$COMPFLAGS /Qstd=c++11' -largeArrayDims -I../ttcr -I../boost_1_81_0 -I../eigen-3.4.0 grid2dunsp_mex.cpp
+```
+Unfortunately, I cannot offer extensive support for compiling on other platforms, especially windows variants.
+Please report bugs to https://github.com/groupeLIAMG/ttcr/issues
+## References
+```
+@article{doi:10.1111/1365-2478.12930,
+ author = {Nasr, Maher and Giroux, Bernard and Dupuis, J. Christian},
+ title = {A hybrid approach to compute seismic travel times in three-dimensional tetrahedral meshes},
+ journal = {Geophysical Prospecting},
+ volume = {n/a},
+ number = {n/a},
+ pages = {},
+ keywords = {Travel time, Seismic modelling, Ray tracing, Seismics, Computing aspects},
+ doi = {10.1111/1365-2478.12930},
+ url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/1365-2478.12930},
+ eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1111/1365-2478.12930},
+}
+@inbook{nasr18,
+ author = { Maher Nasr and Bernard Giroux and J. Christian Dupuis },
+ title = {An optimized approach to compute traveltimes in 3D unstructured meshes},
+ booktitle = {SEG Technical Program Expanded Abstracts 2018},
+ chapter = {},
+ pages = {5073-5077},
+ year = {2018},
+ doi = {10.1190/segam2018-2997918.1},
+ URL = {https://library.seg.org/doi/abs/10.1190/segam2018-2997918.1},
+ eprint = {https://library.seg.org/doi/pdf/10.1190/segam2018-2997918.1}
+}
+@InProceedings{giroux14,
+ Title = {Comparison of grid-based methods for raytracing on unstructured meshes},
+ Author = {Bernard Giroux},
+ Booktitle = {SEG Technical Program Expanded Abstracts},
+ Year = {2014},
+ Pages = {3388-3392},
+ Chapter = {649},
+ DOI = {10.1190/segam2014-1197.1},
+ Eprint = {http://library.seg.org/doi/pdf/10.1190/segam2014-1197.1},
+ URL = {http://dx.doi.org/10.1190/segam2014-1197.1}
+}
+@ARTICLE{giroux13,
+ author = {Bernard Giroux and Beno\^{\i}t Larouche},
+ title = {Task-parallel implementation of {3D} shortest path raytracing for
+ geophysical applications},
+ journal = {Computers & Geosciences},
+ year = {2013},
+ volume = {54},
+ pages = {130--141},
+ number = {0},
+ doi = {10.1016/j.cageo.2012.12.005}
+ url = {http://dx.doi.org/10.1016/j.cageo.2012.12.005}
+}
+@INPROCEEDINGS{giroux13b,
+ author = {Bernard Giroux},
+ title = {Shortest path raytracing on tetrahedral meshes},
+ booktitle = {75$^{th}$ EAGE Conference \& Exhibition},
+ year = {2013},
+ address = {London},
+ organization = {EAGE},
+ doi = {10.3997/2214-4609.20130236}
+ url = {http://dx.doi.org/10.3997/2214-4609.20130236}
+}
+@ARTICLE{lelievre11,
+ author = {Leli\`evre, Peter G. and Farquharson, Colin G. and Hurich, Charles A.},
+ title = {Computing first-arrival seismic traveltimes on unstructured 3-{D}
+ tetrahedral grids using the Fast Marching Method},
+ journal = {Geophysical Journal International},
+ year = {2011},
+ volume = {184},
+ pages = {885-896},
+ number = {2},
+ doi = {10.1111/j.1365-246X.2010.04880.x}
+ url = {http://dx.doi.org/10.1111/j.1365-246X.2010.04880.x}
+}
+@ARTICLE{qian07,
+ author = {Qian, Jianliang and Zhang, Yong-Tao and Zhao, Hong-Kai},
+ title = {Fast Sweeping Methods for Eikonal Equations on Triangular Meshes},
+ journal = {SIAM Journal on Numerical Analysis},
+ year = {2007},
+ volume = {45},
+ pages = {83--107},
+ number = {1},
+ doi = {10.1137/050627083},
+ publisher = {Society for Industrial and Applied Mathematics},
+ url = {http://www.jstor.org/stable/40232919}
+}
+@Article{zhang06,
+ Title = {High Order Fast Sweeping Methods for Static {H}amilton–{J}acobi Equations},
+ Author = {Yong-Tao Zhang and Hong-Kai Zhao and Jianliang Qian},
+ Journal = {Journal of Scientific Computing},
+ Year = {2006},
+ Number = {1},
+ Pages = {25--56},
+ Volume = {29},
+ DOI = {10.1007/s10915-005-9014-3},
+ URL = {http://dx.doi.org/10.1007/s10915-005-9014-3}
+}
+@Article{zhao05,
+ Title = {A Fast Sweeping Method for Eikonal Equations},
+ Author = {Zhao, Hongkai},
+ Journal = {Mathematics of Computation},
+ Year = {2005},
+ Month = apr,
+ Number = {250},
+ Pages = {603--627},
+ Volume = {74},
+ Publisher = {American Mathematical Society},
+ URL = {http://www.jstor.org/stable/4100081}
+}
+```
+
+%package help
+Summary: Development documents and examples for ttcrpy
+Provides: python3-ttcrpy-doc
+%description help
+[![pypi](https://img.shields.io/pypi/v/ttcrpy.svg)](https://pypi.org/project/ttcrpy/)
+[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](./01_LICENSE.txt)
+[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1162725.svg)](https://doi.org/10.5281/zenodo.1162725)
+[![Build status](https://ci.appveyor.com/api/projects/status/t2kgoici4ydm9erv?svg=true)](https://ci.appveyor.com/project/bernard-giroux/ttcr)
+[![Documentation Status](https://readthedocs.org/projects/ttcrpy/badge/?version=latest)](https://ttcrpy.readthedocs.io/en/latest/?badge=latest)
+[![Downloads](https://pepy.tech/badge/ttcrpy)](https://pepy.tech/project/ttcrpy)
+This repo contains C++ and python codes for raytracing on regular and unstructured meshes.
+Matlab wrappers are provided as well.
+- [Python package](#heading)
+- [Stand alone command-line programs](#heading)
+- [Matlab mex files](#heading)
+- [References](#heading)
+<!-- toc -->
+## Python package
+`ttcrpy` is a package for computing traveltimes and raytracing that was
+developed with geophysical applications in mind, e.g. ray-based seismic/GPR
+tomography and microseismic event location (joint hypocenter-velocity
+inversion). The package contains code to perform computation on 2D and 3D
+rectilinear grids, as well as 2D triangular and 3D tetrahedral meshes. Three
+different algorithms have been implemented: the Fast-Sweeping Method, the
+Shortest-Path Method, and the Dynamic Shortest-Path Method. Calculations can
+be run in parallel on a multi-core machine.
+The core computing code is written in C++, and has been wrapped with cython.
+Documentation can be found on [Read The Docs](https://ttcrpy.readthedocs.io/)
+If you use `ttcrpy`, please cite
+[Giroux B. 2021. ttcrpy: A Python package for traveltime computation and raytracing.
+SoftwareX, vol. 16, 100834. doi: 10.1016/j.softx.2021.100834](https://www.sciencedirect.com/science/article/pii/S2352711021001217)
+## Stand-alone command-line programs
+There are three programs that can be called from the command line:
+- `ttcr2d` : raytracing on planar 2D meshes
+- `ttcr2ds` : raytracing on undulated surfaces
+- `ttcr3d` : raytracing in 3D
+See [documentation](https://github.com/groupeLIAMG/ttcr/blob/master/docs/command_line.md) for
+command-line programs options and file formats.
+### Examples
+Look at the files in the examples directory for some samples.
+### Compiling
+The programs are coded in C++ and follow the C++11 standard. You must have VTK
+(http://vtk.org) installed on your system, to benefit from full functionalities.
+Files from the eigen3 (http://eigen.tuxfamily.org) and boost
+(http://www.boost.org) libraries are distributed with the source to facilitate
+compilation. These codes were compiled and tested on macs with the default
+compiler (clang). They were also tested to some extent under linux with g++
+version 4.8.
+## Matlab wrappers
+To compile the mexfiles, you will need:
+- a C++ compiler that conforms to the C++11 standard
+- the source codes of the ttcr package
+On my OS X machine, I use this command to compile from a terminal:
+```
+MATLAB=/Applications/MATLAB_R2014a.app
+$MATLAB/bin/mex -O CXXFLAGS='$CXXFLAGS -std=c++11 -stdlib=libc++' \
+LDFLAGS='$LDFLAGS -std=c++11 -stdlib=libc++' -largeArrayDims -v \
+-I$HOME/src/ttcr/ttcr -I$HOME/src/ttcr/boost_1_81_0 \
+-I$HOME/src/ttcr/eigen-3.4.0 grid2dunsp_mex.cpp
+```
+3D classes must be compiled with `verbose.cpp` in the list of source files, i.e.
+```
+$MATLAB/bin/mex -O CXXFLAGS='$CXXFLAGS -std=c++11 -stdlib=libc++' \
+LDFLAGS='$LDFLAGS -std=c++11 -stdlib=libc++' -largeArrayDims -v \
+-I$HOME/src/ttcr/ttcr -I$HOME/src/ttcr/boost_1_81_0 \
+-I$HOME/src/ttcr/eigen-3.4.0 grid3dunfs_mex.cpp verbose.cpp
+```
+On a windows machine with intel compiler installed, I could compile it from the matlab prompt with:
+```
+mex -v -O COMPFLAGS='$COMPFLAGS /Qstd=c++11' -largeArrayDims -I../ttcr -I../boost_1_81_0 -I../eigen-3.4.0 grid2dunsp_mex.cpp
+```
+Unfortunately, I cannot offer extensive support for compiling on other platforms, especially windows variants.
+Please report bugs to https://github.com/groupeLIAMG/ttcr/issues
+## References
+```
+@article{doi:10.1111/1365-2478.12930,
+ author = {Nasr, Maher and Giroux, Bernard and Dupuis, J. Christian},
+ title = {A hybrid approach to compute seismic travel times in three-dimensional tetrahedral meshes},
+ journal = {Geophysical Prospecting},
+ volume = {n/a},
+ number = {n/a},
+ pages = {},
+ keywords = {Travel time, Seismic modelling, Ray tracing, Seismics, Computing aspects},
+ doi = {10.1111/1365-2478.12930},
+ url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/1365-2478.12930},
+ eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1111/1365-2478.12930},
+}
+@inbook{nasr18,
+ author = { Maher Nasr and Bernard Giroux and J. Christian Dupuis },
+ title = {An optimized approach to compute traveltimes in 3D unstructured meshes},
+ booktitle = {SEG Technical Program Expanded Abstracts 2018},
+ chapter = {},
+ pages = {5073-5077},
+ year = {2018},
+ doi = {10.1190/segam2018-2997918.1},
+ URL = {https://library.seg.org/doi/abs/10.1190/segam2018-2997918.1},
+ eprint = {https://library.seg.org/doi/pdf/10.1190/segam2018-2997918.1}
+}
+@InProceedings{giroux14,
+ Title = {Comparison of grid-based methods for raytracing on unstructured meshes},
+ Author = {Bernard Giroux},
+ Booktitle = {SEG Technical Program Expanded Abstracts},
+ Year = {2014},
+ Pages = {3388-3392},
+ Chapter = {649},
+ DOI = {10.1190/segam2014-1197.1},
+ Eprint = {http://library.seg.org/doi/pdf/10.1190/segam2014-1197.1},
+ URL = {http://dx.doi.org/10.1190/segam2014-1197.1}
+}
+@ARTICLE{giroux13,
+ author = {Bernard Giroux and Beno\^{\i}t Larouche},
+ title = {Task-parallel implementation of {3D} shortest path raytracing for
+ geophysical applications},
+ journal = {Computers & Geosciences},
+ year = {2013},
+ volume = {54},
+ pages = {130--141},
+ number = {0},
+ doi = {10.1016/j.cageo.2012.12.005}
+ url = {http://dx.doi.org/10.1016/j.cageo.2012.12.005}
+}
+@INPROCEEDINGS{giroux13b,
+ author = {Bernard Giroux},
+ title = {Shortest path raytracing on tetrahedral meshes},
+ booktitle = {75$^{th}$ EAGE Conference \& Exhibition},
+ year = {2013},
+ address = {London},
+ organization = {EAGE},
+ doi = {10.3997/2214-4609.20130236}
+ url = {http://dx.doi.org/10.3997/2214-4609.20130236}
+}
+@ARTICLE{lelievre11,
+ author = {Leli\`evre, Peter G. and Farquharson, Colin G. and Hurich, Charles A.},
+ title = {Computing first-arrival seismic traveltimes on unstructured 3-{D}
+ tetrahedral grids using the Fast Marching Method},
+ journal = {Geophysical Journal International},
+ year = {2011},
+ volume = {184},
+ pages = {885-896},
+ number = {2},
+ doi = {10.1111/j.1365-246X.2010.04880.x}
+ url = {http://dx.doi.org/10.1111/j.1365-246X.2010.04880.x}
+}
+@ARTICLE{qian07,
+ author = {Qian, Jianliang and Zhang, Yong-Tao and Zhao, Hong-Kai},
+ title = {Fast Sweeping Methods for Eikonal Equations on Triangular Meshes},
+ journal = {SIAM Journal on Numerical Analysis},
+ year = {2007},
+ volume = {45},
+ pages = {83--107},
+ number = {1},
+ doi = {10.1137/050627083},
+ publisher = {Society for Industrial and Applied Mathematics},
+ url = {http://www.jstor.org/stable/40232919}
+}
+@Article{zhang06,
+ Title = {High Order Fast Sweeping Methods for Static {H}amilton–{J}acobi Equations},
+ Author = {Yong-Tao Zhang and Hong-Kai Zhao and Jianliang Qian},
+ Journal = {Journal of Scientific Computing},
+ Year = {2006},
+ Number = {1},
+ Pages = {25--56},
+ Volume = {29},
+ DOI = {10.1007/s10915-005-9014-3},
+ URL = {http://dx.doi.org/10.1007/s10915-005-9014-3}
+}
+@Article{zhao05,
+ Title = {A Fast Sweeping Method for Eikonal Equations},
+ Author = {Zhao, Hongkai},
+ Journal = {Mathematics of Computation},
+ Year = {2005},
+ Month = apr,
+ Number = {250},
+ Pages = {603--627},
+ Volume = {74},
+ Publisher = {American Mathematical Society},
+ URL = {http://www.jstor.org/stable/4100081}
+}
+```
+
+%prep
+%autosetup -n ttcrpy-1.2.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-ttcrpy -f filelist.lst
+%dir %{python3_sitearch}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.2.1-1
+- Package Spec generated