# Internship report at Central water commission, Delhi

**Project Name**:Effective fetch calculator for freeboard of dam/vessel(Web portal)

**Project view link**: https://coder-harsh.github.io/freeboard-calculator/

**Source code link**: https://github.com/coder-harsh/freeboard-calculator

**Tech stacks used**: (Front-end)HTML, CSS, Javascript

**Web portal hosting platform**: https://github.com/

**Tools used**: VS Code

**References**: https://drive.google.com/file/d/1KEdxbynOSHq4XCi7YXPXnTIaue7aSC6Z/view?usp=sharing

### Source codes

```plaintext

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
	<meta name="descripition" content="This Website will calculate freeboard of a dam or vessel" />

	<script src="https://kit.fontawesome.com/721abd87bb.js" crossorigin="anonymous"></script>
	<!-- CSS only -->
	<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
		integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous" />
	<!-- CSS only -->

	<title>Freeboard Calculator</title>
	<style>
		table {
			/* border: 2px solid black; */
			font-size: large;
			/* padding: 10px; */
			text-align: center;

			/* position: relative; */
			top: 32px;
			/* background-color: bisque; */


		}

		.center {
			margin-left: auto;
			margin-right: auto;
		}

		/* @media only screen and (max-width: 600px) {
            tabel {
                width: 300px;
                padding: 2px;
            }

            tablel .inp {
                width: 30px;
                height: 30px;
                border: 2px solid rgb(128, 126, 0);
            }
        } */

		.inp {
			/* width: 150px; */
			height: 40px;
			border: 2px solid green;
			text-align: center;
			border-radius: 12px;
			width: 155px;
		}

		.inpact {
			width: 90px;
			height: 40px;
			border: 2px solid green;
			text-align: center;
			border-radius: 12px;
			padding: 20px;
		}

		.inpactadd {
			width: 130px;
			height: 40px;
			border: 2px solid green;
			text-align: center;
			border-radius: 12px;
			padding: 20px;
		}

		.sinpactadd {
			width: 200px;
			height: 40px;
			border: 2px solid green;
			text-align: center;
			border-radius: 12px;
			padding: 20px;
		}

		.sinpactadd:hover {
			background-color: rgba(41, 167, 167, 0.308);

		}

		.inpact:hover {
			background-color: rgba(41, 167, 167, 0.308);
		}

		.inp:hover {
			background-color: rgba(41, 167, 167, 0.308);
		}

		#sol-in {
			border: 2px solid rgba(92, 82, 231, 0.931);
			background-color: rgb(4, 245, 245);
			padding: 12px;
			width: 460px;
			/* color: rgb(0, 0, 14); */
			text-align: center;
		}

		#x2cosin {
			width: 150px;
		}

		#calbtn {
			padding: 9px;

			width: 90px;
			border-radius: 8px;
		}

		#calbtn:hover {
			/* padding: 8px; */
			background-color: green;

			/* color: rgb(94, 255, 0); */
		}

		#clbtn {
			padding: 9px;
			width: 80px;
			border-radius: 8px;
		}

		#clbtn:hover {
			/* padding: 6px; */
			background-color: red;
			color: white;
			border-radius: 10px;
		}

		#ref-btn {
			padding: 9px;
			border-radius: 8px;
		}

		#ref-btn:hover {
			background-color: rgb(162, 226, 43);
		}

		#heading {
			text-align: center;
		}

		/* @media only screen and (max-width: 600px) {
			body {
				background-color: rgb(45, 163, 153);
			}

			#sol-in {
				padding: 12px;
				width: 200px;
			}

			.inp {
				width: 50px;
			}

			.ipact {
				width: 5px;
				padding: 20px;

			}
		} */
		/* body {
			background-color: aquamarine;
		} */
		#summ {
			font-size: 24px;
		}

		#love {
			color: red;
			font-size: 50px;
			text-align: center;
		}
	</style>
</head>

<body>
	<div class="container">
		<div class="table-responsive">

			<table align="center" cellspacing="0"
				class="table table-borderless table-light table-hover table-striped center">
				<h1 id="heading">Effective fetch calculator for freeboard of dam/vessel</h1>
				<thead id="head">
					<tr>
						<th>X<sub>i</sub></th>
						<th>&alpha;</th>
						<th>cos&alpha;</th>
						<th>X<sub>i</sub>cos&alpha;</th>
						<th>X<sub>i</sub>cos&alpha;*cos&alpha;</th>
					</tr>
				</thead>
				<tbody>
					<form name="fname">
						<tr>
							<td><input type="number" class="inpact" name="x1" /></td>
							<td><input type="number" class="inpact" name="alpha1" value="0" readonly /></td>
							<td>
								<input type="number" class="inp" name="cosalpha1" readonly value="1.00" />
							</td>
							<td>
								<input type="number" class="inp" name="xcosalpha1" readonly />
							</td>
							<td>
								<input type="number" class="inp" name="x2cosalpha1" id="x2cosin" readonly />
							</td>
						</tr>
						<!-- 2nd row of input -->
						<tr>
							<td><input type="number" class="inpact" name="x2" /></td>
							<td><input type="number" class="inpact" name="alpha2" value="6" readonly /></td>
							<td>
								<input type="number" class="inp" name="cosalpha2" readonly value="0.995" />
							</td>
							<td>
								<input type="number" class="inp" name="xcosalpha2" readonly />
							</td>
							<td>
								<input type="number" class="inp" name="x2cosalpha2" id="x2cosin" readonly />
							</td>
						</tr>
						<!-- 3rd row of input -->
						<tr>
							<td><input type="number" class="inpact" name="x3" /></td>
							<td><input type="number" class="inpact" name="alpha3" value="12" readonly />
							</td>
							<td>
								<input type="number" class="inp" name="cosalpha3" readonly value="0.978" />
							</td>
							<td>
								<input type="number" class="inp" name="xcosalpha3" readonly />
							</td>
							<td>
								<input type="number" class="inp" name="x2cosalpha3" id="x2cosin" readonly />
							</td>
						</tr>
						<!-- 4th row of input -->
						<tr>
							<td><input type="number" class="inpact" name="x4" /></td>
							<td><input type="number" class="inpact" name="alpha4" value="18" readonly /></td>
							<td>
								<input type="number" class="inp" name="cosalpha4" readonly value="0.951" />
							</td>
							<td>
								<input type="number" class="inp" name="xcosalpha4" readonly />
							</td>
							<td>
								<input type="number" class="inp" name="x2cosalpha4" id="x2cosin" readonly />
							</td>
						</tr>
						<!-- 5th row of input -->

						<tr>
							<td><input type="number" class="inpact" name="x5" /></td>
							<td><input type="number" class="inpact" name="alpha5" value="24" readonly /></td>
							<td>
								<input type="number" class="inp" name="cosalpha5" readonly value="0.914" />
							</td>
							<td>
								<input type="number" class="inp" name="xcosalpha5" readonly />
							</td>
							<td>
								<input type="number" class="inp" name="x2cosalpha5" id="x2cosin" readonly />
							</td>
						</tr>
						<!-- 6th row of input -->
						<tr>
							<td><input type="number" class="inpact" name="x6" /></td>
							<td><input type="number" class="inpact" name="alpha6" value="30" readonly /></td>
							<td>
								<input type="number" class="inp" name="cosalpha6" readonly value="0.866" />
							</td>
							<td>
								<input type="number" class="inp" name="xcosalpha6" readonly />
							</td>
							<td>
								<input type="number" class="inp" name="x2cosalpha6" id="x2cosin" readonly />
							</td>
						</tr>
						<!-- 7th row of input -->

						<tr>
							<td><input type="number" class="inpact" name="x7" /></td>
							<td><input type="number" class="inpact" name="alpha7" value="36" readonly /></td>
							<td>
								<input type="number" class="inp" name="cosalpha7" readonly value="0.809" />
							</td>
							<td>
								<input type="number" class="inp" name="xcosalpha7" readonly />
							</td>
							<td>
								<input type="number" class="inp" name="x2cosalpha7" id="x2cosin" readonly />
							</td>
						</tr>
						<!-- 8th row of input -->
						<tr>
							<td><input type="number" class="inpact" name="x8" /></td>
							<td><input type="number" class="inpact" name="alpha8" value="42" readonly /></td>
							<td>
								<input type="number" class="inp" name="cosalpha8" readonly value="0.743" />
							</td>
							<td>
								<input type="number" class="inp" name="xcosalpha8" readonly />
							</td>
							<td>
								<input type="number" class="inp" name="x2cosalpha8" id="x2cosin" readonly />
							</td>
						</tr>
						<tr>
						<tr>
							<td colspan="4">&sum;cos&alpha;= <input type="number" class="inpactadd" name="addcosalp"
									readonly />
							</td>
							<td colspan="9">&sum;X<sub>1</sub>cos&alpha;*cos&alpha;= <input type="number"
									class="inpactadd" name="addx2cosalp" readonly />
							</td>
						</tr>
						<!-- <td>
              <button type="reset" id="clbtn">Clear</button>
            </td> -->

						<td> <button id="ref-btn"><a href="reference.pdf" target="blank">Reference</a></button></td>
						<td>
							</button>
							<button type="reset" id="clbtn">Clear</button>
							<input type="button" value="Calculate" class="btn-primary" id="calbtn"
								onclick="solution()" />
						</td>
						<td colspan="4">
							<label for="sol-in"><b>Effective fetch</b></label>
							<input type="number" name="sol" readonly id="sol-in"
								placeholder="Solution will appear here" />
						</td>
						</tr>
					</form>
				</tbody>
			</table>
			<br>
			<br>



		</div>
	</div>
	<!-- <div align="center" style="background-color: antiquewhite;height: 250px;margin-left: 137px;margin-right: 137px;"
		class="container">
		<h1>Summary</h1>
		<font id="summ">
			F<sub>e</sub>=(&sum;X<sub>i</sub>cos&alpha;*cos&alpha)/&sum;cos&alpha;;
			<br>

			<form name="f2name">
				F<sub>e</sub>=<input type="number" class="sinpactadd" name="saddcosalp" readonly />/<input type="number"
					class="sinpactadd" name="saddx2cosalp" readonly />=<input type="number" class="sinpactadd"
					name="ssol" readonly />
				<button type="reset" id="clbtn">Clear</button>
				<br>
				<br>

				<i class="fa-solid fa-heart fa-beat" style="--fa-beat-scale: 2.0;" id="love"></i>


			</form>
		</font>
	</div> -->
</body>

<script>



	function solution() {
		if (fname.x1.value == "" && fname.x2.value == "" && fname.x3.value == "" && fname.x4.value == "" && fname.x5.value == "" && fname.x6.value == "" && fname.x7.value == "" && fname.x8.value == "") {
			alert("Sorry😪, please enter some value to X");
		}
		else {
			fname.cosalpha1.value = Math.cos((fname.alpha1.value * 3.14) / 180);
			fname.xcosalpha1.value =
				fname.x1.value * Math.cos((fname.alpha1.value * 3.14) / 180);
			fname.x2cosalpha1.value =
				fname.x1.value *
				Math.cos((fname.alpha1.value * 3.14) / 180) *
				Math.cos((fname.alpha1.value * 3.14) / 180);

			fname.cosalpha2.value = Math.cos((fname.alpha2.value * 3.14) / 180);
			fname.xcosalpha2.value =
				fname.x2.value * Math.cos((fname.alpha2.value * 3.14) / 180);
			fname.x2cosalpha2.value =
				fname.x2.value *
				Math.cos((fname.alpha2.value * 3.14) / 180) *
				Math.cos((fname.alpha2.value * 3.14) / 180);

			fname.cosalpha3.value = Math.cos((fname.alpha3.value * 3.14) / 180);
			fname.xcosalpha3.value =
				fname.x3.value * Math.cos((fname.alpha3.value * 3.14) / 180);
			fname.x2cosalpha3.value =
				fname.x3.value *
				Math.cos((fname.alpha3.value * 3.14) / 180) *
				Math.cos((fname.alpha3.value * 3.14) / 180);

			fname.cosalpha4.value = Math.cos((fname.alpha4.value * 3.14) / 180);
			fname.xcosalpha4.value =
				fname.x4.value * Math.cos((fname.alpha4.value * 3.14) / 180);
			fname.x2cosalpha4.value =
				fname.x4.value *
				Math.cos((fname.alpha4.value * 3.14) / 180) *
				Math.cos((fname.alpha4.value * 3.14) / 180);

			fname.cosalpha5.value = Math.cos((fname.alpha5.value * 3.14) / 180);
			fname.xcosalpha5.value =
				fname.x5.value * Math.cos((fname.alpha5.value * 3.14) / 180);
			fname.x2cosalpha5.value =
				fname.x5.value *
				Math.cos((fname.alpha5.value * 3.14) / 180) *
				Math.cos((fname.alpha5.value * 3.14) / 180);

			fname.cosalpha6.value = Math.cos((fname.alpha6.value * 3.14) / 180);
			fname.xcosalpha6.value =
				fname.x6.value * Math.cos((fname.alpha6.value * 3.14) / 180);
			fname.x2cosalpha6.value =
				fname.x6.value *
				Math.cos((fname.alpha6.value * 3.14) / 180) *
				Math.cos((fname.alpha6.value * 3.14) / 180);

			fname.cosalpha7.value = Math.cos((fname.alpha7.value * 3.14) / 180);
			fname.xcosalpha7.value =
				fname.x7.value * Math.cos((fname.alpha7.value * 3.14) / 180);
			fname.x2cosalpha7.value =
				fname.x7.value *
				Math.cos((fname.alpha7.value * 3.14) / 180) *
				Math.cos((fname.alpha7.value * 3.14) / 180);

			fname.cosalpha8.value = Math.cos((fname.alpha8.value * 3.14) / 180);
			fname.xcosalpha8.value =
				fname.x8.value * Math.cos((fname.alpha8.value * 3.14) / 180);
			fname.x2cosalpha8.value =
				fname.x8.value *
				Math.cos((fname.alpha8.value * 3.14) / 180) *
				Math.cos((fname.alpha8.value * 3.14) / 180);

			// solution input box
			fname.sol.value =
				fname.x1.value *
				Math.cos((fname.alpha1.value * 3.14) / 180) *
				Math.cos((fname.alpha1.value * 3.14) / 180) +
				fname.x2.value *
				Math.cos((fname.alpha2.value * 3.14) / 180) *
				Math.cos((fname.alpha2.value * 3.14) / 180) +
				fname.x3.value *
				Math.cos((fname.alpha3.value * 3.14) / 180) *
				Math.cos((fname.alpha3.value * 3.14) / 180) +
				fname.x4.value *
				Math.cos((fname.alpha4.value * 3.14) / 180) *
				Math.cos((fname.alpha4.value * 3.14) / 180) +
				fname.x5.value *
				Math.cos((fname.alpha5.value * 3.14) / 180) *
				Math.cos((fname.alpha5.value * 3.14) / 180) +
				fname.x6.value *
				Math.cos((fname.alpha6.value * 3.14) / 180) *
				Math.cos((fname.alpha6.value * 3.14) / 180) +
				fname.x7.value *
				Math.cos((fname.alpha7.value * 3.14) / 180) *
				Math.cos((fname.alpha7.value * 3.14) / 180) +
				fname.x8.value *
				Math.cos((fname.alpha8.value * 3.14) / 180) *
				Math.cos((fname.alpha8.value * 3.14) / 180);

			// solution summation of cosalpha and x2cosalpha
			fname.addcosalp.value = Math.cos((fname.alpha1.value * 3.14) / 180) + Math.cos((fname.alpha2.value * 3.14) / 180) + Math.cos((fname.alpha3.value * 3.14) / 180) + Math.cos((fname.alpha4.value * 3.14) / 180) + Math.cos((fname.alpha5.value * 3.14) / 180) + Math.cos((fname.alpha6.value * 3.14) / 180) + Math.cos((fname.alpha7.value * 3.14) / 180) + Math.cos((fname.alpha8.value * 3.14) / 180);

			fname.addx2cosalp.value =
				fname.x1.value *
				Math.cos((fname.alpha1.value * 3.14) / 180) *
				Math.cos((fname.alpha1.value * 3.14) / 180) +
				fname.x2.value *
				Math.cos((fname.alpha2.value * 3.14) / 180) *
				Math.cos((fname.alpha2.value * 3.14) / 180) +
				fname.x3.value *
				Math.cos((fname.alpha3.value * 3.14) / 180) *
				Math.cos((fname.alpha3.value * 3.14) / 180) +
				fname.x4.value *
				Math.cos((fname.alpha4.value * 3.14) / 180) *
				Math.cos((fname.alpha4.value * 3.14) / 180) +
				fname.x5.value *
				Math.cos((fname.alpha5.value * 3.14) / 180) *
				Math.cos((fname.alpha5.value * 3.14) / 180) +
				fname.x6.value *
				Math.cos((fname.alpha6.value * 3.14) / 180) *
				Math.cos((fname.alpha6.value * 3.14) / 180) +
				fname.x7.value *
				Math.cos((fname.alpha7.value * 3.14) / 180) *
				Math.cos((fname.alpha7.value * 3.14) / 180) +
				fname.x8.value *
				Math.cos((fname.alpha8.value * 3.14) / 180) *
				Math.cos((fname.alpha8.value * 3.14) / 180);

			// summary input calculation
			f2name.saddcosalp.value = fname.addcosalp.value;
			f2name.saddx2cosalp.value = fname.addx2cosalp.value
			f2name.ssol.value = fname.sol.value;
		}

	}


</script>
</body>

</html>
```

### Repo images

![Screenshot 2022-03-19 080000.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1647657012044/FA8_lRfWS.png align="left")

### Study of effective fetch for freeboard of dam/vessel

**Scope**

This standard gives guidelines regarding procedures for working out freeboard for embankment dams.

**Design Wave Height**

It is that wave height which the structure is clesigncd to withstand so that it does not undergo more than the accepted probability of damage, should the same wave height be exceeded. It is a suitable multiple of the significant wave height depending on the degree of risk to be accepted.

\*\*Fetch Length \*\*

It is the straight line distance along the wind direction ( along central radial of fetch ) over open water on which the wind blows.

**Efective Fetch**

It is the weighted average fetch length of water spread, covered by 45” angle on either side of trial fetch ( assuming the wind to be completely non-effective beyond this area ) and measured in a direction parallel to the central radial line of the trial fetch.

\*\*Fetch Length \*\*

It is the straight line distance along the wind direction ( along central radial of fetch ) over open water on which the wind blows.

\*\*Effective Fetch \*\*

It is the weighted average fetch length of water spread, covered by 45” angle on either side of trial fetch ( assuming the wind to be completely non-effective beyond this area ) and measured in a direction parallel to the central radial line of the trial fetch.

**Wave Length** : It is the length in m from crest to crest for significant wave

\*\*Free Board \*\*

It is the vertical distance betwaeen the crest of embankment ( excluding camber ) and the still reservoir water surface.

* *Normal Free Board*: It is the freeboard above the full reservoir level (FKL).
    
* *Minimum Freeboard*:It is the freeboard above the maximum water level ( MWI&gt; ) worked out for designed inflow flood.
    

### Factors affecting for freeboard

\-Wave characteristics, particularly wave -height and wave length; -Height of wind set-up above the still water -level adopted as freeboard reference elevation; and Slope of the dam and roughness of the pitching.

### Notations

**F**<sub>e</sub>\= Effective fetch

**α**\= Axial angle

**X**<sub>i</sub>\=Radial Length

### Formula for effective fetch

**F**<sub>e</sub>\= ∑(X1cosα\*cosα)/∑cosα

\*\*Sample table data for acknowledgement \*\*

| α | cosα | X<sub>1</sub> | X<sub>1</sub>cosα | X<sub>1</sub>cosα\*cosα |
| --- | --- | --- | --- | --- |
| 42° | 0.743 | 2.08 | 1.55 | 1.151 |
| 36° | 0.809 | 2.29 | 1.85 | 1.499 |
| 30° | 0.866 | 4.73 | 4.10 | 3.550 |
| 24° | 0.914 | 4.32 | 3.95 | 3.610 |
| 18° | 0.951 | 4.26 | 4.05 | 3.851 |
| 12° | 0.978 | 5.11 | 5.00 | 4.890 |
| 6° | 0.955 | 5.68 | 5.65 | 5.621 |
| 0° | 1.000 | 6.00 | 6.00 | 6.000 |
| 6° | 0.955 | 5.18 | 5.15 | 5.124 |
| 12° | 0.978 | 3.37 | 3.30 | 3.227 |
| 18° | 0.951 | 2.95 | 2.80 | 2.662 |
| 24° | 0.914 | 2.90 | 2.65 | 2.422 |
| 30° | 0.866 | 2.08 | 1.55 | 1.151 |
| 36° | 0.809 | 3.09 | 2.50 | 2.023 |
| 42° | 0.733 | 3.16 | 2.35 | 1.746 |
|  | ∑cosα=13.512 | ∑=49.454 |

**F**<sub>e</sub>\=(49.451)/13.512=3.66k.m

*Submitted by*

| Name | Reg. no | Branch | Semester |
| --- | --- | --- | --- |
| Harsh Kumar | 19104131006 | ECE | 5th |

Submitted to:-

To, The Director, CMDD (N&W) Dte.,

Central Water Commission,

8th Floor (S), Sewa Bhawan,

R.K. Puram-1, New Delhi-110066
