| Name | bohr-atom JSON |
| Version |
0.1.1
JSON |
| download |
| home_page | None |
| Summary | Una librería para cálculos y visualizaciones del modelo atómico de Bohr |
| upload_time | 2025-10-24 04:01:46 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.8 |
| license | MIT |
| 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"
}