離散斷裂網絡[DFN.]FISH函數分類與解析(UDEC和3DEC)

1 引言

最近15年來,離散斷裂網絡DFN在巖石工程中得到了逐漸的普及和應用,應用領域包括邊坡和地下開挖穩定性分析,仿真巖石力學試驗以獲得真實的巖體強度以及預測崩落采礦的巖石破碎性能等。本公眾號以前討論過大量DFN方面的研究,Top 15文章如下所示。 

離散斷裂網絡[DFN.]FISH函數分類與解析(UDEC和3DEC)的圖1

下面的試驗與討論基于UDEC/3DEC 7.0。離散斷裂網絡模擬和操作可分為兩個層次:一個是DFN,DFN用在DFN水平上進行操作,另一個是Fracture,fracture用來操作DFN內的斷裂。這個筆記簡要討論了DFN層次上的操作函數。

離散斷裂網絡[DFN.]FISH函數分類與解析(UDEC和3DEC)的圖2

2 DFN函數 

DFN FISH共有22個函數,其中3個只有在3DEC才有,這三個UDEC沒有的函數分別是: 

dfn.contact.list(D_PNT<,INT>); 

dfn.contact.list.all(D_PNT<,INT>);

dfn.prop(D_PNT,STR)

下面按照函數的功能以及傳遞的參數值對這些函數進行了分類。這樣的分類比直接按照字典順序給出更容易理解和掌握。當產生一個DFN后,便可以使用這些函數對DFN進行操作。

fracture generate dfn 'p1' fracture-count 100

(1) 尋找指針

UDEC和3DEC的數據都是以鏈表結構儲存的,因此為了操作DFN中的數據,首先需要獲得DFN的指針,指針通過dfn.find(ad)函數獲取,ad為DFN的名稱或者ID, ID的索引從1開始。


(2) 不需傳遞參數的斷裂類型,ID和數量

有三個函數不需要任何傳遞參數,它們是:

[1] dfn.maxid 獲得最大的DFN ID值。當模型有多個DFN組成時可以獲取最大的ID值,如果只有一個DFN,那么返回值是1.

[2] dfn.num 獲取模型中DFN斷裂的總數量。在實際建模時,這個函數比較有用,可以用來查看模型的規模。

[3] dfn.typeid  獲取DFN的類型號。類型ID可以用來唯一地識別DFN FISH的指針,并將其與任何其他類型的FISH指針區分開來。這個函數的返回值是整形。


(3) 不需傳遞參數的列表

還有一個不需要傳遞任何參數的函數是dfn.list,這個函數用來獲取全局的DFN列表。使用loop foreach結構迭代該列表。


(4) 不需要指針的函數

有兩個函數需要傳遞參數但不需要指針,第一個函數是上面提到的dfn.find,需要傳遞的參數或者是DFN名稱,或者是DFN ID,第二個函數是dfn.create(<ID>,<s>),這個函數用來在FISH內創建一個DFN。這個DFN是空的,它的dominance值被設置為下一個可用的dominance(參見fracture contact-model命令和dfn.dominance)。這兩個值都可以不填寫,系統會賦默認值。如果不指定ID或s,則選擇下一個可用的ID,名稱設置為dfnXX,其中XX為ID。


(5) 僅使用指針的函數

下面這些函數必須并且唯一傳遞的參數是DFN指針。

[1] dfn.delete(D_PNT): 刪除一個DFN, 使用這個命令后,所有的斷裂和相應的交叉點都被刪除。

[2] dfn.fracturelist(D_PNT): 獲得指定的DFN的斷裂列表。使用loop foreach結構迭代該列表。從架構上看,dfn.list處在這個函數的上層。

[3] dfn.dominance(D_PNT): 獲取/設置DFN的dominance。參看(4)的說明以及(fracture contact-model)命令。這個函數是雙向的,既可以獲取也可以賦值。

[4] dfn.id(D_PNT): 獲取指定的DFN ID, 如果只有一個DFN,那么ID=1.

[5] dfn.name(D_PNT): 獲取DFN的名稱。

[6] dfn.fracturenum(D_PNT): 獲取指定DFN的斷裂數量,dfn.num獲取的是整個模型的斷裂數量。

[7] dfn.template(D_PNT):   獲取用于生成此DFN的斷裂模板。如果在生成后有任何斷裂被修改,返回值將是0。


(6) 使用指針和其它參數的函數

下面這些函數必須使用指針,但可以傳遞其它的參數。

[1] dfn.contactmap(D_PNT<,INT>): 獲取與一個指定DFN相關的活動接觸??蛇x擇的接觸類型ID用來過濾返回的接觸。 

[2] dfn.contactmap.all(D_PNT<,INT>):與上面的函數類似,獲取與一個指定DFN相關的所有接觸,包括那些不活動的接觸?!?/span>

[3] dfn.extra(D_PNT<,INT>):雙向函數,獲取或設置一個DFN的額外變量。

[4] dfn.group(D_PNT<,STR>): 雙向函數,獲取或設置DFN組名。返回值是字符串,如果沒有設置組名,那么返回值是"Null"。

[5] dfn.group.remove(D_PNT,STR):移除DFN組, 指定的組名將從所有組槽中刪除。[6] dfn.isgroup(D_PNT,STR<,STR>):指出DFN組的狀態。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
6