xfoil的精简版编译后的python模块

xfoil的Python项目详细描述


一般

这是xfoil的精简版,以python模块的形式呈现。这个包裹有什么独特之处 w.r.t.还有许多其他允许xfoil的接口,这是python代码直接与 已编译的Fortran库。这种方法避免了将-/输出文件读/写到磁盘并与 xfoil可执行文件。消除对恒定磁盘I/O操作的需求可以显著加快并行速度 尤其是框架,使这种方法具有明显的优势。

构建和安装python模块

如果您使用的是带有python 3.6的windows机器(64位),那么安装xfoil是一个简单的运行问题:

pip install xfoil

如果您使用不同类型的机器,或者使用不同版本的python,则必须确保 软件已安装在系统上,以便成功生成包。首先,模块的目标 Python3,不支持Python2。因此,请确保python 3环境已安装并可用。 此外,C和Fortran的工作编译器必须安装在路径上。在windows上,构建和 安装只测试了mingw,使用gcc和gfortran。

然后,安装xfoil应该和运行xfoil一样简单

pip install .

从下载的存储库的根目录。

在windows上,您可能必须强制系统使用mingw。为此,请在中创建名为distutils.cfg的文件 PYTHONPATH\Lib\distutils包含以下内容:

[build]compiler=mingw32

如果无法为python环境创建此文件,则可以在中创建名为setup.cfg的文件 内容相同的回购协议的根。也可以在调用mingw时直接强制使用mingw pip呼叫:

pip install --global-option build_ext --global-option --compiler=mingw32 .

使用模块

所有xfoil操作都使用XFoil类执行。所以使用这个模块的第一步是创建 此类的实例:

>>> fromxfoilimportXFoil>>> xf=XFoil()

如果这不会产生任何错误,则安装应正常运行。

对称NACA0012翼型作为一个测试案例。它可以像这样加载到xfoil库中:

>>> fromxfoil.testimportnaca0012>>> xf.airfoil=naca0012 Number of input coordinate points: 160 Counterclockwise ordering Max thickness =     0.120008  at x =   0.308 Max camber    =     0.000000  at x =   0.033  LE  x,y  =  -0.00000   0.00000  |   Chord =   1.00000  TE  x,y  =   1.00000   0.00000  | Current airfoil nodes set from buffer airfoil nodes ( 160 )

一旦机翼成功加载,就可以进行分析。我们来分析它的一系列攻角,在 雷诺数一百万。让我们将迭代的最大次数限制为40(默认为20)。 对于攻角范围,我们将从-20度到20度,步长为0.5度:

>>> xf.Re=1e6>>> xf.max_iter=40>>> a,cl,cd,cm=xf.aseq(-20,20,0.5)

xfoil库应该产生大量的输出,这对于那些使用过原始xfoil的用户来说应该很熟悉 申请之前。最后的结果是攻角列表,a,以及相应的升力系数,cl, 阻力系数,cd,力矩系数,cm。例如,我们现在可以绘制该翼型的升力曲线:

>>> importmatplotlib.pyplotasplt>>> plt.plot(a,cl)>>> plt.show()

这将产生下图:

NACA 0012 Lift Curve

就像在原XOPER应用中一样,翼型也可以分析单个迎角,单升程。 系数,或升力系数的范围。这些操作的命令是

>>> cl,cd,cm=xf.a(10)>>> a,cd,cm=xf.cl(1)>>> a,cl,cd,cm=xf.cseq(-0.5,0.5,0.05)

分析攻角为10度,升力系数为1.0,升力系数范围为 -0.5至0.5,步长为0.05。

有关其他特性和细节,请参阅python源文件中的文档。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
keylistener Java密钥侦听器、密钥适配器、按键()不工作   Java Util函数和Collections4 Transformer之间有什么区别?   java根据时间从mysql中删除记录   java发布图像的mime类型无效   java Spring Boot Oauth2使用证书中的pub密钥进行访问令牌验证   java比较两个文本文件,并计算第二个文件中的每个数字在第一个文件中出现的次数   java我在排序这个未排序的数组时遇到问题   Java Lucene对于同一Lucene查询语言,BooleanQuery和QueryParser查询的结果不同   NetBeans环境中的java捕获EDT异常   java Hibernate JPA与共享主键外键字段的一对一双向映射为空(hb无法自动设置)   停止jar实例(kill<PID>)和关闭挂钩进程后的java不会停止   java扫描程序没有停止   java使用现有私钥和RS256算法生成JWT   java我需要测试接口的每个实现来测试接口吗?   java什么是Joda相当于Calendar get DST Offset   异步api的java Cpu利用率非常高   java无法从Mule接收HTTP响应   Java7精确重播,最后一个异常