CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-dustpy

Dust evolution in protoplanetary disks

Overview
Eval results
Files

simulation.mddocs/

Simulation Interface

The main Simulation class that manages dust coagulation and disk evolution simulations. This class inherits from simframe.Frame and provides the primary interface for setting up, running, and analyzing dust evolution in protoplanetary disks.

Capabilities

Main Simulation Class

The core class for running dust coagulation simulations, managing the complete simulation state including grids, physical quantities, and integration schemes.

class Simulation:
    def __init__(self, **kwargs):
        """
        Initialize a new DustPy simulation.

        Parameters:
        - kwargs: Additional arguments passed to simframe.Frame
        """

    def makegrids(self):
        """
        Create radial and mass grids for the simulation.

        Sets up the computational grids based on initial conditions:
        - Radial grid from inner to outer disk radius
        - Logarithmic mass grid for dust size distribution
        """

    def initialize(self):
        """
        Initialize the simulation frame with standard values.

        Sets up all physical quantities, boundary conditions, and
        prepares the simulation for execution using the standard
        functions from dustpy.std modules.
        """

    def run(self):
        """
        Run the simulation with mass conservation checks.

        Executes the main simulation loop, advancing the system
        through time while monitoring mass conservation and
        applying the selected integration schemes.
        """

    def checkmassconservation(self):
        """
        Check and print mass conservation errors.

        Analyzes the simulation state to verify that mass is
        conserved within acceptable tolerances and reports
        any significant violations.
        """

    def setdustintegrator(self, scheme="explicit", method="cash-karp"):
        """
        Set the dust integrator scheme and method.

        Parameters:
        - scheme: Integration scheme ("explicit" or "implicit")
        - method: Integration method (e.g., "cash-karp", "euler")
        """

Simulation Properties

Key properties accessible on simulation instances for configuration and data access.

# Initial conditions parameter namespace
sim.ini: SimpleNamespace
    # Dust initial conditions
    sim.ini.dust.aIniMax: float          # Maximum initial grain size [cm]
    sim.ini.dust.allowDriftingParticles: bool  # Allow particles to drift
    sim.ini.dust.erosionMassRatio: float # Erosion mass ratio
    sim.ini.dust.d2gRatio: float         # Initial dust-to-gas ratio
    sim.ini.dust.distExp: float          # Size distribution exponent
    sim.ini.dust.excavatedMass: float    # Excavated mass parameter
    sim.ini.dust.fragmentDistribution: float  # Fragment distribution slope
    sim.ini.dust.rhoMonomer: float       # Monomer density [g/cm³]
    sim.ini.dust.vFrag: float            # Fragmentation velocity [cm/s]

    # Gas initial conditions
    sim.ini.gas.Mdisk: float             # Disk mass [g]
    sim.ini.gas.SigmaRc: float           # Characteristic radius [cm]
    sim.ini.gas.SigmaExp: float          # Surface density radial exponent
    sim.ini.gas.alpha: float             # Turbulent alpha parameter
    sim.ini.gas.mu: float                # Mean molecular weight [g]

    # Grid initial conditions
    sim.ini.grid.mmax: float             # Maximum particle mass [g]
    sim.ini.grid.mmin: float             # Minimum particle mass [g]
    sim.ini.grid.Nmbpd: int              # Number of mass bins per decade
    sim.ini.grid.Nr: int                 # Number of radial grid points
    sim.ini.grid.rmax: float             # Outer disk radius [cm]
    sim.ini.grid.rmin: float             # Inner disk radius [cm]

    # Star initial conditions
    sim.ini.star.M: float                # Stellar mass [g]
    sim.ini.star.R: float                # Stellar radius [cm]
    sim.ini.star.T: float                # Stellar temperature [K]

# Physical quantity groups
sim.dust: Group                          # Dust quantities
sim.gas: Group                           # Gas quantities
sim.grid: Group                          # Grid quantities
sim.star: Group                          # Stellar quantities

# Integration variables
sim.t: IntVar                            # Time integration variable
sim.integrator: Integrator               # Integration scheme object
sim.writer: callable                     # Output writer object

Dust Group Properties

Properties within the dust group that represent the dust component state.

# Primary dust quantities
sim.dust.Sigma: Field                    # Surface density per mass bin [g/cm²]
sim.dust.a: Field                        # Particle size [cm]
sim.dust.St: Field                       # Stokes number
sim.dust.rho: Field                      # Midplane mass density [g/cm³]
sim.dust.eps: Field                      # Dust-to-gas ratio

# Velocity components
sim.dust.v.rad: Field                    # Radial velocity [cm/s]
sim.dust.v.rel: Field                    # Relative velocity components [cm/s]

# Transport properties
sim.dust.D: Field                        # Diffusivity [cm²/s]
sim.dust.H: Field                        # Scale heights [cm]

# Coagulation properties
sim.dust.kernel: Field                   # Collision kernel [cm²/s]
sim.dust.p.stick: Field                  # Sticking probability
sim.dust.p.frag: Field                   # Fragmentation probability

# Source terms
sim.dust.S.coag: Field                   # Coagulation source terms [g/cm²/s]
sim.dust.S.hyd: Field                    # Hydrodynamic source terms [g/cm²/s]
sim.dust.S.ext: Field                    # External source terms [g/cm²/s]
sim.dust.S.tot: Field                    # Total source terms [g/cm²/s]

# Fluxes
sim.dust.Fi.adv: Field                   # Advective flux [g/cm/s]
sim.dust.Fi.diff: Field                  # Diffusive flux [g/cm/s]
sim.dust.Fi.tot: Field                   # Total flux [g/cm/s]

# Boundary conditions
sim.dust.boundary.inner: Boundary        # Inner boundary condition
sim.dust.boundary.outer: Boundary        # Outer boundary condition

# Back reaction effects
sim.dust.backreaction: Field             # Back reaction coefficients

Gas Group Properties

Properties within the gas group that represent the gas component state.

# Primary gas quantities
sim.gas.Sigma: Field                     # Surface density [g/cm²]
sim.gas.T: Field                         # Temperature [K]
sim.gas.cs: Field                        # Sound speed [cm/s]
sim.gas.rho: Field                       # Midplane mass density [g/cm³]
sim.gas.P: Field                         # Midplane pressure [g/cm/s²]

# Velocity components
sim.gas.v.rad: Field                     # Radial velocity [cm/s]
sim.gas.v.visc: Field                    # Viscous velocity [cm/s]

# Transport properties
sim.gas.alpha: Field                     # Turbulent alpha parameter
sim.gas.mu: Field                        # Mean molecular weight [g]
sim.gas.nu: Field                        # Kinematic viscosity [cm²/s]
sim.gas.eta: Field                       # Pressure gradient parameter

# Source terms and fluxes
sim.gas.S.hyd: Field                     # Hydrodynamic source terms [g/cm²/s]
sim.gas.S.ext: Field                     # External source terms [g/cm²/s]
sim.gas.S.tot: Field                     # Total source terms [g/cm²/s]
sim.gas.Fi: Field                        # Mass flux through interfaces [g/cm/s]

# Boundary conditions
sim.gas.boundary.inner: Boundary         # Inner boundary condition
sim.gas.boundary.outer: Boundary         # Outer boundary condition

Grid Group Properties

Properties within the grid group that define the computational mesh.

# Radial grid
sim.grid.r: Field                        # Radial grid cell centers [cm]
sim.grid.ri: Field                       # Radial grid cell interfaces [cm]
sim.grid.Nr: IntVar                      # Number of radial grid cells
sim.grid.A: Field                        # Radial grid annulus area [cm²]

# Mass grid
sim.grid.m: Field                        # Mass grid [g]
sim.grid.Nm: IntVar                      # Number of mass bins

# Derived grid quantities
sim.grid.OmegaK: Field                   # Keplerian frequency [1/s]

Stellar Group Properties

Properties within the stellar group that define the central star.

sim.star.M: Field                        # Stellar mass [g]
sim.star.R: Field                        # Stellar radius [cm]
sim.star.T: Field                        # Effective temperature [K]
sim.star.L: Field                        # Luminosity [erg/s]

Usage Examples

Basic Simulation Setup

from dustpy import Simulation
import dustpy.constants as c

# Create simulation
sim = Simulation()

# Configure initial conditions
sim.ini.gas.Mdisk = 0.05 * c.M_sun       # 0.05 solar masses
sim.ini.gas.SigmaRc = 10 * c.au          # 10 AU characteristic radius
sim.ini.dust.aIniMax = 0.0001            # 100 micron max initial size

# Set grid parameters
sim.ini.grid.Nr = 100                    # 100 radial points
sim.ini.grid.Nm = 50                     # 50 mass bins
sim.ini.grid.rmin = 0.1 * c.au           # Inner radius
sim.ini.grid.rmax = 500 * c.au           # Outer radius

# Create grids and initialize
sim.makegrids()
sim.initialize()

Custom Integration Scheme

# Set implicit integration for dust
sim.setdustintegrator(scheme="implicit", method="cash-karp")

# Set custom time stepping
sim.t.snapshots = [0.0, 1.e3*c.year, 1.e4*c.year, 1.e5*c.year]

# Run simulation
sim.run()

Accessing Results

# Check mass conservation
sim.checkmassconservation()

# Access physical quantities
radial_grid = sim.grid.r                 # [cm]
dust_sizes = sim.dust.a                  # [cm]
gas_density = sim.gas.Sigma              # [g/cm²]
dust_density = sim.dust.Sigma            # [g/cm²]
stokes_numbers = sim.dust.St

# Get time evolution data
times = sim.t.snapshots                  # Times where data was saved

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