Metadata-Version: 2.1
Name: cyclehunter
Version: 0.0.1
Summary: Framework for Discrete Nonlinear Dynamics and Chaos
Home-page: UNKNOWN
Author: Matthew Gudorf and Ibrahim Abu-Hijleh
Author-email: matthew.gudorf@gmail.com
License: UNKNOWN
Keywords: pde,partial differential equation,numeric,numerical simulation,solver,framework,periodic cycle
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
Provides-Extra: docs
License-File: LICENSE

# Cyclehunter

## Introduction

This package/repository is a organizational effort to manage a collection of Physics research projects associated
with the Center of Nonlinear Dynamics and Chaos at Georgia Tech and their collaborators. The sister Python package,
orbithunter, was mainly concerned with solving differential algebraic equations associated with finding spatiotemporal
solutions to partial differential equations. 

In this case, we are concerned with counting of prime orbits of discrete mappings such as Arnold's cat map, phi-k scalar
field theory, etc. where the systems are simple enough to enable analytic counting formulae and well founded symbolic
alphabets. Because of this, the overhead to find individual cycles is greatly diminished; the main hurdle is instead to
enumerate the entire set of prime cycles for usage in cycle expansion equations / dynamical zeta functions. "Prime"
denotes the set of orbits which remain after quotienting all symmetries, i.e. the unique cycles.

Therefore, the focus is much less on singular/individual orbits, rather, entire collections of prime cycles. Numerically
this is a different challenge and makes much more sense to solve the problem *en masse* because cycles of a specified 
length $n$ are easy to enumerate, can be solved for simultaneously and in parallel. The object oriented programming
which results from this is one in which the custom class objects will represent *all* cycles at once. 

You can install the python environment by downloading a python distribution (go to python.org).

I highly recommend you create a virtual environment as well; so do one of the following
in command line terminal


```
pip install -r requirements.txt
```

or

(note the periods; they are necessary)

Make a folder, copy the requirements.txt file into it, then type these commands; this
assumes your python.exe is in your terminal path. 

```
python -m venv .
cd Scripts
./activate
cd ..
pip install -r requirements.txt
```

