一个简单UDF程序解释-修改时间载荷步.docx
003修改时间载荷步DEFINE.DELTAT是一个通用宏,用来控制瞬态问题求解时,修改时间步长。只有在ANSYS中“运行计算任务”页面的“类型”下拉列表中选择了“用户定义函数”时,才能使用这个宏。看程序:/*UDFthatchangesthetimestepvalueforatime-dependentsolutionW*/#include"udf.h"DEFINE_DELTAT(mydeltat,d)(realtime_step;realflowjime=CURRENT.TME;if(flow_time<0.5)time_step=0.1;elsetime_step=0.2;returntime_step;include,udf.h"是一个声明,意思是后面告诉计算机,后面这段程序要调用的“udf.h”里面包含的函数。“udf.h”是一个头文件,是每一个UDF程序必须要包含的,调用形式是#include"df.h",出现在每条程序最开始部分。是一个库函数,包含了DEFINE宏的定义,程序提供其他的的宏和函数,比如三角函数,罂指数函数等等。以汇编的形式编入程序,是写UDF必须有的。如果是新手的写的话,直接第一句写这个,肯定没错。DEFINE_DELTAT(mydeltat,d)是一个定义的宏。DEFINE_DELTAT是一个通用宏,用于修改瞬态计算的时间步长。mydeltat是宏名称,用户自己来取名,符合规范的取名方式都是可以的。realtime_step;定义了一个实数变量,名字叫time_stepotime_step是DEFINE_DELTAT的返回值。realflowjime=CURRENT_TIME;定义了一个实数变量,名字叫flow_time,赋值为CURRENT_TIME的值。CURRENTJIME是一个时间相关的宏,返回值是当前的流动时间,单位是秒。定义好了需要的变量,下面开始程序。先说下程序的总体思路。判断当前流场的时间,如果流场时间时间小于05秒,那么时间载荷步为秒,如果大于等于。5秒,时间载荷步为0.2秒。相当于可以用来优化计算,在开始流动的时候分析详细,后面增加时间载荷步,减少计算时间。if判断句,如果后面为真(1),那么执行后面的程序,为假(0),则执行else后面的语句。判断时间是否小于05如果是,时间载荷步为OL否则为0.5。returntime_step判断完之后,返回时间载荷步的值。