CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-dustpy

Dust evolution in protoplanetary disks

Overview
Eval results
Files

constants.mddocs/

Physical Constants

Comprehensive set of physical constants in CGS units, defined in Fortran for consistency across Python and compiled extensions. All constants are available at module level and designed for use in astrophysical calculations.

Capabilities

Fundamental Constants

Core physical constants used throughout DustPy calculations.

from dustpy import constants as c

# Gravitational constant
G: float                    # 6.674e-8 [cm³/g/s²]

# Boltzmann constant
k_B: float                  # 1.381e-16 [erg/K]

# Proton mass
m_p: float                  # 1.673e-24 [g]

# Stefan-Boltzmann constant
sigma_sb: float             # 5.670e-5 [erg/cm²/K⁴/s]

# Pi
pi: float                   # 3.14159...

Astronomical Constants

Constants specific to astronomical and planetary science applications.

# Distance units
au: float                   # 1.496e13 [cm] - Astronomical unit

# Solar properties
M_sun: float                # 1.989e33 [g] - Solar mass
R_sun: float                # 6.960e10 [cm] - Solar radius

# Planetary masses
M_earth: float              # 5.972e27 [g] - Earth mass
M_jup: float                # 1.898e30 [g] - Jupiter mass

Time Constants

Time conversion factors for astrophysical calculations.

# Time units
year: float                 # 3.156e7 [s] - Year in seconds

Molecular Constants

Constants related to molecular properties and gas physics.

# Hydrogen molecule cross-section
sigma_H2: float             # 2.000e-15 [cm²] - Geometrical cross-section of H₂

Usage Examples

Basic Unit Conversions

import dustpy.constants as c

# Distance conversions
distance_au = 10.0                    # 10 AU
distance_cm = distance_au * c.au      # Convert to cm
print(f"10 AU = {distance_cm:.2e} cm")

# Mass conversions
stellar_mass = 0.5 * c.M_sun         # Half solar mass
earth_masses = stellar_mass / c.M_earth
print(f"0.5 solar masses = {earth_masses:.0f} Earth masses")

Time Scale Calculations

# Calculate orbital periods
orbital_radius = 5.2 * c.au          # Jupiter's orbit
orbital_period = 2 * c.pi * (orbital_radius**3 / (c.G * c.M_sun))**0.5
period_years = orbital_period / c.year

print(f"Orbital period at 5.2 AU: {period_years:.1f} years")

Physical Parameter Setup

# Set up disk parameters using constants
disk_mass = 0.01 * c.M_sun           # 1% of solar mass
inner_radius = 0.1 * c.au            # 0.1 AU
outer_radius = 300 * c.au            # 300 AU

# Temperature calculation
stellar_luminosity = 1.0 * c.R_sun**2 * c.sigma_sb * 5778**4  # Solar values
temperature_1au = (stellar_luminosity / (16 * c.pi * c.sigma_sb * c.au**2))**0.25
print(f"Temperature at 1 AU: {temperature_1au:.0f} K")

Gas Properties

# Calculate gas scale height
temperature = 150.0                  # K
mean_molecular_weight = 2.34 * c.m_p # For H₂/He mixture
stellar_mass = 1.0 * c.M_sun

radius = 1.0 * c.au
sound_speed = (c.k_B * temperature / mean_molecular_weight)**0.5
omega_k = (c.G * stellar_mass / radius**3)**0.5
scale_height = sound_speed / omega_k

print(f"Gas scale height at 1 AU: {scale_height/c.au:.3f} AU")

Collision Cross Sections

# Calculate mean free path
gas_density = 1e-9                  # g/cm³
number_density = gas_density / (2.34 * c.m_p)  # H₂/He mixture
mean_free_path = 1.0 / (number_density * c.sigma_H2)

print(f"Mean free path: {mean_free_path:.2e} cm")

Stokes Drag Calculations

# Calculate Stokes drag for dust particles
particle_size = 0.01                 # 100 micron particles [cm]
gas_density = 1e-9                  # g/cm³
sound_speed = 1e5                   # cm/s
mean_free_path = 1e4                # cm

# Drag coefficient depends on Knudsen number
knudsen = particle_size / mean_free_path

if knudsen > 1:
    # Epstein regime
    drag_coeff = 8.0/3.0 * gas_density * sound_speed / particle_size
else:
    # Stokes regime
    drag_coeff = 6.0 * c.pi * gas_density * sound_speed * particle_size / mean_free_path

print(f"Drag coefficient: {drag_coeff:.2e} g/cm²/s")

Constants Reference

Complete List of Available Constants

# All constants accessible via dustpy.constants
import dustpy.constants as c

# Fundamental physics
c.G                    # Gravitational constant [cm³/g/s²]
c.k_B                  # Boltzmann constant [erg/K]
c.m_p                  # Proton mass [g]
c.sigma_sb             # Stefan-Boltzmann constant [erg/cm²/K⁴/s]
c.pi                   # Pi

# Astronomical units and masses
c.au                   # Astronomical unit [cm]
c.M_sun                # Solar mass [g]
c.M_earth              # Earth mass [g]
c.M_jup                # Jupiter mass [g]
c.R_sun                # Solar radius [cm]

# Time
c.year                 # Year [s]

# Molecular
c.sigma_H2             # H₂ cross-section [cm²]

CGS Unit System

All constants are provided in CGS (centimeter-gram-second) units:

  • Length: centimeters (cm)
  • Mass: grams (g)
  • Time: seconds (s)
  • Temperature: Kelvin (K)
  • Energy: ergs (erg = g·cm²/s²)

Integration with Simulation

from dustpy import Simulation, constants as c

sim = Simulation()

# Use constants in initial conditions
sim.ini.gas.Mdisk = 0.05 * c.M_sun        # Disk mass
sim.ini.grid.rmin = 0.1 * c.au            # Inner radius
sim.ini.grid.rmax = 500 * c.au            # Outer radius
sim.ini.star.M = 1.0 * c.M_sun            # Stellar mass

# Constants are automatically available in std functions
sim.makegrids()
sim.initialize()

Install with Tessl CLI

npx tessl i tessl/pypi-dustpy

docs

constants.md

dust-physics.md

gas-physics.md

grid-stellar.md

index.md

plotting.md

simulation-control.md

simulation.md

utilities.md

tile.json