Skip to content

A Python tool for visualizing electron orbitals in atoms using interactive 3D plots.

License

Notifications You must be signed in to change notification settings

Fluffy-tofu/AtomicOrbit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AtomicOrbit - Electron Orbital Visualization Tool

A Python tool for visualizing electron orbitals in atoms using interactive 3D plots.

AtomicOrbit Logo

Features

  • Visualize single electron orbitals with specific quantum numbers
  • Generate multiple orbital plots for any atom up to Neodymium (60 electrons)
  • Create combined visualizations of all orbitals for an atom
  • Interactive 3D plots using Plotly
  • Command-line interface for easy usage
  • Safe your plots as html

Installation

To install AtomicOrbit, follow these steps:

  1. Ensure you have Python 3.7 or higher installed on your system.
  2. Clone this repository:
    git clone https://github.com/Fluffy-tofu/AtomicOrbit.git
    cd AtomicOrbit
    
  3. Install the package using pip:
    pip install -e .
    

Usage

AtomicOrbit can be used via the command line. Here are some example commands:

  1. Visualize a single orbital:

    atomicorbit -p single -n 2 -l 1 -m 0
    
  2. Visualize all orbitals for carbon in one plot:

    atomicorbit -a Copper -p all
    
  3. Visualize every orbital for an atom with 29 electrons (copper) seperatly:

    atomicorbit -e 60 -p multiple
    

For more options and information, use the help command:

atomicorbit -h

Examples

Here are some example visualizations generated by AtomicOrbit:

Single Orbital (2p) All orbitals for Copper
Image 1 Image 2
Every orbital in separate plots for Neodymium:
Multiple Orbitals

Mathematical Implementation

The implemented atomic orbital wave function $\Psi_{nlm}$ consists of:

$$\Psi_{nlm}(r,\theta,\phi) = R_{nl}(r) \cdot Y_{lm}(\theta,\phi)$$

with radial part

$$R_{nl}(r) = \sqrt{\left(\frac{2Z}{na_0}\right)^3\frac{(n-l-1)!}{2n(n+l)!}}\left(\frac{2Zr}{na_0}\right)^l e^{-\frac{Zr}{na_0}}L_{n-l-1}^{2l+1}\left(\frac{2Zr}{na_0}\right)$$

and spherical harmonics

$$Y_{lm}(\theta,\phi) = \sqrt{\frac{2l+1}{4\pi}\frac{(l-m)!}{(l+m)!}}P_l^m(\cos\theta)e^{im\phi}$$

where $L_{n-l-1}^{2l+1}$ is the the associated Laguerre polynomial and $P_l^m$ is the Legendre polynomial

Contributing

Contributions to AtomicOrbit are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A Python tool for visualizing electron orbitals in atoms using interactive 3D plots.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages