
發(fā)布
注冊
/
登錄C++/Fortran的案例
告別Fortran,只需要C++就可以編寫Abaqus UMat等用戶子程序 ¥1
Fortran被稱為數學家語言,在計算效率方面有著得天獨厚的優(yōu)勢,但因為許多歷史遺留問題以及發(fā)展問題,Fortran工程的開發(fā)和維護比較困難。隨著這些年編譯器和相應標準的發(fā)展,C++的運行效率已經與Fortran旗鼓相當,而在開發(fā)和維護問題上,大型應用軟件幾乎都采用C++編寫框架底層,優(yōu)勢自不必說。再者,受國內教學環(huán)境的影響,大多數人在編程這塊也只能是對C++算得上熟悉了。這里,筆者將給出使用C++編寫Abaqus用戶子程序的方法,并不是替代Fortran,而是給用戶多一種選擇。采用本文中的方法,用戶將無需再安裝Fortran編譯器。
從編程角度看本文方法的實現原理比較簡單。以UMAT為例,Abaqus在提交計算任務后會將用戶指定的for文件或者obj文件編譯成為standardU.dll,然后連同安裝目錄下的standard.exe一起拷貝到臨時目錄下,然后運行standard.exe進行計算。在計算進行到用戶自定義材料時,Abaqus會自動去standardU.dll里尋找umat函數,也就是用戶指定源文件里的umat函數。因此,如果用C++寫出一個函數能夠讓standard.exe識別為 umat函數,并且接口變量一致,那么用戶自然就可以用C++寫出umat的用戶子程序。至于如何讓standard.exe認為就是umat函數,附件給出了具體的實現方法。
C++編寫用戶子程序實現方法.pdf
展開 國產CAE軟件產品定位及系統(tǒng)的開發(fā)求解器
目前大部分求解器開發(fā)使用C/C++/Fortran語言
1.2 實現基本功能;
要能對最簡單的例子進行計算,并得到正確的結果。需要做的工作:
能生成標準求解器的輸入文件,比如Nastran,Ansys,HFSS,Fluent等的求解器輸入文件,例子的計算結果要與這些標準求解器計算的結果做比較。
標準求解器輸入文件的解析器。用來解析輸入文件,作為開發(fā)求解器的輸入數據。
比較標準求解器的計算結果和開發(fā)的求解器結果。
這階段的主要目的是保證算法的
正確性
。開發(fā)時為了提高效率,可以借助Matlab軟件: 用Matlab完成原型的開發(fā),直到計算結果正確。在此基礎上再將Matlab翻譯成 C++/Fortran。這樣在早起可以將精力集中在算法驗證上。需要注意的是盡量進行模塊化開發(fā)。
1.3. 完成求解器原型;
這里需要介紹一下Matlab軟件,基本介紹看百度,主要說一下Matlab混合編程。Matlab有工具是可以把M文件翻譯成C++的,不推薦。主要介紹如何把C++/Fortran文件編譯成Matlab文件。這個功能很有用,當進行模塊化開發(fā)的時候,C++/Fortran完成模塊功能,然后編譯成Mex文件,作為Matlab的模塊使用。這樣可以逐步將Matlab翻譯成C++/Fortran,提高開發(fā)效率。
小結:
1>需要開發(fā)一種標準求解器文件的解析器。
2>需要熟練使用標準CAE軟件進行仿真,熟悉求解器輸入文件和計算結果
4>開發(fā)的求解器要能正確計算經典的Benchmark例子
原型開發(fā)決定了開發(fā)的可行性,如果這階段的任務無法完成,需要加強研發(fā)的投入。
2.
展開 高薪誠聘 ▏工程建模仿真崗
掌握C、C++或Fortran語言的基本編程;
5. 具有良好的邏輯思維能力和文檔撰寫能力和交流協(xié)調能力;
6. 具備Modelica編程能力的優(yōu)先考慮。
崗位職責:
1. 負責基于
Modelica語言的模型設計、開發(fā)、測試和驗證工作;
2. 負責相應系統(tǒng)模型集成與調試工作;
3. 參與項目外部交流對接工作;
4. 負責項目中各類技術文檔編制。
熱流建模仿真工程師
任職資格:
1. 熱流相關專業(yè),碩士及以上學歷;
2. 掌握熱力學、傳熱學、流體力學、兩相流等專業(yè)知識,了解工業(yè)熱能系統(tǒng)相關的業(yè)務背景知識;
3. 會熟練使用一款以上熱流體建模仿真軟件;
4. 掌握C、C++或Fortran語言的基本編程;
5. 具有良好的邏輯思維能力和文檔撰寫能力和交流協(xié)調能力;
6. 具備Modelica編程能力的優(yōu)先考慮。
崗位職責:
1. 負責基于
Modelica語言的模型設計、開發(fā)、測試和驗證工作;
2. 負責相應系統(tǒng)模型集成與調試工作;
3. 參與項目外部交流對接工作;
4.
展開 Abaqus子程序:基礎知識概述1
4
子程序編寫流程
(1)需要 include的頭文件
對于Fortran編寫的子程序,每一個以FORTRAN編寫的用戶子程序必須包括一個下面的聲明,作為參數列表后的第一個聲明:
Abaqus/Standard中 :
include'aba_param.inc'
Abaqus/Explicit中:
include'vaba_param.inc'
如果變量在主要用戶子程序和后續(xù)子程序之間交換,則應當在所有子程序中指定上面的包括聲明來保持精度。
對于C和C++編寫的子程序,每一個C 和 C++用戶子程序必須包括聲明:
#include < aba_for_c.h >
此文件包含FORTRAN-C接口互用的宏。
文件aba_param. inc、vaba_param.inc和 aba_for_c.h由 Abaqus安裝程序在系統(tǒng)上安裝,并且包含重要的安裝參數。這些聲明告訴Abaqus執(zhí)行程序將用戶子程序編譯并且鏈接到Abaqus 余下的部分,來自動地包括aba_param. inc或者vaba_param. inc 文件。因為Abaqus將知道它們在哪里,所以不需要用戶找到此文件并將它復制到任何特定的目錄。
(2)命名約定
如果用戶子程序調用其他子程序(非用戶子程序)或使用 COMMON 塊傳遞信息,則此類子程序或 COMMON 塊應以字母 K 開頭,因為該字母在 Abaqus 中絕不會用于任何子程序或 COMMON 塊的名稱開頭。
展開 
基于Ubuntu20.04的DAMASK詳細安裝教程 ¥60
該軟件主要依賴了多種語言的編譯器,如C/C++,Fortran,Python等,因此安裝過程容易出現各種小問題。本教程一一對各個依賴軟件進行詳細安裝講解,確保能夠順利安裝使用。
另外,安裝過程耗時耗力,需要快速上手使用的朋友,也可以下載我分享的可直接使用的鏡像文件,即可開始仿真計算。
NX 復合材料Laminate Failure Analysis 失效分析
另外,NX還可以進行用戶自定義失效準則,利用C,C++或Fortran等通過DLLs實現。
Lesson_8_Laminate_Failure_Analysis.pdf
Abaqus應用之常見問題處理 (四)
3) 如果分析異常中止,但DAT文件、MSG文件和STA文件的結尾沒有相關提示,這可能不是模型本身的問題,而是由其他原因引起的分析失敗(如環(huán)境變量設置錯誤、子程序運行異常、C++或Fortran編譯語言未正確安裝等)。此時應檢查LOG文件(*.log)中的錯誤信息。
4) 出現錯誤代碼的常見原因包括:環(huán)境文件abaqus_v6.env中的參數設置不正確;模型中使用了不適當的復雜參數;建模過程中操作不當導致模型內部異常;ABAQUS與某些軟件(如卡巴斯基殺毒軟件)發(fā)生沖突;計算機名的第一個字符為數字,或計算機名中包含空格或特殊字符;內存不足或硬件資源沖突;用戶子程序運行時出現錯誤;ABAQUS版本問題或安裝不正確;操作系統(tǒng)有問題;編譯用戶子程序的C++或Fortran版本與ABAQUS版本不兼容;ABAQUS本身的缺陷等。
5) 一種常用的排查錯誤方法是“排除法”,例如,可以嘗試運行其他模型或更換計算機,逐步排除各種可能的錯誤原因。
6) 另一種常見的排查錯誤方法是“簡化法”,即去除模型中的所有復雜參數(如鋼筋、子程序和自適應網格等),只使用最熟悉且有把握的設置(如ABAQUS的默認設置),直到分析能夠正常完成為止。
7) 在分析作業(yè)運行過程中,ABAQUS會生成許多臨時文件,例如LCK文件和023文件(*.023)。如果分析作業(yè)正常結束或中止,這些臨時文件將自動刪除。如果由于某種原因,這些臨時文件未被刪除,則可能在提交分析時出現錯誤信息。
8) 錯誤信息“Issue cannot be deleted Not all data Released”可能由以下原因導致:子程序運行過程中出現錯誤;硬盤空間不足;系統(tǒng)啟用了數據執(zhí)行保護(DEP)功能。
展開 ABAQUS (1) - ABAQUS二次開發(fā)環(huán)境配置
ABAQUS用戶子程序支持C++和Fortran語言,將ABAQUS同VISUAL STUDIO (VS)和INTEL VISUAL FORTRAN (IVF)進行關聯(lián)后,方可以運行子程序:
(1)安裝及版本如下:ABAQUS 版本 2020,先安裝VS2013再安裝IVF2013
(2)在計算機中查找vcvarsall.bat和ifortvars.bat文件,得到其路徑:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat
C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ifortvars.bat
(3) 找到并打開ABAQUS安裝目錄Commands文件夾中的abq---.bat文檔(“----”為ABAQUS軟件版本號)
(4) 編輯abq2020.bat文檔,在其中添加.bat文件路徑、VS和IVF的版本號并保存,示例如下:
@call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
@call "C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ifortvars.bat" intel64 vs2013
@echo off
"C:\SIMULIA\EstProducts\2020\win_b64
展開 尋找志同道合的優(yōu)秀小伙伴----聲學仿真工程師
根據客戶的需求,對現有CAE軟件進行二次開發(fā)或開發(fā)全新的面向特定需求的仿真軟件
職位需求:
1、學 歷:研究生學位、博士學位
2、工作經驗:a、兩年以上聲學或者結構力學仿真工作經驗,擁有水聲仿真計算相關項目經歷者優(yōu)先
b、具備CAE軟件二次開發(fā)能力者優(yōu)先
c、熟悉C,C++,Fortran程序語言中的一種或多種,擁有自主軟件開發(fā)技能者優(yōu)先
3、專業(yè)技能:a、聲學、水聲或力學專業(yè)碩士研究生以上,具備扎實的理論功底
b、至少精通Comsol、Ansys、Abaqus、Actran等一種仿真軟件,進行聲學模型的創(chuàng)建及仿 真;
c、在熟悉的產業(yè)里有相關的實際產品經驗,能夠將仿真結果分析用于產品設計和優(yōu)化中去
d、學習能力,面對新知識和新方法的自我推動
e、能夠撰寫專業(yè)的仿真報告,有良好的OFFICE軟件使用能力和演示能力
4、語言能力:普通話/英語
5、個人品質:良好的溝通能力和團隊協(xié)作能力
有責任感和執(zhí)行力,具備抗壓的精神屬性
6、聯(lián)系方式:13332421642 那工
工作地:西安市
展開 多體動力工程師-航空方向-成都或西安(2020年6月更新)
3、熟悉多體和控制理論,3年以上Adams軟件行業(yè)應用工作經驗,熟悉控制軟件如Easy5,Matlab者,獨立完成過項目者優(yōu)先;
4、有相關軟件售前支持經驗者優(yōu)先;
5、了解FEM軟件,如MSC Nastran,Marc,Actran等軟件使用的工程師優(yōu)先;
6、熟悉二次開發(fā)工具如Python,Visual C++,Fortran等并完成過項目的工程師優(yōu)先;
7、有較強的中英文口頭和書面溝通能力;
8、具有嚴謹與積極主動的工作態(tài)度,優(yōu)良的團隊合作能力和有效的時間管理能力。
9、適應客戶現場支持/講解工作(適應出差工作)
公司:多學科仿真的廠商
歡迎聯(lián)系:helenashao@antal.com.cn
展開 Python學習之路-零
第一步算是完成,預計用一周時間初步完成該書的學習,畢竟我是學過C\C++\Fortran\VB.net語言的人,理解程序語言入門已經會比較快了。
第二步,下載Python語言的編譯器。
一搜網上有好多呀,這可怎么辦好。
摘自微博:
如果你是新手,請用ulipad,輕便小巧強大。
如果你是熟手,請用eclipse+pydev,或(如果對調試功能要求不高)ulipad
如果你是vi/emacs狂人,那不用我多說了吧……
如果你要用QT4寫GUI程序,請用Eric。一方面因為Eric已經相當不錯,另一方面——其實也沒其它比較好的選擇了。
如果你要用其它圖形庫寫GUI程序,那么用哪個IDE都差不多,所以請參照1和2。
找個先入門吧,同事介紹了python spyder ,管他三七二十一,先安裝了再說吧。目前安裝ulipad。
展開 
Adams-汽車CAE工程師職位
· 熟悉多體和控制理論,3年以上Adams軟件行業(yè)應用工作經驗,熟悉控制軟件如Easy5,Matlab者,獨立完成過項目者優(yōu)先;
· 有相關軟件售前支持經驗者優(yōu)先;
· 了解FEM軟件,如MSC Nastran,Marc,Actran等軟件使用的工程師優(yōu)先;
· 熟悉二次開發(fā)工具如Python,Visual C++,Fortran等并完成過項目的工程師優(yōu)先;
· 有較強的中英文口頭和書面溝通能力;
· 具有嚴謹與積極主動的工作態(tài)度,優(yōu)良的團隊合作能力和有效的時間管理能力;
· 適應客戶現場支持/講解工作(適應短期出差工作)
有簡歷:直接投遞HelenaShao@antal.com.cn,
沒簡歷:可以直接留言取得聯(lián)系哦
除成都,上海北京不定期都會有職位,可以保持聯(lián)系,互通有無,謝謝!
展開 abaqus查找解決模型問題的基本方法
如果建模或提交分析時總是出現異常錯誤,可以換一個肯定是正確的模型,重復以前的操作,如果出現了同樣的錯誤現象,說明不是原來那個模型的問題,而可能是ABAQUS沒有正常安裝,或者是這臺計算機的某個設置存在問題,或者ABAQUS與某個軟件(例如殺毒軟件、c++、Fortran)不兼容等。
此外,也可以在另外一臺計算機上對原來模型重復以前的操作,如果能夠成功,也可以說明模型本身沒有問題。
Dymola多學科系統(tǒng)仿真平臺
Dymola的主要優(yōu)勢有:
輕松建模:基于Modelica語言,易學易用易讀,采用面向對象、層次化、圖形化和模塊化的建模;
定制化開發(fā):代碼開源程度高,組件定制化強,可以做多類型故障注入與仿真;
高效求解:強大的符號求解器,對非線性、離散等問題自動高效處理,系統(tǒng)越復雜,求解速度優(yōu)勢越明顯;
開放性好:對FMU支持相比其他軟件更加全面,同時也支持C\C++\Fortran\Java等語言的代碼導入和Java\Python語言的API調用;
架構式建模:模型庫基于MBSE思想開發(fā),層次清晰、便于協(xié)同集成、方案選型、追溯與驗證。
產品介紹
豐富的模型庫與專業(yè)組件開發(fā)
Dymola為汽車、軌道交通、工程機械、能源等不同行業(yè)的產品研發(fā)提供了豐富的模型庫,這些模型庫間存在豐富的多物理接口,可用于多學科仿真集成。
熱系統(tǒng):熱管理庫、空調庫、冷卻系統(tǒng)庫、熱舒適庫、換熱器庫等;
火電/熱電:蒸汽循環(huán)庫、熱能庫、風力庫等;
電子電氣:電氣庫、功率電子庫等;
三電系統(tǒng):電機庫、電池庫、無刷電機庫;
車輛動力學:車輛動力學庫、動力總成庫、懸架庫、發(fā)動機庫;
液壓:液壓庫、流體動力學庫;
燃料電池:氫能庫、燃料電池庫;
其他:柔體動力學庫、氣動庫、優(yōu)化庫、設備驅動庫等。
多學科聯(lián)合仿真與多軟件協(xié)同仿真
熱流體、動力學、電氣、液壓、控制多學科模型集成與聯(lián)合仿真;
不同軟件的模型可以采用FMU、C代碼等形式集成進來進行聯(lián)合仿真;
FMI/FMU支持范圍廣,支持超過100種軟件的FMU格式。
展開 全過程記錄---檢查PyTorch是否在使用GPU
使用 CUDA 時,開發(fā)者使用編程語言如 C、C++、Fortran、Python 和 MATLAB進行編程,并通過擴展程序以幾個基本關鍵字的形式來表示并行性。NVIDIA 的 CUDA 工具包提供了開發(fā) GPU 加速應用所需的一切。CUDA 工具包中包含多個 GPU 加速庫、一個編譯器、多種開發(fā)工具以及 CUDA 運行環(huán)境。
2 安裝PyTorch CUDA
默認情況下安裝PyTorch(pip install torch)安裝的是CPU版本。為了安裝GPU版本,在PyTorch的網頁中按下圖選擇安裝選項,系統(tǒng)得到最下端的安裝命令行。
pip3 install torch==1.9.0+cu102 torchvision==0.10.0+cu102 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
在tfs4虛擬環(huán)境中運行該命令行,開始安裝torch, 安裝包大約1.44G,取決于網絡速度,在我目前的安裝中,花了大約10分鐘時間。安裝完畢,檢查安裝的版本為 Version: 1.9.0+cu102。
3 檢查PyTorch是否在使用GPU
(1) 首先輸入pytorch模塊
import torchprint(torch.
展開