Metadata-Version: 2.1
Name: ivlam
Version: 0.1.10
Summary: A Python wrapper for ivlam
Author-Email: pennbay <pennbay@outlook.com>
License: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Project-URL: Repository, https://github.com/pennbay/ivlam.git
Project-URL: Bug tracker, https://github.com/pennbay/ivlam/issues
Requires-Python: >=3.8
Description-Content-Type: text/markdown

[![pypi](https://img.shields.io/pypi/v/ivlam.svg?logo=python&logoColor=white)](https://pypi.org/project/ivlam/)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)

# Python Wrapper for ivlam

This is a python wrapper of the Fortran code of Russell's Lambert Solver.

## Install
```
pip install ivlam
```

## Usage
Initialize 
```python
from ivlam import *

infoload = ivlam.initialize(-1)
if(infoload!=0):
    print('Error in ivlam_initialize')
```

Solve the Problem
```python
r1vec=np.array([1.0,2.0,3.0])  
r2vec=np.array([2.0,-3.0,-4.0])
tof=450.0

prograde=True
direction=ivlam.getdirection(prograde,r1vec,r2vec)

dimensionV=10
v1vec,v2vec,uptonhave,inforeturnstatusn,infohalfrevstatus = ivlam.thrun(r1vec,r2vec,tof,direction,dimensionV,dimensionV)
if(inforeturnstatusn!=0):
    print('Error in ivlam_thrun')
if(infohalfrevstatus!=0):
    print('This example is very close to the nPi transfer')
print(v1vec[:,dimensionV-uptonhave:dimensionV+uptonhave+1])
print(v2vec[:,dimensionV-uptonhave:dimensionV+uptonhave+1])
```

## License
GNU General Public License v3 or later (GPLv3+)


## Reference
 [1] Russell, Ryan P., "On the Solution to Every Lambert Problem," 
        Celestial Mechanics and Dynamical Astronomy, Vol. 131, Article 50, 2019, pp. 1-33, 
        https://dx.doi.org/10.1007/s10569-019-9927-z 

 [2] Russell, Ryan P., "Complete Lambert Solver Including Second-Order Sensitivities," 
        Journal of Guidance, Control, and Dynamics, accepted 2021,
        https://doi.org/10.2514/1.G006089 