謝 莉 王省哲
(蘭州大學 土木工程與力學學院,甘肅 蘭州 730000)
計算力學是根據(jù)力學中的相關理論與方法,利用現(xiàn)代電子計算機和各種數(shù)值方法,解決力學復雜問題和實際問題的一門新興的交叉學科,涉及力學、計算科學、計算數(shù)學等多個學科[1-3]。 隨著現(xiàn)代大型、復雜結構和工程實際問題分析的需要,以及海量計算和大數(shù)據(jù)科學的發(fā)展,各種工程設計、性能評價以及運行穩(wěn)定性評估等日益有賴于計算模擬和仿真、數(shù)值實驗、數(shù)據(jù)分析指導和決策,隨著這一進程的全面深入,基于計算思維方式、運用計算力學方法認識和解決問題突顯重要。
我國著名計算力學專家錢令希院士指出[2]2-4:計算力學有很大的能動作用,它拓展了設計分析的領域,成為力學通向工程應用的橋梁;它極大地增強了力學的手段,發(fā)現(xiàn)了許多未知的現(xiàn)象;對力學的理論體系發(fā)生了深刻的影響。 據(jù)統(tǒng)計,目前國內(nèi)外從事力學科學研究人員70%~80%涉及力學問題的數(shù)值計算,計算力學的發(fā)展正適應了這種需求,已成為高等院校相關專業(yè)學生的必修課程。 國內(nèi)外一些高等院校在力學、土木工程、機械以及航空航天等相關專業(yè)為本科生開設了該方面的課程[4-7],如斯坦福大學為機械工程專業(yè)本科生開設計算力學導論,清華大學航空航天學院為本科生開設計算力學課程等。
當前,數(shù)值計算、理論分析以及科學實驗已成為力學工作者解決力學問題的三大主要手段,數(shù)值計算更是培養(yǎng)綜合素質(zhì)專業(yè)人才必不可少的知識和技能。 然而,大多數(shù)本科院校在開設相關課程中,雷同于方法類課程的教學模式,培養(yǎng)方法與考核單一、課程理論化、實踐環(huán)節(jié)多限于結果驗證等,導致學生在知識和方法層面上有所加強,但計算技能和解決問題的應用技能缺乏。 甚至還表現(xiàn)出理論不扎實、實踐不堅實、動手能力弱,進而缺乏創(chuàng)新的競爭優(yōu)勢等。 另一方面,隨著國家以信息化帶動工業(yè)化升級戰(zhàn)略的實施,以虛擬現(xiàn)實/增強現(xiàn)實、云計算、3D 打印為代表的信息技術日益融入結構設計、模具制造等過程,這些均涉及利用計算機解決科學問題和工程問題,也是對相關聯(lián)的課程體系、內(nèi)容設置、教學模式和實踐環(huán)節(jié)提出了大調(diào)整、大更新和大改革的緊迫要求[8-9]。 同時,在新世紀教育部力學教學指導委員會關于力學發(fā)展規(guī)劃的制定時,充分認識到計算技能培養(yǎng)對學生的重要性,并建議加強力學專業(yè)學生的計算力學思維的培養(yǎng)和計算力學方法的學習。
為了適應新時期的高等教育形勢,滿足國家經(jīng)濟社會發(fā)展對應用型人才的需求以及專業(yè)人才素養(yǎng)與技能的培養(yǎng),蘭州大學力學專業(yè)從實際情況出發(fā),根據(jù)專業(yè)辦學目標、辦學特色和人才需求情況,結合一系列課程設置與完善形成了計算力學課程體系。 在教學實踐中明確了學生計算機技能并強化了學生計算方法解決力學問題的培養(yǎng),將基礎理論講授與實踐教學相結合,計算思維培養(yǎng)與學生動手相結合,形成了以“力學計算方法”“數(shù)值建模與編程”“工程問題實踐”三位一體的面向計算思維能力培養(yǎng)的計算力學教學互動模式(見圖1),取得了良好效果。
圖1 面向計算思維和技能提升的三位一體教學模式
在現(xiàn)代眾多重大工程問題以及高新技術應用領域中,如交通運輸、新能源、先進裝備與制造、電子器件以及醫(yī)療、航空航天等領域,越來越多的現(xiàn)代工程力學問題追求更加真實的工程環(huán)境以及多尺度、多物理場的相互影響,不能解析求解、也無法實現(xiàn)實驗研究。 因而尋求數(shù)值求解,揭示力學問題的規(guī)律,或為工程實施、設計等提供指導,促使了計算力學成為力學學科最活躍的分支之一。
數(shù)值解算力學問題,計算思維是首要必備的基本能力之一。 計算思維是運用計算機科學的基礎理論與知識進行問題求解、系統(tǒng)設計等一系列思維活動[10]。 這就要求我們在教學整個活動中,不能僅局限于知識傳授,更應著眼于將知識的傳授與計算能力培養(yǎng)相結合,開展計算仿真思維模式的養(yǎng)成和訓練,使學生形成以數(shù)值方法解算工程力學問題的思維模式。 在計算力學的教學過程中,除了保持傳統(tǒng)的課堂教學外,我們更注重以計算力學方法對力學問題數(shù)值求解的訓練。 同時,我們在整個教學過程中,以PPT、視頻等手段在課堂上展示了理論模型到計算模型的建立過程,計算力學求解的工程問題及其解答以及與計算力學相關科學研究成果等,有意識地強化了計算力學思想的灌輸。
計算力學課程既有嚴謹?shù)挠嬎惴椒?,又涉及將這些計算方法應用在數(shù)值解算工程問題中的技術。其具有理科課程的嚴謹數(shù)學推演,又有很強的工科課程的實踐性,有著“理論性強、技術復雜”雙重特點[11]。 一般而言,計算方法是對工程力學問題進行數(shù)值解算的基礎,而以數(shù)值方法實現(xiàn)對工程力學問題解答,是計算力學學習的目的,還涉及“數(shù)值建模和編程”核心環(huán)節(jié)和“工程問題實踐”環(huán)節(jié)。 因此,我們設計了計算力學方法傳統(tǒng)課堂教授,團隊線上/下方式對“數(shù)值建模和編程”進行輔導,以及學生親自參與力學工程問題數(shù)值解算實踐的計算力學教學模式,教學模塊化及時間安排如表1 所示。
1. 計算力學方法
錢學森先生在展望21 世紀力學的發(fā)展方向時指出:在利用計算機回答宏觀實際科學問題時,計算方法是非常重要的[1]1。 計算力學的概念、方法已經(jīng)成為處理工程技術問題的主要手段。 為了培養(yǎng)學生的力學計算思維,手機首先應培養(yǎng)學生對基本力學計算方法的理解和掌握,這是計算力學解決實際和復雜問題的基礎和前提。 計算力學逐漸發(fā)展并形成了較為系統(tǒng)的理論和方法,如有限差分法、有限單元法、有限體積法、邊界元法等。 計算力學不僅有著完整的基本概念、嚴謹?shù)睦碚?,還涉及如數(shù)值方法的可靠性和收斂性等嚴格的數(shù)學推演過程[7]。 由于每種力學計算方法都有其優(yōu)點和局限性,我們在實際的教學中,從早期僅講授單一的計算力學方法——有限元法,逐漸拓展到目前多種經(jīng)典和常用計算力學方法,如有限差分法、加權殘值法、邊界元法等的教學。 從開始的作為高年級的選修課程或研究生課程定位到目前力學以及相關專業(yè)本科生的專業(yè)主干課程。 另外,由于力學計算方法是力學基礎理論與計算數(shù)學的交叉與融合,相應的必要基礎力學課程和數(shù)值方法的學習是先修課程。 為了理順計算力學課程相關知識的學習,在實際的教學中我們優(yōu)化了特色課程體系,將計算力學課程納入了學生計算技能課程體系的關鍵環(huán)節(jié),起到承上啟下的作用。 強化了學生對有限差分、有限元、加權殘值、邊界元等常用方法的掌握和學習。
表1 教學模式的模塊化及時間安排
計算力學課程教學內(nèi)容一般應當包括計算方法的基本概念、算法等講授,也包括應用計算力學方法求解實際力學問題和復雜力學問題的講解。這部分內(nèi)容理論性強、數(shù)學推演嚴謹,且已經(jīng)發(fā)展成熟,主要以傳統(tǒng)的課堂面對面講授實現(xiàn),再配合課堂互動和問答,在整個計算力學課程的教學過程中設置大約超過1/3 時間完成。 傳統(tǒng)面對面的課堂教授過程,對學生是一種帶有強制性的學習,是克服惰性的可行辦法,尤其對于理論性強、數(shù)學推演嚴謹?shù)恼n程,可適當“強迫”和引導學生學習;對于已經(jīng)成熟的理論,教師的講授可大大節(jié)約學生掌握理論知識的時間;另外,設置課堂討論題激發(fā)學生積極思考,通過師生以及學生之間交流和互動有效提升學習效果。
2. 工程問題實踐
正所謂“紙上得來終覺淺,絕知此事要躬行”,僅憑借教師課堂上基本原理和方法等相關內(nèi)容的講解與傳授,以及僅以學生對基本原理和方法的學習作為該門課程的考查內(nèi)容和目標尚不足以達到對學生運用課程知識和方法真正解決實際問題能力的培養(yǎng),計算思維和技能的培養(yǎng)更需要通過實踐來訓練。 正是基于計算力學課程的這種特點,我們注重學以致用,即以計算力學方法實現(xiàn)對力學問題進行數(shù)值解答的教學與訓練。 為此,在課堂講授和學生學習基本原理與方法的基礎上,針對課程的特點和結合實際應用能力培養(yǎng)與提高的目標,我們在每一章節(jié)或者每一典型計算力學方法學習完后設計課程實踐環(huán)節(jié)部分,以訓練和提高數(shù)值解算問題的能力。 同時從身邊的力學入手,一些現(xiàn)代典型工程實例為啟發(fā),增設趣味性力學問題的分析等,拓展實踐環(huán)節(jié)的教學。 比如,結合有限差分法學習,我們布置了計算“沙粒在風吹動下的運動軌跡”,作為有限差分方法的課程實踐題目。 這個題目既是我們身邊的力學問題,也是風沙運動研究中最基本的科學問題,應用差分方法比較容易獲得數(shù)值解。 很多工程實際問題,尤其是涉及安全事故問題都存在力學問題,比如結構安全設計、承載力評估等。 我們針對近年來短時間內(nèi)的集中降雪導致的建筑物垮塌事故中結構的承載力問題布置課程實踐,要求學生調(diào)研事件中建筑結構以及當時的雪荷載,進行數(shù)值建模,編寫程序或者應用軟件,對該結構承載力進行求解,然后對數(shù)值解進行評估,最后對事故中構件的力學方面設計分析,鼓勵學生給出結構安全設計建議。 針對西部地區(qū)黃土地基易沉陷特點,在結構分析中設計較軟的彈性地基或支撐,理論聯(lián)系工程實際等,學生對這類課程問題表現(xiàn)出強烈興趣,在了解“真相”欲望的驅(qū)使下開展課程實踐,達到了學以致用,促進對課程內(nèi)容和相關知識的真正掌握。 除了可以用計算力學方法給出解答、對安全設計進行探討外,我們還鼓勵學生對這些實踐問題采用多種力學計算方法進行求解的嘗試與探索,通過應用學過的多種計算力學方法解答對比,加深對每種方法的理解,提升科學評判能力。
在這一具體的實踐教學環(huán)節(jié)中,我們通常采用以與課堂學習時間接近1 ∶1 比例開展課程實踐,包括力學問題思考、建模、應用計算力學方法求解、結果分析與討論,然后將結果整理,學生在課堂上進行結果展示、闡述科學問題和解決方法,以及發(fā)現(xiàn)存在的問題。 通過整個課程實踐訓練與實現(xiàn),不僅加強了學生對計算力學方法的掌握,更培養(yǎng)了學生以計算力學方法和思維解算力學問題的能力,也培養(yǎng)學生的創(chuàng)造性思維和協(xié)作精神等。
3. 數(shù)值建模和編程教輔
在學習計算力學方法基礎之上,進行的課程實踐,實現(xiàn)的核心是數(shù)值模型建立以及形成計算機可執(zhí)行的程序語言,即基于基本計算方法所形成的數(shù)學建模思想之上的數(shù)值建模。 數(shù)值模型往往不同于數(shù)學模型的微分方程表述,而是離散化的,其包含了網(wǎng)格節(jié)點、節(jié)點自由度數(shù)目、節(jié)點或區(qū)域物理與力學參量、材料屬性、網(wǎng)格或單元屬性等。 需要基于數(shù)值分析的方法將其轉(zhuǎn)化為離散數(shù)值計算模式,形成最終的計算機可以處理的基本運算。 接下來就是將數(shù)值模型編程形成計算機可接受和執(zhí)行的程序語言。 基礎的科學計算編輯語言有Fortran、C 語言等,需要學生更多的數(shù)值編程技能;另外基于目前的模塊化思想的高級數(shù)值編輯軟件如Matlab、Comsol 等,可以較為方便地實現(xiàn)程序設計和代碼編寫。 但僅此還是不夠的,數(shù)值計算結果的正確與否、執(zhí)行過程中的迭代收斂以及數(shù)值穩(wěn)定性也是棘手的基礎問題,在教學中也應予以適當?shù)姆治鰧嵗w現(xiàn),讓學生對數(shù)值解決科學問題的整個過程均有全面的了解與掌握。
此外,在完成課程實踐過程中,會涉及數(shù)學、力學以及計算機語言、計算軟件等知識。 為使課程實踐環(huán)節(jié)順利進行,要求計算力學先行課程的學習得以保證。 蘭州大學土木工程與力學學院先后開展了計算力學特色課程體系建設和計算力學主干課程團隊建設,該團隊中包含有講授計算力學先修課程如Fortran 語言與程序設計、大型軟件及其應用等方面的教師等。 通過各個主講教師間的交流與溝通,打通了課程體系與知識結構,先行課程主講教師針對后續(xù)課程與整體體系的規(guī)劃,會有不同的講授內(nèi)容側(cè)重與針對性的課程安排。 比如在Fortran 語言與程序設計課程中,會適當加強部分計算力學所需知識的訓練,編寫求解線性代數(shù)方程組的程序代碼,大型矩陣計算方法等,這樣在計算力學的課程實踐環(huán)節(jié),學生能比較快速地完成程序代碼的編寫,大大節(jié)省時間;又如在大型軟件及其應用課程中,會適當加強結構計算模塊的講述,這樣使獨立編寫程序代碼有困難的同學也可以應用軟件進行數(shù)值求解,幫助學生高效完成計算力學課程實踐課題。
不僅如此,計算力學實踐環(huán)節(jié)還會涉及較廣的知識面,如應用數(shù)學、力學以及計算機等工具,多需要語言軟件的安裝、繪圖軟件的安裝,甚至還有學生需要學習PPT 制作。 為了節(jié)約學生在這些技術性工作上花費的時間,安排答疑教師和研究生在課程實踐中與本科生互動。 一則研究生可以幫助本科生較快熟悉并應用軟件,另外根據(jù)本科生和研究生互動,也使本科生了解力學計算在科學研究中的重要性,促進學生學習主動與實踐環(huán)節(jié)的熱情。 答疑教師或研究生在與本科生的互動中,可以把學生在課程實踐中出現(xiàn)的問題集中反饋給主講教師,使主講教師在教學過程中更有目的性和針對性。
基于教學輔助環(huán)節(jié)的設計與實施,包括主干課程團隊教師間的師—師交流,保證知識結構的貫通;研究生—本科生互動,增強如繪圖軟件、討論編程問題等,以同輩間零代溝交流方式,實現(xiàn)實踐輔助知識學習與補充相關技能;師生互動,溝通教學環(huán)節(jié)中存在的問題,發(fā)現(xiàn)學生學習過程中存在的疑惑和需求,及時解決與應對,促進課程教學。 隨著信息技術發(fā)展,教輔環(huán)節(jié)的師生溝通方式也更加靈活和多樣化,很多學生會把學習過程中或課程實踐中遇到的問題,通過給教師發(fā)送電子郵件、手機短信或者QQ 信息等方式尋求幫助,教師也會做相應的解答。 這種線上、線下的多模式交流方式,對學生的實踐時間的投入與技能提升具有重要意義。
蘭州大學力學專業(yè)本科生中已連續(xù)開設計算力學課程十余年,從早期主要側(cè)重于學生計算力學方法的基本原理學習,到逐步增加實踐環(huán)節(jié)的教學內(nèi)容,以及最近幾年實施的基于以上“計算力學方法”“數(shù)值建模與編程”和“工程問題實踐”三位一體的教學模式嘗試,在多個年級連續(xù)五年多的教學中得以應用,獲得了學生的普遍認可,也產(chǎn)生了良好的教學效果。
以理論與應用力學基地班2015—2017 年連續(xù)三年的計算力學教學為例,2015 學年選課學生47人,課程實踐環(huán)節(jié)采取小組形式實現(xiàn),共分12 小組進行,設置實踐題目8 ~10 個,每組選擇一個實踐題目,整體效果良好。 作為早期探索,也存在個別學生在小組內(nèi)僅以簡單參與或旁觀角色開展實踐的現(xiàn)象,但在后續(xù)教學中加強了對學生的要求。
2016 年選課學生45 人。 我們提高了實踐環(huán)節(jié)要求,例如學生需獨立選擇一個實踐題目開展課程實踐活動,實踐題目依然是8 ~10 個,強化了個體實踐環(huán)節(jié),讓每位學生都能參與而且作為主角來實施。 至2017 年,在已有的多年經(jīng)驗積累基礎上,擴大實踐內(nèi)容,進一步將實踐題目增至23 個,極大地調(diào)動了學生的動手、動腦的積極性,同時也為學生結合自身興趣與知識結構提供了更多選擇,整體實施以及學生個體實踐效果均表現(xiàn)良好。 這些實踐探索,一方面反映在學生掌握計算力學方法和技能的提升,另一方面也反映在課程期末考試成績逐年顯著提高,大多數(shù)學生課程實踐題目完成效果好,甚至形成了軟件成果。 如2014 級學生賴東衡將桁架和鋼架結構有限元直接解法整理,基于Matlab 語言和運行環(huán)境,編寫了有限元教學可視化軟件《桁架和鋼架有限元教學軟件》,獲得中國軟件著作權專利[12]。 相當一部分學生基于課程學習和計算思維能力提升、計算技能的熟練掌握而順利申請或獲批學校的創(chuàng)新創(chuàng)業(yè)項目,開展相關的科學研究,增強了學生以獲得學有所用的成就感,樹立了利用所學知識解決實際問題的信心。
近年來,我們在計算力學實踐環(huán)節(jié)的訓練和學生計算思維能力和技能的提升,也極大地促進了學生的就業(yè)選擇、本科生畢業(yè)論文和研究生階段的厚積薄發(fā)。 據(jù)統(tǒng)計,每年力學專業(yè)學生就業(yè)人數(shù)中約有80%的學生進入企事業(yè)單位,主要開展結構計算仿真工作,或基于掌握的計算力學知識和大型軟件仿真技能開展工作。 對于進一步深造的研究生而言,計算力學課程以及體系的數(shù)值方法的學習和實踐能力的提升,使他們更早更好地掌握了開展研究工作的手段和方法,具備了解決工程實際問題或者研究科學問題的數(shù)值分析能力與素質(zhì)。
力學計算是力學專業(yè)應用型人才應該具備的素質(zhì)。 根據(jù)《國家中長期教育改革和發(fā)展規(guī)劃綱要(2010—2020 年)》[13],提高高等教育人才培養(yǎng)質(zhì)量之一是著力培養(yǎng)本領過硬的高素質(zhì)專門人才。如前所述,計算力學課程的學習,除了嚴謹計算力學方法的學習,更需要掌握應用計算力學方法對力學問題進行數(shù)值解答過程的掌握,兼具“理論性強、技術復雜”。 通過面對面課堂教授計算力學方法,以計算力學方法對力學工程問題進行數(shù)值解答和課外實踐,同時輔以“數(shù)值建模與編程”課外和無線輔導,我們的教學實踐表明,這是一種較好的提升教學效果的模式,可保證計算力學人才培養(yǎng)質(zhì)量。
在高等教育不同學科中,有很多課程都與計算力學課程的性質(zhì)相似,既有嚴謹?shù)睦碚撝R,又需要理論知識的應用與實踐。 而在實踐過程中,又需要更多的關聯(lián)知識與技能,才能讓實踐順利完成。性質(zhì)類似的課程教學,可以按照上述教學模式進行,只是針對不同課程內(nèi)容,需要制定相應課程的“核心基礎理論”“課程實踐”內(nèi)容,并配合相關知識、技能輔導等。