¿Cómo identificar estrellas binarias en la simulación de cuerpo NNN?

Las estrellas binarias constituyen una porción significativa de las estrellas de un cúmulo globular.

Me gustaría verificar que esto es cierto en mi norte -simulación de cuerpo, pero no sé cómo decidir si una estrella en el sistema es binaria.

Visualmente, esto es fácil de hacer, ya que los binarios se identifican como dos estrellas a una distancia muy cercana que orbitan alrededor de su centro de masa, pero necesito una condición matemática que luego pueda traducir a código.

Respuestas (1)

Necesitaría calcular la energía de enlace de pares de partículas en su simulación. Si para un par esta energía es negativa entonces el par está ligado formando un sistema binario.

Supongo que ya tiene una forma efectiva de calcular el potencial, por lo que esto no debería agregar mucho más tiempo de ejecución, ya que solo necesita verificar los puntos que están lo suficientemente cerca

¿Es esta condición lo suficientemente estricta? ¿Qué pasa si hay dos estrellas que no están muy cerca una de la otra pero que se mueven lentamente, por lo que su energía potencial gravitacional es pequeña (y negativa) pero la suma de sus energías cinéticas podría ser incluso menor en valor absoluto? En segundo lugar, ¿cómo establezco la distancia entre las estrellas por debajo de la cual debo buscar binarios?
@JoshuaBenabou Están obligados incluso en su ejemplo. Supongo que podrías empezar con una fracción del número Σ 1 / 2 , dónde Σ es la densidad superficial de la masa y veamos cómo funciona. Mida el número, aumente el umbral, mida el número nuevamente, aumente el umbral nuevamente hasta que alcance la convergencia
pensándolo bien: la condición de energía es necesaria y suficiente, es decir, no necesito preocuparme por la distancia entre los puntos demasiado. Además, desde el punto de vista de la programación, no veo cómo verificar primero si la distancia entre las dos estrellas es lo suficientemente cercana mejoraría el tiempo de cálculo: tengo una lista de n partículas, y para verificar si dos partículas P y Q están unidas, si compruebo si primero están lo suficientemente cerca, sigue siendo una operación. En otras palabras, seguirá siendo O(n^2) para calcular el número de binarios, ¿verdad?
@JoshuaBenabou Tienes razón en la primera parte. Pero puedes buscar vecinos en O ( registro norte ) , por lo que el tiempo de ejecución se reducirá mucho si primero se ocupa de las partículas distantes (que probablemente no estén unidas). Pero de nuevo, si su norte es pequeño, probablemente puedas hacer un O ( norte 2 ) busca y listo
Mi n es 1000 hasta 10'000. ¿A qué búsqueda o (log n) te refieres?
@JoshuaBenabou algoritmos basados ​​en árboles
He implementado el algoritmo Barnes Hut, pero creo que sería un fastidio integrar el cálculo de hinary en el código existente. Otra opción es simplemente calcular el número de binarios cada 100 pasos de tiempo.