一種flac3d結(jié)構(gòu)單元后處理方法
【專利摘要】本發(fā)明涉及一種FLAC3D結(jié)構(gòu)單元后處理方法其,包括:步驟1、識(shí)別模型中包含的所有結(jié)構(gòu)單元的類型并分類;步驟2、將步驟1中識(shí)別到的所有類型的結(jié)構(gòu)單元分為線狀單元組和面狀單元組,并統(tǒng)計(jì)相應(yīng)組中的結(jié)構(gòu)單元類型的數(shù)目;步驟3、初始化線狀單元組和面狀單元組的計(jì)數(shù)變量;步驟4、逐單元類型判斷其是否屬于線狀單元組,若是,執(zhí)行模式一處理流程;若否,執(zhí)行模式二處理流程;步驟5、判斷是否處理完所有結(jié)構(gòu)單元類型,若否,返回步驟4;若是,即處理完成。
【專利說(shuō)明】
一種FLAC3D結(jié)構(gòu)單元后處理方法
技術(shù)領(lǐng)域
[0001 ]本發(fā)明屬于巖土工程數(shù)值模擬領(lǐng)域,具體涉及一種FLAC3D結(jié)構(gòu)單元后處理方法。
【背景技術(shù)】
[0002]后處理是數(shù)值分析至關(guān)重要且必不可少的一項(xiàng)工作,現(xiàn)有的各類數(shù)值分析軟件對(duì)于后處理的優(yōu)化良莠不齊,但均存在一定程度上的過(guò)程繁復(fù),操作不便的問(wèn)題。
[0003]FLAC3D經(jīng)過(guò)幾十年的迭代更新,至最新的5.01版,依舊沒有解決后處理操作復(fù)雜,可視化程度不高的問(wèn)題。特別是針對(duì)結(jié)構(gòu)單元的后處理效率低下,自動(dòng)化程度低,處理過(guò)程繁雜,其輸出結(jié)果往往是一些云圖,對(duì)于工程技術(shù)人員或科研人員而言,這種結(jié)果并不能直觀反映結(jié)構(gòu)的受力變形特征,因此,這種結(jié)果不能完全符合工程應(yīng)用和科研實(shí)踐的要求。
[0004]現(xiàn)有技術(shù)利用FLAC3D自帶的log輸出方式輸出與結(jié)果相關(guān)的所有數(shù)據(jù),然后通過(guò)人工篩選的方式,剔除無(wú)用的log信息,或選出有用的信息來(lái)進(jìn)行進(jìn)一步的數(shù)據(jù)處理。此方式最大的不足就是在于數(shù)據(jù)的人工篩選,為了獲得通用數(shù)據(jù)處理軟件,如excel ,origin等所要求的固定格式的數(shù)據(jù)文件。在篩選階段面臨大量的坐標(biāo)處理,節(jié)點(diǎn)識(shí)別,物理參數(shù)輸出的工作,過(guò)程繁復(fù),容易出錯(cuò)。
[0005]因此,如何便捷準(zhǔn)確地實(shí)現(xiàn)FLAC3D結(jié)構(gòu)單元后處理,成為本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問(wèn)題之一。
【發(fā)明內(nèi)容】
[0006]發(fā)明目的:本發(fā)明針對(duì)上述現(xiàn)有技術(shù)存在的問(wèn)題做出改進(jìn),即本發(fā)明公開了一種FLAC3D結(jié)構(gòu)單元后處理方法。本發(fā)明提供的技術(shù)方案是建立在FLAC3D計(jì)算完成后,對(duì)FLAC3D模型中的包含的應(yīng)力、位移數(shù)據(jù)進(jìn)行提取,并處理成科研人員廣泛接受的形式。
[0007]技術(shù)方案:一種FLAC3D結(jié)構(gòu)單元后處理方法,包括以下步驟:
[0008]步驟1、識(shí)別模型中包含的所有結(jié)構(gòu)單元的類型并分類,將所有的結(jié)構(gòu)單元分為為梁結(jié)構(gòu)單元、銷索結(jié)構(gòu)單元、粧結(jié)構(gòu)單元、殼結(jié)構(gòu)單元、土工格柵結(jié)構(gòu)單元、襯砌結(jié)構(gòu)單元和實(shí)體單元;
[0009]步驟2、將步驟I中識(shí)別到的所有類型的結(jié)構(gòu)單元分為線狀單元組和面狀單元組,并統(tǒng)計(jì)相應(yīng)組中的結(jié)構(gòu)單元類型的數(shù)目,其中:線狀單元組包括梁結(jié)構(gòu)單元、錨索結(jié)構(gòu)單元和粧結(jié)構(gòu)單元,面狀單元組包括殼結(jié)構(gòu)單元、土工格柵結(jié)構(gòu)單元、襯砌結(jié)構(gòu)單元和實(shí)體單元;
[0010]步驟3、初始化線狀單元組和面狀單元組的計(jì)數(shù)變量
[0011 ] 線狀單元組中單元類型數(shù)P = O ;面狀單元組單元類型數(shù)q = O ;
[0012]步驟4、逐單元類型判斷其是否屬于線狀單元組,若是,執(zhí)行模式一處理流程;若否,執(zhí)行模式二處理流程;
[0013]步驟5、判斷是否處理完所有結(jié)構(gòu)單元類型,若否,返回步驟4;若是,即處理完成。
[0014]進(jìn)一步地,模式一為用戶指定單元ID的后處理模式,適用于線狀單元組,其處理步驟如下:
[0015](101)、獲取線狀單元組內(nèi)包含的所有結(jié)構(gòu)單元的全局表首地址;
[0016](102)、判斷結(jié)構(gòu)單元類型,即判斷結(jié)構(gòu)單元屬于粧結(jié)構(gòu)單元還是梁結(jié)構(gòu)單元還是銷索結(jié)構(gòu)單元;
[0017](103)、獲取結(jié)構(gòu)單元的CID號(hào);
[0018](104)、按結(jié)構(gòu)單元類型分類建立單元ID與CID號(hào)之間的——對(duì)應(yīng)關(guān)系,并寫入文本文件;
[0019](105)、獲取下一個(gè)單元地址,并判斷該單元是否為空單元,若否,返回步驟(102),若是,則進(jìn)入步驟(106);
[0020](106)、對(duì)需要輸出的結(jié)構(gòu)單元參量進(jìn)行寫log輸出,結(jié)果保存為文本文件;
[0021](107)、使用MATLAB載入步驟(106)得到的文本文件,逐行讀入,檢測(cè)預(yù)設(shè)的關(guān)鍵詞,提取其后的有效數(shù)據(jù),并寫入臨時(shí)文本文件;
[0022](108)、載入步驟(107)中產(chǎn)生的臨時(shí)文件與步驟(104)中產(chǎn)生的文本文件,進(jìn)行ID-CID綜合匹配,并獲得輸出數(shù)據(jù);
[0023](109)、對(duì)步驟(108)得到的輸出數(shù)據(jù)使用MATLAB的數(shù)據(jù)繪圖功能成圖預(yù)覽,并保存圖片文件;
[0024](110)、將步驟(109)中用于成圖的數(shù)據(jù)分類寫入Excel表格中,并保存。
[0025]進(jìn)一步地,模式二為用戶指定測(cè)線的后處理模式,適用于處理面狀單元組,其處理步驟如下:
[0026](201)、定義起點(diǎn)、終點(diǎn)坐標(biāo)及測(cè)點(diǎn)的個(gè)數(shù)以確定一條輸出測(cè)線;
[0027](202)、根據(jù)測(cè)點(diǎn)個(gè)數(shù)均分測(cè)線,并計(jì)算各測(cè)點(diǎn)的坐標(biāo);
[0028](203)、獲取模型中各測(cè)點(diǎn)坐標(biāo)附近的節(jié)點(diǎn)或結(jié)構(gòu)單元的ID號(hào);
[0029](204)、按ID號(hào)尋址相應(yīng)的結(jié)構(gòu)單元或節(jié)點(diǎn),并獲取輸出參量;
[0030](205)、將獲取的參量以ASCII碼的格式寫入文本文件;
[0031 ] (206)、使用MATLAB載入步驟(205)得到的文本文件;
[0032](207)、根據(jù)測(cè)線ID統(tǒng)計(jì)測(cè)線數(shù)目;
[0033](208)、按數(shù)據(jù)類別使用MATLAB的數(shù)據(jù)繪圖功能成圖預(yù)覽,并保存圖片文件;
[0034](209)、將步驟(208)中用于成圖的數(shù)據(jù)分類寫入Excel表格中,并保存。
[0035]本發(fā)明通過(guò)擴(kuò)充FLAC3D的fish函數(shù)庫(kù),并和MATLAB編寫的數(shù)據(jù)處理腳本接口共同協(xié)作,實(shí)現(xiàn)FLAC3D后處理的自動(dòng)化、便捷化、可視化。
[0036]本發(fā)明針對(duì)目前FLAC3D數(shù)值分析軟件后處理方面的存在的一些不足進(jìn)行了二次開發(fā),實(shí)現(xiàn)了 FLAC3D后處理的自動(dòng)化與便捷化,分析結(jié)果的呈現(xiàn)形式具有直觀易懂,簡(jiǎn)潔明確的特點(diǎn),符合科研領(lǐng)域及工程領(lǐng)域報(bào)告和論文的特殊要求。
[0037]有益效果:本發(fā)明公開的一種FLAC3D結(jié)構(gòu)單元后處理方法具有以下有益效果:
[0038]1、一定程度上改變了FLAC3D軟件的后處理輸出方式,提供了后處理輸出的交互函數(shù),可以實(shí)現(xiàn)輸出指定的測(cè)線、測(cè)點(diǎn)數(shù)據(jù)。輸出的結(jié)果格式較為規(guī)范。
[0039]2、實(shí)現(xiàn)了整個(gè)后處理過(guò)程的自動(dòng)化,處理過(guò)程無(wú)需人工參與,極大地降低了人為失誤的概率,增強(qiáng)了后處理數(shù)據(jù)的精確性和可靠性。其自動(dòng)化處理的方式,極大地提高了后處理的效率。
[0040]3、后處理方式具有極大的靈活性和便捷性,可由用戶通過(guò)調(diào)用函數(shù)自由輸出指定位置或指定構(gòu)件的結(jié)果,其處理結(jié)果相對(duì)于FLAC3D自帶的各類云圖而言,更具有直觀性,更能被一般科研技術(shù)人員接受。
[0041 ] 4、通過(guò)擴(kuò)充FLAC3D內(nèi)置的FISH函數(shù)庫(kù),配合相應(yīng)的MATLAB數(shù)據(jù)處理腳本,解決了FLAC3D后處理的復(fù)雜性和重復(fù)性問(wèn)題,實(shí)現(xiàn)了 FLAC3D結(jié)構(gòu)單元后處理的快速化,便捷化和準(zhǔn)確化。
[0042]5、最終輸出結(jié)果中,不僅包含直觀的曲線圖,也提供了相應(yīng)圖件的繪圖數(shù)據(jù)(excel格式),方便用戶使用其他數(shù)據(jù)處理軟件對(duì)其進(jìn)行進(jìn)一步處理,體現(xiàn)了數(shù)據(jù)結(jié)果的強(qiáng)大兼容性。
【附圖說(shuō)明】
[0043]圖1為本發(fā)明公開的一種FLAC3D結(jié)構(gòu)單元后處理方法的流程圖。
【具體實(shí)施方式】
:
[0044]下面對(duì)本發(fā)明的【具體實(shí)施方式】詳細(xì)說(shuō)明。
[0045]如圖1所示,一種FLAC3D結(jié)構(gòu)單元后處理方法,包括以下步驟:
[0046]步驟1、識(shí)別模型中包含的所有結(jié)構(gòu)單元的類型并分類,將所有的結(jié)構(gòu)單元分為為梁結(jié)構(gòu)單元、銷索結(jié)構(gòu)單元、粧結(jié)構(gòu)單元、殼結(jié)構(gòu)單元、土工格柵結(jié)構(gòu)單元、襯砌結(jié)構(gòu)單元和實(shí)體單元;
[0047]步驟2、將步驟I中識(shí)別到的所有類型的結(jié)構(gòu)單元分為線狀單元組和面狀單元組,并統(tǒng)計(jì)相應(yīng)組中的結(jié)構(gòu)單元類型的數(shù)目,其中:線狀單元組包括梁結(jié)構(gòu)單元、錨索結(jié)構(gòu)單元和粧結(jié)構(gòu)單元,面狀單元組包括殼結(jié)構(gòu)單元、土工格柵結(jié)構(gòu)單元、襯砌結(jié)構(gòu)單元和實(shí)體單元;
[0048]步驟3、初始化線狀單元組和面狀單元組的計(jì)數(shù)變量
[0049 ] 線狀單元組中單元類型數(shù)P = O ;面狀單元組單元類型數(shù)q = O ;
[0050]步驟4、逐單元類型判斷其是否屬于線狀單元組,若是,執(zhí)行模式一處理流程;若否,執(zhí)行模式二處理流程;
[0051]步驟5、判斷是否處理完所有結(jié)構(gòu)單元類型,若否,返回步驟4;若是,即處理完成。
[0052]進(jìn)一步地,模式一為用戶指定單元ID的后處理模式,適用于線狀單元組,其處理步驟如下:
[0053](101)、獲取線狀單元組內(nèi)包含的所有結(jié)構(gòu)單元的全局表首地址;
[0054](102)、判斷結(jié)構(gòu)單元類型,即判斷結(jié)構(gòu)單元屬于粧結(jié)構(gòu)單元還是梁結(jié)構(gòu)單元還是銷索結(jié)構(gòu)單元;
[°°55] (103)、獲取結(jié)構(gòu)單元的CID號(hào)(即component-1D號(hào),構(gòu)件的識(shí)別碼);
[0056](104)、按結(jié)構(gòu)單元類型分類建立單元ID與CID號(hào)之間的一一對(duì)應(yīng)關(guān)系,并寫入文本文件;
[0057](105)、獲取下一個(gè)單元地址,并判斷該單元是否為空單元,若否,返回步驟(102),若是,則進(jìn)入步驟(106);
[0058](106)、對(duì)需要輸出的結(jié)構(gòu)單元參量進(jìn)行寫log輸出,結(jié)果保存為文本文件;
[0059](107)、使用MATLAB載入步驟(106)得到的文本文件,逐行讀入,檢測(cè)預(yù)設(shè)的關(guān)鍵詞,提取其后的有效數(shù)據(jù),并寫入臨時(shí)文本文件;
[0060](108)、載入步驟(107)中產(chǎn)生的臨時(shí)文件與步驟(104)中產(chǎn)生的文本文件,進(jìn)行ID-CID綜合匹配,并獲得輸出數(shù)據(jù);
[0061](109)、對(duì)步驟(108)得到的輸出數(shù)據(jù)使用MATLAB的數(shù)據(jù)繪圖功能成圖預(yù)覽,并保存圖片文件;
[0062](110)、將步驟(109)中用于成圖的數(shù)據(jù)分類寫入Excel表格中,并保存。
[0063]進(jìn)一步地,模式二為用戶指定測(cè)線的后處理模式,適用于處理面狀單元組,其處理步驟如下:
[0064](201)、定義起點(diǎn)、終點(diǎn)坐標(biāo)及測(cè)點(diǎn)的個(gè)數(shù)以確定一條輸出測(cè)線;
[0065](202)、根據(jù)測(cè)點(diǎn)個(gè)數(shù)均分測(cè)線,并計(jì)算各測(cè)點(diǎn)的坐標(biāo);
[0066](203)、獲取模型中各測(cè)點(diǎn)坐標(biāo)附近的節(jié)點(diǎn)或結(jié)構(gòu)單元的ID號(hào);
[0067](204)、按ID號(hào)尋址相應(yīng)的結(jié)構(gòu)單元或節(jié)點(diǎn),并獲取輸出參量;
[0068](205)、將獲取的參量以ASCII碼的格式寫入文本文件(數(shù)據(jù)格式是測(cè)線標(biāo)號(hào)+三維坐標(biāo)+參量);
[0069 ] (206),使用MATLAB載入步驟(205)得到的文本文件;
[0070](207)、根據(jù)測(cè)線ID統(tǒng)計(jì)測(cè)線數(shù)目;
[0071](208)、按數(shù)據(jù)類別使用MATLAB的數(shù)據(jù)繪圖功能成圖預(yù)覽,并保存圖片文件;
[0072](209)、將步驟(208)中用于成圖的數(shù)據(jù)分類寫入Excel表格中,并保存。
[0073]本發(fā)明通過(guò)擴(kuò)充FLAC3D的fish函數(shù)庫(kù),并和MATLAB編寫的數(shù)據(jù)處理腳本接口共同協(xié)作,實(shí)現(xiàn)FLAC3D后處理的自動(dòng)化、便捷化、可視化。
[0074]本發(fā)明針對(duì)目前FLAC3D數(shù)值分析軟件后處理方面的存在的一些不足進(jìn)行了二次開發(fā),實(shí)現(xiàn)了 FLAC3D后處理的自動(dòng)化與便捷化,分析結(jié)果的呈現(xiàn)形式具有直觀易懂,簡(jiǎn)潔明確的特點(diǎn),符合科研領(lǐng)域及工程領(lǐng)域報(bào)告和論文的特殊要求。
[0075]上面對(duì)本發(fā)明的實(shí)施方式做了詳細(xì)說(shuō)明。但是本發(fā)明并不限于上述實(shí)施方式,在所屬技術(shù)領(lǐng)域普通技術(shù)人員所具備的知識(shí)范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下做出各種變化。
【主權(quán)項(xiàng)】
1.一種FLAC3D結(jié)構(gòu)單元后處理方法,其特征在于,包括以下步驟: 步驟1、識(shí)別模型中包含的所有結(jié)構(gòu)單元的類型并分類,將所有的結(jié)構(gòu)單元分為為梁結(jié)構(gòu)單元、銷索結(jié)構(gòu)單元、粧結(jié)構(gòu)單元、殼結(jié)構(gòu)單元、土工格柵結(jié)構(gòu)單元、襯砌結(jié)構(gòu)單元和實(shí)體單元; 步驟2、將步驟I中識(shí)別到的所有類型的結(jié)構(gòu)單元分為線狀單元組和面狀單元組,并統(tǒng)計(jì)相應(yīng)組中的結(jié)構(gòu)單元類型的數(shù)目,其中:線狀單元組包括梁結(jié)構(gòu)單元、錨索結(jié)構(gòu)單元和粧結(jié)構(gòu)單元,面狀單元組包括殼結(jié)構(gòu)單元、土工格柵結(jié)構(gòu)單元、襯砌結(jié)構(gòu)單元和實(shí)體單元; 步驟3、初始化線狀單元組和面狀單元組的計(jì)數(shù)變量 線狀單元組中單元類型數(shù)P = O ;面狀單元組單元類型數(shù)q = O ; 步驟4、逐單元類型判斷其是否屬于線狀單元組,若是,執(zhí)行模式一處理流程;若否,執(zhí)行模式二處理流程; 步驟5、判斷是否處理完所有結(jié)構(gòu)單元類型,若否,返回步驟4;若是,即處理完成。2.根據(jù)權(quán)利要求1所述的一種FLAC3D結(jié)構(gòu)單元后處理方法,其特征在于,模式一為用戶指定單元ID的后處理模式,適用于線狀單元組,其處理步驟如下: (101),獲取線狀單元組內(nèi)包含的所有結(jié)構(gòu)單元的全局表首地址; (102)、判斷結(jié)構(gòu)單元類型,即判斷結(jié)構(gòu)單元屬于粧結(jié)構(gòu)單元還是梁結(jié)構(gòu)單元還是錨索結(jié)構(gòu)單元; (103)、獲取結(jié)構(gòu)單元的CID號(hào); (104)、按結(jié)構(gòu)單元類型分類建立單元ID與CID號(hào)之間的一一對(duì)應(yīng)關(guān)系,并寫入文本文件; (105)、獲取下一個(gè)單元地址,并判斷該單元是否為空單元,若否,返回步驟(102),若是,則進(jìn)入步驟(106); (106)、對(duì)需要輸出的結(jié)構(gòu)單元參量進(jìn)行寫log輸出,結(jié)果保存為文本文件; (107)、使用MATLAB載入步驟(106)得到的文本文件,逐行讀入,檢測(cè)預(yù)設(shè)的關(guān)鍵詞,提取其后的有效數(shù)據(jù),并寫入臨時(shí)文本文件; (108)、載入步驟(107)中產(chǎn)生的臨時(shí)文件與步驟(104)中產(chǎn)生的文本文件,進(jìn)行ID-CID綜合匹配,并獲得輸出數(shù)據(jù); (109)、對(duì)步驟(108)得到的輸出數(shù)據(jù)使用MATLAB的數(shù)據(jù)繪圖功能成圖預(yù)覽,并保存圖片文件; (110)、將步驟(109)中用于成圖的數(shù)據(jù)分類寫入Excel表格中,并保存。3.根據(jù)權(quán)利要求1所述的一種FLAC3D結(jié)構(gòu)單元后處理方法,其特征在于,模式二為用戶指定測(cè)線的后處理模式,適用于處理面狀單元組,其處理步驟如下: (201 )、定義起點(diǎn)、終點(diǎn)坐標(biāo)及測(cè)點(diǎn)的個(gè)數(shù)以確定一條輸出測(cè)線; (202),根據(jù)測(cè)點(diǎn)個(gè)數(shù)均分測(cè)線,并計(jì)算各測(cè)點(diǎn)的坐標(biāo); (203)、獲取模型中各測(cè)點(diǎn)坐標(biāo)附近的節(jié)點(diǎn)或結(jié)構(gòu)單元的ID號(hào); (204)、按ID號(hào)尋址相應(yīng)的結(jié)構(gòu)單元或節(jié)點(diǎn),并獲取輸出參量; (205)、將獲取的參量以ASCII碼的格式寫入文本文件; (206),使用MATLAB載入步驟(205)得到的文本文件; (207)、根據(jù)測(cè)線ID統(tǒng)計(jì)測(cè)線數(shù)目;(208)、按數(shù)據(jù)類別使用MATLAB的數(shù)據(jù)繪圖功能成圖預(yù)覽,并保存圖片文件;(209)、將步驟(208)中用于成圖的數(shù)據(jù)分類寫入Excel表格中,并保存。
【文檔編號(hào)】G06F17/50GK106055754SQ201610347581
【公開日】2016年10月26日
【申請(qǐng)日】2016年5月23日
【發(fā)明人】程輝, 門玉明, 曹蕊, 原興霞, 鄒愈, 李凱玲, 張軒銘, 李森濤, 王鵬, 楊龍偉, 高潔, 李楠
【申請(qǐng)人】長(zhǎng)安大學(xué)