physics 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/physics.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "physics/fundamental_constants"
2
2
  require "physics/classical_mechanics"
3
+ require "physics/celestial_mechanics"
3
4
  require "physics/general_relativity"
4
5
 
5
6
  module Physics
@@ -0,0 +1,10 @@
1
+ module Physics
2
+ class CelestialMechanics
3
+
4
+ # System mass is mass of both objects (i.e. The Sun and Earth)
5
+ def self.orbital_period_of_body_in_elliptic_orbit( semi_major_axis, system_mass )
6
+ 2 * Math.PI * Math.sqrt( ( semi_major_axis ** 3 ) / ( Physics::FundamentalConstants.G * (system_mass) ) )
7
+ end
8
+
9
+ end
10
+ end
@@ -5,8 +5,31 @@ module Physics
5
5
  # Mass should be kg
6
6
  # Velocity should be m/s
7
7
  def self.kinetic_energy_of_mass_at_velocity( mass, velocity )
8
+ if velocity > 0.10 * Physics::FundamentalConstants.C
9
+ puts "Warning: Velocity high enough that result is subject to relativistic forces."
10
+ puts " Consider using a different formula."
11
+ end
12
+
8
13
  0.5 * mass * (velocity **2)
9
14
  end
10
15
 
11
- end
16
+ def self.time_to_accelerate_to_velocity_over_distance( velocity, distance )
17
+ time = distance / ( velocity / 2 )
18
+ end
19
+
20
+ def self.distance_traveled_while_accelerating_at_rate_over_time( starting_velocity, acceleration, time )
21
+ distance_traveled = ( starting_velocity * time ) + ( ( acceleration * ( time ** 2 ) ) / 2 )
22
+ end
23
+
24
+ def self.distance_traveled_while_accelerating_to_velocity_over_time( starting_velocity, ending_velocity, time )
25
+ distance_traveled = ( ( ending_velocity + starting_velocity ) / 2 ) * time
26
+ end
27
+
28
+ def self.velocity_after_accelerating_at_rate_over_time( starting_velocity, acceleration, time )
29
+ velocity = starting_velocity + ( acceleration * time )
30
+ end
31
+
32
+ def self.distance_traveled_given_final_velocity_and_acceleration_over_time( final_velocity, acceleration, time )
33
+ distance_traveled = ( velocity * time ) - ( ( acceleration * ( time ** 2 ) ) / 2 )
34
+ end
12
35
  end
@@ -1,6 +1,7 @@
1
1
  module Physics
2
2
  class FundamentalConstants
3
3
 
4
+ # Meters per second
4
5
  def self.speed_of_light_in_vacuum
5
6
  299792458
6
7
  end
@@ -21,5 +22,16 @@ module Physics
21
22
  6.62606957 * ( 10 ** (34 * -1.0) )
22
23
  end
23
24
 
25
+ # Joules
26
+ def self.kiloton_of_tnt
27
+ 4.184 * (10 ** 12)
28
+ end
29
+
30
+ # Joules
31
+ def self.megaton_of_tnt
32
+ 4.184 * (10 ** 15)
33
+ end
34
+
35
+
24
36
  end
25
37
  end
@@ -1,3 +1,3 @@
1
1
  module Physics
2
- VERSION = "0.0.1"
3
- end
2
+ VERSION = "0.0.2"
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: physics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -19,6 +19,7 @@ executables: []
19
19
  extensions: []
20
20
  extra_rdoc_files: []
21
21
  files:
22
+ - lib/physics/CelestialMechanics.rb
22
23
  - lib/physics/classical_mechanics.rb
23
24
  - lib/physics/fundamental_constants.rb
24
25
  - lib/physics/general_relativity.rb