Project: fluid flow | Computer Science homework help

·         The use of standard Java input and output mechanisms

 

·         The use of complex arithmetic expressions

 

·         The use of modular design (methods)

 

·         The use of one-dimensional arrays

 

 

As always, be sure to properly document your code. Consult the Java Coding Guidelines document for proper coding standards. Use good design principles and design the solution before attempting to write code.

 

Emptying a Water Tank

 

Water catchment systems are a critical source of water in many parts of the world. These systems collect rainwater and distribute it to a house, lodging, or neighborhood using a series of gravity-propelled plumbing. Such systems can also act as a reservoir by which local populations can “fill up” containers and transport the water to other locations.

 

Assume we have a full water catchment tank, shaped like a

radius

 

cylinder. How long would it take to empty that cylinder, if

 

 

 

we  “unscrewed”  an  output  nozzle  on  the  bottom?

 

 

Determining the rate at which the cylinder would empty out

 

 

would require knowledge of the height of the tank, the radius

height

 

 

 

of the tank, and the radius of the output nozzle. Once we had

 

 

this knowledge, we could apply a few simple math equations

 

 

to get an approximate answer. This information would be

 

 

helpful to measure the amount of water that would be used

 

 

for various household uses (e.g. showers).

 

 

 

Exercise #1: Create a Java class calledWaterTank.java. This program will simulate thedraining of a cylindrical water catchment tank. Your program will need to show how the rate at which water would exit the tank, assuming an output nozzle two inches (2”) in diameter. Your inputs are as follows:

 

 

 

Variable

 

 

Meaning

 

 

Valid Range

 

 

 

 

 

 

 

 

 

 

 

 

 

height_of_tank

 

The height of the cylindrical tank, in inches

[72-240]

 

 

 

 

radius_of_tank

 

The radius of the cylindrical tank, in inches

[2-36]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Note that the values above will be input from the user only once. Both inputs are double values.

 

 

Once the input is finished, your program will display an output table with three columns: time (in seconds), volume lost, and fluid height (i.e. the height of the water in the cylindrical tank). Assuming a constant flow, the volume of water in the tank will decrease to zero over time (i.e. the tank will be empty). For example, a 36-inch high cylinder with a radius of 6 inches will produce the following table:

Enter the height of the cylindrical tank, in inches: 36

 

Enter the radius of the cylindrical tank, in inches: 6

 

Initial Volume: 4071.50 cubic inches.

 

 

 

 

Time

Volume Lost

Fluid Height

====

===========

============

0

0.00

36.00

1

604.69

30.65

2

1115.97

20.79

3

1378.45

8.60

4

1182.06

-1.85

 

 

 

 

Note that the last value – and only the last value – for fluid height may be less than zero. Youshould assume the tank is initially full with water. Your table should compute one value for each second, starting at zero and ending when the tank runs dry (i.e. volume of fluid in the tank is ≤ 0).

 

The following constants and formulas will be helpful in your calculations (r = radius, h = height):

 

PI (π):

 

3.14159265

 

Initial Volume of a Cylinder (i.e. the water tank):

=   2

 

Velocity of Outward Flow Through the Nozzle:

= 8.02 ∗ √(                                      )

 

Volume Lost From a Cylinder At Time t:

=       ∗ (4  ) ∗

 

Height of Fluid in the Cylindrical Tank at Time t:

ℎ = (                                                   )

Note that you will first need to calculate the volume of the cylinder when it is full, and output it to the screen. For each time step, you will need to calculate the volume lost. Remember that the volume lost requires you to first calculate the velocity of flow. Once calculated, the volume lost is subtracted from that initial “full” volume. Afterwards, the new height of the fluid can be calculated from this new volume. When the volume in the tank reaches zero (or less), your program should stop its calculations. Your program may use the value of PI (π) shown here for testing purposes, or use the Math.PI constant.

 

Your numerical output should be precise to two decimal places on the right of the decimal for all real-number data. Your ability to modularize your solution is essential (i.e. break the program into methods). You must use arrays in your solution – at least two arrays are recommended to store the volume lost and fluid height values. Be sure to properly document your code and use good design principles.

 

Sample Tests

 

Enter the height of the cylindrical tank, in inches: 240

Enter the radius of the cylindrical tank, in inches: 12

Initial Volume: 108573.44 cubic inches.

 

Time

Volume Lost

Fluid Height

====

===========

============

0

0.00

240.00

1

1561.31

236.55

2

3100.09

229.70

3

4582.29

219.57

4

5973.48

206.36

5

7238.85

190.36

6

8343.05

171.92

7

9250.06

151.47

8

9922.94

129.54

9

10323.44

106.72

10

10411.24

83.70

11

10142.60

61.28

12

9467.56

40.36

13

8323.01

21.96

14

6611.62

7.34

15

4096.50

-1.71

 

 

 

Enter the height of the cylindrical tank, in inches: 84

Enter the radius of the cylindrical tank, in inches: 2.5

Initial Volume: 1649.34 cubic inches.

 

Time

Volume Lost

Fluid Height

====

===========

============

0

0.00

84.00

1

923.68

36.96

2

1225.36

-25.45

 

 

 

Enter the height of the cylindrical tank, in inches: 72

 

Enter the radius of the cylindrical tank, in inches: 8

 

Initial Volume: 14476.46 cubic inches.

 

Time

Volume Lost

Fluid Height

 

 

 

====

===========

============

0

0.00

72.00

1

855.17

67.75

2

1659.05

59.50

3

2332.10

47.90

4

2789.95

34.02

5

2939.16

19.40

6

2663.55

6.15

7

1750.20

-2.55

 

 

 

Enter the height of the cylindrical tank, in inches: 128

Enter the radius of the cylindrical tank, in inches: 22

Initial Volume: 194627.95 cubic inches.

 

 

Time

Volume Lost

Fluid Height

 

 

====

===========

============

 

 

0

0.00

128.00

 

 

1

1140.22

127.25

 

 

2

2273.75

125.75

 

 

3

3390.53

123.52

 

 

4

4480.45

120.58

 

 

5

5533.36

116.94

 

 

6

6539.06

112.64

 

 

7

7487.31

107.71

 

 

8

8367.80

102.21

 

 

9

9170.15

96.18

 

 

10

9883.88

89.68

 

 

11

10498.45

82.78

 

 

12

11003.15

75.54

 

 

13

11387.12

68.05

 

 

14

11639.32

60.40

 

 

15

11748.39

52.67

 

 

16

11702.60

44.97

 

 

 

 

 

 

 

17

11489.67

37.42

 

 

18

11096.54

30.12

 

 

19

10508.84

23.21

 

 

20

9710.15

16.82

 

 

21

8680.25

11.11

 

 

22

7391.17

6.25

 

 

23

5795.73

2.44

 

 

24

3778.22

-0.04

 

 

 

 

 

 

Submit your .java file. Be sure to use coding guidelines: no longer than 80 column width, comment each line above or next to each statement ending in a semicolon, use javadoc comments where necessary