如果我没理解错,CFD是Computational Fluid Dynamics吧。
我发现流体力学计算在你不要求的情况下,是单线程的。这样选择一款核心数量不多,但是主频高的CPU就很重要了。6000左右的笔记本,显卡做计算几乎是没什么可能的,所以索性不要关注什么显卡,把注意力集中在主频上。如果有闲钱,换一块固态硬盘。matlab和我现在用的autodesk CFD在运行时都需要调用大量的库。固态读取速度相当快,于是减小你计算时候的等待时间。
我平常在家用服务器做计算,出去只能用笔记本的情况下,我用的东芝 satelite 897,i7-3930,vertax 4的固态 和一个普通的大硬盘,显卡就是intel高性能集成显卡了。固态上放系统和这些常用的程序。
性能和一般的工作站还是有一拼的。
说实话我建议你买大一点的,开发程序或者调整CFD参数,我觉得屏幕大看起来没有这么累。
随着人们生活水平和生活质量的不断提高,现代建筑物内部装饰、装修成为时尚。而20世纪70年代的能源危机所引起的节能热潮,使人们在普遍使用保温节能材料的基础上,将房屋尽可能密封。建筑物密闭程度的增加,新风量的不足, 导致了室内空气污染物不容易扩散,增加了室内人群与污染物的接触机会,因此室内空气的污染问题引起人们的极大关注。研究室内有害物产生-扩散及分布的规律,以便对它们进行有效控制,减少对居住者的危害,已经成为环境卫生学领域的一个热门课题。
1 室内空气品质评价
研究发现,病态建筑物综合症(sick building syndrome,SBS)[1]及随之产生的工作效率的下降等都直接或间接地与室内空气品质(indoor air quality,IAQ)有关,所以对室内空气品质进行评价具有非常重要的意义。室内空气品质评价可以做到:①掌握室内空气品质状况和变化趋势,以便有效预测室内空气的污染程度;②评价室内空气污染对人体健康的影响以及室内人员的接受程度,为制订室内空气品质标准提供依据;③弄清污染源与室内空气品质的关系,为建筑设计、卫生防疫、污染控制提供依据。
室内空气品质评价是人们认识室内环境的一种科学方法,它是随着人们对室内环境重要性认识不断加深而提出的新概念。国际上通常选用CO2、CO、甲醛、可吸入性微粒、NOx、SO2、室内细菌总数、温度、相对湿度、风速、照度以及噪声共12个指标[2]来定量地反映室内环境质量。我国则选用温度、相对湿度、空气流速、新风量、SO2、NO2、CO、CO2、NH3、O3、甲醛、苯、甲苯、二甲苯、苯并[a]芘B(a)P、可吸入颗粒物、总挥发性有机物、菌落总数、氡共19项指标。目前国内外普遍运用的室内空气品质评价方法有主观评价法、客观评价法和主客观相结合的综合评价法[3]。其中较为成熟的客观评价法有室内空气污染物的检测评价法和CFD数值模拟法。污染物检测评价法是指选择具有代表性的污染物作为评价指标,通过采样分析测定该污染物浓度,最后对照室内空气质量标准做出检测报告,得出室内环境是否达标。这种方法非常直观,从检测报告中可以看出室内污染物的超标倍数。但是该方法的分析测定结果只能反映室内污染物在极限状态下的平均浓度,而不能反映通风状况下空间各点污染物的浓度分布。
CFD (Computational Fluid Dynamics,计算流体力学)数值模拟法是通过计算机数值计算和图像显示,对包含有流体流动和热传导等相关物理现象的系统所做的分析。它可以模拟室内空气中气流的运动状态和污染物在空气中的分布状况。简单地说,该方法就是在计算机上虚拟地做实验,依据室内空气流动的数学物理模型,将房间划分为小的控制体,把控制空气流动的连续的微分方程组离散为非连续的代数方程组,然后结合实际的边界条件在计算机上进行数值求解。只要划分的控制体足够小就可认为离散区域上的离散值代表整个房间内空气分布情况[4]。其理论依据是质量、动量以及能量三大守恒定律[5~7]
2 CFD计算方法及模型
室内大部分气流属于湍流,数值计算中湍流粘性占主导地位,仅在壁面附近为层流。由于室内空气流动雷诺数(Re)较大,故通风房间可模拟为一个非稳态的三维湍流问题,一般采用标准的K-ε两方程模型对其进行数学描述。CFD计算方法主要有三种:差分法、有限元法、有限体积法。
描述室内空气环境气流的流动和传热现象以及污染物的扩散传质现象的微分方程包括连续方程、动量方程、能量方程、气体组分方程等,它们可统一写成如下的标准形式 :
式中,φ为微分方程的因变量,它取1时代表连续方程,取ui, T, k, ε, m,分别对应于速度、温度、湍流动能、湍流动能和气体组分方程,Γφ为扩散系数;Sφ为广义源项。
通常采用有限差分法进行离散,再用某种离散算法,比如SIMPLE方法求解。具体求解时,可借助于功能强大的商用CFD软件(如FLUENT、PHOENICS、CFX、STAR-CD、FIDAP等) [9],利用它们直观而便捷的 *** 作迅速完成计算,而让专业人员专注于所探讨的问题本身。
3 CFD在室内空气质量评价方面的研究现状与应用
目前国外所从事的室内环境领域的研究开发工作主要集中在病态建筑物综合症(SBS)的成因及预防、氡(Rn)辐射的控制、室内环境污染与人类健康等方面。在西方发达国家,由于呈病态建筑物综合症状(SBS)的人数急剧增加,因此,各国投入了大量的人力和财力从事室内环境问题的研究和开发工作。近年来CFD 技术已成为对室内环境参数(如空气温度、湿度、空气速度、污染物浓度)进行数值模拟和预测的重要工具。由于室内污染物的多样性、微量性和累积性,许多研究机构投巨资建立了专门用于室内环境研究的受控环境舱(Controlled Environment Chamber, CEC),如美国劳伦斯·伯克利实验室(LBNL)的室内环境系和丹麦理工大学的室内环境和能源国际中心(ICIEE)等,因而占据着此领域的地位。目前,劳伦斯·伯克利国家实验室正在使用埃施朗公司的LonWorks技术开发一个供暖、通风和空调(HVAC)系统的原型,以改善加州85000个可移动教室(portable classroom)的室内空气质量。丹麦理工大学的室内环境和能源国际中心的研究主要集中在人体热舒适、室内环境品质对人体健康、舒适和工作效率的影响以及个性化送风系统的设计等几个方面。他们正在用CFD技术模拟室内暖体假人(thermal manikin)周围的流场分布,从事人体对室内环境的感知机理,人体与环境之间的对流、辐射等热交换形式的理论和实验研究,期待得到室内尤其是人体周围的温度和污染物浓度分布。
我国对室内环境的研究的深度和广度上还很有限,大多数研究集中在对燃料燃烧、吸烟以及不同场合的VOC的排放、室内装修及家具带来的污染、室内环境污染的治理、对人体的健康效应的评价以及对氡的检测等几个方面的实验研究上。对室内空气气流的运动状态和污染物在空气中的分布的研究正处于刚刚起步的阶段。目前国内只有几家科研单位和大专院校做了有关室内环境CFD方面的研究工作。通过使用CFD技术可以实现以下目标:结合室内污染源释放扩散模型,利用室内建材和装饰材料源释放数据库,可以掌握室内空气品质状况和变化趋势,预测室内空气的污染程度,评价室内空气品质,指导建材和装饰材料的使用,减少由于室内空气品质低劣导致病态建筑出现的可能性;结合空气净化器模型,优化送回风方式和空气净化器摆放位置,使空气净化器效率达到[10]。
由于数值模拟相对于实验研究有独特的优点,比如成本低,周期短,能获得完整的数据,能模拟出实际运行过程中各种所测数据状态,对于设计、改造等商业或实验室应用起到重要的指导作用,因而CFD技术得到了越来越多的应用[11~14]。在环境方面的应用主要包括以下几部分:河流中污染物的扩散规律的研究;汽车尾气对街道环境污染的分析以及室内空气气流及污染物的分布[15~17]。
31 室内空气质量与热舒适
从20世纪20年代起,由人们对空调系统引起的吹风感的抱怨开始,产生了空气流动对热舒适影响的研究。50年代末,对热舒适的研究进入高潮。从研究空气平均速度对热舒适性的影响到研究气流脉动强度、气流脉动频率对人体热感觉的影响。而对吹风感的研究多基于实验研究,这给CFD的理论研究积累了大量的数据。基于此,CFD学者们可以对不同的置换通风系统中的气流平均速度、脉动强度及脉动频率特性进行模拟,建立相应的数据库,再通过与实验结果的对比,提出可以有效评价吹风感的参数及其数学模型,从而实现对系统可能产生的吹风感的预测。
置换通风是建筑通风最常用的形式,包含两种不同的对流方式:一种是由离散热源与污染源浮升力作用引起的自然对流;另一种是由外界机械通风引起的强迫对流。因此,室内实际的空气流动与传热传质特性应该由上述两种对流之间的相互作用来决定。
日本东京大学的Marahami[20]利用低雷诺数K-ε湍流模型和Gagge的人体两节点模型,模拟计算了人体与环境热湿传递过程中人体周围的空气温度、湿度、空气流速分布,模拟计算结果与对真人和暖体假人的实测结果相近。利用模拟计算结果可准确预测各种室内热环境下人体的热感觉。日本开发了用于人体热舒适评价和室内空气品质评价的软件,并将PMV、空气龄等指标的计算问题编入CFD软件[21]。
美国麻省理工学院(MIT) [22]开发了几个雷诺平均纳维-斯托克斯RANS(Reynolds Averaged Navier-Stokes)方程模型(如双层K-ε紊流模型和零方程模型的CFD程序)和大涡模拟LES(Large Eddy Simulation)程序,用于模拟计算带有置换通风的办公建筑室内空气流速和温度,进行建筑物能量分析和室内热环境设计,评价建筑物自然通风效果,研究建筑材料的挥发性有机化合物VOC释放和室内空气品质问题。
徐玉党和张莉[23]通过模拟计算某房间各个截面上温度、速度和湍流强度的分布,来预测出整个房间的热舒适度。在数值模拟可视图中,可以看到房间内的温度场没有热分层现象,且温度梯度变化不大。计算方法表明,在相同的空气强度和流速条件下,高湍流强度的气流比低湍流强度的气流更容易产生冷吹风感,从而引发人体舒适性问题。
32 室内空气质量与建筑通风
通风房间内,新风量和风口位置决定着室内空气的温度、相对湿度以及污染物的分布。因此有效的通风和合理的气流组织对于改善室内空气品质,控制室 内空气污染物水平,保证实现健康建筑有着重要的意义。
目前对室内空气环境的CFD模拟较好地考虑了热源浮升力对室内气流的驱动作用,而很少考虑室内污染物浓度差对空气流动的影响。尽管前者的影响比后者更为明显,但近年来国内室内污染物浓度近一半超过国家标准,对人体健康产生了重要影响的事实,使人们意识到污染物浓度差对室内气流的影响与驱动作用已是不容忽视的。特别是,随着近年来地板送风空调系统或置换通风系统的广泛采用,热与污染物浮升力作用相当,必须同时给予考虑。
Tatsuya等[24]利用k-ε湍流模型,模拟呈站立、仰卧和坐姿三种状态的个体人群周围的气流及污染物浓度的分布情况。由于人体呼出的空气量很少,不足以影响室内空气流场,因此,在边界条件的设置中把人嘴设置为排风口(exhaust fan),并且考虑到呼吸区的气流受到由人体新陈代谢产生热量而呈上升状态的影响,设人体热流分别为站立:200 W/m2, 坐姿:203 W/m2,仰卧:301 W/m2。此物理模型考虑到了人体的呼吸及其自身代谢的热量,与实际情况更相符。得到存在污染源(地板)的情况下,人体周围污染物浓度的分布。另外,研究过程中Tatsuya等定义了更具有实际应用价值的污染物吸入效应指数(IECI),用来评价污染物的扩散对人体的危害效应。
山东科技大学土木建筑学院的刘玉峰,徐永清[25]利用CFD商用程序,对通风空调系统两种常用气流组织方式(上送上回式以及上送下回式气流组织方式)的室内复合型木制装饰材料所释放的挥发性有机物(以甲醛为评价指标)的浓度场进行了计算,并对计算结果进行了分析,得出以下结论:不同气流组织方式下,室内污染物的分布特性、空气交换效率相差较大。比较而言,上送下回气流组织方式优于上送上回气流组织方式,其工作区污染物浓度和空气交换效率较高。
上海大学的徐丽等[26]采用雷诺平均的N-S方程与RNG的κ–ε涡粘性湍流模型,针对三种不同通风方案对内设障碍物、污染源和集中热源的房间内的三维速度场、温度场以及污染物CO2的浓度分布进行了数值模拟分析。并给出了x=1m,x=18m和x=27m三个剖面上沿房间高度方向的CO2浓度分布图。得出结论:在相同的条件下,置换通风方式可获得的IAQ。因为上进上出通风房间内的CO2浓度达到几万ppm,已远超出IAQ评价标准。上侧进上侧出通风方式则介于二者之间,但也超标。
另外,文献[26]还给出了污染物的质量组份的对流-扩散方程,介绍了通风效率的概念。通过对三种通风方式的气流组织和室内空气品质的比较得出,置换通风可使室内工作区得到较高的空气品质、较高的热舒适性,并具有较高的通风效率。
4 展 望
自从1974年,丹麦的Nilsen首次将CFD技术应用于空调工程,模拟室内空气流动情况后,近年来,计算流体动力学在建筑环境模拟中的应用日趋广泛与成熟,并逐步成为人们认识与评价室内空气环境的重要手段与工具。因为CFD数值模拟得到的微观数据分布,如空气流速、温度与污染物浓度等,是设计与控制健康舒适室内空气环境的依据[27]。通过数值模拟技术对建筑室内环境进行模拟仿真,可以形象、直观、快捷地对室内气流流动形成的微环境做出分析和评价,这不仅便于让各类技术人员了解和把握室内空气及其污染物的分布规律,同时也是优化建筑规划设计的有力工具[28]。
目前用CFD模拟室内空气状况还存在以下问题:(1)无论是国内还是国外,用CFD技术模拟的室内空气污染物分布情况大都是针对甲醛和二氧化碳,对于苯、甲苯等室内空气浓度中危害较大的致癌性污染物进行模拟测定的还很少;(2)在模拟结果与实验测定相比较的基础上,为了得到更优化的模型,还要注重不同模型所得结果之间的对比; (3)由于现阶段对室内空气污染物的检测是在房间密闭的情况下进行的,因此,对密闭房间的模拟也有一定的现实意义。现今,多数学者都在研究通风房间的气流及污染物状况,对于密闭房间研究甚少。
综上所述, CFD技术可以对室内气流组织特性和污染物传播规律进行模拟,为评估室内空气品质和研究人体舒适性提供有力依据。但是需要选择合理的数学模型和离散方法,设置符合实际的边界条件,模拟结果才能与实际相符。它减少了研究者在计算方法、编程、前后处理等方面投入的重复、低效的劳动,可以将更多的精力和时间投入到考虑问题的本质,优化算法的选用,参数的设定等方面。因此,作为一种新学科,CFD将会随着技术的进步和发展而日趋成熟,并且将在环境领域获得更广泛的应用。
#include<stdioh>
#include<stdlibh>
#include<mathh>
#define maxsize 50
void trans(char str[],char exp[])/将算术表达式str转换成后缀表达式exp/
{
struct
{ char data[maxsize]; /存放运算符/
int top; /栈指针/
}opr; /定义运算符栈/
char ch;
int i=0,t=0; /t作为exp的下标,i作为str的下标/
oprtop=-1; /初始化设定top的值为负一/
ch=str[i];i++; /逐个读取字符串中的字符/
while (ch!='\0') /str表达式未扫描完时循环/
{ switch(ch) /判定/
{
case '(':
oprtop++;oprdata[oprtop]=ch; /判定为'('号,则将其入栈opr/
break;
case ')':
while (oprdata[oprtop]!='(') /判定为')'号/
{ exp[t]=oprdata[oprtop]; /将栈opr中'('以后的字符依次删除并存入数组exp中/
oprtop--;
t++;
}
oprtop--; /将左括号删除/
break;
case '+': /判定为加号或减号/
case '-':
while (oprtop!=-1 &&oprdata[oprtop]!='(')
{ exp[t]=oprdata[oprtop]; /将当前栈opr中(以前的所有字符依次删除并存入数组exp中/
oprtop--;
t++;
}
oprtop++;oprdata[oprtop]=ch; /将ch存入栈opr中/
break;
case '':
case '/':
while (oprdata[oprtop]==''||oprdata[oprtop]=='/'||oprdata[oprtop]=='^')
{ exp[t]=oprdata[oprtop]; /将当前栈opr中连续的''或'/'或'^'依次删除并存入数组exp中/
oprtop--;
t++;
}
oprtop++;oprdata[oprtop]=ch; /将ch存入栈opr中/
break;
case '^': /判定为乘方号/
while (oprdata[oprtop]=='^')
{ exp[t]=oprdata[oprtop]; /将当前栈opr中连续的'^'依次删除并存入数组exp中/
oprtop--;
t++;
}
oprtop++;oprdata[oprtop]=ch; /将ch存入栈opr中/
break;
case ' ': break; /过滤掉空格/
default:
while(ch>='0'&& ch<='9'||ch=='') /判定为数字/
{ exp[t]=ch;t++; /将后续数字依次存入数组中/
ch=str[i];i++;
}
i--;
exp[t]='#';t++; /用#标示一个数值串结束/
}
ch=str[i];i++;
}
while (oprtop!=-1) /此时str扫描完毕,栈不空时循环/
{ exp[t]=oprdata[oprtop];
t++;oprtop--;
}
exp[t]='\0'; /给exp表达式添加结束标示/
}
float compvalue(char exp[]) /计算后缀表达式的值/
{
struct
{ float data[maxsize]; /存放数值/
int top; /栈指针/
} st; /定义数值栈/
float d,d2;double po;
char ch;
int t=0,flag=1,i,count; /t作为exp的下标/
sttop=-1;
ch=exp[t];t++;
while (ch!='\0') /exp字符串为扫描完时循环/
{ switch(ch)
{
case '+':stdata[sttop-1]=stdata[sttop-1]+stdata[sttop]; /执行两次退栈,并将计算结果入栈/
sttop--;break;
case '-':stdata[sttop-1]=stdata[sttop-1]-stdata[sttop];
sttop--;break;
case '':stdata[sttop-1]=stdata[sttop-1]stdata[sttop];
sttop--;break;
case '/':
if(stdata[sttop]!=0)
stdata[sttop-1]=stdata[sttop-1]/stdata[sttop];
else
{ printf("\n除零错误!\n");
exit(0); /除数为零,异常退出/
}
sttop--;break;
case '^':
po=pow(stdata[sttop-1],stdata[sttop]); stdata[sttop-1]=(float)po;/调用pow子函数进行乘方运算/
sttop--;break;
default:
d=0; flag=1; d2=0; /将数字字符转换成对应的数值存放到d中/
while(ch>='0'&&ch<='9'&&flag) /判定为数字字符/
{ d=10d+ch-'0';
ch=exp[t];t++;
if(ch=='')
flag=0;
}
if(flag==0)
{ ch=exp[t];t++;count=0;
while(ch>='0'&&ch<='9') /判定为数字字符/
{d2=10d2+ch-'0';
ch=exp[t];t++;count++;
}
for(i=1;i<=count;i++)
d2=01d2;
}
d+=d2;
sttop++;
stdata[sttop]=d;
}
ch=exp[t];t++;
}
return stdata[sttop];
}
int main()
{
char str[maxsize],exp[maxsize]; /str存储原算术表达式,exp存储对应的后缀表达式/
printf("the arithmetic expression is:\n");
gets(str);
trans(str,exp);
printf("the postfix expression is:%s\n",exp);
printf("the result is %g\n",compvalue(exp));
}
以上就是关于简单的matlab编程和CFD数值模拟计算,6000左右thinkpad求推荐全部的内容,包括:简单的matlab编程和CFD数值模拟计算,6000左右thinkpad求推荐、建筑室内空气流通质量分析应用、C语言课程设计 小学生四则运算练习系统 源程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)