bohr-atom


Namebohr-atom JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryUna librería para cálculos y visualizaciones del modelo atómico de Bohr
upload_time2025-10-24 04:01:46
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords physics bohr atom quantum hydrogen
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Bohr Atom Library 🔬⚛️

Una librería en Python para cálculos y visualizaciones del modelo atómico de Bohr para átomos hidrogenoides.

## 📋 Descripción

Esta librería implementa el modelo de Bohr para átomos hidrogenoides (hidrógeno y iones con un solo electrón). Permite:

- Calcular niveles de energía para cualquier número cuántico principal *n*
- Determinar radios orbitales
- Calcular transiciones electrónicas (energía, frecuencia, longitud de onda)
- Visualizar diagramas de niveles de energía
- Graficar órbitas electrónicas

## 🚀 Instalación

### Desde PyPI

```bash
pip install bohr-atom
```

### Desde el código fuente

```bash
git clone https://github.com/tu-usuario/bohr-atom.git
cd bohr-atom
pip install -e .
```

## 📖 Uso Básico

### Crear un átomo de hidrógeno

```python
from bohr_atom import BohrAtom

# Átomo de hidrógeno (Z=1)
hydrogen = BohrAtom(Z=1)

# Calcular energía del nivel fundamental
E1 = hydrogen.energy_level_eV(n=1)
print(f"E₁ = {E1:.2f} eV")  # -13.60 eV

# Calcular radio de Bohr
r1 = hydrogen.orbital_radius_angstrom(n=1)
print(f"r₁ = {r1:.3f} Å")  # 0.529 Å
```

### Transiciones electrónicas

```python
# Transición de n=3 a n=2 (línea H-alpha)
wavelength = hydrogen.transition_wavelength_nm(n_initial=3, n_final=2)
print(f"λ = {wavelength:.1f} nm")  # 656.3 nm

# Frecuencia del fotón emitido
frequency = hydrogen.transition_frequency(n_initial=3, n_final=2)
print(f"ν = {frequency:.2e} Hz")
```

### Átomos hidrogenoides

```python
# Ion He⁺ (Z=2)
helium_ion = BohrAtom(Z=2)

E1_he = helium_ion.energy_level_eV(n=1)
print(f"E₁(He⁺) = {E1_he:.2f} eV")  # -54.40 eV (4 veces H)
```

### Visualizaciones

```python
import matplotlib.pyplot as plt

# Diagrama de niveles de energía
hydrogen.plot_energy_levels(n_max=5, show_transitions=True, 
                           transitions=[(3,2), (4,2), (5,2)])
plt.show()

# Órbitas electrónicas
hydrogen.plot_orbits(n_max=5)
plt.show()
```

## 📊 Ejemplos Completos

Ver la carpeta `examples/` para notebooks y scripts con casos de uso:

- `example_basic.py`: Cálculos básicos
- `example_transitions.py`: Serie de Balmer y Lyman
- `example_visualizations.ipynb`: Gráficos interactivos

## 🧪 Ejecutar Pruebas

```bash
# Instalar dependencias de desarrollo
pip install -e ".[dev]"

# Ejecutar pruebas
pytest

# Con reporte de cobertura
pytest --cov=bohr_atom --cov-report=html
```

## 📐 Fórmulas Implementadas

### Energía de los niveles

$$E_n = -\frac{Z^2 R_y}{n^2}$$

Donde:
- *Z*: número atómico
- *R<sub>y</sub>*: constante de Rydberg (13.6 eV)
- *n*: número cuántico principal

### Radio orbital

$$r_n = \frac{n^2 a_0}{Z}$$

Donde:
- *a<sub>0</sub>*: radio de Bohr (0.529 Å)

### Transiciones

$$\lambda = \frac{hc}{|\Delta E|}$$

$$\nu = \frac{|\Delta E|}{h}$$

## 🤝 Contribuciones

Este proyecto fue desarrollado como parte de un taller colaborativo. Contribuciones:

- **[Maria Moreno, SolarPunk]**: Implementación de cálculos de energía
- **[SolarPunk ]**: Funciones de transición y visualizaciones
- **[Maria Moreno ]**: Pruebas unitarias y documentación

### Flujo de trabajo

1. Fork del repositorio
2. Crear una rama: `git checkout -b feature/nueva-caracteristica`
3. Commit de cambios: `git commit -am 'Añadir nueva característica'`
4. Push a la rama: `git push origin feature/nueva-caracteristica`
5. Crear Pull Request

## 📝 Estructura del Proyecto

```
bohr-atom/
├── bohr_atom/
│   ├── __init__.py
│   ├── bohr_atom.py
│   └── constants.py
├── tests/
│   └── test_bohr_atom.py
├── examples/
│   ├── example_basic.py
│   └── example_transitions.py
├── pyproject.toml
├── README.md
└── LICENSE
```

## 📄 Licencia

MIT License - ver archivo

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "bohr-atom",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "physics, bohr, atom, quantum, hydrogen",
    "author": null,
    "author_email": "Maria Moreno <maamorenor@udistrital.edu.co>, Juan <juan@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/25/a6/8db170517373a22167954ca8d1892851880f2451c01acad79e6f3ab24779/bohr_atom-0.1.1.tar.gz",
    "platform": null,
    "description": "# Bohr Atom Library \ud83d\udd2c\u269b\ufe0f\n\nUna librer\u00eda en Python para c\u00e1lculos y visualizaciones del modelo at\u00f3mico de Bohr para \u00e1tomos hidrogenoides.\n\n## \ud83d\udccb Descripci\u00f3n\n\nEsta librer\u00eda implementa el modelo de Bohr para \u00e1tomos hidrogenoides (hidr\u00f3geno y iones con un solo electr\u00f3n). Permite:\n\n- Calcular niveles de energ\u00eda para cualquier n\u00famero cu\u00e1ntico principal *n*\n- Determinar radios orbitales\n- Calcular transiciones electr\u00f3nicas (energ\u00eda, frecuencia, longitud de onda)\n- Visualizar diagramas de niveles de energ\u00eda\n- Graficar \u00f3rbitas electr\u00f3nicas\n\n## \ud83d\ude80 Instalaci\u00f3n\n\n### Desde PyPI\n\n```bash\npip install bohr-atom\n```\n\n### Desde el c\u00f3digo fuente\n\n```bash\ngit clone https://github.com/tu-usuario/bohr-atom.git\ncd bohr-atom\npip install -e .\n```\n\n## \ud83d\udcd6 Uso B\u00e1sico\n\n### Crear un \u00e1tomo de hidr\u00f3geno\n\n```python\nfrom bohr_atom import BohrAtom\n\n# \u00c1tomo de hidr\u00f3geno (Z=1)\nhydrogen = BohrAtom(Z=1)\n\n# Calcular energ\u00eda del nivel fundamental\nE1 = hydrogen.energy_level_eV(n=1)\nprint(f\"E\u2081 = {E1:.2f} eV\")  # -13.60 eV\n\n# Calcular radio de Bohr\nr1 = hydrogen.orbital_radius_angstrom(n=1)\nprint(f\"r\u2081 = {r1:.3f} \u00c5\")  # 0.529 \u00c5\n```\n\n### Transiciones electr\u00f3nicas\n\n```python\n# Transici\u00f3n de n=3 a n=2 (l\u00ednea H-alpha)\nwavelength = hydrogen.transition_wavelength_nm(n_initial=3, n_final=2)\nprint(f\"\u03bb = {wavelength:.1f} nm\")  # 656.3 nm\n\n# Frecuencia del fot\u00f3n emitido\nfrequency = hydrogen.transition_frequency(n_initial=3, n_final=2)\nprint(f\"\u03bd = {frequency:.2e} Hz\")\n```\n\n### \u00c1tomos hidrogenoides\n\n```python\n# Ion He\u207a (Z=2)\nhelium_ion = BohrAtom(Z=2)\n\nE1_he = helium_ion.energy_level_eV(n=1)\nprint(f\"E\u2081(He\u207a) = {E1_he:.2f} eV\")  # -54.40 eV (4 veces H)\n```\n\n### Visualizaciones\n\n```python\nimport matplotlib.pyplot as plt\n\n# Diagrama de niveles de energ\u00eda\nhydrogen.plot_energy_levels(n_max=5, show_transitions=True, \n                           transitions=[(3,2), (4,2), (5,2)])\nplt.show()\n\n# \u00d3rbitas electr\u00f3nicas\nhydrogen.plot_orbits(n_max=5)\nplt.show()\n```\n\n## \ud83d\udcca Ejemplos Completos\n\nVer la carpeta `examples/` para notebooks y scripts con casos de uso:\n\n- `example_basic.py`: C\u00e1lculos b\u00e1sicos\n- `example_transitions.py`: Serie de Balmer y Lyman\n- `example_visualizations.ipynb`: Gr\u00e1ficos interactivos\n\n## \ud83e\uddea Ejecutar Pruebas\n\n```bash\n# Instalar dependencias de desarrollo\npip install -e \".[dev]\"\n\n# Ejecutar pruebas\npytest\n\n# Con reporte de cobertura\npytest --cov=bohr_atom --cov-report=html\n```\n\n## \ud83d\udcd0 F\u00f3rmulas Implementadas\n\n### Energ\u00eda de los niveles\n\n$$E_n = -\\frac{Z^2 R_y}{n^2}$$\n\nDonde:\n- *Z*: n\u00famero at\u00f3mico\n- *R<sub>y</sub>*: constante de Rydberg (13.6 eV)\n- *n*: n\u00famero cu\u00e1ntico principal\n\n### Radio orbital\n\n$$r_n = \\frac{n^2 a_0}{Z}$$\n\nDonde:\n- *a<sub>0</sub>*: radio de Bohr (0.529 \u00c5)\n\n### Transiciones\n\n$$\\lambda = \\frac{hc}{|\\Delta E|}$$\n\n$$\\nu = \\frac{|\\Delta E|}{h}$$\n\n## \ud83e\udd1d Contribuciones\n\nEste proyecto fue desarrollado como parte de un taller colaborativo. Contribuciones:\n\n- **[Maria Moreno, SolarPunk]**: Implementaci\u00f3n de c\u00e1lculos de energ\u00eda\n- **[SolarPunk ]**: Funciones de transici\u00f3n y visualizaciones\n- **[Maria Moreno ]**: Pruebas unitarias y documentaci\u00f3n\n\n### Flujo de trabajo\n\n1. Fork del repositorio\n2. Crear una rama: `git checkout -b feature/nueva-caracteristica`\n3. Commit de cambios: `git commit -am 'A\u00f1adir nueva caracter\u00edstica'`\n4. Push a la rama: `git push origin feature/nueva-caracteristica`\n5. Crear Pull Request\n\n## \ud83d\udcdd Estructura del Proyecto\n\n```\nbohr-atom/\n\u251c\u2500\u2500 bohr_atom/\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 bohr_atom.py\n\u2502   \u2514\u2500\u2500 constants.py\n\u251c\u2500\u2500 tests/\n\u2502   \u2514\u2500\u2500 test_bohr_atom.py\n\u251c\u2500\u2500 examples/\n\u2502   \u251c\u2500\u2500 example_basic.py\n\u2502   \u2514\u2500\u2500 example_transitions.py\n\u251c\u2500\u2500 pyproject.toml\n\u251c\u2500\u2500 README.md\n\u2514\u2500\u2500 LICENSE\n```\n\n## \ud83d\udcc4 Licencia\n\nMIT License - ver archivo\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Una librer\u00eda para c\u00e1lculos y visualizaciones del modelo at\u00f3mico de Bohr",
    "version": "0.1.1",
    "project_urls": {
        "Documentation": "https://github.com/Almarm-r//bohr-atom#readme",
        "Homepage": "https://github.com/Almarm-r/bohr_atom",
        "Issues": "https://github.com/Almarm-r//bohr-atom/issues",
        "Repository": "https://github.com/Almarm-r//bohr-atom"
    },
    "split_keywords": [
        "physics",
        " bohr",
        " atom",
        " quantum",
        " hydrogen"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "987c1d246877ea2f8a6d0bf9dd77626623d1ddca5c07f08d89d4e38672c4e401",
                "md5": "ce68ac10cb6ef78100599c5f83a0d9ff",
                "sha256": "87fc5724635b05dd8720c944294d279a9a1b7a1a29a87a64927c6dcf23f479db"
            },
            "downloads": -1,
            "filename": "bohr_atom-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ce68ac10cb6ef78100599c5f83a0d9ff",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 6536,
            "upload_time": "2025-10-24T04:01:44",
            "upload_time_iso_8601": "2025-10-24T04:01:44.722854Z",
            "url": "https://files.pythonhosted.org/packages/98/7c/1d246877ea2f8a6d0bf9dd77626623d1ddca5c07f08d89d4e38672c4e401/bohr_atom-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "25a68db170517373a22167954ca8d1892851880f2451c01acad79e6f3ab24779",
                "md5": "b8c2e9080902284513d5f126650afc81",
                "sha256": "c3454c045382a19af287576bdac8aa357aedb4b804a0b3c7a81e896f928f76aa"
            },
            "downloads": -1,
            "filename": "bohr_atom-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "b8c2e9080902284513d5f126650afc81",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 7504,
            "upload_time": "2025-10-24T04:01:46",
            "upload_time_iso_8601": "2025-10-24T04:01:46.019256Z",
            "url": "https://files.pythonhosted.org/packages/25/a6/8db170517373a22167954ca8d1892851880f2451c01acad79e6f3ab24779/bohr_atom-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-24 04:01:46",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Almarm-r",
    "github_project": "bohr_atom",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "bohr-atom"
}
        
Elapsed time: 0.65043s