freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

petsc并行程序設(shè)計(jì)方法(ppt133)-流程管理(參考版)

2024-08-22 01:11本頁面
  

【正文】 /* 打印收斂信息 */ ierr = PetscPrintf(PETSC_COMM_WORLD,Norm of error %A iterations %d\n,norm,its)。norm)。CHKERRQ(ierr)。 /* 檢測誤差并釋放內(nèi)存空間 */ /* 誤差檢測 */ ierr = VecAXPY(amp。its)。 CHKERRQ(ierr)。 CHKERRQ(ierr)。 CHKERRQ(ierr)。 /*預(yù)置運(yùn)行參數(shù) */ ierr = SLESGetKSP(sles,amp。 ierr =SLESSetOperators(sles,A,A,DIFFERENT_NONZERO_PATTERN)。sles)。CHKERRQ(ierr)。 CHKERRQ(ierr)。 100 /* 屏幕顯示精確解 */ ierr = PetscOptionsHasName(PETSC_NULL,view_exact_sol,amp。 } ierr = MatMult(A,u,b)。one,u)。 CHKERRQ(ierr)。 CHKERRQ(ierr)。 CHKERRQ(ierr)。 if(flg){ ierr = PetscRandomCreate(PETSC_COMM_WORLD,RANDOM_DEFAULT,amp。flg)。 CHKERRQ(ierr)。 ierr =VecDuplicate(b,amp。b)。 CHKERRQ(ierr)。 CHKERRQ(ierr)。 CHKERRQ(ierr)。 99 /* 創(chuàng)建向量對(duì)象 */ ierr =VecCreate(PETSC_COMM_WORLD,amp。 ierr = MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY)。} /* 矩陣集聚 */ ierr = MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY)。v,INSERT_VALUES)。I,1,amp。} v = 。v,INSERT_VALUES)。I,1,amp。} if (jn1) {J = I + 1。v,INSERT_VALUES)。I,1,amp。} if (j0) {J = I 1。v,INSERT_VALUES)。I,1,amp。} if (im1) {J = I + n。v,INSERT_VALUES)。I,1,amp。 if (i0) {J = I n。 i = I/n。 IIend。 CHKERRQ(ierr)。Istart,amp。 CHKERRQ(ierr)。 CHKERRQ(ierr)。 /* 填充矩陣算子和右端向量 */ /* 創(chuàng)建矩陣對(duì)象 */ ierr=MatCreate(PETSC_COMM_WORLD,PETSC_DECIDE,PETSC_DECIDE,m*n,m*n,amp。n,PETSC_NULL)。 CHKERRQ(ierr)。 ierr =PetscOptionsGetInt(PETSC_NULL,m,amp。argc, amp。 KSP ksp。 PetscTruth flg。 /* 隨機(jī)數(shù)發(fā)生器環(huán)境 /數(shù)據(jù)對(duì)象 */ PetscReal norm。 /* 線性算子 /矩陣 */ SLES sles。 96 include undef __FUNCT__ define __FUNCT__ main int main(int argc,char **args) { Vec x,b,u。 用 SLES( Krylov子空間方法 和預(yù)條件子 )求解一個(gè)線性方程組。以 SLES 解法 94 器為例, PETSc 程序一般分 四個(gè)必要階段 : 1. 創(chuàng)建 解算子、解向量和右端向量,并 填充 解算子(矩陣) 、 設(shè)置 初始解和右端向量; SLES環(huán)境 ,設(shè)置 Krylov子空間方法和預(yù)條件子; SLES解法器; 所有存儲(chǔ)空間。 PETSc提供了三個(gè)核心解法器,分別求解 線性方程組 、 非線性方程組 和 時(shí)間依賴方程組 。唯一不同的是 初始化 和 結(jié)束 一個(gè)程序的運(yùn)行需要 PETSc來管理。 93 三 .PETSc的實(shí)例分析 PETSc 所有對(duì)象和庫都是在 MPI 消息傳遞環(huán)境下開發(fā)。 92 PETSc具有良好的 計(jì)算性能分析 、 實(shí)時(shí)信息打印 和 圖形可視化輸出 功能。用戶基于 PETSc對(duì)象 可以靈活開發(fā)其應(yīng)用程序。 PETSc 的向量、矩陣和索引集等基本數(shù)據(jù)對(duì)象完全采用 抽象數(shù)據(jù)類型 實(shí)現(xiàn), 盡量對(duì)用戶屏蔽數(shù)據(jù)對(duì)象的區(qū)域劃分和物理存儲(chǔ)等細(xì)節(jié) 。作為一個(gè) 高級(jí)應(yīng)用程序開發(fā)平臺(tái) , PETSc特別適合于用來開發(fā) 大型應(yīng)用程序 。 無論是在 計(jì)算時(shí)間 還是在 浮點(diǎn)性能 方面, PETSc 提供的范例程序都有良好的 線性加速比性能 。另一方面, PETSc本身基于高性能的線性代數(shù)庫( BLAS和 LAPACK)和 MPI消息傳遞環(huán)境實(shí)現(xiàn) , 同時(shí)又充分 吸收 和 融入 了其它優(yōu)秀軟件的優(yōu)點(diǎn),如無結(jié)構(gòu)網(wǎng)格區(qū)域分解 和 雅可比矩陣求解 等方面的功能。 PETSc 不僅為 中小規(guī)模 線性方程組的求解提供了高效的 直接方法 ,還為 大規(guī)模(稀疏)線性方程組 的 迭代求解 提供了多種 Krylov子空間方法 和多種 預(yù)條件子 。 87 二 .PETSc的基本特色 ? 計(jì)算能力 ? 可兼容性 ? 可擴(kuò)展性 ? 抽象數(shù)據(jù)類型 ? 輸出能力 88 PETSc 為用戶提供了豐富的 算法 和 函數(shù)庫 資源。標(biāo)志 BOPT 確定建立哪種庫。 make_log 建立 PETSc 的調(diào)試版本或使用 make BOPT=O all amp。 3)編輯文件 ${PETSC_DIR}/bmake/${PETSC_ARCH}/vari ables以從其缺省改變 C, C++, 或 Fortran編譯器的名字。然后,可按照以下步驟安裝 PETSc: 1)設(shè)置 環(huán)境變量 PETSC_DIR 和 PETSC_ARCH, 分別為PETSc主目錄的路徑和機(jī)器體系結(jié)構(gòu)。 TSSetInitialTimeStep: 設(shè)置初始時(shí)間和步長 TSSetInitialTimeStep( TS ts, double time, double dt) 80 TSSetTimeStep: 設(shè)置 /更改時(shí)間步長 TSGetTimeStep: 獲得時(shí)間步長 TSSetDuration: 設(shè)置最大時(shí)間步數(shù) TSSetDuration( TS ts, double maxsteps, double maxtime) TSSetUp: 啟動(dòng) TS求解環(huán)境 TSDestroy: 釋放 TS求解環(huán)境 TSView: 啟動(dòng) TS屏幕輸出 TSView( TS ts, PetscViewer viewer) 81 求解時(shí)間依賴問題 TSSetSolution: 為 TS求解器設(shè)置一個(gè)初始猜值 TSSetRHSMatrix: 設(shè)置右端算子(線性問題) TSSetRHSMatrix ( TS ts, Mat A, Mat B, int (?f) (TS, double, Mat ?, Mat ?, MatStructure ?, void ?), void ?fP) , 其中參數(shù) f為 時(shí)間依賴問題( A(t)) 的矩陣對(duì)象 A及其預(yù)條件子 B的計(jì)算 函數(shù),否則為 PETSC_NULL;參數(shù) fP為用戶程序運(yùn)行環(huán)境 82 TSSetRHSFunction: 設(shè)置右端算子(非線性問題) TSSetRHSFunction( TS ts, int (?f) (TS, double, Vec, Vec, void ?), void ?fP) TSSetRHSJacobian: 設(shè)置右端算子的雅可比矩陣(非線性 問題) TSSetRHSJacobian( TS ts, Mat A, Mat B, int (?fjac)(TS, double , Vec, Mat ?, Mat ?, MatStructure ?, void ?), void ?fP) 83 求解時(shí)間穩(wěn)態(tài)問題 TSPseudoSetTimeStep: 設(shè)置 TS求解器的時(shí)間步長 TSPseudoSetTimeStep( TS ts, int (?dt) (TS, double ?, void ?), void ?dtctx), 參數(shù) dt 為用戶用于求解 下次時(shí)間步長 的函數(shù)。 PETSc為 PVODE求解器提供了 接口 。對(duì)于非時(shí)間演化或穩(wěn)態(tài)方程, PETSc提供了 偽時(shí)間步進(jìn)積分器 。有限差分逼近簡單表示為 hxFShexFSxFSF iii)()( ??????????76 例一:稀疏雅可比矩陣的著色與右乘初始矩陣 ??????????????hdgcfbeaF00000000?????????????10100101S???????????????hdgcfbeaSF77 MatGetColoring: 給稀疏雅可比矩陣著色, 僅適用于串行 MatFDColoringGreate: 創(chuàng)建一個(gè)與著色相關(guān)的數(shù)據(jù)結(jié)構(gòu) ISColoringDestroy: 釋放一個(gè)與著色相關(guān)的數(shù)據(jù)結(jié)構(gòu) /對(duì)象 MatFDColoringFromOptions: 通過運(yùn)行參數(shù)創(chuàng)建與著色相 關(guān)的有限差分計(jì)算對(duì)象 SNESSetJacobian: 在 SNES 環(huán)境中啟動(dòng)疏雅可比的著色和 有限差分計(jì)算 78 時(shí)間步進(jìn)解法器( TS) TS 時(shí)間步進(jìn)積分器 ,用于求解 依賴時(shí)間 或 時(shí)間演化 的 ODE方程,或 依賴時(shí)間 的離散化后的 PDE方程。 有限差分逼近 使得在一次差分逼近中,可以同時(shí)計(jì)算出雅 可比矩陣 同一列中的所有元素 。同前面類似, PETSc 首先給用戶提供了一個(gè)虛擬的矩陣對(duì)象和環(huán)境,然后用戶基于這個(gè)環(huán)境可以自由開發(fā)自己的 雅可比矩陣乘積 計(jì)算程序。 SNESSetMonitor: 設(shè)置輸出模式 SNESSetMonitor ( SNES snes, int ( ?mon ) ( SNES snes, int its, double norm, void ?mctx), void ?mctx, int (?monitordestroy) (void ?)) ,其中參數(shù) its和 norm 依次為迭代次數(shù)和函數(shù)值。 SNES求解以下形式的非線性方程組組 F( x) = 0 (1. ) 其中解算子 F: Rn ? Rn。 PCShellSetApply: 設(shè)置一個(gè)由用戶提供預(yù)條件子的環(huán)境 PCShellSetApply ( PC pc, int (?apply)(void ?ctx, Vec, Vec), void ?ctx) PCShellSetSetup: 設(shè)置由用戶提供預(yù)條件子的啟動(dòng)程序 PCShellSetSetup ( PC pc, int (?setup)(void ?ctx)) 62 PCCompositeAddPC: 添加一個(gè)新的預(yù)條件子及其類型 PCCompositeAddPC ( PC pc, PCType type ),默認(rèn)為可 加性的復(fù)合類型 PCCompositeSetType:
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1