From bdc7cbbecd5e6b34c342cf8e0efa8ccb2da3a9aa Mon Sep 17 00:00:00 2001 From: DIvkov575 Date: Thu, 13 Oct 2022 22:56:57 -0400 Subject: [PATCH 1/6] Added archimedes principle (physics) --- physics/archimedes_principle.py | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 physics/archimedes_principle.py diff --git a/physics/archimedes_principle.py b/physics/archimedes_principle.py new file mode 100644 index 000000000000..2b4e3b9d30ef --- /dev/null +++ b/physics/archimedes_principle.py @@ -0,0 +1,46 @@ +""" +Calculates buoyant force on object submerged within static fluid. +Discovered by greek mathematician, Archimedes. The principle is named after him. + +Equation for calculating buoyant force: +Fb = ρ * V * g + +Source: +- https://en.wikipedia.org/wiki/Archimedes%27_principle +""" + + +# Acceleration Constant on Earth (unit m/s^2) +g = 9.80665 + + +def archimedes_principle(fluid_density: float, volume: float, gravity: float = g) -> float: + """ + Args: + fluid_density: density of fluid (kg/m^3) + volume: volume of object / liquid being displaced by object + gravity: Acceleration from gravity. Gravitational force on system. Default is Earth Gravity + returns: + buoyant force on object in Newtons + + >>> archimedes_principle(fluid_density=997, volume=0.5, gravity=9.8) + 4885.3 + >>> archimedes_principle(fluid_density=997, volume=0.7) + 6844.061035 + """ + + if fluid_density <= 0: + raise ValueError("Impossible fluid density") + if volume < 0: + raise ValueError("Impossible Object volume") + if gravity <= 0: + raise ValueError("Impossible Gravity") + + return fluid_density * gravity * volume + + +if __name__ == "__main__": + import doctest + + # run doctest + doctest.testmod() From 6f70b4288c1d5ecce90625b2f277d43968525374 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 14 Oct 2022 02:58:43 +0000 Subject: [PATCH 2/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- physics/archimedes_principle.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/physics/archimedes_principle.py b/physics/archimedes_principle.py index 2b4e3b9d30ef..7ec997ad5c8f 100644 --- a/physics/archimedes_principle.py +++ b/physics/archimedes_principle.py @@ -14,7 +14,9 @@ g = 9.80665 -def archimedes_principle(fluid_density: float, volume: float, gravity: float = g) -> float: +def archimedes_principle( + fluid_density: float, volume: float, gravity: float = g +) -> float: """ Args: fluid_density: density of fluid (kg/m^3) From 7540a77dbe5b490cebf58258f0bb55f48b6b9792 Mon Sep 17 00:00:00 2001 From: DIvkov575 Date: Thu, 13 Oct 2022 23:00:14 -0400 Subject: [PATCH 3/6] reformated --- physics/archimedes_principle.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/physics/archimedes_principle.py b/physics/archimedes_principle.py index 2b4e3b9d30ef..7ec997ad5c8f 100644 --- a/physics/archimedes_principle.py +++ b/physics/archimedes_principle.py @@ -14,7 +14,9 @@ g = 9.80665 -def archimedes_principle(fluid_density: float, volume: float, gravity: float = g) -> float: +def archimedes_principle( + fluid_density: float, volume: float, gravity: float = g +) -> float: """ Args: fluid_density: density of fluid (kg/m^3) From 235dc753efbf3a3c4202cceb696f53b9840821f0 Mon Sep 17 00:00:00 2001 From: DIvkov575 Date: Thu, 13 Oct 2022 23:14:22 -0400 Subject: [PATCH 4/6] reformatted archimedes principles --- physics/archimedes_principle.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/physics/archimedes_principle.py b/physics/archimedes_principle.py index 7ec997ad5c8f..6ecfc65e7461 100644 --- a/physics/archimedes_principle.py +++ b/physics/archimedes_principle.py @@ -21,7 +21,8 @@ def archimedes_principle( Args: fluid_density: density of fluid (kg/m^3) volume: volume of object / liquid being displaced by object - gravity: Acceleration from gravity. Gravitational force on system. Default is Earth Gravity + gravity: Acceleration from gravity. Gravitational force on system, + Default is Earth Gravity returns: buoyant force on object in Newtons From ef737555ff8317749c0255b8be69edf34191e978 Mon Sep 17 00:00:00 2001 From: DIvkov575 Date: Fri, 14 Oct 2022 21:56:03 -0400 Subject: [PATCH 5/6] added torricelli theorem --- physics/Bernoullis_equation.py | 0 physics/Torricelli.py | 41 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 physics/Bernoullis_equation.py create mode 100644 physics/Torricelli.py diff --git a/physics/Bernoullis_equation.py b/physics/Bernoullis_equation.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/physics/Torricelli.py b/physics/Torricelli.py new file mode 100644 index 000000000000..c87cceeda602 --- /dev/null +++ b/physics/Torricelli.py @@ -0,0 +1,41 @@ +""" +Calculates velocity of fluid from Potential Gravitational Energy + +Equation for finding velocity +V = sqrt(2 * gravity * Δy) + +Source: +- https://en.wikipedia.org/wiki/Archimedes%27_principle +""" + + +# Acceleration Constant on Earth (unit m/s^2) +g = 9.80665 + + +def torricelli_theorem(height: float, gravity: float = g) -> float: + """ + Args: + height: The change in height between initial and point of flow (where, + velocity is being measured) + gravity: Acceleration from gravity. Gravitational force on system, + Default is Earth Gravity + returns: + velocity of exiting fluid. + + >>> torricelli_theorem(height=5) + 9.90285312422637 + >>> torricelli_theorem(height=3, gravity=9.8) + 7.6681158050723255 + """ + if gravity <= 0: + raise ValueError("Impossible Gravity") + + return (2 * height * gravity)**0.5 + + +if __name__ == "__main__": + import doctest + + # run doctest + doctest.testmod() From 9552161516b61fccd26b13770cb6eb015cd50e9c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 02:03:09 +0000 Subject: [PATCH 6/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- physics/Torricelli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/physics/Torricelli.py b/physics/Torricelli.py index c87cceeda602..55247150c592 100644 --- a/physics/Torricelli.py +++ b/physics/Torricelli.py @@ -31,7 +31,7 @@ def torricelli_theorem(height: float, gravity: float = g) -> float: if gravity <= 0: raise ValueError("Impossible Gravity") - return (2 * height * gravity)**0.5 + return (2 * height * gravity) ** 0.5 if __name__ == "__main__":