Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Computational notebook for computing ks from Cf using the method in Monty et al. (2016) to be used alongside the manuscript "Effects of fetch length on turbulent boundary layer recovery past a step-change in surface roughness"
This code was made in support of the article "Effects of fetch length on turbulent boundary layer recovery past a step-change in surface roughness" by Martina Formichetti1, Dea D. Wangsawijaya, Sean Symon, and Bharathram Ganapathisubramani from the Department of Aeronautical and Astronautical Engineering, University of Southampton, University Road, Southampton, SO17 1BJ, UK.
It provides a tool to calculate the equivalent sandgrain roughness height, , given a known friction coefficient, , in lign with the method adopted by the authors of Monty, J. P. et al. (2016) "An assessment of the ship drag penalty arising from light calcareous tubeworm fouling" Biofouling 32(4), 451–464.
First we load the experimental data and define the necessary constants:
Create arrays for the lines of constant length, , and the lines of constant Reynolds,
Define a function to model a TBL mean velocity profile in inner units, this one is based on the wake function of Jones, et al (2001)
Define a function for the iterative process to obtain as a function of and described in Monty, et al, 2016.
Define the bounds for , , and
Use the wake function to obtain the mean velocity profile in inner units of a rough and a smooth wall and the wall normal viscous coordinate. Use these to obtain , and for a smooth wall.
Use the function adopting the method in Monty et al. 2016 to obtain for constant for the fully rough flow. A small epsilon was added to avoid division by zero and log of zero issues.
Compute for the fully rough flow for constant
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_1003/1308400285.py in <cell line: 1>()
----> 1 for j in range(len(L_const['L'])):
2 # lookup table
3 for ii in range(len(Re_const['Re_unit'])):
4 L_const['Rex'][ii, j] = L_const['L'][j] * Re_const['Re_unit'][ii]
5 L_const['Cf'][ii, j] = np.interp(L_const['Rex'][ii, j], Re_const['Rex'][:, ii], Re_const['Cf'][:, ii])
NameError: name 'L_const' is not defined
Compute ,, and