holeearthuniform.frink

View or download holeearthuniform.frink in plain text format


// Program to find the time spent falling through a hole in the earth
// This assumes that the earth has uniform density (a pretty odd assumption.)

earthdensity := earthmass / (4/3 pi earthradius^3)

// This finds the mass that's still below you at a given distance from the
// earth's center.
mass[dist is length, rho is mass_density = earthdensity] := 4/3 pi rho dist^3 

// Find the acceleration at a given distance from the center.
a[dist is length, rho is mass_density = earthdensity] := G mass[dist, rho]/dist^2

var v is velocity = 0 m/s
var stepsize is time = 1/100 s
var d is length = earthradius
var t is time = 0 s
var a is acceleration = 0 gravity

while (d > 0 m)
{
   t = t + stepsize
   a = a[d]
   v = v + a stepsize
   d = d - v stepsize

   // Print results every second.
   if (t mod sec == 0 s)
     println[(t -> sec) + "\t" + (d->km) + "\t" + (v->mph) + "\t" + (a->m/s^2)]
}

// Print total time to reach core
println[(1. t -> ["min", "sec"]) + "\t, " + (v->"mph")]


View or download holeearthuniform.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 17592 days, 15 hours, 37 minutes ago.