我们在fluent当中后处理的时候,可以通过fluent本身得到某些物理量的最大值和最小值,但是我们却无法确定这些最大值和最小值的具体位置。其实我们可以将求解数据导出以后,借助python求得最大值和最小值对应的具体坐标点。
我们编写如下的脚本
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import pandas as pd
from pandas import Series,DataFrame
#读取导出的ASCII文件
data=pd.read_csv(r"/home/dell/new/contour/Cylinder")
velocity=data[data.columns[3]]
sort_data=data.sort_index(by=data.columns[3]) #升序
min_value=sorted(velocity)[0] #选取最小值
max_value=sorted(velocity)[-1] #选取最大值
count_velocity=pd.value_counts(velocity) #首先对速度值进行统计
sort_velocity=count_velocity.sort_index() #对统计的速度值按照升序排列
min_total_point=sort_velocity.values[0] #最小值点的个数
max_total_point=sort_velocity.values[-1] #最大值点的个数
print "**********************"
print "最小值为:%g" % min_value
print "最小值点共有:%d个" % min_total_point
print "最小值点的位置为".center(30,"*")
new_index=[i+1 for i in range(min_total_point)]
print DataFrame(sort_data.iloc[0:min_total_point,[1,2]].values,index=new_index,columns=[u"x坐标",u"y坐标"])
new_index=[i+1 for i in range(max_total_point)]
print "**********************"
print "**********************"
print "最大值为:%g" % max_value
print "最大点共有:%d个" % max_total_point
print "最大值点的位置为".center(30,"*")
print DataFrame(sort_data.iloc[-max_total_point:,[1,2]].values,index=new_index,columns=[u"x坐标",u"y坐标"])
print "**********************"