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 17651 days, 5 hours, 11 minutes ago.