03_FLAC3D5.0_fish應(yīng)用.pptx_第1頁
03_FLAC3D5.0_fish應(yīng)用.pptx_第2頁
03_FLAC3D5.0_fish應(yīng)用.pptx_第3頁
03_FLAC3D5.0_fish應(yīng)用.pptx_第4頁
03_FLAC3D5.0_fish應(yīng)用.pptx_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、FLAC3D 5.0培訓(xùn)教程(武漢),工程師 李振2014.3.27-3.28Itasca(武漢)咨詢有限公司,FLAC3D 5.0培訓(xùn)日程安排,FLAC3D V5.0界面操作 FLAC3D基本操作方法vs應(yīng)用流程; FLAC3D內(nèi)置Fish語言的應(yīng)用; FLAC3D結(jié)構(gòu)單元vs接觸單元; FLAC3D滲流模塊 其他,2014.3.27 2014.3.28,FISH是什么? FISH能做什么? FISH功能函數(shù)簡介 FISH應(yīng)用介紹,FISH簡介及其應(yīng)用,FISH是ITASCA軟件內(nèi)置的一款程序編譯器: FISH擁有高級(jí)程序語言所具有的普遍性功能,如變量、數(shù)組、函數(shù)定義、文件讀寫訪問等 FIS

2、H具有自定義函數(shù)功能,并作為命令為FLAC3D程序隨時(shí)調(diào)用 FISH內(nèi)置了幾乎全部的FLAC3D模型變量,根據(jù)變量的類型可進(jìn)行任意訪問或者修改 基于強(qiáng)大交互式訪問能力,F(xiàn)ISH成為很多ITASCA愛好者進(jìn)行接口開發(fā)的首選工具,這些接口程序呈現(xiàn)功能用途多樣化特色,FISH是什么?,FISH的一般應(yīng)用方法: 特殊功能;例如,模型生成、材料參數(shù)賦值、輸入?yún)?shù)自動(dòng)控制、分析結(jié)果后處理; 作為HISTORY命令變量,用于監(jiān)測用戶模型自定義變量; 特定功能在計(jì)算迭代過程中的自動(dòng)執(zhí)行;如,數(shù)值試驗(yàn)中的侍服控制(使用WHILESTEPPING函數(shù)); 作為本構(gòu)模型函數(shù);如,在執(zhí)行迭代過程中修改模型參數(shù); 編寫

3、FLAC3D與其他程序之間(包括ITASCA程序)的訪問接口。,FISH能干什么?,注意項(xiàng): (;)為FISH注釋符號(hào) SET為參數(shù)初始化命令 自定義FISH變量、數(shù)組等參數(shù)具有全局特點(diǎn),自定義變量或函數(shù)名稱 自定義數(shù)組 自定義標(biāo)量參數(shù) 模型變量(如,應(yīng)力、屬性) 內(nèi)置函數(shù) 訪問表(table)、一般性內(nèi)存信息,FISH 可以定義:,FISH變量、函數(shù)和操作,DEF . END,如何定義FISH函數(shù),CASE_OF expr IF expr 1 test expr 2 CASE n ELSE END_CASE END_IF,LOOP var (expr1, expr2) LOOP WHILE

4、expr1 test expr 2 END_LOOP END_LOOP,條件語句,循環(huán)語句,FISH變量、函數(shù)和操作,COMMAND END_COMMAND,段落語句:嵌入FLAC3D命令功能,FISH變量、函數(shù)和操作,Fish 函數(shù),Fish 函數(shù)結(jié)構(gòu) def function-name ;定義函數(shù)名 ;函數(shù)語句 end ;函數(shù)結(jié)束的標(biāo)志 Fish函數(shù)舉例 def func b=10 a=b+10 end func print a,Fish 函數(shù),Fish 函數(shù)與變量 對(duì)于Fish函數(shù)和變量需要注意一下幾點(diǎn): 函數(shù)和變量的賦值遵循數(shù)據(jù)類型的法則; 變量和函數(shù)名的命名規(guī)則不能以數(shù)字開頭,不能含

5、有中文,不能含有下列字符: . , * / + - = # ( ) ; “ ” 變量和函數(shù)名不能與FLAC3D, FISH保留字相沖突; 對(duì)變量賦值時(shí),不能將當(dāng)前函數(shù)的函數(shù)名放在“=”右邊,這樣會(huì)形成遞歸調(diào)用; 變量和函數(shù)名是全局的; 對(duì)FISH函數(shù)和變量的引用和通過如下命令來實(shí)現(xiàn): list用于查看函數(shù)和變量的數(shù)值 HISTORY可對(duì)函數(shù)和變量的數(shù)值進(jìn)行記錄 SET可對(duì)變量進(jìn)行賦值,Fish 函數(shù),Fish 函數(shù)數(shù)據(jù)類型 整型:-2147483648-2147483648 浮點(diǎn)型:10-30010300 字符型:以()為分界符,常用于保存時(shí)文件名的定義 指針型:表示單元和節(jié)點(diǎn)的存儲(chǔ)地址,Fi

6、sh 函數(shù),Fish 函數(shù)語句,選擇語句 CASEOF 表達(dá)式 默認(rèn)語句 CASE n1 表達(dá)式值為n1時(shí)的語句 CASE n2 表達(dá)式值為n2時(shí)的語句 ENDCASE,條件語句 IF 條件表達(dá)式 ENDIF 注:IF語句內(nèi)部可繼續(xù)嵌套條件語句,循環(huán)語句 LOOP var (exp1, exp2) ENDLOOP 或 LOOP WHILE 條件表達(dá)式 ENDLOOP,命令語句 COMMAND ENDCOMMAND,Fish 函數(shù),單元遍歷和節(jié)點(diǎn)遍歷 基本變量 zone_head和gp_head:分別表示單元和節(jié)點(diǎn)的頭指針 z_next()和gp_next:分別表示下一個(gè)單元(節(jié)點(diǎn)),單元遍歷程

7、序框架: p_z=zone_head loop while p_z # null ;語句 p_z=z_next(p_z) endloop,節(jié)點(diǎn)遍歷程序框架: p_gp=gp_head loop while p_z # null ;語句 p_gp=z_next(p_gp) endloop,WHILESTEPPING (execution of the function at every FLAC step) WHILE_STEPPING INT (change the type of the associated variable) FLOAT STRING ARRAY var(n1, n2)

8、(definition of an array),FISH特殊語句,Mathematical functions atanatan2cos exptan ln logsinsqrt abs maxmin sgn Type conversion floatintstring type,Message functions inout Random generator grandurand Logical operators andnotor Others fc_argget_memlose_mem,Tables xtableytabletable Memory Access imemfmem,FI

9、SH內(nèi)置數(shù)學(xué)函數(shù),FLAC3D模型數(shù)據(jù)結(jié)構(gòu),FLAC3D數(shù)據(jù)對(duì)象及其頭指針: 節(jié)點(diǎn)對(duì)象:gp_head 單元對(duì)象:zone_head 接觸對(duì)象:i_head .,next,FLAC3D模型對(duì)象內(nèi)置函數(shù) 節(jié)點(diǎn),節(jié)點(diǎn)n,節(jié)點(diǎn)n - 1,節(jié)點(diǎn)2,節(jié)點(diǎn)1,gp_head,Null,節(jié)點(diǎn)坐標(biāo) 節(jié)點(diǎn)位移 節(jié)點(diǎn)速度 .,next,表. 節(jié)點(diǎn)內(nèi)置變量,.,注意*號(hào)的含義,FLAC3D數(shù)據(jù)處理工具 表(table),表結(jié)構(gòu)示意圖,建立數(shù)據(jù)表: table id x1 y1 x2 y2 . xn yn,table(xi, yi),常用數(shù)據(jù)表操作函數(shù): value = xtable(id, seq) value =

10、 ytable(id, seq),Fish-避免遞歸調(diào)用!,generate zone brick size111 define stress_sum stress_sum = 0.0 local pnt = zone_head loop while pnt # null stress_sum = stress_sum + z_sxx(pnt) pnt=z_next(pnt) end_loop end stress_sum,FISH 語言新增功能,變量名與函數(shù)名 在fish語句外(或者是command里)時(shí),調(diào)用須在前加 變量名(函數(shù)名) LOOP 語句 可以使用局部變量(local vari

11、ables) LOOP FOREACH 自動(dòng)循環(huán)遍歷每個(gè)對(duì)象 EXIT LOOP 跳出循環(huán). CONTINUE 跳過循環(huán)中剩下的代碼 ELSE IF.,應(yīng)用實(shí)例:,土體的模量隨小主應(yīng)力變化,def E_modify p_z = zone_head d_k = 704 d_n = 0.38 d_pa = 101325.0 ;/標(biāo)準(zhǔn)大氣壓 loop while p_z # null sigma_3 = -1.0 * z_sig1(p_z) E_new = d_k * d_pa * (sigma_3 / d_pa) d_n z_prop(p_z,young) = E_new p_z = z_next

12、(p_z) endloop end E_modify,應(yīng)用實(shí)例,獲得最大位移的大小及發(fā)生位置,def find_max_disp p_gp = gp_head maxdisp_value = 0.0 maxdisp_gpid = 0 loop while p_gp # null disp_gp = sqrt(gp_xdisp(p_gp) 2 + gp_ydisp(p_gp) 2 + gp_zdisp(p_gp) 2) if disp_gp maxdisp_value maxdisp_value = disp_gp maxdisp_gpid = gp_id(p_gp) endif p_gp = gp_next(p_gp) endloop end find_max_disp print maxdisp_value

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論