科学网

 找回密码
  注册
科学网 标签 cfd

tag 标签: cfd

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

Windows10 安装OpenFOAM 教程
ha0zZ 2020-10-13 20:09
Win10安装OpenFOAM: 1.打开win10的linux子系统(可百度详细教程),在microsoft store 搜索ubuntu选择18.04安装; 2.打开 Ubuntu 进行初始化设置,设置用户名和密码; 工作路径默认为: C:\\Users\\Administrator\\AppData\\Local\\Packages\\CanonicalGroupLimited.UbuntuonWindows_**rhkp1fndgsc\\LocalState\\rootfs\\home\\设置的用户名 , 可建立快捷方式访问 3.更新Ubuntu: 打开Ubuntu,切换至管理员:sudo -s 更新:apt-get update 安装必要包:apt-get install build-essential flex bison git-core cmake zlib1g-dev libboost-system-dev libboost-thread-dev libopenmpi-dev openmpi-bin gnuplot libreadline-dev libncurses-dev libxt-dev 退出管理员模式:exit 4.下载OpenFOAM (以op-7为例): cd~ mkdir OpenFOAM #创建安装目录 sudo chmod -R 777 OpenFOAM #使目录获得权限 cd OpenFOAM git clone https://github.com/OpenFOAM/OpenFOAM-7.git #在线获取OpenFOAM-7 git clone https://github.com/OpenFOAM/ThirdParty-7.git #在线获取ThirdParty-7 5. 配置环境变量: vi $HOME/.bashrc 下移光标至最后一行,o进入编辑模式(默认下一行添加), 添加 source $HOME/OpenFOAM/OpenFOAM-7/etc/bashrc #数字随版本改变 添加后按ESC退出编辑模式,:wq 保存并退出,重启Ubuntu 6. 编译: cd $HOME/OpenFOAM/OpenFOAM-7/ ./Allwmake -j 漫长的等待后,输入icoFoam -help 测试是否安装成功。 部分参考:https://www.bilibili.com/read/cv5590630/
个人分类: OpenFOAM|6686 次阅读|0 个评论
CFD 模拟二维平板以一个自由度的被动俯仰运动
hallowoeld 2019-6-21 10:41
CFD 模拟二维平板以一个自由度的被动俯仰运动 我做的是一个 用fluent 模拟二维平板在流场中做被动俯仰运动,运动的UDF如下,求解方法为Simple,压力,动量等都采用二阶格式,流场网格的内外采用interface 界面,动网格设置为interface以内的区域和平板一起运动,时间步长取得 也比较小,但是开始计算以后,迭代了几步就开始发散。万能的学友,能不能给我一些建议啊? 以下是我的UDF(解四阶龙格库塔方程来实现被动运动) #include udf.h #include sg_mem.h #include dynamesh_tools.h /* 头文件,不可忽略 Header filesthis enables both the definition of DEFINE macros and other ANSYS Fluent-provided macros and functions, and their inclusion in the compilation process*/ #define massr 0.0232 /* 定义全局变量,mass质量通过自主设定的m*求得*/ #define dtm 0.0004 /* 定义全局变量,dtm时间步长,与仿真中的时间步长一致 */ #define freq 42.25 /* freq我这里指定不是频率,是欧米伽的平方,在后面计算用 */ real b_vel=0; /* 初始化速度变量,是一个三维向量,初始化为零 */ real b_cen=0; real disp;/* 初始化位置变量,是一个三维向量,初始化为零 */ real t; /* 定义一个时间变量t */ FILE *fp; /* 定义一个文件指针*fp */ DEFINE_EXECUTE_AT_END(exe_end)/* UDF宏,在每一个时间步迭代结束后执行ANSYS Fluent calls the function at the end of an iteration */ { int i; real x_cg ,f_glob ,m_glob ; real vx,xn,Vx,Xn; real L1,L2,L3,L4;/* 以上均为初始化局部变量 */ Domain *domain=Get_Domain(1); /* 流场指针,非多相流的话默认 */ Thread *tf=Lookup_Thread(domain,16);/* 线指针,指向要获取信息的边界的ID,即柱的ID */ for(i=0; i3; i++) /* 开始一个循环 */ { x_cg =0; f_glob =0.0; m_glob =0.0; /* 此循环作用为初始化局部变量为0 */ } disp=b_cen;/* 将上一时间步的位移信息赋值给变量 */ Compute_Force_And_Moment(domain,tf,x_cg,f_glob,m_glob,TRUE); /* 此命令为udf固有命令,可查阅到其各个参数的含义,此处为获取目标几何的位移,力和力矩,我们只用到位移和力,均为二维向量 */ vx=b_vel; /* 将上一时间步的x向速度赋值给vx */ xn=b_cen; /* 将上一时间步的x向位移赋值给xn */ L1=m_glob /massr-freq*xn-1.3*vx; L2=m_glob /massr-freq*(xn+vx*dtm/2)-1.3*(vx+L1*dtm/2); L3=m_glob /massr-freq*(xn+vx*dtm/2+dtm*dtm*L1/4)-1.3*(vx+dtm*L2/2); L4=m_glob /massr-freq*(xn+vx*dtm+dtm*dtm*L2/2)-1.3*(vx+dtm*L3);/* 以上为四阶龙格库塔法解二阶振动微分方程的求解公式,写成C语言形式。注意此处振动微分方程的阻尼为0,因此求解中缺少一项,另外freq是欧米伽的平方 */ Vx=vx+dtm*(L1+2*L2+2*L3+L4)/6; /* 求出此次时间步的x向速度 */ Xn=xn+dtm*vx+dtm*dtm*(L1+L2+L3)/6; /* 求出此次时间步的x向位移 */ b_vel=Vx; /* 赋值 */ b_cen=Xn; /* 赋值 */ t=t+dtm; /* 时间叠加 */ fp=fopen(output.txt,a ; /* 文件指针指向output.txt,打开方式为写入 */ fprintf(fp,%5f,%8f,%8f,%8f\\n,t,disp,m_glob ,b_vel);/* 写入时间,位移,受力,速度 */ fclose(fp);/* 关闭文件 */ } DEFINE_CG_MOTION(cylinder,dt,vel,omega,time,dtime) /* UDF宏,作用为移动实体,各参数的具体含义见UDF手册 */ { NV_S(vel,=,0.0);/* 初始化移动速度为0 */ NV_S(omega,=,0.0); /* 初始化移动角速度为0 */ omega =b_vel; /* 赋值移动速度给宏的参数,乘以时间步长即为此时间步发生的位移 */ }
2513 次阅读|0 个评论
[转载]转载:MacCormack程序——Matlab版
gunshooter 2018-4-1 14:54
原文作者:Lofter Snow2146073 原文链接:http://blog.163.com/wanglei2146073@126/blog/static/90689607201352824415256/ MacCormack程序——Matlab版 作为一名动力工程及工程热物理学科的学生,CFD尤其重要,我一直想自己亲自写CFD算法,但一直没有机会。现在临近毕业时间相对而言自由,所以最近拿起了买了已久的 J. D. Anderson的书《计算流体力学基础及其应用》 。为了快速找到成就感,我选择了书中一个比较简洁的路径,看了第六章的人工粘性后直接过渡到第七章的拟一维喷管流动的数值解。 这个程序不复杂,但对于新手总是想找个程序参考一下,这里我就把我自己用Matlab编的程序附上来,希望对大家有用。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % MacCormark Algorithm % Designed by snow2146073 at HIT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear;clc; %% 参数初始化 dx=0.1; x=0:dx:3; C=0.5; r=1.4; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%7.3节亚——超声速的初始条件 % t=0时刻的初始条件 A(1:31)=1+2.2*(x-1.5).^2; D(1:31)=1-0.3146*x; T(1:31)=1-0.2314*x; V(1:31)=(0.1+1.09*x).*sqrt(T); % D(1)=1;T(1)=1; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 7.4节全亚声速的初始条件 % t=0时刻的初始条件 % A(1:15)=1+2.2*(x(1:15)-1.5).^2; % A(16:31)=1+0.2223*(x(16:31)-1.5).^2; % D(1:31)=1-0.023*x; % T(1:31)=1-0.009333*x; % V(1:31)=0.05+0.11*x; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 为了加速Matlab的计算速度变量预先设定长度 Dest(1:31)=0; Vest(1:31)=0; Test(1:31)=0; D_t(1:31)=0; V_t(1:31)=0; T_t(1:31)=0; D_t2(1:31)=0; V_t2(1:31)=0; T_t2(1:31)=0; dt(1:31)=0; j=1; while(j=1000) for i=1:31 dt(i)=C*dx/(V(i)+sqrt(T(i))); end delt_t=min(dt); for i=1:30 % 计算预估步 % 在空间上向前差分计算空间导数 D_t(i)=-V(i)*(D(i+1)-D(i))/dx-D(i)*(V(i+1)-V(i))/dx-D(i)*V(i)*(log(A(i+1))-log(A(i)))/dx; V_t(i)=-V(i)*(V(i+1)-V(i))/dx-((T(i+1)-T(i))/dx+(T(i)/D(i))*((D(i+1)-D(i))/dx))/r; T_t(i)=-V(i)*(T(i+1)-T(i))/dx-(r-1)*T(i)*(((V(i+1)-V(i))/dx)+V(i)*((log(A(i+1))-log(A(i)))/dx)); % 计算预估值 Dest(i)=D(i)+D_t(i)*delt_t; Vest(i)=V(i)+V_t(i)*delt_t; Test(i)=T(i)+T_t(i)*delt_t; end for i=2:30 % 计算校正步 % 利用预估值在空间上向后差分计算空间导数 D_t2(i)=-Vest(i)*(Dest(i)-Dest(i-1))/dx-Dest(i)*(Vest(i)-Vest(i-1))/dx-Dest(i)*Vest(i)*(log(A(i))-log(A(i-1)))/dx; V_t2(i)=-Vest(i)*(Vest(i)-Vest(i-1))/dx-((Test(i)-Test(i-1))/dx+(Test(i)/Dest(i))*((Dest(i)-Dest(i-1))/dx))/r; T_t2(i)=-Vest(i)*(Test(i)-Test(i-1))/dx-(r-1)*Test(i)*(((Vest(i)-Vest(i-1))/dx)+Vest(i)*((log(A(i))-log(A(i-1)))/dx)); % 计算时间导数的平均值 D_t_av=(D_t(i)+D_t2(i))/2; V_t_av=(V_t(i)+V_t2(i))/2; T_t_av=(T_t(i)+T_t2(i))/2; % 计算t+dt时刻的值 D(i)=D(i)+D_t_av*delt_t; V(i)=V(i)+V_t_av*delt_t; T(i)=T(i)+T_t_av*delt_t; end % 计算边界点上的值 V(1)=2*V(2)-V(3); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 7.3节亚——超声速出流边界条件 V(31)=2*V(30)-V(29); D(31)=2*D(30)-D(29); T(31)=2*T(30)-T(29); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 7.4节全亚声速出流边界条件设置 % V(31)=2*V(30)-V(29); % D(31)=2*D(30)-D(29); % T(31)=0.93/D(31); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 计算喉部处参数随时间的变化 Dth(j)=D(16); %喉部密度变化 Tth(j)=T(16); %喉部温度变化 Pth(j)=D(16)*T(16); %喉部压力的变化 Mth(j)=V(16)/sqrt(T(16)); %喉部马赫数的变化 j=j+1; end % 绘制迭代过程中参数的变化情况 figure; subplot(2,2,1);plot(Dth); subplot(2,2,2);plot(Tth); subplot(2,2,3);plot(Pth); subplot(2,2,4);plot(Mth); % 绘制最终的参数分布 figure; subplot(2,2,1);plot(D); subplot(2,2,2);plot(T); subplot(2,2,3);plot(D.*T); subplot(2,2,4);plot(V./sqrt(T)); 我和书中的中间结果做了对比,基本一样,偶尔有几个数小数最后一位有点偏差,这应该是四舍五入的原因。书中给出了喉部处参数在迭代过程中的变化,我这里也给出我这个程序的计算结果,和书中的结果非常吻合! 亚超声速参数迭代收敛结果 亚超声速参数分布结果 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 全亚声速参数。书中并没有给出相应的参数迭代情况,并且分布结果只有压力。结果与书中的5000步结果相符,这里将参数迭代结果和参数的分布情况给出来,供大家参考。 全亚声速参数迭代收敛结果 亚超声速参数分布结果
个人分类: CFD:思想,理论和实践|1958 次阅读|0 个评论
Gridpro操作技巧03-ICEM面网格导入Gridpro作为几何面
a582234617 2014-10-10 22:14
视频地址: http://v.youku.com/v_show/id_XODAwNzY0MzM2.html 资料地址: http://pan.baidu.com/s/1ntDkzzF 本方法由PQY26提供 1. 把stp文件导入ICEM,生成面网格 2. 把面网格输出成stl格式,导入Gridpro 3. 在Gridpro里Autosplit来分割面 4. 构建拓扑,生成网格 注: 1.可对重要的几何特征进行加密 2.面网格越细,导入Gridpro的面就越细密 秋忆阿燕 QQ:2731613124 2014/10/11
个人分类: GridproV5.1_操作技巧_超清视频|1023 次阅读|0 个评论
一个词:at large times
huang840828 2010-9-30 14:04
at large times: 原文: At large times, the solution approaches a steady state, where the time derivatives of the flow variables approach zero. 全文摘自John D. Anderson, JR的那本CFD: 3.4.4 Some comment : The Supersonic Blunt Body Problem Revisited ...... Recall from Fig. 3.7 that unsteady inviscid flow is governed by hyperbolic equations no matter whether the flow is locally subsonic or supersonic. This provides the following oppertunity. Starting with rather arbitrary initial conditions for the flow field in the xy plane in Fig. 30, solve the unsteady, two-dimensional inviscid flow equations, marching forward in time as sketched in Fig. 3.7. At large times, the solution approaches a steady state, where the time derivatives of the flow variables approach zero. This steady state is the desired result, and what you have when you approach this steady state is a solution for the entire flow field including both the subsonic and supersonic regions. ......
个人分类: 专业英语集锦|3542 次阅读|0 个评论
[转载]CFD离散格式 discretization
hsyjjw 2010-6-29 09:13
插值方式常称为离散格式。 中心差分格式central differencing scheme :就是界面上的物理量采用线性插值公式来计算,即取上游和下游节点的算术平均值。它是条件稳定的,在网格Pe数小于等于2时稳定。在不发生振荡的参数范围内,可以获得较准确的结果。如没有特殊声明,扩散项总是采用中心差分格式来进行离散。 一阶迎风格式first order upwind scheme : 即界面上的未知量恒取上游节点(即迎风侧节点)的值。这种迎风格式具有一阶截差,因此叫一阶迎风格式。无论在任何计算条件下都不会引起解的振荡,是绝对稳定的。但是当网格Pe数较大时,假扩散严重,为避免此问题,常需要加密网格。研究表明,在对流项中心差分的数值解不出现振荡的参数范围内,在相同的网格节点数条件下,采用中心差分的计算结果要比采用一阶迎风格式的结果误差小。 混合格式hybrid scheme :综合了中心差分和迎风作用两方面的因素,当|Pe|2时,使用具有二阶精度的中心差分格式;当|Pe|=2时,采用具有一阶精度但考虑流动方向的一阶迎风格式。该格式综合了中心差分格式和一阶迎风格式的共同的优点,其离散系数总是正的,是无条件稳定的。计算效率高,总能产生物理上比较真实的解,但缺点是只有一阶精度。 指数格式exponential scheme 和 乘方格式power-law scheme :绝对稳定,主要适用于无源项的对流-扩散问题。对有非常数源项的场合,当Pe数较高时有较大误差。 二阶迎风格式 :二阶迎风格式与一阶迎风格式的相同点在于,二者都通过上游单元节点的物理量来确定控制体积界面的物理量。但二阶格式不仅要用到上游最近一个节点的值,还有用到另一个上游节点的值。它可以看作是在一阶迎风格式的基础上,考虑了物理量在节点间分布曲线的曲率影响。在二阶迎风格式中,只有对流项采用了二阶迎风格式,而扩散项仍采用中心差分格式。二阶迎风格式具有二阶精度的截差。 QUICK格式 :是对流项的二次迎风插值,是一种改进离散方程截差的方法,通过提高界面上插值函数的阶数来提高格式截断误差的。对流项的QUICK格式具有三阶精度的截差,但扩散项仍采用二阶截差的中心差分格式。对于与流动方向对齐的结构网格而言,QUICK格式将可产生比二阶迎风格式等更精确的计算结果。QUICK格式常用于六面体(二维中四边形)网格。对于其它类型的网格,一般使用二阶迎风格式。 现在迎风格式主要有FVS矢通量分裂和FDS通量差分分裂两种,前者的代表是Van leer格式,后者是鼎鼎大名的Roe格式,关于Van leer和Roe两位大牛的故事大家在论坛里一些八卦贴里看过了,呵呵,崇拜呀Van leer和Roe格式具有优秀的激波间断分辨率,是实际应用中最成功的上风格式,前者分裂形式简单,计算效率高,但数值耗散大,分辨接触间断有明显的抹平现象,导致了显著的粘性计算误差,后者存在红玉现象,在高速时会出现非物理解,且耗散巷构造复杂,计算量大这都是书上的话,本斑在具体使用过程中也深有体会,在几种先进格式的比较中,就粘性分辨率而言,Roe格式确实要优于van leer格式,而比较新的AUSM+格式以及带各项异性人工粘性的中心差格式性能也很好,和Roe格式不相上下。 瞬态问题的离散格式有 显式 , Crank-Nicolson格式 和 隐式 三种。 Pe表示对流/扩散两种强度的比值。 来源:( http://blog.sina.com.cn/s/blog_59acf0510100b640.html ) - CFD离散格式discretization_天下_新浪博客
个人分类: 科研笔记|8865 次阅读|0 个评论
cfd6
wdfzacw 2009-3-16 10:13
cfd cfd6
个人分类: 未分类|2015 次阅读|0 个评论
cfd5
wdfzacw 2009-3-11 08:12
cfd cfd5 cfd5
个人分类: 未分类|1870 次阅读|0 个评论
cfd2
wdfzacw 2009-3-9 08:23
cfd2 cfd2 cfd2
个人分类: 未分类|2026 次阅读|0 个评论
cfd1
wdfzacw 2009-3-7 07:45
cfd cfd
个人分类: 未分类|2034 次阅读|0 个评论
wdfzacw 2009-3-7 07:40
cfd cfd
个人分类: 未分类|22 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-19 05:45

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部