Presentation is loading. Please wait.

Presentation is loading. Please wait.

第八讲 有限元语言 元计算技术部.

Similar presentations


Presentation on theme: "第八讲 有限元语言 元计算技术部."— Presentation transcript:

1 第八讲 有限元语言 元计算技术部

2 有限元语言是一种描述有限元问题的模型语言。用户采用有限元语言编写有限元脚本文件,用ELAB1
微分方程表达式的描述语言 算法描述语言

3 微分方程表达式的描述语言 基本功能:用一个文件描述微分方程的虚功方程,会形成一个PDE类文件。由这个文件,PDE编译系统可自动生成单元子程序,用于计算单元的刚度矩阵、质量矩阵、阻尼矩阵和载荷向量等。 语法规则:PDE文件中最多需编写6段信息,它们分别以DEFI,FUNC,STIF,MASS,DAMP,LOAD为信息段关键词,可根据问题的不同,按上述顺序依次编写各段信息。 实例分析:以二维瞬态热传导问题为例具体对应微分方程表达式的描述文件。 微分方程表达式: 边界条件:

4 将上述热传导方程两边同乘以温度的变分δT并积分可得到:
将其分部积分降低阶次: 带入边界简化得到: 温度场最终弱解形式 红色部分表示体积分项,黑色部分表示边界积分项。

5 弱形式体积分项描述文件:*.pde(对应上方程中的红色部分)
disp T coor x y shap q 4 gaus 2 $c6 double ek,ec,q; mass q ec*vol mate ek ec q func gux guy func $c6 vol = 1.0; gux=+[T/x] guy=+[T/y] stif dist=+[gux;gux]*ek*vol+[guy;guy]*ek*vol load=+[u]*q*vol end 待求解自由度 坐标系 单元类型及单元节点定义(q表示四边形单元,4表示单元节点) 积分方式(2表示高斯积分,每条边上两个高斯点) 变量的声明 质量项(给出质量项的系数表达式) 材料参数及其默认值 自定义函数 自定义函数表达式 体积分刚度矩阵项 体积分荷载项 结束标志

6 弱形式体边界分项描述文件:*.fbc(对应上方程中的黑色部分)
disp T coor x shap l 2 gaus 2 $c6 double lambda,te; mate lambda te;1.0,0.0; stif dist=+[T;T]*lambda load=+[T]*lambda*te end 待求解自由度 坐标系 单元类型及单元节点定义(l表示线单元,2表示单元节点为2) 积分方式(2表示高斯积分,每条边上两个高斯点) 变量的声明 材料参数及其默认值 边界积分刚度矩阵项 边界积分荷载项 结束标志

7 对于微分方程弱形式的描述文件,本语言还设计了一系列侧重不同方面的脚本文件,包括GES、CDE、VDE、FDE,其共称为pde类文件。
其中: VDE文件增加了向量、矩阵和张量的声明和运算功能。 CDE文件增加了复变量表达式的描述手段,可以描述时谐场微分方程。 FDE文件根据系统提供的算子公式库与算子表达式的功能来简化书写微分方程弱形式的描述文件。 GES文件是最基础最底层的文件,该文件内容为有限元方法的全部公式,包括形函数、数值积分等的具体表达式。其他文件都要先生成该文件,然后再由该文件生成单元子程序。 其他文件的语法规则及书写方式可以参考有限元语言程序设计相关章节。

8 算法描述语言 基本功能: SCH文件: 把一个非线性的偏微分方程按什么样的方式线性化 把依赖时间问题对时间离散
组集刚度矩阵和载荷向量等,对方程组的解进行简单的运算或处理 MDI文件: 多物理场耦合的描述 GCN文件: 计算流程和迭代的控制描述

9 SCH文件: 算法程序的主要作用:组集刚度矩阵和载荷向量等,对方程组的解进行简单的运算或处理,对于非线性问题还包括对迭代算法的设计。
语法规则: SCH文件中以DEFI,COEF,EQUATION,SOLUTION为信息段关键词,可根据问题的不同,按上述顺序依次编写各段信息。 针对几类微分方程,本语言SCH算法库中提供了多种常用线性和非线性问题的算法文件,用户可直接应用其中的算法,也可以参照建立自己的算法文件。 实例解析:以线性抛物型方程为例具体对应SCH文件。 对非线性抛物型偏微分方程运用虚位移原理可得: 对上式采用backward Euler时间离散得: 最终得到线性方程组的形式为:

10 抛物型方程算法文件parb.sch(其他类方程的算法文件可以详看ELAB的SCH库)
DEFI STIF s MASS m LOAD f TYPE p MDTY l INIT 1 STEP 0 EQUATION VECT u READ(s,unod) u MATRIX = [s]*dt+[m] FORC = [f]*dt+[m]*[u] SOLUTION u WRITE(s,unod) u END 关键字 刚度矩阵 质量矩阵 载荷向量 方程类型(抛物型) 集中矩阵 初始值组数 不存之前时间步刚度 定义向量 从指针数组unod中读取上一时间步结果u 线性方程组的左端项 线性方程组的右端项 线性方程组的解 定义解向量 把本时间步计算的结果存储到指针数组unod中 文件结束标志

11 MDI文件: 算法程序的主要作用: 1) 给出待求解问题的坐标系 2) 给出待求解问题中每个物理场的自由度个数和名字以及初值个数
3) 给出每个物理场的微分方程描述文件、单元模块以及C语言子程序模块 语法规则: MDI第一行给出坐标名,表示该问题采用什么样的坐标系,然后每个物理场都要给出一个信息段,描述每个物理场的自由度个数和名字以及初值个数 。 实例解析:以求解上面二维瞬态热传导问题的温度分布为例对应MDI文件。 2dxy #a 0 1 u fde heatxy q4g2 fbc heatxy l2g2 # 坐标系 a场初始值组数(1组),自由度个数(1个),自由度名称 a场体单元文件名(heatxy.fde),单元类型(q:四边形单元),单元节点数(4),积分方式(高斯积分) a场边界单元文件名,单元类型,单元节点,积分方式 文件结束标志

12 GCN文件: 算法程序的主要作用: GCN文件给出各物理场之间的耦合方式,单场问题的算法以及求解的流程。
语法规则:由两段信息组成:第一段信息给出各个物理场算法和耦合方式;第二段给出计算的主程序。 实例解析:以求解上面二维瞬态热传导问题的温度分布为例对应GCN文件。 线性瞬态问题求解的GCN文件,其他类型的GCN文件可以详看ELAB的GCN库。 DEFI a ell START a l1: BFT SOLVC a gidres(coor0); if (stop==0) goto l1; 场名、方程类型(确定该场的算法流程)、与哪个场耦合(读哪个场结果数据) a场信息的初始化 时间步循环标志 时间步和边值随时间变化控制程序 求解a场,默认采用a场数据,默认采用直接法求解 输出GID格式的计算结果文件 程序终止控制语句

13 THANKS


Download ppt "第八讲 有限元语言 元计算技术部."

Similar presentations


Ads by Google