API Reference
Core Simulation Interface
- class pa3py.PA3Py(data_dir: str, comp_model: CompositionModel | None = None)[source]
Bases:
objectCentraliza flujo de PA3Py: Datos HDF5, química, acreción y gráficas.
- calculate_isolation_mass_map()[source]
Calcula el mapa teórico de masa de aislamiento en todo el disco.
- static load_results(filename: str) tuple[dict, list][source]
Carga tracks de crecimiento desde HDF5. Retorna (results_dict, species_list).
- plot_hovmoller(field: str = 'dust_Sigma', show_snowlines: bool = True, **kwargs)[source]
Genera el diagrama de Hovmöller (Radio vs Tiempo). field puede ser ‘dust_Sigma’, ‘gas_Sigma’, o ‘epsilon’.
- plot_population(results: dict, **kwargs)[source]
Grafica la población sintética de planetas (Masa Final vs Posición Inicial).
- run_growth(embryos_au: list, m_seed_me: float = 0.001) dict[source]
Corre la simulación de acreción para los embriones dados.
Parámetros:
- embryos_aulist
Lista de radios iniciales en AU (ej: [1.0, 5.0, 15.0]).
- m_seed_mefloat
Masa semilla en Masas Terrestres. Default: 1e-3.
Retorna:
- dict
Resultados de la evolución de masa en el tiempo.
Physics Engine
- class pa3py.pebble_accretion.PebbleAccretionModule3(disk_data: DiskData, comp_model: CompositionModel = None)[source]
Bases:
objectMotor físico de acreción agnóstico a HDF5 (Ormel 2017 & Drążkowska 2023).
- peb_idx = -1
Data Handling
- pa3py.load_tripodpy_hdf5(datadir: str, M_star: float = 1.0, t_min_yr: float = 0.0) DiskData[source]
Convierte archivos HDF5 de tripodpy a un objeto DiskData.
- class pa3py.data.DiskData(times: ndarray, r: ndarray, gas_Sigma: ndarray, gas_T: ndarray, gas_cs: ndarray, gas_eta: ndarray, gas_nu: ndarray, gas_alpha: ndarray, gas_Hp: ndarray, dust_Sigma: ndarray, dust_vr: ndarray, dust_St: ndarray, dust_H: ndarray, Omega_K: ndarray, M_star: float, hdf5_snowlines: Dict[str, ndarray])[source]
Bases:
objectContenedor de propiedades físicas del disco (gas y polvo).
- M_star: float
- property Nr
- property Nt
- Omega_K: ndarray
- dust_H: ndarray
- dust_Sigma: ndarray
- dust_St: ndarray
- dust_vr: ndarray
- gas_Hp: ndarray
- gas_Sigma: ndarray
- gas_T: ndarray
- gas_alpha: ndarray
- gas_cs: ndarray
- gas_eta: ndarray
- gas_nu: ndarray
- hdf5_snowlines: Dict[str, ndarray]
- r: ndarray
- times: ndarray
Composition Models
- class pa3py.CompositionModel[source]
Bases:
ABCClase base para modelos de composición.
- abstractmethod get_fractions(r: float, t_sec: float, t_idx: int) Dict[str, float][source]
Dado un radio orbital r (en cm), el tiempo físico t_sec (s), y el índice temporal t_idx, devuelve un diccionario con las fracciones de masa de cada elemento químico que se está acretando. Las fracciones deben sumar 1.0.
- class pa3py.SimpleWaterComposition(rsnow_h2o_array: ndarray)[source]
Bases:
CompositionModelModelo clásico PA3Py: - 100% silicatos interior a la snowline. - 50% silicatos, 50% H2O exterior a la snowline.
- class pa3py.MultiSnowlineComposition(snowlines: Dict[str, ndarray], zone_abundances: List[Dict[str, float]])[source]
Bases:
CompositionModelZonas estáticas separadas por snowlines pre-calculadas.
- class pa3py.FunctionComposition(user_func: Callable[[float, float], Dict[str, float]], species: List[str] | None = None)[source]
Bases:
CompositionModelQuímica dinámica definida por el usuario mediante una función Python.