Python:raschii库计算任意阶数Stokes波
Stokes五阶波
最近发现一个很有用的Stokes波计算Python库,raschii官方说明,可以计算任意阶数,不同水深下的Stokes波,简单做了下测试,测试结果与脚本如下

Python 脚本
import raschii
import matplotlib.pyplot as plt
import numpy as np
order=5
wavelength=3
waveheight=0.1
h0=1.5
h1=0.5
h2=10
fwave0 = raschii.FentonWave(height=waveheight, depth=h0, length=wavelength, N=order)
fwave1 = raschii.FentonWave(height=waveheight, depth=h1, length=wavelength, N=order)
fwave2 = raschii.FentonWave(height=waveheight, depth=h2, length=wavelength, N=order)
Y0=[]
Y1=[]
Y2=[]
X=np.linspace(0,30,1000)
for each in X:
Y0.append(float(fwave0.surface_elevation(x=each)))
Y1.append(float(fwave1.surface_elevation(x=each)))
Y2.append(float(fwave2.surface_elevation(x=each)))
YY0=np.array(Y0)
YY1=np.array(Y1)
YY2=np.array(Y2)
plt.figure()
plt.grid()
plt.plot(X, YY0-h0)
plt.plot(X, YY2-h2)#
plt.plot(X, YY1-h1)
plt.legend(['h = %3.2f m'%h0,'h = %3.2f m'%h2,'h = %3.2f m'%h1], loc = 'upper right')
plt.title('lambda = %3.2f m | stokes order = %d | Height = %4.3f m '%(wavelength,order,waveheight))
plt.xlabel('x/m')
plt.ylabel('eta/m')
Python:raschii库计算任意阶数Stokes波的更多相关文章
- Python datetime库计算两个时间点之间的分钟(秒、天)数
计算两个时间点之间的分钟数 import datetime def minNums(startTime, endTime): '''计算两个时间点之间的分钟数''' # 处理格式,加上秒位 start ...
- Python 标准库、第三方库
Python 标准库.第三方库 Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具.这些库可用于文件读写 ...
- windows下如何快速优雅的使用python的科学计算库?
Python是一种强大的编程语言,其提供了很多用于科学计算的模块,常见的包括numpy.scipy.pandas和matplotlib.要利用Python进行科学计算,就需要一一安装所需的模块,而这些 ...
- python常用库
本文由 伯乐在线 - 艾凌风 翻译,Namco 校稿.未经许可,禁止转载!英文出处:vinta.欢迎加入翻译组. Awesome Python ,这又是一个 Awesome XXX 系列的资源整理,由 ...
- python标准库00 学习准备
Python标准库----走马观花 python有一套很有用的标准库.标准库会随着python解释器一起安装在你的电脑上的.它是python的一个组成部分.这些标准库是python为你准备的利器,可以 ...
- Python标准库——走马观花
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python有一套很有用的标准库(standard library).标准库会随着 ...
- Python常用库大全
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...
- Python数据处理与计算——概述
Python是一种面向对象的,动态的程序设计语言,具有非常简洁而清晰的语法,适合于完成各种高层任务.它既可以用来快速开发程序脚本,也可以用来开发大规模的软件. 随着NumPy.SciPy.Matplo ...
- python的库小全
环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...
随机推荐
- GPIO引脚速度的应用匹配
GPIO 引脚速度: GPIO 引脚速度又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同 ...
- -e $request_filename + nginx内置变量
-e表示只要filename存在,则为真,不管filename是什么类型,当然这里加了!就取反额外的一些-e filename 如果 filename存在,则为真-d filename 如果 file ...
- jQuery中ajax请求的六种方法(三、三):$.post()方法
3.$.post()方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- Spring Data JPA:解析JpaSpecificationExecutor & Specification
源码 在前面关于SimpleJpaRepository的文章[地址]中可以得知,SimpleJpaRepository间接实现了JpaSpecificationExecutor接口,本文就详细探究一下 ...
- vue系统总结2
注册组件 组件其他补充 组件数据存放 父子组件通信 父级向子级传递信息 子级向父级传递信息 插槽slot 1.1什么是组件化 1.2 注册组件的基本步骤 创建组件构造器 注册组件 使用组件 <d ...
- 微信小程序 image 组件 src 请求不能设置 header 的问题
只能先 wx.downloadFile 得到 tempFilePath,然后设置 src = tempFilePath
- Java创建线程池的方法
Executors创建四种线程池: CachedThreadPool:可缓存的线程池,该线程池中没有核心线程,非核心线程的数量为Integer.max_value,当有需要时创建线程来执行任务,没有需 ...
- 使用Keepalived实现Nginx的自动重启及双主热备高可用
1.概述 之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下. 1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服 ...
- springmvc图片上传、json
springmvc的图片上传 1.导入相应的pom依赖 <dependency> <groupId>commons-fileupload</groupId> < ...
- Python - 进度条库 tqdm
前言 在写生成器的时候,网上看到一个进度条库,感觉蛮有意思,记录下 这个库感觉只有在调试的时候会用到,不做深入学习 内置库,不需要安装 示例代码 from tqdm import tqdm for i ...