ITASCA(武汉)咨询有限公司 报告人: 朱永生 2007.04.28 依泰斯卡(武汉).

Slides:



Advertisements
Similar presentations
柳丁 — 加工篇 組員 : 賴緯杰、賴苗家、吳 玠穎、鐘尹敏. 柳丁的產地  台灣特產的柳丁從台南、嘉 義、雲林、南投都有耕種, 其中雲林古坑的柳丁占總產 量三分之ㄧ,是最大的產區, 可號稱為「柳橙之鄉」。
Advertisements

课前寄语 1 、保持纪律 2 、相互配合. 第三节 公民的投资 —— 公民的存款储蓄 课堂导入.
旅遊實務Ⅰ 授課教師:李健民 上課班級: 320. 課程大綱 旅遊業之設立程序 旅行業組織結構 旅行業之分類 旅行業之管理.
親 ( 四 ) 親近神的路. 一、親的三字訣、七字訣: 親近神,親愛人; 與主交通親近神,同情關心親愛人。 甚麼是親? 1. 親有親近、親愛,更有關心、同情、親切的 意思。 2. 親的人與人沒有間隔,拉近人與人之間的距 離,並且樂意幫助人,與人相調建造在一起。
第二班群教師團隊 105 張心平 107 鐘于寧 106 黃意評 108 鄭婉茹. 第二班群之班親會說明 學校規定事項說明 教學活動說明 班群活動介紹.
差勤.
申論題要拿高分並不容易,因為他是 有一定的技巧的,如果你遵照下列技 巧來作答申論題,相信高分並不難拿, 其技巧如下:
102大學甄選入學 個人申請、繁星推薦說明 主講人:簡慧嫻.
新進教師研習 教務處報告 報告人:教務處 林永仁 2011 年 8 月31日.
「明清時期台灣古典散文」 教師:田啟文.
新頒解釋函令 ● 所得稅扣(免)繳相關法令、 ● 所得稅扣(免)繳申報實務 ● 扣繳常見稅務違章類型 財政部南區國稅局屏東分局
C语言程序设计 主讲教师 :张群燕 电话:
腹有诗书气自华 邓 兵 2014年6月12日.
古代四大美女de风云 沉鱼 . 西施 落雁 . 王昭君 闭月 . 貂禅 羞花 . 杨玉环 编者:周惠婷,李雪蓉
鼻炎 症狀: 鼻(眼睛)內發癢或不舒服、 打噴嚏、 流鼻涕(水)、 鼻塞………等 。 鼻子內的任何發炎。
主讲老师:张恒文 工程力学(1) (6) 2017年3月7日 返回总目录.
一、银行保证金质押 二、理财产品质押 三、银行卡被盗刷的责任问题 四、票据纠纷
活力 射 四 简报 种子发芽咯 de 国培(2015)小学数学四组 3/11/2017.
模块七 房地产营销渠道策略 主要内容 房地产营销渠道类型 房地产营销渠道选择方法 开发商与代理商的合作模式.
遣詞造句知多少? 中文系 王偉勇教授 兼通識教育中心中心主任.
(4)理论体系与实训模块 必须衔接、融合 本课程把理论教学体系与实训模块结构连接成一个完整的高职课程体系。
第三章 企业战略策划 第一节 企业整体战略策划(一).
最有利標及評選優勝廠商 講師 劉金龍 經歷:臺中市政府發包科科長.
三、市场营销学研究的基本方法 (1)产品研究法。是以物为中心的研究方法,即在产品分类的基础上,对各类产品市场分别进行研究。 (2)机构研究法。是以研究市场营销制度为出发点,体现以人为中心的研究方法,即集中对整个市场营销系统中的各特定机构的性质和功能进行研究。 (3)职能研究法。是以研究产品从生产者到消费者手中所进行的各种营销活动过程中,市场营销组织所发挥的功能的方法。
第一章 C语言概述 计算机公共教学部.
青春期 要長大囉! 男女有別 生命的誕生~兩性結合才有下一代的新生命 為什麼會有月經? 經痛怎麼辦 ? 渡過快樂青春喜歡自己
漫漫人生 主办:平远县田家炳中学 总第一期 2008年2月 主编:初二(11)班 肖遥.
親愛的吉姆舅舅:   今天吃完晚餐後,奶奶說,在家裡情況變好以前,您要我搬到城裡跟您住。奶奶有沒有跟您說,爸爸已經好久沒有工作,也好久沒有人請媽媽做衣服了?   我們聽完都哭了,連爸爸也哭了,但是媽媽說了一個故事讓我們又笑了。她說:您們小的時候,她曾經被您追得爬到樹上去,真的嗎?   雖然我個子小,但是我很強壯,只要我會做的我都可以幫忙,但是,奶奶說,做其他事情以前,要先把功課做完。
网络的利与弊 2017/3/19 该课件由【语文公社】
3DS MAX 机绘效果图表现技法 —— 李诚.
最有利標及評選優勝廠商 講師 劉金龍 經歷:臺中市政府發包科科長.
《现代汉语语法研究》第三讲 现代汉语语法的句法分析.
當 家 新 鮮 事.
雷 霆 战 机 By—谷恩轩&余万全.
班主任专业素养 漫 谈 普陀区教育局德研室 陈镇虎
兒童及少年福利服務 講師:張智昇.
C++程序设计 王希 图书馆三楼办公室.
中國美術史報告-我最喜歡的一幅畫 班級:2年2班 姓名:郭馥甄 座號:23.
高鐵炫風 製作人林淑蘭老師.
资产宣传推介手册 2017年10月.
行政院勞工委員會勞工保險局 勞退舊制與新制分析說明 高雄市政府人事處 99年2月1日.
2007/5/23初訪螢光蕈 (等了兩年).
开始 结束.
【本著作除另有註明外,採取創用CC「姓名標示-非商業性-相同方式分享」臺灣3.0版授權釋出】
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
程序设计期末复习 黎金宁
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
3.未滿一月之折舊計算 固定資產購入或出售當年度使用期間未滿一年者,案實際使用之月數相當於全年之比例計算折舊。未滿一個月者,按下列方式計算:
程式的時間與空間 Time and Space in Programming
C语言程序设计 李祥 QQ:
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
第二章 类型、对象、运算符和表达式.
進階資料結構(2) Disjoint Sets
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
第3章 最简单的C程序设计 3.1 顺序程序设计举例 3.2 数据的表现形式及其运算 3.3 C语句 3.4 数据的输入输出.
本节内容 指针类型.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
高雄區12年國教入學方式 報告人:高雄市政府教育局 局長 鄭新輝.
第八章 弹性体的应力和应变(自学) (Chapter 8 The Stress and Strain of Elastic Body)
將定出這些構件承受彎曲所產生之應力。先討論如何繪出對於樑或軸之剪力及彎矩圖 (the shear and moment diagrams)。如同正向力及扭矩圖,剪力及彎矩圖提供定出構件中最大剪力及彎矩之有效方法,並確知這些極值發生在何處。一旦求得某截面內彎矩 (the internal moment),則可定出彎曲應力.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
第2章 Java语言基础.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
摘要簡報 作品名稱:魔鬼記憶問答 作者:台中市西屯區永安國民小學 葉政德老師、王素珍老師.
Presentation transcript:

ITASCA(武汉)咨询有限公司 报告人: 朱永生 2007.04.28 依泰斯卡(武汉)

内 容 必要性 试验总结的本构模型 特定条件下的本构模型 交叉学科的本构模型 二次开发环境 自定义本构模型的功能 自定义本构模型的基本方法 内 容 必要性 试验总结的本构模型 特定条件下的本构模型 交叉学科的本构模型 二次开发环境 自定义本构模型的功能 自定义本构模型的基本方法 常用模型信息传递指针变量 模型源程序分解

二次开发环境 FLAC3D采用面向对象的语言标准C++编写 本构模型都是以动态连接库文件(.DLL文件)的形式提供 VC++6.0(SP4)或更高版本的开发环境 优点 自定义的本构模型和软件自带的本构模型的执行效率处在同一个水平 自定义本构模型(.DLL文件)适用于高版本的FLAC(2D)、3DEC、UDEC等其他Itasca软件中 返回目录

自定义本构模型的功能 主要功能:对给出的应变增量得到新的应力 辅助功能: 模型名称、版本 读写操作 模型文件的编写 基类(class Constitutive Model)的描述 成员函数的描述 模型的注册 模型与FLAC3D之间的信息交换 模型状态指示器的描述 返回目录

自定义本构模型的基本方法 头文件(usermodel.h)中进行新的本构模型派生类的声明 修改模型的ID(>100)、名称和版本 修改派生类的私有成员:私有变量和成员函数 C++文件(usermodel.cpp)中修改模型结构 (UserModel::UserModel(bool bRegister): ConstitutiveModel) const char **UserModel::Properties()函数 模型的参数名称字符串:用于在模型中显示 const char **UserModel::States()函数 计算过程中的状态指示器:单元屈服状态 返回目录

double UserModel::GetProperty()和void UserModel:: SetProperty()函数 const char * UserModel::Initialize()函数 参数和状态指示器的初始化,并对派生类声明中定义的私有变量进行赋值 const char * UserModel::Run(unsigned nDin,States *ps) 函数 由应变增量计算得到应力增量,从而获得新的应力 const char * UserModel::SaveRestore()函数 对计算结果进行保存。 程序的调试 在VC++的工程设置中将FLAC3D软件中的EXE文件路径加入到程序的调试范围中,并将FLAC3D自带的DLL文件加入到附加动态链接库(Additional DLLs)中,然后在Initialize()或Run()函数中设置断点,进行调试; 在程序文件中加入return()语句,这样可以将希望得到的变量值以错误提示的形式在FLAC3D窗口中得到。

常用模型信息传递指针变量 返回目录

模型源程序分解 返回目录

静力本构 (Mohr-Coulomb)

MC本构 ① ② ①-剪切屈服 ②-拉伸屈服 1. 屈服函数 2. 塑性势函数 非关联 剪切屈服 拉屈服 关联

剪切屈服修正 写成线性函数S:

拉伸屈服修正 写成线性函数S:

const char *UserMohrModel::Initialize(unsigned uDim,State *) { if ((uDim!=2)&&(uDim!=3)) return("Illegal dimension in UserMohr constitutive model"); dE1 = dBulk + d4d3 * dShear; dE2 = dBulk - d2d3 * dShear; dG2 = 2.0 * dShear; double dRsin = sin(dFriction * dDegRad); dNPH = (1.0 + dRsin) / (1.0 - dRsin); dCSN = 2.0 * dCohesion * sqrt(dNPH); if (dFriction) { double dApex = dCohesion * cos(dFriction * dDegRad) / dRsin; dTension = dTension < dApex ? dTension : dApex; } dRsin = sin(dDilation * dDegRad); dRnps = (1.0 + dRsin) / (1.0 - dRsin); double dRa = dE1 - dRnps * dE2; double dRb = dE2 - dRnps * dE1; double dRd = dRa - dRb * dNPH; dSC1 = dRa / dRd; dSC3 = dRb / dRd; dSC2 = dE2 * (1.0 - dRnps) / dRd; dBISC = sqrt(1.0 + dNPH * dNPH) + dNPH; dE21 = dE2 / dE1; return(0); 初始化各式中的常数

const char *UserMohrModel::Run(unsigned uDim,State *ps){ if ((uDim!=3)&&(uDim!=2)) return("Illegal dimension in Mohr constitutive model"); if(ps->dHystDampMult > 0.0) HDampInit(ps->dHystDampMult); /* --- plasticity indicator: */ /* store 'now' info. as 'past' and turn 'now' info off ---*/ if (ps->mState & mShearNow) ps->mState = (unsigned long)(ps->mState | mShearPast); ps->mState = (unsigned long)(ps->mState & ~mShearNow); if (ps->mState & mTensionNow) ps->mState = (unsigned long)(ps->mState | mTensionPast); ps->mState = (unsigned long)(ps->mState & ~mTensionNow); int iPlas = 0; double dTeTens = dTension; /* --- trial elastic stresses --- */ double dE11 = ps->stnE.d11; double dE22 = ps->stnE.d22; double dE33 = ps->stnE.d33;

ps->stnS.d11 += dE11 * dE1 + (dE22 + dE33) * dE2; ps->stnS.d12 += ps->stnE.d12 * dG2; ps->stnS.d13 += ps->stnE.d13 * dG2; ps->stnS.d23 += ps->stnE.d23 * dG2; /* --- calculate and sort ps->incips->l stresses and ps->incips->l directions --- */ Axes aDir; double dPrinMin,dPrinMid,dPrinMax,sdif=0.0,psdif=0.0; int icase=0; bool bFast=ps->stnS.Resoltopris(&dPrinMin,&dPrinMid,&dPrinMax,&aDir,uDim, &icase, &sdif, &psdif); double dPrinMinCopy = dPrinMin; double dPrinMidCopy = dPrinMid; double dPrinMaxCopy = dPrinMax; /* --- Mohr-Coulomb failure criterion --- */ double dFsurf = dPrinMin - dNPH * dPrinMax + dCSN; /* --- Tensile failure criteria --- */ double dTsurf = dTension - dPrinMax; double dPdiv = -dTsurf + (dPrinMin - dNPH * dTension + dCSN) * dBISC;

/* --- tests for failure */ if (dFsurf < 0.0 && dPdiv < 0.0) { iPlas = 1; /* --- shear failure: correction to ps->incips->l stresses ---*/ ps->mState = (unsigned long)(ps->mState | 0x01); dPrinMin -= dFsurf * dSC1; dPrinMid -= dFsurf * dSC2; dPrinMax -= dFsurf * dSC3; } else if (dTsurf < 0.0 && dPdiv > 0.0) { iPlas = 2; /* --- tension failure: correction to ps->incips->l stresses ---*/ ps->mState = (unsigned long)(ps->mState | 0x02); double dTco = dE21 * dTsurf; dPrinMin += dTco; dPrinMid += dTco; dPrinMax = dTension; } if (iPlas) { ps->stnS.Resoltoglob(dPrinMin,dPrinMid, dPrinMax, aDir, dPrinMinCopy,dPrinMidCopy,dPrinMaxCopy, uDim, icase, sdif, psdif, bFast); ps->bViscous = false; // Inhibit stiffness-damping terms } else { ps->bViscous = true; // Allow stiffness-damping terms return(0);

蠕变本构 (Viscous)

Model visc(H-N) Maxwell体-M体 F 一. 力-位移定律 uH uN 总位移 弹性部分 粘性部分

Model Visc(H-N) 总应力: 二. 中心差分方案(将应力张量做球应力张量和偏应力张量分解-增量关系) 其中: 偏应力张量 和偏应变张量 的本构关 式中: 球应力张量 和球应变张量 的本构关系 总应力:

Model visc(H-N) 三. 源程序分解 求解系数:dD= 如果蠕变指标为真,则返回真值; 否则dD=0。 三. 源程序分解 const char *UserViscousModel::Run(unsigned uDim,State *ps) { if ((uDim!=3)&&(uDim!=2)) return("Illegal dimension in UserViscousModel"); double dD = dGD2V * (ps->bCreep ? ps->dTimeStep : 0.0); if (dD > 0.5) return("Timestep too large for UserViscousModel"); double dVic1 = 1.0 - dD; double dVic2 = 1.0 / (1.0 + dD); /* volumetric and deviatoric strain increments */ double dDevol = ps->stnE.d11 + ps->stnE.d22 + ps->stnE.d33; double dDevol3 = d1d3 * dDevol; double dE11d = ps->stnE.d11 - dDevol3; double dE22d = ps->stnE.d22 - dDevol3; double dE33d = ps->stnE.d33 - dDevol3; const char *UserViscousModel::Initialize(unsigned,State *) { dG2 = 2.0 * dShear; if (dViscosity <= 0.0) dGD2V = 0.0; else dGD2V = 0.5 * dShear / dViscosity; return(0); } 求解系数:dGD2V= ; 1. 如果粘滞系数 <=0, dGD2V=0; 2. 否则dGD2V为真值。 求解系数:C1,C2。 球应变增量张量 偏应变增量张量

Model visc(H-N) const char *UserViscousModel::Run(unsigned uDim,State *ps) { /* old isotropic and deviatoric stresses */ double dS0 = d1d3 * (ps->stnS.d11 + ps->stnS.d22 + ps->stnS.d33); double dS11d = ps->stnS.d11 - dS0; double dS22d = ps->stnS.d22 - dS0; double dS33d = ps->stnS.d33 - dS0; /* new deviatoric stresses */ dS11d = (dS11d * dVic1 + dG2 * dE11d) * dVic2; dS22d = (dS22d * dVic1 + dG2 * dE22d) * dVic2; dS33d = (dS33d * dVic1 + dG2 * dE33d) * dVic2; ps->stnS.d12 = (ps->stnS.d12 * dVic1 + dG2 * ps->stnE.d12 ) * dVic2; ps->stnS.d23 = (ps->stnS.d23 * dVic1 + dG2 * ps->stnE.d23 ) * dVic2; ps->stnS.d13 = (ps->stnS.d13 * dVic1 + dG2 * ps->stnE.d13 ) * dVic2; /* new elastic isotropic stress */ dS0 += dBulk * dDevol; /* total stresses */ ps->stnS.d11 = dS11d + dS0; ps->stnS.d22 = dS22d + dS0; ps->stnS.d33 = dS33d + dS0; return(0); } 更新i步总应力 i-1步偏应力张量 i-1步球应力张量 求解i步本构方程(偏应力总量): 求解i步本构方程(球应力总量):