fluent软件的用途

fluent软件的用途,第1张

FLUENT软件包简介

FLUENT通用CFD软件包,用来模拟从不可压缩到高度可压缩范围内的复杂流动。由于采用了多种求解方法和多重网格加速收敛技术,因而FLUENT能达到最佳的收敛速度和求解精度。灵活的非结构化网格和基于解的自适应网格技术及成熟的物理模型,使FLUENT在转捩与湍流、传热与相变、化学反应与燃烧、多相流、旋转机械、动/变形网格、噪声、材料加工、燃料电池等方面有广泛应用。

FLUENT软件具有以下特点:

☆ FLUENT软件采用基于完全非结构化网格的有限体积法,而且具有基于网格节点和网格单元的梯度算法;

☆ 定常/非定常流动模拟,而且新增快速非定常模拟功能;

☆ FLUENT软件中的动/变形网格技术主要解决边界运动的问题,用户只需指定初始网格和运动壁面的边界条件,余下的网格变化完全由解算器自动生成。网格变形方式有三种:d簧压缩式、动态铺层式以及局部网格重生式。其局部网格重生式是FLUENT所独有的,而且用途广泛,可用于非结构网格、变形较大问题以及物体运动规律事先不知道而完全由流动所产生的力所决定的问题;

☆ FLUENT软件具有强大的网格支持能力,支持界面不连续的网格、混合网格、动/变形网格以及滑动网格等。值得强调的是,FLUENT软件还拥有多种基于解的网格的自适应、动态自适应技术以及动网格与网格动态自适应相结合的技术;

☆ FLUENT软件包含三种算法:非耦合隐式算法、耦合显式算法、耦合隐式算法,是商用软件中最多的;

☆ FLUENT软件包含丰富而先进的物理模型,使得用户能够精确地模拟无粘流、层流、湍流。湍流模型包含Spalart-Allmaras模型、k-ω模型组、k-ε模型组、雷诺应力模型(RSM)组、大涡模拟模型(LES)组以及最新的分离涡模拟(DES)和V2F模型等。另外用户还可以定制或添加自己的湍流模型;

☆ 适用于牛顿流体、非牛顿流体;

☆ 含有强制/自然/混合对流的热传导,固体/流体的热传导、辐射;

☆ 化学组份的混合/反应;

☆ 自由表面流模型,欧拉多相流模型,混合多相流模型,颗粒相模型,空穴两相流模型,湿蒸汽模型;

☆ 融化溶化/凝固;蒸发/冷凝相变模型;

☆ 离散相的拉格朗日跟踪计算;

☆ 非均质渗透性、惯性阻抗、固体热传导,多孔介质模型(考虑多孔介质压力突变);

☆ 风扇,散热器,以热交换器为对象的集中参数模型;

☆ 惯性或非惯性坐标系,复数基准坐标系及滑移网格;

☆ 动静翼相互作用模型化后的接续界面;

☆ 基于精细流场解算的预测流体噪声的声学模型;

☆ 质量、动量、热、化学组份的体积源项;

☆ 丰富的物性参数的数据库;

☆ 磁流体模块主要模拟电磁场和导电流体之间的相互作用问题;

☆ 连续纤维模块主要模拟纤维和气体流动之间的动量、质量以及热的交换问题;

☆ 高效率的并行计算功能,提供多种自动/手动分区算法;内置MPI并行机制大幅度提高并行效率。另外,FLUENT特有动态负载平衡功能,确保全局高效并行计算;

☆ FLUENT软件提供了友好的用户界面,并为用户提供了二次开发接口(UDF);

☆ FLUENT软件采用C/C++语言编写,从而大大提高了对计算机内存的利用率。

--------------------------------------------------------------------------------

FLUENT是目前国际上比较流行的商用CFD软件包,在美国的市场占有率为60%。举凡跟流体,热传递及化学反应等有关的工业均可使用。它具有丰富的物理模型、先进的数值方法以及强大的前后处理功能,在航空航天、汽车设计、石油天然气、涡轮机设计等方面都有着广泛的应用。其在石油天然气工业上的应用包括:燃烧、井下分析、喷射控制、环境分析、油气消散/聚积、多相流、管道流动等等。

Fluent的软件设计基于CFD软件群的思想,从用户需求角度出发,针对各种复杂流动的物理现象,FLUENT软件采用不同的离散格式和数值方法,以期在特定的领域内使计算速度、稳定性和精度等方面达到最佳组合,从而高效率地解决各个领域的复杂流动计算问题。基于上述思想,Fluent开发了适用于各个领域的流动模拟软件,这些软件能够模拟流体流动、传热传质、化学反应和其它复杂的物理现象,软件之间采用了统一的网格生成技术及共同的图形界面,而各软件之间的区别仅在于应用的工业背景不同,因此大大方便了用户。其各软件模块包括:

GAMBIT——专用的CFD前置处理器,FLUENT系列产品皆采用FLUENT公司自行研发的Gambit前处理软件来建立几何形状及生成网格,是一具有超强组合建构模型能力之前处理器,然后由Fluent进行求解。也可以用ICEM CFD进行前处理,由TecPlot进行后处理。

Fluent54——基于非结构化网格的通用CFD求解器,针对非结构性网格模型设计,是用有限元法求解不可压缩流及中度可压缩流流场问题的CFD软件。可应用的范围有紊流、热传、化学反应、混合、旋转流(rotating flow)及震波(shocks)等。在涡轮机及推进系统分析都有相当优秀的结果,并且对模型的快速建立及 shocks处的格点调适都有相当好的效果。(目前是60,含turbo模块)

Fidap——基于有限元方法的通用CFD求解器,为一专门解决科学及工程上有关流体力学传质及传热等问题的分析软件,是全球第一套使用有限元法于CFD领域的软件,其应用的范围有一般流体的流场、自由表面的问题、紊流、非牛顿流流场、热传、化学反应等等。 FIDAP本身含有完整的前后处理系统及流场数值分析系统。 对问题整个研究的程序,数据输入与输出的协调及应用均极有效率。

Polyflow——针对粘d性流动的专用CFD求解器,用有限元法仿真聚合物加工的CFD软件,主要应用于塑料射出成形机,挤型机和吹瓶机的模具设计。

Mixsim——针对搅拌混合问题的专用CFD软件,是一个专业化的前处理器,可建立搅拌槽及混合槽的几何模型,不需要一般计算流力软件的冗长学习过程。它的图形人机接口和组件数据库,让工程师直接设定或挑选搅拌槽大小、底部形状、折流板之配置,叶轮的型式等等。MixSim随即自动产生3维网络,并启动FLUENT做后续的模拟分析。

Icepak——专用的热控分析CFD软件,专门仿真电子电机系统内部气流,温度分布的CFD分析软件,特别是针对系统的散热问题作仿真分析,藉由模块化的设计快速建立模型。

交换机portstatus配置命令有:

用户视图

登陆设备后,直接进入用户模式,只能执行少量查看配置的命令

Info: The max number of VTY users is 10, and the number

of current VTY users on line is 1

The current login time is 2020-04-10 12:15:00+00:00

<ZD_agg_5720>

系统视图

用户模式下,输入system-view命令进入视图模式,可执行设备全局配置的命令

<ZD_agg_5720>system-view

Enter system view, return user view with Ctrl+Z

[ZD_agg_5720]

局部视图

系统视图模式下,输入局部配置命令,进入局部对像的配置视图。如interface GE 1/0/0,进入GE1/0/0端口配置模式

<ZD_agg_5720>system-view

Enter system view, return user view with Ctrl+Z

[ZD_agg_5720]interface GigabitEthernet 1/0/1

[ZD_agg_5720-GigabitEthernet1/0/1]

信息查看命令

交换机信息查看

display version 查看交换机软件版本

display clock 查看交换机时钟

交换机配置查看

display saved-configuration 显示系统保存配置

display current-configuration 显示系统当前配置

当前对象信息查看

display this 显示当前信息。

display this include-default 显示当前接口视图下的接口信息,包括默认值。

display this interface 显示当前接口视图下的接口信息。

查看接口

display interface 查看接口当前运行状态和接口统计信息

display interface brief 查看接口状态和配置的简要信息。

display interface description 查看指定接口的描述信息

display interface vlanif 查看VLANIF接口的状态信息、配置信息和统计信息。

查看IP相关

display ip interface 查看接口与IP相关的配置和统计信息,包括接口接收和发送的报文数、字节数和组播报文数,以及接口接收、发送、转发和丢弃的广播报文数。

display ip interface brief 看接口与IP相关的简要信息,包括IP地址、子网掩码、物理链路和协议的Up/Down状态以及处于不同状态的接口数目。

display ip interface description 查看接口与IP相关的简要信息,包括IP地址、子网掩码、物理层状态、链路层协议状态,及接口描述信息和处于不同状态的接口数目。

display ip pool 显示所有ip pool

display ip pool name {pool name} {all|conflict|expired|used} 显示ip pool详细信息

display ip host 查看静态DNS表项

display ip socket 查看已创建的IPv4 Socket信息。

display ip statistics 显示IP流量统计信息。

查看路由

display ip routing-table 显示路由信息

display ospf peer 查看ospf邻接等信息

display ospf peer brief 查看ospf邻接等简要信息

display rip 查看rip路由信息

网络及流量

display network status { all|tcp|udp|port port-number } 显示IP流量统计信息

display tcp statistics 查看TCP流量统计信息

display udp statistics 查看UDP流量统计信息

VLAN查看

display vlan 显示VLAN信息

display vlan {pvid} verbose 查看vlan的详细信息

display port vlan 查看VLAN中包含的接口信息

display sub-vlan 查看Sub-VLAN类型的VLAN表项信息

display super-vlan 查看Super-VLAN类型的VLAN表项信息

display mac-vlan mac-address all 查看所有MAC地址划分VLAN的配置信息

display mac-vlan vlan 2 查看vlan 2 MAC地址划分VLAN的配置信息

查看ACL配置

display acl {all | name | ipv6} 查看ACL

display traffic classifier user-defined 查看用户定义的流分类

display traffic behavior user-defined 查看用户定义的流行为

display traffic policy user-defined {policy name} 查看用户定义的流策略

display traffic-applied {inbound | outbound | interface | vlan} 查看流策略应用情况

display traffic policy {global | interface | statistics | vlan } {inbound | outbound} 查看更多流策略信息

display traffic policy statistics {global | interface | vlan} {inbound | outbound} 查看流策略统计信息

display traffic-filter applied-record 查看acl应用的接口

查看NAT配置

#路由器命令

display nat static {acl | global | inside | interface} 查看静态NAT信息

display nat session {all | dest | number | protocol | source} 查看动态NAT信息

display nat server {acl | global | inside | interface} 查看NAT server信息

配置管理命令

端口管理

port 配置接口的缺省VLAN并加入该VLAN

port description 配置接口的描述信息,描述与接口相连的设备类型。

port gigabitethernet 0/0/1 to 0/0/4

port default vlan 配置接口的缺省VLAN并同时加入这个VLAN。

port link-type {access | hybird | trunk} 配置接口的链路类型

port trunk allow-pass vlan {vlanid} 将trunk接口加入vlan

端口配置

speed {10|100|auto} 配置端口工作速率

duplex {half|full|auto}

貌似你的教室名称没用上。(及a表没用)

看看是不是你要的

select acna as 教室名称, bjie as 节次, clesna as 课程名称

from b,a,c

where acno =

and bds=

and b,zhou=

and bcno=acno

and blesno=clesno

实例讲解MYSQL数据库的查询优化技术

作者:佚名 文章来源:未知 点击数:2538 更新时间:2006-1-19

数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用之一。从大多数系统的应用实例来看,查询 *** 作在各种数据库 *** 作中所占据的比重最大,而查询 *** 作所基于的SELECT语句在SQL语句中又是代价最大的语句。举例来说,如果数据的量积累到一定的程度,比如一个银行的账户数据库表信息积累到上百万甚至上千万条记录,全表扫描一次往往需要数十分钟,甚至数小时。如果采用比全表扫描更好的查询策略,往往可以使查询时间降为几分钟,由此可见查询优化技术的重要性。

笔者在应用项目的实施中发现,许多程序员在利用一些前端数据库开发工具(如PowerBuilder、Delphi等)开发数据库应用程序时,只注重用户界面的华丽,并不重视查询语句的效率问题,导致所开发出来的应用系统效率低下,资源浪费严重。因此,如何设计高效合理的查询语句就显得非常重要。本文以应用实例为基础,结合数据库理论,介绍查询优化技术在现实系统中的运用。

分析问题

许多程序员认为查询优化是DBMS(数据库管理系统)的任务,与程序员所编写的SQL语句关系不大,这是错误的。一个好的查询计划往往可以使程序性能提高数十倍。查询计划是用户所提交的SQL语句的集合,查询规划是经过优化处理之后所产生的语句集合。DBMS处理查询计划的过程是这样的:在做完查询语句的词法、语法检查之后,将语句提交给DBMS的查询优化器,优化器做完代数优化和存取路径的优化之后,由预编译模块对语句进行处理并生成查询规划,然后在合适的时间提交给系统处理执行,最后将执行结果返回给用户。在实际的数据库产品(如Oracle、Sybase等)的高版本中都是采用基于代价的优化方法,这种优化能根据从系统字典表所得到的信息来估计不同的查询规划的代价,然后选择一个较优的规划。虽然现在的数据库产品在查询优化方面已经做得越来越好,但由用户提交的SQL语句是系统优化的基础,很难设想一个原本糟糕的查询计划经过系统的优化之后会变得高效,因此用户所写语句的优劣至关重要。系统所做查询优化我们暂不讨论,下面重点说明改善用户查询计划的解决方案。

解决问题

下面以关系数据库系统Informix为例,介绍改善用户查询计划的方法。

1.合理使用索引

索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处,其使用原则如下:

●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。

●在频繁进行排序或分组(即进行group by或order by *** 作)的列上建立索引。

●在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。

●如果待排序的列有多个,可以在这些列上建立复合索引(compound index)。

●使用系统工具。如Informix数据库有一个tbcheck工具,可以在可疑的索引上进行检查。在一些数据库服务器上,索引可能失效或者因为频繁 *** 作而使得读取效率降低,如果一个使用索引的查询不明不白地慢下来,可以试着用tbcheck工具检查索引的完整性,必要时进行修复。另外,当数据库表更新大量数据后,删除并重建索引可以提高查询速度。

2.避免或简化排序

应当简化或避免对大型表进行重复的排序。当能够利用索引自动以适当的次序产生输出时,优化器就避免了排序的步骤。以下是一些影响因素:

●索引中不包括一个或几个待排序的列;

●group by或order by子句中列的次序与索引的次序不一样;

●排序的列来自不同的表。

为了避免不必要的排序,就要正确地增建索引,合理地合并数据库表(尽管有时可能影响表的规范化,但相对于效率的提高是值得的)。如果排序不可避免,那么应当试图简化它,如缩小排序的列的范围等。

3.消除对大型表行数据的顺序存取

在嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响。比如采用顺序存取策略,一个嵌套3层的查询,如果每层都查询1000行,那么这个查询就要查询10亿行数据。避免这种情况的主要方法就是对连接的列进行索引。例如,两个表:学生表(学号、姓名、年龄……)和选课表(学号、课程号、成绩)。如果两个表要做连接,就要在“学号”这个连接字段上建立索引。

还可以使用并集来避免顺序存取。尽管在所有的检查列上都有索引,但某些形式的where子句强迫优化器使用顺序存取。下面的查询将强迫对orders表执行顺序 *** 作:

SELECT * FROM orders WHERE (customer_num=104 AND order_num>1001) OR order_num=1008

虽然在customer_num和order_num上建有索引,但是在上面的语句中优化器还是使用顺序存取路径扫描整个表。因为这个语句要检索的是分离的行的集合,所以应该改为如下语句:

SELECT * FROM orders WHERE customer_num=104 AND order_num>1001

UNION

SELECT * FROM orders WHERE order_num=1008

这样就能利用索引路径处理查询。

4.避免相关子查询

一个列的标签同时在主查询和where子句中的查询中出现,那么很可能当主查询中的列值改变之后,子查询必须重新查询一次。查询嵌套层次越多,效率越低,因此应当尽量避免子查询。如果子查询不可避免,那么要在子查询中过滤掉尽可能多的行。

5.避免困难的正规表达式

MATCHES和LIKE关键字支持通配符匹配,技术上叫正规表达式。但这种匹配特别耗费时间。例如:SELECT * FROM customer WHERE zipcode LIKE “98_ _ _”

即使在zipcode字段上建立了索引,在这种情况下也还是采用顺序扫描的方式。如果把语句改为SELECT * FROM customer WHERE zipcode >“98000”,在执行查询时就会利用索引来查询,显然会大大提高速度。

另外,还要避免非开始的子串。例如语句:SELECT * FROM customer WHERE zipcode[2,3]>“80”,在where子句中采用了非开始子串,因而这个语句也不会使用索引。

6.使用临时表加速查询

把表的一个子集进行排序并创建临时表,有时能加速查询。它有助于避免多重排序 *** 作,而且在其他方面还能简化优化器的工作。例如:

SELECT custname,rcvblesbalance,……other columns

FROM cust,rcvbles

WHERE custcustomer_id = rcvlbescustomer_id

AND rcvbllsbalance>0

AND custpostcode>“98000”

ORDER BY custname

如果这个查询要被执行多次而不止一次,可以把所有未付款的客户找出来放在一个临时文件中,并按客户的名字进行排序:

SELECT custname,rcvblesbalance,……other columns

FROM cust,rcvbles

WHERE custcustomer_id = rcvlbescustomer_id

AND rcvbllsbalance>0

ORDER BY custname

INTO TEMP cust_with_balance

然后以下面的方式在临时表中查询:

SELECT * FROM cust_with_balance

WHERE postcode>“98000”

临时表中的行要比主表中的行少,而且物理顺序就是所要求的顺序,减少了磁盘I/O,所以查询工作量可以得到大幅减少。

注意:临时表创建后不会反映主表的修改。在主表中数据频繁修改的情况下,注意不要丢失数据。

7.用排序来取代非顺序存取

非顺序磁盘存取是最慢的 *** 作,表现在磁盘存取臂的来回移动。SQL语句隐藏了这一情况,使得我们在写应用程序时很容易写出要求存取大量非顺序页的查询。

有些时候,用数据库的排序能力来替代非顺序的存取能改进查询。

实例分析

下面我们举一个制造公司的例子来说明如何进行查询优化。制造公司数据库中包括3个表,模式如下所示:

1.part表

零件号 零件描述其他列

(part_num) (part_desc)(other column)

102,032 Seageat 30G disk ……

500,049 Novel 10M network card……

……

2.vendor表

厂商号厂商名其他列

(vendor _num) (vendor_name) (other column)

910,257 Seageat Corp ……

523,045 IBM Corp ……

……

3.parven表

零件号 厂商号 零件数量

(part_num) (vendor_num) (part_amount)

102,032910,2573,450,000

234,423321,0014,000,000

……

下面的查询将在这些表上定期运行,并产生关于所有零件数量的报表:

SELECT part_desc,vendor_name,part_amount

FROM part,vendor,parven

WHERE partpart_num=parvenpart_num

AND parvenvendor_num = vendorvendor_num

ORDER BY partpart_num

如果不建立索引,上述查询代码的开销将十分巨大。为此,我们在零件号和厂商号上建立索引。索引的建立避免了在嵌套中反复扫描。关于表与索引的统计信息如下:

表 行尺寸 行数量 每页行数量 数据页数量

(table) (row size) (Row count) (Rows/Pages) (Data Pages)

part150 10,00025 400

Vendor 150 1,000 25 40

Parven 13  15,000300 50

索引 键尺寸 每页键数量 页面数量

(Indexes) (Key Size) (Keys/Page) (Leaf Pages)

part 4500 20

Vendor4500 2

Parven8250 60

看起来是个相对简单的3表连接,但是其查询开销是很大的。通过查看系统表可以看到,在part_num上和vendor_num上有簇索引,因此索引是按照物理顺序存放的。parven表没有特定的存放次序。这些表的大小说明从缓冲页中非顺序存取的成功率很小。此语句的优化查询规划是:首先从part中顺序读取400页,然后再对parven表非顺序存取1万次,每次2页(一个索引页、一个数据页),总计2万个磁盘页,最后对vendor表非顺序存取15万次,合3万个磁盘页。可以看出在这个索引好的连接上花费的磁盘存取为504万次。

实际上,我们可以通过使用临时表分3个步骤来提高查询效率:

1.从parven表中按vendor_num的次序读数据:

SELECT part_num,vendor_num,price

FROM parven

ORDER BY vendor_num

INTO temp pv_by_vn

这个语句顺序读parven(50页),写一个临时表(50页),并排序。假定排序的开销为200页,总共是300页。

2.把临时表和vendor表连接,把结果输出到一个临时表,并按part_num排序:

SELECT pv_by_vn,* vendorvendor_num

FROM pv_by_vn,vendor

WHERE pv_by_vnvendor_num=vendorvendor_num

ORDER BY pv_by_vnpart_num

INTO TMP pvvn_by_pn

DROP TABLE pv_by_vn

这个查询读取pv_by_vn(50页),它通过索引存取vendor表15万次,但由于按vendor_num次序排列,实际上只是通过索引顺序地读vendor表(40+2=42页),输出的表每页约95行,共160页。写并存取这些页引发5*160=800次的读写,索引共读写892页。

3.把输出和part连接得到最后的结果:

SELECT pvvn_by_pn*,partpart_desc

FROM pvvn_by_pn,part

WHERE pvvn_by_pnpart_num=partpart_num

DROP TABLE pvvn_by_pn

这样,查询顺序地读pvvn_by_pn(160页),通过索引读part表15万次,由于建有索引,所以实际上进行1772次磁盘读写,优化比例为30∶1。笔者在Informix Dynamic

Sever上做同样的实验,发现在时间耗费上的优化比例为5∶1(如果增加数据量,比例可能会更大)。

小结

20%的代码用去了80%的时间,这是程序设计中的一个著名定律,在数据库应用程序中也同样如此。我们的优化要抓住关键问题,对于数据库应用程序来说,重点在于SQL的执行效率。查询优化的重点环节是使得数据库服务器少从磁盘中读数据以及顺序读页而不是非顺序读页。

以上就是关于fluent软件的用途全部的内容,包括:fluent软件的用途、交换机portstatus配置命令、请教一个sql server数据库多表查询问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9548113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存