版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于PETSc的有限元并行程序設(shè)計(jì)可移植可擴(kuò)展科學(xué)計(jì)算工具箱PETSc(Portable,ExtensibleToolkitforScientificComputation)并行有限元求解程序背景:1、計(jì)算規(guī)模日益增大而計(jì)算資源不足!2、編寫(xiě)并行的有限元程序難度很大!1、PETSc工具箱簡(jiǎn)介3、基于PETSc的有限元求解程序設(shè)計(jì)2、PETSc程序示例主要內(nèi)容1、PETSc工具箱簡(jiǎn)介:工具箱結(jié)構(gòu)MatVecBlasLapackMPIKSPSNESTS求解器組件底層用戶開(kāi)發(fā)平臺(tái)數(shù)據(jù)結(jié)構(gòu)組件1、PETSc是系列數(shù)據(jù)結(jié)構(gòu)和功能子程序的集合。2、PETSc提供了高層的程序開(kāi)發(fā)平臺(tái)!分布式的數(shù)據(jù)結(jié)構(gòu)高效的并行求解器矩陣Mat向量Vec非線性求解器SNES時(shí)間步進(jìn)求解器TS線性求解器KSP1、PETSc工具箱簡(jiǎn)介1、PETSc工具箱簡(jiǎn)介:工具箱結(jié)構(gòu)1、PETSc工具箱簡(jiǎn)介:下載與編譯主頁(yè):/petsc/petsc-as/Download:源碼(petsc-3.4.4.tar.gz)可調(diào)用的庫(kù)文件(包括頭文件)編譯cygwin,winfe,cl...用戶編程PETSc功能
調(diào)用將庫(kù)文件(.lib文件)和頭文件添加到用戶的配置中,主要有以下內(nèi)容:1、MPI的頭文件和庫(kù)文件MPICH2_DIR/includeMPICH2_DIR/lib(mpi.lib)2、線性代數(shù)運(yùn)算庫(kù)(Blas&Lapack)(libf2cblas.lib、libf2clapack.lib)3、PETSc的庫(kù)文件和頭文件petsc-3.2-p7\includepetsc-3.2-p7\arch-mswin-c-debug\includepetsc-3.2-p7\arch-mswin-c-debug\lib(libpetsc.lib)注:
由于鏈接庫(kù)沖突,通常需要禁用LIBCMT.lib。1、PETSc工具箱簡(jiǎn)介:一種Windows下PETSc靜態(tài)庫(kù)調(diào)用2、PETSc程序示例:運(yùn)行1、SolveLinearSystem.cpp程序PetscInitialize(&argc,&args,(char*)0,help);功能類似于MPI_Init(&argc,&argv)形成PETSc的數(shù)據(jù)結(jié)構(gòu)(Mat&Vec)調(diào)用PETSc解法器求解(KSP/SNES/TS)PetscFinalize(void);功能類似于MPI_Finalize()并行的數(shù)據(jù)結(jié)構(gòu)(Mat&Vec)1、省去的存儲(chǔ)的細(xì)節(jié),尤其是在分布式計(jì)算中。2、提供了運(yùn)算函數(shù),如MatMult(A,x,y)。大量的成熟的方程組并行解法,包括直接法,迭代法和預(yù)條件子!2、PETSc程序示例:程序結(jié)構(gòu)1、聲明。2、創(chuàng)建。3、設(shè)置(賦值)。4、使用。5、釋放。矩陣Mat聲明:MatA;創(chuàng)建:MatCreate(A…);設(shè)置(賦值):MatSet…(A…);聚集:VecAssembly…(A…);使用:如KSP調(diào)用;釋放:MatDestroy(&A);向量Vec聲明:Vecx;創(chuàng)建:VecCreate(x…);設(shè)置(賦值):VecSet…(x…);聚集:VecAssembly…(x…);使用:如KSP調(diào)用;釋放:VecDestroy(&x);線性解法器KSP聲明:KSPksp;創(chuàng)建:KSPCreate(ksp…);設(shè)置:KSPSet…(ksp…);使用:KSPSolve(ksp…);釋放:KSPDestroy(&ksp);2、PETSc程序示例:組件的使用程序1、”ierr=“和CHKERRQ(ierr)函數(shù);
petsc的錯(cuò)誤跟蹤,記錄下可能出錯(cuò)的函數(shù)和錯(cuò)誤原因。2、MatSetValue&VecSetValue(MatSetValues&VecSetValues)MatSetValue(A,i,j,v,ADD_VALUES);VecSetValue(x,i,v,ADD_VALUES);
為矩陣(向量)賦值。賦值模式:INSERT_VALUE替換
ADD_VALUDE疊加
并行程序中,只要處理器指定其整體行列號(hào)即可完成操作,而不必關(guān)心該元素是否在本處理器上。2、PETSc程序示例:幾個(gè)PETSc函數(shù)在編譯成可執(zhí)行文件后(**.exe)后,仍能改變程序中的設(shè)置。(程序中的預(yù)置)如:-mat_view將矩陣打印于屏幕(aij格式)
-mat_view_info將矩陣信息打印于屏幕
-ksp_view
顯示迭代法求解器的信息-ksp_typefgmres將迭代方法改為fgmres2、PETSc程序示例:運(yùn)行時(shí)選項(xiàng)(Runningoption)基本所有函數(shù)的解釋目錄:petsc-3.3-p5\docs\manualpagesPETSc組件的使用示例目錄:petsc-3.3-p5\src如KSP組件:petsc-3.3-p5\src\ksp\ksp\examples\testsPETSc用戶文檔目錄:petsc-3.3-p5\src\docs\manual.pdf2、PETSc程序示例:幫助文檔線彈性有限元的求解部分歸結(jié)為解線性方程組:[K]{δ}={P}3、基于PETSc的有限元求解程序設(shè)計(jì):一種思路矩陣[A]和向量{p}與{δ}求解方程組Ax=bPETSc的數(shù)據(jù)結(jié)構(gòu):Mat———矩陣Vec———向量PETSc的求解器組件KSP———解線性方程組1、線彈性有限元程序的一般步驟:前處理建模,形成網(wǎng)格信息包括:?jiǎn)卧畔⒐?jié)點(diǎn)信息材料信息約束信息荷載信息單元分析整體分析組裝總剛矩陣[K]for(ie=0;ie<NE;ie++){單剛計(jì)算;將單剛疊加至總剛}(cāng)邊界條件修改方程“置大數(shù)法”“劃行劃列”求解支配方程組:[K]{δ}={p}大型線性方程組后處理輸出:位移云圖應(yīng)力云圖...3、基于PETSc的有限元求解程序設(shè)計(jì):有限元流程前處理單元分析整體分析組裝總剛矩陣[K]邊界條件修改方程求解支配方程組:[K]{δ}={p}后處理進(jìn)程1進(jìn)程0進(jìn)程0求解支配方程組:[K]{δ}={p}求解支配方程組:[K]{δ}={p}單元分析整體分析組裝總剛矩陣[K]單元分析整體分析組裝總剛矩陣[K]3、基于PETSc的有限元求解程序設(shè)計(jì):一種并行方法1、一種線彈性有限元程序并行化方法前處理單元分析整體分析組裝總剛矩陣[K]邊界處理求解支配方程組:[K]{u}={p}后處理1、提供成熟高效的方程組求解程序2、存儲(chǔ)總剛的矩陣結(jié)構(gòu)Mat和存儲(chǔ)列陣的向量結(jié)構(gòu)Vec分布式計(jì)算環(huán)境下!3、基于PETSc的有限元求解程序設(shè)計(jì):一種并行方法網(wǎng)格信息PETSc求解器求解(KSP)輸出位移形成方程組的系數(shù)矩陣[K]和右端項(xiàng){P}(PETSc)邊界處理修改方程3、基于PETSc的有限元求解程序設(shè)計(jì):流程類似于數(shù)組空間動(dòng)態(tài)分配程序一、輸入網(wǎng)格信息(代替前處理)節(jié)點(diǎn)信息NLIST.DAT單元信息ELIST.DAT材料信息NLIST.DAT受約束信息NLIST.DAT節(jié)點(diǎn)力信息NLIST.DAT3、基于PETSc的有限元求解程序設(shè)計(jì):輸入ZFSolver:3、基于PETSc的有限元求解程序設(shè)計(jì):分析主要過(guò)程分析:網(wǎng)格信息PETSc求解器求解(KSP)輸出位移形成方程組的系數(shù)矩陣[K]和右端項(xiàng){P}(PETSc)邊界處理修改方程1、總剛矩陣[K]存儲(chǔ)預(yù)分配2、單剛計(jì)算及組集總剛(并行環(huán)境下)3、總剛方程求解(迭代方法)4、邊界修改(置“大數(shù)”法)1、矩陣的種類(Dense&Sparse)2、稀疏矩陣的預(yù)分配空間(類似于數(shù)組存儲(chǔ)空間的動(dòng)態(tài)分配)。對(duì)于大型稀疏矩陣的聚集效率至關(guān)重要。3、提供預(yù)分配參數(shù)MatMPIAIJSetPreallocation(MatB,PetscIntd_nz,constPetscIntd_nnz[],PetscInto_nz,constPetscInto_nnz[])4、做法:對(duì)角矩陣和非矩陣對(duì)角的劃分存儲(chǔ)預(yù)分配參數(shù):若每行非零元素個(gè)數(shù)基本一樣,給出兩個(gè)常數(shù)(d_nz,o_nz)若精確存儲(chǔ)預(yù)分配,給出兩個(gè)整形數(shù)組(d_nnz[],o_nnz[])一、預(yù)分配矩陣存儲(chǔ)3、基于PETSc的有限元求解程序設(shè)計(jì):過(guò)程分析
STLVector容器每個(gè)處理器均遍歷網(wǎng)格,按照節(jié)點(diǎn)號(hào)的劃分統(tǒng)計(jì)出對(duì)應(yīng)部分的共單元的節(jié)點(diǎn),并相應(yīng)的作自由度擴(kuò)展。并行矩陣的預(yù)分配:計(jì)算出每行對(duì)應(yīng)部分非零元素?cái)?shù)目。在有限元中總剛矩陣中,只有共單元的才會(huì)對(duì)其有剛度貢獻(xiàn)。一、預(yù)分配矩陣存儲(chǔ)有限元總剛矩陣:高度稀疏、對(duì)稱,需要預(yù)分配找出節(jié)點(diǎn)的共單元關(guān)系3、基于PETSc的有限元求解程序設(shè)計(jì):過(guò)程分析1、找出所有節(jié)點(diǎn)的共單元關(guān)系
for(intie=0;ie<NE;ie++)//所以單元循環(huán)
{
for(intid=0;id<4;id++)//處理與節(jié)點(diǎn)id共單元ie的節(jié)點(diǎn)
{
for(intjd=0;jd<4;jd++)
{………}
}
}
2、去重,排序、統(tǒng)計(jì)
3、自由度擴(kuò)展
4、得到預(yù)分配需要數(shù)組
以平面三個(gè)四邊形單元為例。二、單剛計(jì)算及組集總剛:每個(gè)單元循環(huán){Ele3D8N(EleCoor,iE,iMu,iDense,EK,RE);
//計(jì)算單剛Ke;MatSetValues(K,8,id,8,jd,EK,ADD_VALUES);
//Ke疊加至總剛;
}25/共33頁(yè)三、總剛方程的求解對(duì)于已經(jīng)賦值完畢的矩陣[K]和向量[p]就可以調(diào)用PETSc方程求解器進(jìn)行求解。26/共33頁(yè)置“大數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高性能耐磨混凝土地面施工合同
- 2025年度外企在華工作許可及聘用合同
- 二零二五年度電影特效化妝與拍攝合同
- 2025年度鏟車租賃安全培訓(xùn)及事故處理合同
- 護(hù)士護(hù)理壓瘡理論考試試題
- 安全生產(chǎn)管理預(yù)案
- 安全應(yīng)知應(yīng)會(huì)知識(shí)培訓(xùn)
- 干部選拔任用培訓(xùn)
- 2025有關(guān)宅基地的買賣合同
- 2025道路旅游運(yùn)輸合同范本
- 第二章 運(yùn)營(yíng)管理戰(zhàn)略
- 《三本白皮書(shū)》全文內(nèi)容及應(yīng)知應(yīng)會(huì)知識(shí)點(diǎn)
- 專題14 思想方法專題:線段與角計(jì)算中的思想方法壓軸題四種模型全攻略(解析版)
- 醫(yī)院外來(lái)器械及植入物管理制度(4篇)
- 港口與港口工程概論
- 《念珠菌感染的治療》課件
- 門店裝修設(shè)計(jì)手冊(cè)
- 考研計(jì)算機(jī)學(xué)科專業(yè)基礎(chǔ)(408)研究生考試試卷與參考答案(2025年)
- 2024護(hù)理個(gè)人年終總結(jié)
- 海南省申論真題2020年(縣級(jí)及以上)
- 蛇年金蛇賀歲
評(píng)論
0/150
提交評(píng)論