SUPERCAT.DEV

Benvenut* sul mio blog

WEB

Il tempo vicino a un buco nero

07-10-2022

Calcolo della dilatazione temporale rispetto a un osservatore lontano

Ho fatto questo piccolo sito per calcolare la dilatazione temporale rispetto a un'ora passata a una distanza fissa da un buco nero da un osservatore infinitamente lontano. Per lui il tempo scorrerà più lentamente.

Il codice per il calcolo

function calculate(massa, distanza) {
    // Velocità della luce [m/s]
    const c = 299792458

    // Costante gravitazionale di Newton [m^3 Kg^-1 s^-2]
    const G = 6.67E-11

    // Massa del buco nero in masse solari [-]
    const M = massa

    const html_massa_buco_nero = document.getElementById('massaBucoNero')
    html_massa_buco_nero.innerHTML = getNumberWithCommas(massa.toFixed(0))

    // Massa del sole [Kg]
    const M_s = 1.99E+30

    // Raggio orizzonte degli eventi (calcolato sulla massa M) [m]
    const R = 2 * G * M * M_s / (c * c)

    const html_orizzonte = document.getElementById('raggioOrizzonteEventi')
    html_orizzonte.innerHTML = getNumberWithCommas(R.toFixed(0))

    // Distanza dall'orizzonte degli eventi [m]
    const D = distanza

    // Percentuale di rallentamento del tempo rispetto a un osservatore infinitamente lontano dal buco nero
    const percentuale_rallentamento = (1 - Math.sqrt(1 - R / (R + D))) * 100

    const html_percentuale_rallentamento = document.getElementById('percentualeRallentamento')
    html_percentuale_rallentamento.innerHTML = percentuale_rallentamento.toFixed(4)

    // Moltiplicatore
    const moltiplicatore = 1 / Math.sqrt(1 - R / (R + D))

    const html_moltiplicatore = document.getElementById('moltiplicatore')
    html_moltiplicatore.innerHTML = moltiplicatore.toFixed(2)

    // converti il moltiplicatore (es. 1h vicino al buco nero 1.23 -> fa un'ora e 13 minuti)
    const html_anni = document.getElementById('anni')
    const html_giorni = document.getElementById('giorni')
    const html_ore = document.getElementById('ore')
    const html_minuti = document.getElementById('minuti')
    const html_secondi = document.getElementById('secondi')

    const tempo = moltiplicatoreToTempo(moltiplicatore)
    html_anni.innerHTML = tempo.anni
    html_giorni.innerHTML = tempo.giorni
    html_ore.innerHTML = tempo.ore
    html_minuti.innerHTML = tempo.minuti
    html_secondi.innerHTML = tempo.secondi
}

Codice sorgente

Su github TimeBlackHole

Link

Su github page

Screenshot

cover