Metadata-Version: 2.4
Name: naturophysx
Version: 2.0.0
Summary: Comprehensive Natural Sciences Library - Physics & Chemistry
Home-page: https://github.com/PinguinSoftware/naturophysx
Author: Pinguin Software
Author-email: Pinguin Software <contact@pinguinsoftware.de>
License: MIT
Project-URL: Homepage, https://github.com/PinguinSoftware/naturophysx
Project-URL: Documentation, https://naturophysx.readthedocs.io
Project-URL: Repository, https://github.com/PinguinSoftware/naturophysx.git
Project-URL: Issues, https://github.com/PinguinSoftware/naturophysx/issues
Keywords: physics,chemistry,natural-sciences,scientific-computing,numerical-methods,mechanics,quantum,thermodynamics,electromagnetism
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20.0
Requires-Dist: scipy>=1.7.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=3.0; extra == "dev"
Requires-Dist: black>=22.0; extra == "dev"
Requires-Dist: pylint>=2.12; extra == "dev"
Requires-Dist: mypy>=0.950; extra == "dev"
Provides-Extra: jupyter
Requires-Dist: jupyter>=1.0; extra == "jupyter"
Requires-Dist: jupyterlab>=3.0; extra == "jupyter"
Requires-Dist: matplotlib>=3.3; extra == "jupyter"
Requires-Dist: ipython>=7.0; extra == "jupyter"
Provides-Extra: doc
Requires-Dist: sphinx>=4.0; extra == "doc"
Requires-Dist: sphinx-rtd-theme>=1.0; extra == "doc"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# NaturoPhysX - Comprehensive Natural Sciences Library

[![Python 3.8+](https://img.shields.io/badge/Python-3.8%2B-blue)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

**NaturoPhysX** ist eine umfassende, professionelle Python-Bibliothek für **Physik** und **Chemie**. Sie deckt alle wichtigen Bereiche der Naturwissenschaften ab und bietet über **200+ Funktionen** für präzise wissenschaftliche Berechnungen.

## 🎯 Features

### 🔬 **Physik (Physics)**
- **Klassische Mechanik**: Kinematik, Dynamik, Rotation, Gravitation (50+ Funktionen)
- **Optik**: Geometrische und Wellenoptik, Photonen (30+ Funktionen)
- **Elektromagnetismus**: Maxwell-Gleichungen, Schaltkreise, Felder (25+ Funktionen)
- **Thermodynamik**: Wärmeleitung, Zustandsgleichungen, Entropy (30+ Funktionen)
- **Strömungsmechanik**: Bernoulli, Stokes-Widerstand, Reynoldszahl (25+ Funktionen)
- **Akustik**: Schallwellen, Doppler-Effekt, Resonanz (20+ Funktionen)
- **Quantenmechanik**: Schrödinger-Gleichung, Wasserstoffatom, Unschärfe (30+ Funktionen)
- **Relativitätstheorie**: Lorentz-Transformationen, Schwarzschild-Metrik (35+ Funktionen)
- **Astronomie**: Orbitalmecanik, Kepler-Gesetze, N-Körper-Problem (25+ Funktionen)

### ⚛️ **Chemie (Chemistry)**
- **Periodensystem**: Atomare Eigenschaften, Elektronegativität, Molare Masse (14+ Elemente)
- **Molekulare Eigenschaften**: Bindungsanalyse, Bindungsenergien
- **Stöchiometrie**: Molare Berechnungen, Verdünnungen, Prozentkomposition
- **Säure-Base-Gleichgewicht**: pH/pOH, Lambert-Yasselbalch, Puffersysteme
- **Organische Chemie**: Funktionelle Gruppen, Ungesättigungsgrad
- **Reaktionskinetik**: Arrhenius-Gleichung, Halbwertzeiten, Geschwindigkeitsgesetze
- **Thermochemie**: Enthalpie, Gibbs-Energie, Spontaneität (spontaneity assessment)
- **Redoxchemie**: Oxidationszustände, Zellpotential (Nernst-Gleichung)
- **Molekulare Simulationen**: Lennard-Jones-Potential, MD-Basics

## ⚡ Installation

### PyPI (Empfohlen)
```bash
pip install naturophysx
```

### Von Quelle
```bash
git clone https://github.com/yourgithub/naturophysx.git
cd naturophysx
pip install -e .
```

### Mit Entwicklungs-Tools
```bash
pip install naturophysx[dev]
```

### Für Jupyter/Plotting
```bash
pip install naturophysx[jupyter]
```

## 🚀 Quick Start

### Physik-Beispiel: Klassische Mechanik

```python
from naturophysx import mechanics, constants

# Berechne Geschwindigkeit nach 5 Sekunden
# v = v0 + at, wobei v0=10 m/s, a=2 m/s², t=5 s
velocity = mechanics.kinematics.final_velocity(v0=10, a=2, t=5)
print(f"Endgeschwindigkeit: {velocity} m/s")  # Output: 20 m/s

# Berechne Wurfweite für Projektilbewegung
range_m = mechanics.kinematics.projectile_range(v0=50, theta_deg=45)
print(f"Wurfweite: {range_m:.2f} m")

# Gravitationskraft zwischen zwei Massen
F_gravity = mechanics.gravitation.gravitational_force(
    m1=1e24, m2=1e23, r=1e8
)
print(f"Gravitationskraft: {F_gravity:.2e} N")
```

### Chemie-Beispiel: Stöchiometrie & Säure-Base

```python
from naturophysx.chemistry import periodic_table, stoich, acid_base

# Berechne molare Masse von Wasser (H2O)
h_mass = periodic_table.get_molar_mass("H")
o_mass = periodic_table.get_molar_mass("O")
h2o_mass = 2*h_mass + o_mass
print(f"Molare Masse H2O: {h2o_mass:.2f} g/mol")  # 18.02 g/mol

# Berechne Molarity
moles = 0.5
volume_L = 2.0
molarity = stoich.molarity_calculation(moles, volume_L)
print(f"Molarity: {molarity} mol/L")  # 0.25 mol/L

# Berechne pH einer schwachen Säure
Ka = 1.8e-5  # Essigsäure
pH = acid_base.pH_weak_acid(Ka, acid_concentration=0.1)
print(f"pH: {pH:.2f}")  # ≈ 2.87
```

### Chemie-Beispiel: Reaktionskinetik

```python
from naturophysx.chemistry import kinetics

# Berechne Arrhenius Geschwindigkeitskonstante
# k = A * exp(-Ea / RT)
A = 1e13  # Präexponentieller Faktor [1/s]
Ea = 50000  # Aktivierungsenergie [J/mol]
T = 300  # Temperatur [K]
k = kinetics.rate_constant_arrhenius(A, Ea, T)
print(f"Geschwindigkeitskonstante: {k:.2e} s⁻¹")

# Halbwertzeit für Reaktion 1. Ordnung
half_life = kinetics.first_order_half_life(k)
print(f"Halbwertzeit: {half_life:.2e} s")
```

### Physik-Beispiel: Quantenmechanik

```python
from naturophysx.quantum import quantum_mechanics
from naturophysx import constants

# Wasserstoff Energieniveaus
n = 2
E2 = quantum_mechanics.hydrogen_energy_level(n)
print(f"E2 = {E2:.2e} J = {E2 / constants.E * 1e-19:.2f} eV")

# De-Broglie Wellenlänge
mass = constants.M_E
velocity = 1e6  # m/s
wavelength = quantum_mechanics.de_broglie_wavelength(mass, velocity)
print(f"De-Broglie Wellenlänge: {wavelength:.2e} m")
```

## 📚 Module Übersicht

### Physik-Module

| Modul | Funktionen | Highlights |
|-------|-----------|-----------|
| `mechanics` | 50+ | Kinematics, Dynamics, Energy, Momentum, Rotation, Gravitation |
| `optics` | 30+ | Ray optics, Wave optics, Diffraction, Interference |
| `electromagnetism` | 25+ | Maxwell, Circuits, Electromagnetic Fields |
| `thermodynamics` | 30+ | Ideal Gas Law, Heat Transfer, Entropy, Phase Transitions |
| `fluids` | 25+ | Bernoulli, Stokes Drag, Reynolds Number, Turbulence |
| `acoustics` | 20+ | Sound Waves, Doppler Effect, Resonance |
| `quantum` | 30+ | Schrödinger, Hydrogen Atom, Uncertainty, Photons |
| `relativity` | 35+ | Lorentz, Time Dilation, Schwarzschild, Cosmology |
| `astronomy` | 25+ | Kepler's Laws, Orbital Mechanics, N-Body |

### Chemie-Module

| Klasse/Modul | Funktionen | Beispiele |
|-------------|-----------|----------|
| `PeriodicTable` | 4 | `get_molar_mass()`, `get_atomic_number()`, `get_electronegativity()` |
| `Molecule` | 3 | Molarmassenberechnung, Elektronenzählung |
| `BondAnalysis` | 3 | Elektronegativitätsdifferenz, Bindungstypen, Bindungsenergien |
| `Stoichiometry` | 7 | Mol↔Gramm, Molarity, Dilution, Prozentkomposition |
| `AcidBaseEquilibrium` | 6 | pH/pOH, Schwache Säuren, Puffer (Henderson-Hasselbalch) |
| `OrganicMolecules` | 3 | Ungesättigungsgrad, Verbrennungswärme |
| `ReactionKinetics` | 6 | Arrhenius, Halbwertzeiten, Konzentrationsgesetze |
| `Thermochemistry` | 6 | Enthalpie, Entropie, Gibbs-Energie, Spontaneität |
| `RedoxChemistry` | 4 | Oxidationszustände, Zellpotential, Nernst-Gleichung |
| `MolecularSimulation` | 4 | Lennard-Jones, VdW-Volumen, MD-Basics |

## 🧮 Physikalische Konstanten

Alle Konstanten sind **CODATA 2018** oder aus scipy.constants:

```python
from naturophysx import (
    C,            # Lichtgeschwindigkeit: 299792458 m/s
    H,            # Planck-Konstante: 6.62607015e-34 J·s
    HBAR,         # Reduzierte Planck-Konstante
    K_B,          # Boltzmann-Konstante: 1.380649e-23 J/K
    N_A,          # Avogadro-Zahl: 6.02214076e23 mol⁻¹
    R,            # Universelle Gaskonstante: 8.314462618 J/(mol·K)
    G,            # Gravitationskonstante: 6.67430e-11 m³/(kg·s²)
    E,            # Elementarladung: 1.602176634e-19 C
    EPSILON_0,    # Permittivität des Vakuums
    MU_0,         # Permeabilität des Vakuums
    M_E,          # Elektronenmasse
    M_P,          # Protonenmasse
    SIGMA,        # Stefan-Boltzmann-Konstante
)
```

## 📝 Dokumentation

### Alle Funktionen haben Google-Style Docstrings:

```python
from naturophysx.quantum import quantum_mechanics

help(quantum_mechanics.hydrogen_energy_level)
# Output:
#     Calculate hydrogen atom energy level
#
#     Energy of nth level: E_n = -13.6 eV / n²
#
#     Args:
#         n (int): Principal quantum number (1, 2, 3, ...)
#
#     Returns:
#         float: Energy in Joules
#
#     Raises:
#         ValueError: If n < 1
#
#     Example:
#         >>> E1 = hydrogen_energy_level(1)
#         >>> print(f"{E1:.2e} J")
```

## 🧪 Tests ausführen

```bash
# Alle Tests
pytest tests/

# Mit Coverage
pytest --cov=naturophysx tests/

# Nur Chemistry-Tests
pytest tests/test_chemistry.py -v

# Nur Physics-Tests
pytest tests/test_cosmosphysx.py -v
```

## 📊 Beispiele

Siehe `examples/` für vollständige Demonstrationen:
- `quantum_examples.py` - Quantenmechanik Berechnungen
- `chemistry_examples.py` - Chemische Berechnungen & Reaktionen
- `mechanics_examples.py` - Projektile, Orbits, Kollisionen
- `thermodynamics_examples.py` - Wärmeleitung, Phasenübergänge

## 🛠️ Entwicklung

### Setup
```bash
git clone https://github.com/yourgithub/naturophysx.git
cd naturophysx
pip install -e ".[dev]"
```

### Code Style
```bash
black naturophysx/ tests/
pylint naturophysx/
```

### Type Checking
```bash
mypy naturophysx/ --ignore-missing-imports
```

### Dokumentation bauen
```bash
cd docs/
sphinx-build -b html . _build/
```

## 📖 Weitere Ressourcen

- 📚 [Vollständige Dokumentation](https://naturophysx.readthedocs.io)
- 🐛 [Issue Tracker](https://github.com/yourgithub/naturophysx/issues)
- 💬 [Diskussionsforum](https://github.com/yourgithub/naturophysx/discussions)
- 📋 [Changelog](CHANGELOG.md)

## 🤝 Beitragen

Wir freuen uns über Beiträge! Bitte:

1. Fork das Repository
2. Erstelle einen Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Committe deine Änderungen (`git commit -m 'Add AmazingFeature'`)
4. Push zum Branch (`git push origin feature/AmazingFeature`)
5. Öffne einen Pull Request

## 📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe [LICENSE](LICENSE) für Details.

## ⭐ Zitationen

Falls du NaturoPhysX in einer wissenschaftlichen Publikation verwendest, zitiere bitte:

```bibtex
@software{naturophysx2024,
  author = {Your Team},
  title = {NaturoPhysX: Comprehensive Natural Sciences Library},
  year = {2024},
  url = {https://github.com/yourgithub/naturophysx}
}
```

## 🎓 Für Studieren & Lerner

NaturoPhysX ist ideal für:
- 🏫 Gymnasien & Universitäten (Physik/Chemie Vorlesungen)
- 📖 Selbststudium & Hausaufgaben
- 🧬 Forschungsprojekte
- 👨‍💻 Numerische Simulationen
- 📊 Datenanalyse

## ⚠️ Wichtig

- **Genauigkeit**: Alle Funktionen verwenden SI-Einheiten wenn nicht anders angegeben
- **Fehlerbehandlung**: Ausnahmen werden für ungültige Eingaben geworfen
- **Performance**: Optimiert für genaue Berechnungen, nicht für extreme Performance
- **Validierung**: Getestete Formeln gegen wissenschaftliche Referenzen

## 📧 Support

Bei Fragen oder Problemen:
- 📧 Email: contact@example.com
- 💬 GitHub Discussions: [Forum](https://github.com/yourgithub/naturophysx/discussions)
- 🐛 Bug Reports: [Issues](https://github.com/yourgithub/naturophysx/issues)

---

**Made with ❤️ für die Science Community** 🚀
