本代码转载自:http://www.codeforge.cn/read/260028/keti_2d_b.c__html

#include
"udf.h"

#define Rho 1002

#define g 9.81

#define s 2.65

#define m 0.4

#define d 0.0005

#define C 2

#define N
1000

DEFINE_GRID_MOTION(wall_motion,domain,dt,time,dtime)

{

Thread
*tf=DT_THREAD(dt);

face_t
f;

Node
*v;

real
A[ND_ND];

real
area,wall_shear_force;

real
Theta_cr0,Phi,Gamma;

real
Theta[N]={0.0};

real
Theta_cr[N]={0.0};

real
X[N]={0.0};

real
Y[N]={0.0};

real
Qo[N]={0.0};

real
Delta_h[N]={0.0};

real
Delta_h_v[N]={0.0};

real
wall_shear_stress[N]={0.0};

real
X1,X2,Y1,Y2;

real
a,b,c,e,z1,z2,z3,z4,w1,w2,w3,w4,v1,v2,v3,v4,p1,p2,p3;

real
NV_VEC(Delta_y);

int
i,j,n;

i=0;

j=0;

X2=0;

Y2=0;

NV_D(Delta_y,=,0.0,0.0,0.0);

Theta_cr0=0.047;

Phi=(32.5+1.27*d*1000)/180;

SET_DEFORMING_THREAD_FLAG(THREAD_T0(tf));

begin_f_loop(f,tf)

{

i++;

j++;

F_AREA(A,f,tf);

area=NV_MAG(A);

wall_shear_force=F_STORAGE_R_N3V(f,tf,SV_WALL_SHEAR)[0];

wall_shear_stress[i]=wall_shear_force/area;

Theta[i]=fabs(wall_shear_stress[i])/(g*(s-1)*d*Rho);

}

end_f_loop(f,tf)

i=0;

begin_f_loop(f,tf)

{

i++;

f_node_loop(f,tf,n)

{

X1=X2;

Y1=Y2;

v=F_NODE(f,tf,n);

X2=NODE_X(v);

Y2=NODE_Y(v);

if(n!=0)

{

Gamma=atan(fabs(Y2-Y1)/fabs(X2-X1));

a=1-0.85*0.85*tan(Phi)*tan(Phi);

b=-sin(Gamma)+tan(Phi)*tan(Phi)*0.85*cos(Gamma);

c=sin(Gamma)*sin(Gamma)-tan(Phi)*tan(Phi)*cos(Gamma)*cos(Gamma);

e=tan(Phi)*(1-0.85*tan(Phi));

Theta_cr[i]=Theta_cr0*((sqrt(b*b-a*c)-b)/e);

}

}

}

end_f_loop(f,tf)

i=0;

begin_f_loop(f,tf)

{

i++;

if(Theta[i]>Theta_cr[i])

Qo[i]=12*sqrt(g*(s-1)*pow(d,3.0)*Theta[i])*(Theta[i]-Theta_cr[i]);

else

Qo[i]=0;

}

end_f_loop(f,tf)

i=1;

begin_f_loop(f,tf)

{

i++;

f_node_loop(f,tf,n)

{

v=F_NODE(f,tf,n);

if(n!=0)

{

X[i]=NODE_X(v);

Y[i]=NODE_Y(v);

}

}

}

end_f_loop(f,tf)

i=1;

begin_f_loop(f,tf)

{

i++;

if(i<j-1)

{

p1=(Qo[i+1]-Qo[i-1])/(2*(X[i+1]-X[i]));

p2=(Y[i+1]-Y[i-1])/(2*(X[i+1]-X[i]));

p3=(Y[i+1]-2*Y[i]+Y[i-1])/((X[i+1]-X[i])*(X[i+1]-X[i]));

if(wall_shear_stress[i]>0)

Delta_h[i]=dtime*(-p1+C*p1*p2+C*Qo[i]*p3)/(m-1);

else

Delta_h[i]=dtime*(p1+C*p1*p2+C*Qo[i]*p3)/(m-1);

}

}

end_f_loop(f,tf)

i=4;

begin_f_loop(f,tf)

{

i++;

f_node_loop(f,tf,n)

{

if(i<j-4)

{

z1=(X[i-2]+X[i-1])/2;

z2=(X[i-1]+X[i])/2;

z3=(X[i]+X[i+1])/2;

z4=(X[i+1]+X[i+2])/2;

w1=(X[i]-z2)*(X[i]-z3)*(X[i]-z4);

w2=(X[i]-z1)*(X[i]-z3)*(X[i]-z4);

w3=(X[i]-z1)*(X[i]-z2)*(X[i]-z4);

w4=(X[i]-z1)*(X[i]-z2)*(X[i]-z3);

v1=(z1-z2)*(z1-z3)*(z1-z4);

v2=(z2-z1)*(z2-z3)*(z2-z4);

v3=(z3-z1)*(z3-z2)*(z3-z4);

v4=(z4-z1)*(z4-z2)*(z4-z3);

Delta_h_v[i]=w1*Delta_h[i-2]/v1+w2*Delta_h[i-1]/v2+w3*Delta_h[i]/v3+w4*Delta_h[i+1]/v4;

}

}

}

end_f_loop(f,tf)

i=4;

begin_f_loop(f,tf)

{

i++;

f_node_loop(f,tf,n)

{

v=F_NODE(f,tf,n);

if(i>4&&NODE_POS_NEED_UPDATE(v)&&i<j-5)

{

NODE_POS_UPDATED(v);

Delta_y[1]=Delta_h_v[i];

NV_V(NODE_COORD(v),+=,Delta_y);

}

}

}

end_f_loop(f,tf)

}

应用fluent二维单向流泥沙冲刷作用下河床变形代码【转载】的更多相关文章

  1. HDU 3316 My Brute(二维费用流)经典

    My Brute Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  2. 关于TRIANGLE二维三角网格生成器在windows下的配置说明

    近期须要用到三角网格生成的一些东西,所以就把TRIANGLE这个库编译了一下,发现编译过程还是略微有些纠结,于是就想到写下来.希望以后有些童鞋看到少走一些弯路. 首先很感谢eryar的帮助,很感谢! ...

  3. java生成二维码(带logo)

    之前写过一篇不带logo的二维码实现方式,採用QRCode和ZXing两种方式 http://blog.csdn.net/xiaokui_wingfly/article/details/3947618 ...

  4. 利用phpqrcode二维码生成类库和imagecopymerge函数制拼接图片的经验

    前期准备 引入phpqrcode类库(下载地址:https://sourceforge.net/projects/phpqrcode/) PHP开启GD扩展库支持 1.利用phpqrcode生成二维码 ...

  5. Android应用--QR的生成(二维码)

    二维码的定义: 二维码(2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的. 在许多种类的二维条码中,常用的码制 ...

  6. java 二维码生成

    直接上代码: 二维码生成核心类: package com.bbkj.wechat.tool; import java.awt.image.BufferedImage; import java.io.F ...

  7. 阐述二维码的原理以及使用google api和PHP QR Code来生成二维码

    一.什么是二维码:二维码 (2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的.在许多种类的二维条码中,常用的码 ...

  8. java实现二维码的生成与解析

    简单介绍下二维码:二维码其实就是一种编码技术,只是这种编码技术是用在图片上了,将给定的一些文字,数字转换为一张经过特定编码的图片,而解析二维码则相反,就是将一张经过编码的图片解析为数字或者文字. 当然 ...

  9. Java生成二维码连接

    本文使用的是Goodge的zxing 添加maven依赖 <dependency> <groupId>com.google.zxing</groupId> < ...

随机推荐

  1. IdentityServer4同时使用多个GrantType进行授权和IdentityModel.Client部分源码解析

    首先,介绍一下问题. 由于项目中用户分了三个角色:管理员.代理.会员.其中,代理又分为一级代理.二级代理等,会员也可以相互之间进行推荐. 将用户表分为了两个,管理员和代理都属于后台,在同一张表,会员单 ...

  2. 基因组所三代单分子测序PacBio完成技术升级—超长读长助力基因组学研究

    基因组所三代单分子测序PacBio完成技术升级—超长读长助力基因组学研究 2015-09-23 | 作者:所级中心基因组平台 张兵 [关闭] 近日,基因组所所级中心基因组平台三代单分子实时测序PacB ...

  3. 基于【 Docker】五 || maven私服环境搭建

    1.Maven  Nexus私服的原理 为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库.当本地Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓 ...

  4. javascript新特性

    让我们看看javascript中的一些新特性.本文将介绍它们的语法和相关链接,以帮助读者及时了解它们的进展.我们将通过编写一个小测试项目来演示如何快速使用这些新功能! 关于提案 提案分为五个阶段.有关 ...

  5. 在SAP云平台ABAP编程环境上编写第一段ABAP程序

    距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP's Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今 ...

  6. zabbix-通过自动发现添加主机

    当生产环境中需要监控海量的机器的时候,特别是像58.赶集这类同城性质的大网站,或者京东.阿里云这样的造节电商,每次活动.大促都需要添加很多机器来应对海量用户流量,每天都有可能上架新的机器.或者添加新的 ...

  7. linux设置密钥登录(只允许密钥登录)

    一.root用户使用这条命令看看家目录有没有(.ssh文件夹),cd .ssh,如果存在就会进入这个文件夹,不存在就(makedir .ssh),修改.ssh这个文件夹权限(chmod 700 .ss ...

  8. Computer Vision_33_SIFT:SAR-SIFT: A SIFT-LIKE ALGORITHM FOR SAR IMAGES——2015

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  9. LVM——header

  10. CentOS 8 (1905)系统安装

    本章内容: CentOS 8 的安装(CentOS-8-1905) 一.安装光盘,选择Install CentOS Linux 8.0.1905 二.选择系统语言,我这里选的是英文,也可以选择中文,往 ...