A powerful package for computing generating series for tropical Hurwitz numbers of elliptic curves via mirror symmetry and Feynman integrals.
The GromovWitten package provides a comprehensive solution for computing generating series for tropical Hurwitz numbers of elliptic curves through mirror symmetry and Feynman integrals. Through a correspondence theorem, it also determines Hurwitz numbers in the context of algebraic geometry.
- Computation of generating series for tropical Hurwitz numbers
- Integration with GPI-Space for Feynman integral computations
- Support for Gromov-Witten invariants calculation
- C++ and XML implementation for high performance
- Install Spack package manager following the official instructions
- Install required packages:
spack install [email protected]
spack install flint
- Clone the repository:
git clone https://github.com/singular-gpispace/gspc-gromovwitten.git
cd gspc-gromovwitten
-
Configure the build:
- Modify
CMakeLists.txt
andinstall.sh
to include paths to GPI-Space and flint libraries
- Modify
-
Launch GPI-Space monitor (required for logging):
spack load [email protected]
gspc-monitor --port 9876 &
- Run the installation:
./install.sh
Before running any GPI-Space application, ensure the logger service is running. The application requires the following command-line arguments:
--log-host
: Hostname for the logger service (usually "localhost")--log-port
: Port number for the logger service--gspc-home
: Path to GPI-Space installation--nodefile
: Path to file containing hostnames--rif-strategy
: Strategy for bootstrapping (usually "ssh")--topology
: Worker configuration (format: "worker-name:num-workers")
Compute the Feynman Integral of degree d=4:
time ~/gpi/try_gpi/gspc-gromovwitten/bin/bin/feynman \
--gspc-home ~/singular-gpispace/spack/opt/spack/linux-ubuntu22.04-skylake/gcc-11.3.0/gpi-space-24.12-jz6b4m6ql54fmhkpq6gbico2neic3kd5/ \
--nodefile ~/gpi/try_gpi/gspc-gromovwitten/nodefile \
--rif-strategy ssh \
--topology "worker:7" \
--N 6 \
--degree 4 \
--graph "{{1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}}" \
--log-host localhost \
--log-port 9876
When running the computation, you should see output similar to this:
I: starting base sdpa components on waas 36103 1596330...
I: starting top level gspc logging demultiplexer on waas
=> accepting registration on 'TCP: <<waas:45265>>, SOCKET: <<waas:\0bbe38>>'
I: starting agent: agent-waas 36103 1596330-0 on rif entry point waas 36103 1596330
I: starting worker workers (parent agent-waas 36103 1596330-0, 7/host, unlimited, 0 SHM) with parent agent-waas 36103 1596330-0 on rif entry point waas 36103 1596330
terminating drts-kernel on waas 36103 1596330: 1596378 1596366 1596354 1596372 1596360 1596348 1596384
terminating agent on waas 36103 1596330: 1596340
terminating logging-demultiplexer on waas 36103 1596330: 1596335
feynman_degree: 20736
If you don't have access to the GPI-Space monitor GUI, you can redirect the output to a file:
# Create and redirect output to monitor.txt
rm -f monitor.txt && touch monitor.txt && \
cd /path/to/gpi-space/bin && \
stdbuf -oL -eL ./gspc-logging-to-stdout.exe --port 9876 >> monitor.txt 2>&1
This project is licensed under the MIT License - see the LICENSE file for details.