• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      HAJIF在Linux系統(tǒng)上的移植與應(yīng)用

      2020-12-01 08:13:44許向彥王立凱王曉輝
      工程與試驗 2020年3期
      關(guān)鍵詞:圖形化腳本算例

      許向彥,王立凱,王曉輝

      (中國飛機強度研究所,陜西 西安 710065)

      1 引 言

      HAJIF是一款國產(chǎn)有限元分析軟件,涵蓋靜力、模態(tài)、屈曲等通用功能以及優(yōu)化、靜彈、顫振、熱應(yīng)力分析等專用求解功能,適用系統(tǒng)為Windows操作系統(tǒng)。隨著有限元軟件適用范圍越來越廣,使用者所使用的操作系統(tǒng)已不僅僅局限于Windows操作系統(tǒng)。一些使用者受限于操作系統(tǒng)的不可替換性,只能使用Linux系統(tǒng)。為此,必須完成HAJIF從Windows操作系統(tǒng)向Linux操作系統(tǒng)的移植,以滿足用戶的使用需求。

      HAJIF軟件利用C、C++、Fortran等編程語言編寫而成,代碼量龐大,要完成HAJIF的軟件移植,對代碼進(jìn)行適應(yīng)Linux操作系統(tǒng)的重構(gòu)是一項既耗費時間又耗費人力的工作。鑒于此,本文利用Wine技術(shù),成功構(gòu)建了HAJIF在Linux操作系統(tǒng)上的運行環(huán)境,同時通過對HAJIF求解器運行腳本進(jìn)行適應(yīng)性封裝,完成了HAJIF從Windows系統(tǒng)向Linux系統(tǒng)的全面移植。

      2 相關(guān)技術(shù)

      Wine是一個能夠在多種可移植操作系統(tǒng)接口上運行Windows應(yīng)用的兼容層,體現(xiàn)為一個Wine服務(wù)進(jìn)程和一組動態(tài)鏈接庫(相當(dāng)于Windows的眾多DLL)。在運行某個Windows應(yīng)用時,系統(tǒng)中至少有兩個進(jìn)程與之有關(guān)。

      (1)應(yīng)用進(jìn)程本身

      Windows應(yīng)用在運行時,所有對動態(tài)鏈接庫的調(diào)用都是在此進(jìn)程的上下文環(huán)境中運行。當(dāng)Windows應(yīng)用在Linux系統(tǒng)上運行,需要得到Wine的服務(wù)或者需要通過Wine間接提供的其他服務(wù)時,應(yīng)用進(jìn)程通過Wine所提供的動態(tài)鏈接庫逐層調(diào)用,直到Linux內(nèi)核級。需要注意的是,這個應(yīng)用進(jìn)程本身往往需要通過套接字和管道與Wine服務(wù)進(jìn)程通信,以接受服務(wù)進(jìn)程的管理和協(xié)調(diào)。

      (2)Wine服務(wù)進(jìn)程

      此進(jìn)程的主要作用有:提供Windows進(jìn)程間通信與同步的手段;提供Windows進(jìn)程和線程的管理等。

      這些進(jìn)程以及動態(tài)鏈接庫的關(guān)系如圖1所示。

      圖1 Windows應(yīng)用與Wine動態(tài)鏈接庫關(guān)系圖

      實際上,具體的Windows應(yīng)用進(jìn)程是從另一個進(jìn)程,即Wine的作業(yè)裝入程序wine轉(zhuǎn)化而來的。用戶一開始啟動的是作業(yè)程序wine,通過參數(shù)化接受某個具體的Windows應(yīng)用,由wine為具體目標(biāo)程序的運行建立起與Wine服務(wù)進(jìn)程的連接,繼而通過裝入目標(biāo)程序,并調(diào)用適配于Linux操作系統(tǒng)的Wine動態(tài)鏈接庫即可達(dá)到運行目標(biāo)程序的目的。

      3 HAJIF移植流程

      HAJIF軟件在Windows操作系統(tǒng)下包含兩種使用方式:第一種使用方式與大多數(shù)有限元分析軟件類似,這種使用方式方便簡潔,通過在HAJIF前置界面中導(dǎo)入求解模型并設(shè)置模型材料屬性,以及載荷條件等參數(shù),調(diào)用求解接口即可完成各載荷工況下的模型求解,同時可在HAJIF后置界面中對結(jié)果進(jìn)行圖形化顯示。針對擁有第三方前后置顯示系統(tǒng)而只需要使用HAJIF求解器的用戶,HAJIF提供了第二種使用方式,通過對HAJIF求解器腳本化封裝,使得用戶可以通過在Windows操作系統(tǒng)的DOS環(huán)境下調(diào)用HAJIF求解器運行腳本的方式,完成對HAJIF求解器的調(diào)用,繼而達(dá)到對模型求解的目的。

      鑒于HAJIF在Windows操作系統(tǒng)下存在的兩種使用方式,在將HAJIF向Linux操作系統(tǒng)移植時,必須實現(xiàn)兩種移植方案。

      3.1 圖形化HAJIF的移植

      圖形化的HAJIF同時包含HAJIF前后置顯示系統(tǒng)HAJIF求解器,其存在形式為可執(zhí)行文件。所以,要完成圖形化HAJIF在Linux系統(tǒng)上的運行,利用Wine服務(wù)所提供的作業(yè)裝入程序wine將HAJIF應(yīng)用進(jìn)程裝入并轉(zhuǎn)換,同時調(diào)用Wine所提供的針對Linux的相應(yīng)動態(tài)鏈接庫來完成HAJIF移植。圖2描述了圖形化HAJIF的具體移植流程。

      圖2 圖形化HAJIF移植流程

      3.2 HAJIF求解器的移植

      HAJIF求解器的移植不涉及具體的圖形化界面,在Windows操作系統(tǒng)上,單獨使用HAJIF求解器時,需要在DOS環(huán)境中調(diào)用求解器運行腳本,完成求解器調(diào)用。在Linux操作系統(tǒng)上,為了能夠單獨使用HAJIF求解器,實現(xiàn)了兩種移植方案來滿足用戶的不同使用需求。

      3.2.1 模擬Windows DOS環(huán)境

      該方案保持了HAJIF求解器在Windows系統(tǒng)下的原生調(diào)用方式,具體實現(xiàn)流程如圖3所示。

      圖3 模擬DOS環(huán)境移植流程

      對于具有一定腳本閱讀與編寫能力的用戶來說,使用這種移植方案的好處在于可以使得用戶調(diào)用HAJIF求解器的方式更為靈活,用戶可以通過自行修改HAJIF求解器運行腳本內(nèi)容來實現(xiàn)自定義的求解功能。

      3.2.2 腳本編譯封裝

      與模擬Windows DOS環(huán)境的移植方案不同,腳本編譯封裝方案針對的主要是不具備腳本編寫能力的用戶,該方案通過把HAJIF的求解器運行腳本進(jìn)一步編譯生成對應(yīng)可執(zhí)行文件,來滿足此類用戶的使用需求,同時,可以簡化用戶的使用方式。圖4描述了該方案的具體流程。

      圖4 腳本編譯封裝移植流程

      需要注意的是,在對求解器腳本編譯封裝時,對于腳本內(nèi)必須自定義的內(nèi)容,比如求解器的存放路徑,通過提供應(yīng)用參數(shù)接口來滿足用戶的設(shè)置需求。

      4 測試與驗證

      4.1 測試環(huán)境

      為了完成對上述幾種方案的可行性驗證,使用下面的運行環(huán)境進(jìn)行了測試:

      (1)Windows操作系統(tǒng):Windows7 64位;

      (2)Linux操作系統(tǒng):Ubuntu 16.04 LTS;

      (3)Wine版本:wine-1.6.2。

      4.2 圖形化HAJIF移植方案驗證

      為了完成對圖形化HAJIF移植方案的驗證,利用兩個測試算例對移植至Linux系統(tǒng)中的HAJIF進(jìn)行了測試,將兩個測試算例分別導(dǎo)入HAJIF的前置系統(tǒng)中,模型測試結(jié)果如圖5、圖6所示。

      圖5 測試算例1導(dǎo)入圖

      圖6 測試算例2導(dǎo)入圖

      從兩幅結(jié)果圖中可以看出,移植后的HAJIF各項功能保存完整,界面布局顯示正確,對各自模型的節(jié)點單元以及其他屬性也有正確的表示。

      4.3 HAJIF求解器的移植方案驗證

      HAJIF的求解器有兩種移植方案,分別為模擬Windows DOS環(huán)境方案與腳本編譯封裝方案。在Linux系統(tǒng)中模擬Windows DOS環(huán)境并在此環(huán)境中調(diào)用HAJIF求解器運行腳本,對算例1進(jìn)行求解,將求解結(jié)果導(dǎo)入HAJIF中對其加載,加載結(jié)果如圖7所示。將求解器運行腳本進(jìn)行編譯封裝,并將其裝入wine作業(yè)程序中進(jìn)行轉(zhuǎn)換,在wine中對算例2進(jìn)行求解,將求解結(jié)果導(dǎo)入HAJIF中,結(jié)果如圖8所示。

      圖7 模擬DOS環(huán)境計算結(jié)果圖

      圖8 腳本編譯封裝計算結(jié)果圖

      從圖7、圖8可以看出,兩種移植方案都完成了對HAJIF求解器的成功移植,得到了正確的計算結(jié)果,同時,計算結(jié)果也可以在移植后的HAJIF中正確顯示。

      5 結(jié)束語

      本文基于Wine技術(shù),完成了HAJIF結(jié)構(gòu)分析軟件從Windows操作系統(tǒng)向Linux操作系統(tǒng)的成功移植。在不丟失計算效率與計算準(zhǔn)確度的前提下,保證了HAJIF軟件的功能完備性。相比于代碼重構(gòu)方案,大大節(jié)省了人力成本與時間成本。同時,針對不同的Linux用戶,提供了不同的HAJIF求解器調(diào)用方案,具備一定的實用價值。

      猜你喜歡
      圖形化腳本算例
      酒駕
      安奇奇與小cool 龍(第二回)
      數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
      電子測試(2018年14期)2018-09-26 06:04:24
      LKJ自動化測試系統(tǒng)圖形化技術(shù)研究
      快樂假期
      基于振蕩能量的低頻振蕩分析與振蕩源定位(二)振蕩源定位方法與算例
      運用圖形化聽寫式復(fù)習(xí),構(gòu)建高效地理課堂
      互補問題算例分析
      圖形化地區(qū)電網(wǎng)無功優(yōu)化軟件開發(fā)與應(yīng)用
      基于CYMDIST的配電網(wǎng)運行優(yōu)化技術(shù)及算例分析
      莎车县| 宣武区| 资兴市| 新野县| 双流县| 区。| 大邑县| 射阳县| 民勤县| 和林格尔县| 罗山县| 云安县| 清原| 偃师市| 九台市| 延庆县| 岱山县| 无极县| 武宁县| 永济市| 甘孜县| 山东省| 若尔盖县| 屏东县| 崇义县| 灵丘县| 广德县| 黄龙县| 桦甸市| 合江县| 昭平县| 泰和县| 永寿县| 施甸县| 水城县| 内黄县| 寿阳县| 昆山市| 民县| 建德市| 五大连池市|