為什么用 FEtch,談 FEtch 的開(kāi)發(fā)理念

引子
"我就想吃個(gè)雞腿!請(qǐng)不要給我一整只雞,吃不起;也請(qǐng)不要讓我自己孵蛋、自己養(yǎng),等不起。就要一個(gè)雞腿,可以嗎?"
"肯定的!歡迎來(lái)到我們的吃雞自助小店,喜歡啥,F(xiàn)Etch(拿)啥!"

有限元軟件現(xiàn)狀
有限元方法是認(rèn)識(shí)世界的一把鑰匙。它的應(yīng)用領(lǐng)域非常廣闊,在固體力學(xué)、流體力學(xué)、傳熱學(xué)、電磁學(xué)等領(lǐng)域,都發(fā)揮著十分重要的作用。
應(yīng)用有限元方法和程序,當(dāng)前不外乎以下三種情況:
購(gòu)買(mǎi)和使用大型商業(yè)有限元程序;
獨(dú)立開(kāi)發(fā)和使用自己的有限元程序;
修改和應(yīng)用從別處獲得的有限元程序代碼。
從使用者需求的角度來(lái)看,也可以粗略地分為兩類(lèi):
對(duì)靈活性要求較高的,比如科研應(yīng)用;
對(duì)靈活性要求不那么高的,比如大多數(shù)的工程應(yīng)用。
對(duì)用戶(hù)而言,軟件只是實(shí)現(xiàn)目標(biāo)的工具。目前有限元領(lǐng)域的軟件工具可謂百花齊放,存在非常多的選擇。每個(gè)軟件都有自己的特色,也都有自身的局限性。在選擇軟件時(shí),我們通常主要需要關(guān)注以下三個(gè)方面:
能否滿(mǎn)足自己的需求;
軟件價(jià)格是否合適;
學(xué)習(xí)成本能否接受。
話雖如此,如果沒(méi)有高人指路,面對(duì)眾多的軟件,要做出一個(gè)合理的選擇,也的確是一件費(fèi)時(shí)費(fèi)心的事情。
當(dāng)前,國(guó)際上有大量功能強(qiáng)大的有限元軟件包可供使用,如 ANSYS,ABAQUS,ADINA,MSC 等。這些鼎鼎大名的大型通用有限元軟件已經(jīng)占據(jù)了國(guó)內(nèi)外很大的市場(chǎng)。在這種情況下,我們?yōu)槭裁催€要推出 FEtch 系統(tǒng)呢?

FEtch 緣起
作為超級(jí)龐大的有限元工具箱,大型商業(yè)通用軟件的可用范圍極其廣泛,但這也同時(shí)造就了它的缺陷。經(jīng)過(guò)長(zhǎng)年累月的實(shí)踐,人們發(fā)現(xiàn),盡管商業(yè)通用軟件功能強(qiáng)大,使用方便友好,但是,在處理實(shí)際問(wèn)題中的需求是千變?nèi)f化的,這就導(dǎo)致了通用軟件并不完全通用。比如,想修改程序的算法,想修改一下控制方程,甚至連想增加一個(gè)模型參數(shù)都很難做到。畢竟商業(yè)軟件不是完全開(kāi)放的,用戶(hù)不能直接修改程序的源代碼。盡管這些商業(yè)軟件提供了二次開(kāi)發(fā)的接口,并且在不斷地進(jìn)行升級(jí),但是對(duì)于用戶(hù)而言,它們始終是黑匣子。
不僅如此,由于其通用性,大型商業(yè)軟件捆綁了太多對(duì)用戶(hù)自身專(zhuān)業(yè)來(lái)說(shuō)毫無(wú)價(jià)值的冗余功能。建模過(guò)程往往過(guò)于繁瑣,前后處理的操作效率并不高,而且吃硬件。當(dāng)前,人們正在逐漸改變對(duì)有限元工具的認(rèn)知:越是艱深的東西,越?jīng)]必要追求大而全。
此外,高昂價(jià)格,一套商業(yè)軟件動(dòng)輒上百萬(wàn)的購(gòu)買(mǎi)費(fèi)用,也不是一般用戶(hù)所能承受的。這就直接導(dǎo)致了國(guó)內(nèi)目前的 CAE 行業(yè)的窘境:大多數(shù)用戶(hù)只能選擇功能縮水、還可能攜帶著電腦病毒的盜版軟件,關(guān)起房門(mén)來(lái)戰(zhàn)戰(zhàn)兢兢地用一下。
正因?yàn)槿绱?,從大型商業(yè)軟件出現(xiàn)之前直至現(xiàn)在,國(guó)內(nèi)外許多學(xué)者都在針對(duì)各自的研究領(lǐng)域編寫(xiě)自用的有限元程序。這樣,在研究中就可以隨時(shí)根據(jù)需要而自由地修改代碼,具有極大的靈活性和實(shí)用性。甚至一些具有共享精神的學(xué)者和機(jī)構(gòu)還將程序源代碼奉獻(xiàn)了出來(lái),給大家免費(fèi)使用、測(cè)試。這就是開(kāi)源有限元程序。
開(kāi)源程序有效地彌補(bǔ)了商業(yè)閉源軟件的缺點(diǎn),極大地促進(jìn)了有限元法的研究和普及。然而,這類(lèi)開(kāi)源程序往往缺少注解和說(shuō)明文檔,晦澀難懂,造成其他用戶(hù)難以理解諸多的代碼細(xì)節(jié),對(duì)修改和使用程序造成了巨大的困難。應(yīng)該說(shuō),學(xué)習(xí)成本過(guò)高是推廣和應(yīng)用開(kāi)源程序的最大障礙。
此外,我們還必須清楚地認(rèn)識(shí)到,軟件越龐大,其出錯(cuò)的幾率也就越大??▋?nèi)基梅隆大學(xué)的漢弗萊(Humphrey)通過(guò)對(duì) 13000 個(gè)程序的多年研究發(fā)現(xiàn),平均而言,專(zhuān)業(yè)編程人員在他們編寫(xiě)的每 1000 行代碼中會(huì)出現(xiàn) 100 到 150 個(gè)錯(cuò)誤。開(kāi)源程序大多都缺乏良好的測(cè)試和維護(hù),代碼正確性和可靠性是否過(guò)關(guān)也是需要用戶(hù)慎重考量的。
基于對(duì)以上有限元軟件現(xiàn)狀的分析,我們開(kāi)發(fā)的 FEtch 系統(tǒng)正嘗試走出一條大型商業(yè)軟件和開(kāi)源軟件的中間路線。它提供了一套完整的代碼快速開(kāi)發(fā)機(jī)制,用戶(hù)只需按照有限元語(yǔ)言的格式,填寫(xiě)少量的腳本文件,就可以自動(dòng)生成功能完善的 Fortran 有限元計(jì)算程序。經(jīng)過(guò)近四十年的發(fā)展和修正,有限元語(yǔ)言已經(jīng)日漸成熟,底層代碼的可靠性有著充分的保證。這樣,就可以使用戶(hù)在一定程度上擺脫大型商業(yè)軟件的封閉和笨重,也不用像使用常規(guī)開(kāi)源軟件那樣,在紛繁蕪雜的代碼中穿梭,從而大大減輕了用戶(hù)的編程負(fù)擔(dān),減少了出錯(cuò)幾率。
從這個(gè)角度講,F(xiàn)Etch 系統(tǒng)實(shí)際上具有高效地幫助用戶(hù)構(gòu)建有限元程序系統(tǒng)的能力,并且十分容易維護(hù)和修改。同時(shí)為了滿(mǎn)足不同群體的需求,我們采用了階梯定價(jià)的方式出售許可證。對(duì)于大多數(shù)用戶(hù)來(lái)說(shuō),F(xiàn)Etch 的使用成本通常只有 ANSYS 和 ABAQUS 的萬(wàn)分之一到千分之一。因此,對(duì)于對(duì)軟件的靈活性要求較高的科研人員、有限元程序內(nèi)核的開(kāi)發(fā)人員、有限元教學(xué)人員,使用 FEtch 系統(tǒng)是非常合適的。而對(duì)于注重研發(fā)和使用成本的企業(yè)用戶(hù),F(xiàn)Etch 系統(tǒng)同樣為他們提供了一個(gè)更加安全和高效的工具選項(xiàng)。
我勸天公重抖擻,不拘一格降人才。實(shí)際上,任何使用有限元方法進(jìn)行科學(xué)計(jì)算的用戶(hù),都可以根據(jù)需要?jiǎng)?chuàng)造性地來(lái)使用 FEtch 系統(tǒng)。
歡迎聯(lián)系我們,以幫助您評(píng)估 FEtch 系統(tǒng)是否能滿(mǎn)足您的需求。我們的技術(shù)團(tuán)體將為您提供最實(shí)用的信息和建議,助力您實(shí)現(xiàn)專(zhuān)業(yè)有限元程序的私人定制。
擴(kuò)展閱讀
CAE 軟件發(fā)展方向——通用和專(zhuān)用之爭(zhēng)?- 知乎?
https://zhuanlan.zhihu.com/p/441088701
相關(guān)技術(shù)文檔請(qǐng)關(guān)注內(nèi)測(cè)網(wǎng)站:
http://47.99.35.60:8000
QQ群: 519166061