Cao tính năng khả khoách triển tuyến tính cầu giải toán pháp khố Hypre

28 thiên văn chương 4 đính duyệt
10 thiên văn chương 0 đính duyệt

Mục lục

2 an trang hypre¶

3 sử dụng Hypre

3.1 tuyển trạch khái niệm tiếp khẩu

3.2 biên tả đại mã

4 thật lệ trắc thí

5 văn đương thuyết minh


https://nixbit.com/software/hypre-review/

1 giản giới

Hypre thị do lao luân tư lợi phất mạc nhĩ quốc gia thật nghiệm thất khai phát tịnh tiến hành khai nguyên. Lao luân tư lợi phất mạc nhĩ quốc gia thật nghiệm thất (LLNL) thành lập vu 1952 niên lãnh chiến cao phong thời kỳ, chỉ tại thông quá thôi tiến hạch võ khí khoa học hòa kỹ thuật lai mãn túc khẩn bách đích quốc gia an toàn nhu cầu. Tại kỳ lịch sử thượng, thật nghiệm thất thông quá kỳ tài hoa hoành dật hòa kính nghiệp đích viên công đội ngũ hòa thế giới nhất lưu đích nghiên cứu năng lực, dĩ khoa học hòa kỹ thuật sang tân đích truyện thống, dự trắc, khai phát hòa đề cung giải quyết quốc gia tối cụ thiêu chiến tính đích vấn đề đích giải quyết phương án, gia cường liễu quốc gia an toàn. 65 niên lai, LLNL nhất trực tại sang tạo lịch sử

Livermore đích HYPRE tuyến tính cầu giải khí khố khả dĩ bỉ truyện thống phương pháp canh khoái địa giải quyết vấn đề, tòng nhi thật hiện canh đại, canh tường tế đích phảng chân. Tha đề cung liễu nhất sáo toàn diện đích khả khoách triển cầu giải khí sáo kiện, dụng vu đại quy mô khoa học phảng chân, cụ hữu châm đối kết cấu hóa hòa phi kết cấu hóa võng cách vấn đề đích tịnh hành đa võng cách phương pháp. HYPRE khố cụ hữu cao độ đích khả di thực tính, tịnh chi trì đa chủng ngữ ngôn.

HYPRE đích công tác thủy vu 1990 niên đại hậu kỳ. Thử hậu, tha dĩ bị nghiên cứu cơ cấu hòa tư nhân công tư dụng lai mô nghĩ địa hạ thủy lưu động, thác tạp mã khắc hòa hằng tinh trung đích từ tụ biến năng đẳng ly tử thể, lưu kinh tâm tạng đích huyết dịch, dụng vu hạch điện trạm đích chưng khí phát sinh khí trung đích lưu thể lưu động dĩ cập du khố trung đích bơm tống hoạt động. Chỉ thị kỉ cá lĩnh vực. 2007 niên, HYPRE vinh hoạch R&D Magazine ban phát đích R&D 100 tưởng, giá thị cai niên độ tối trọng đại đích kỹ thuật đột phá chi nhất.

HYPRE đoàn đội thị tối tảo vi cực đoan quy mô đích tịnh hành siêu cấp kế toán cơ khai phát đại sổ đa trọng võng cách toán pháp hòa nhuyễn kiện đích đoàn đội chi nhất. Cai đoàn đội tại đa võng cách nghiên cứu xã khu trung bảo trì trứ tích cực đích tác dụng, tịnh nhân kỳ tại toán pháp hòa nhuyễn kiện khai phát phương diện đích lĩnh đạo địa vị nhi thụ đáo nhận khả.

Hypre khả khoách triển tuyến tính cầu giải khí hạng mục đích mục tiêu thị khai phát khả khoách triển toán pháp hòa nhuyễn kiện, dụng vu tại tịnh hành kế toán cơ thượng cầu giải đại hình hi sơ tuyến tính phương trình tổ.

Chủ yếu nhuyễn kiện sản phẩm thị hypre, giá thị nhất cá cao tính năng đích dự xử lý khí khố, cụ hữu châm đối kết cấu hóa hòa phi kết cấu hóa võng cách vấn đề đích tịnh hành đa võng cách phương pháp.

Tại LLNL hòa kỳ tha địa phương chính tại khai phát dụng vu nghiên cứu quốc phòng, hoàn cảnh, năng nguyên hòa sinh vật khoa học trung đích vật lý hiện tượng đích phảng chân đại mã thời, hội dẫn khởi quan chú đích vấn đề.

Tẫn quản đối vu giá ta vấn đề đích sổ trị giải quyết phương án, tất tu tiến hành tịnh hành xử lý, đãn cận kháo tịnh hành xử lý thị bất cú đích. Hoàn nhu yếu khả khoách triển đích sổ trị toán pháp. “Khả thân súc” thông thường thị chỉ hữu hiệu sử dụng phụ gia kế toán tư nguyên lai giải quyết nhật ích nghiêm trọng đích vấn đề đích năng lực. Hứa đa nhân tố đô hội ảnh hưởng khả thân súc tính, bao quát tịnh hành kế toán cơ đích thể hệ kết cấu hòa toán pháp đích tịnh hành thật hiện. Đãn thị, nhất cá trọng yếu đích vấn đề kinh thường bị hốt lược: Toán pháp bổn thân đích khả thân súc tính. Tại giá lí, khả thân súc tính thị đối tổng kế toán công tác nhu cầu như hà tùy vấn đề đại tiểu tăng trường đích miêu thuật, khả dĩ độc lập vu kế toán bình đài tiến hành thảo luận.

Kim thiên đích phảng chân đại mã trung sử dụng đích hứa đa toán pháp đô thị cơ vu tạc thiên bất khả khoách triển đích kỹ thuật. Giá ý vị trứ giải quyết việt lai việt đại đích vấn đề sở nhu đích công tác bỉ tuyến tính tăng trường ( tối giai tốc suất ) khoái đắc đa. Sử dụng khả thân súc toán pháp khả dĩ tương phảng chân thời gian giảm thiếu kỉ cá sổ lượng cấp, tòng nhi tương MPP thượng đích lưỡng thiên vận hành thời gian giảm thiếu đáo 30 phân chung. Thử ngoại, sử dụng cai kỹ thuật đích đại mã cận thụ cơ khí nội tồn đại tiểu đích hạn chế, nhân vi tha môn năng cú hữu hiệu địa lợi dụng kỳ tha kế toán cơ tư nguyên lai giải quyết cự đại đích vấn đề.

Khả thân súc đích toán pháp sử ứng dụng khoa học gia năng cú đề xuất tịnh hồi đáp tân vấn đề. Lệ như, như quả cấp định đích mô nghĩ ( cụ hữu đặc định đích phân biện suất ) nhu yếu hoa phí kỉ thiên đích thời gian lai vận hành, nhi tinh luyện đích ( tức canh chuẩn xác đích ) mô hình tương hoa phí canh trường đích thời gian, na ma ứng dụng khoa học gia khả năng hội phóng khí canh đại, canh cao bảo chân độ đích mô nghĩ. Do vu mỗi thứ vận hành đô hoa phí thái trường thời gian, nhân thử tha hoặc tha hoàn khả năng bị bách súc tiểu tham sổ nghiên cứu đích phạm vi. Thông quá giảm thiếu chấp hành thời gian, khả khoách triển toán pháp duẫn hứa khoa học gia dĩ canh cao đích phân biện suất tiến hành canh đa đích mô nghĩ.

Thử bản bổn trung đích tân tăng công năng: Thử bản bổn thiêm gia liễu AME, giá thị nhất cá cơ vu AMS hòa LOBPCG đích tân đích Maxwell bổn chinh cầu giải khí.

Python chi trì dĩ thiêm gia đáo Babel tiếp khẩu.

Nội bộ tiêu đầu trung đích mệnh danh không gian vấn đề dĩ tu phục.

MG cầu giải khí mô khối hòa BoomerANG mô khối trung đích sáp trị toán pháp đô đắc đáo liễu gia tốc.

2 an trang hypre¶

Như tiền sở thuật, tại đại đa sổ hệ thống thượng, chỉ nhu tại đỉnh cấp nguyên mục lục trung kiện nhập hậu kiện nhập, tức khả cấu kiến hypre. Hoặc giả, khả dĩ sử dụng CMake hệ thống [CMakeWeb], tịnh thả thị đặc biệt thị tại Windows hệ thống thượng cấu kiến hypre đích tối giai phương pháp. Hữu quan canh đa tường tế tín tức, thỉnh duyệt độc dữ hypre phân phát nhất khởi đề cung đích văn kiện, hoặc tham duyệt bổn thủ sách trung đích tối hậu nhất chương. Thỉnh chú ý dĩ hạ yếu cầu: configuremakeINSTALL

Yếu tịnh hành vận hành, hypre nhu yếu an trang MPI.

Sử dụng tuyến trình phối trí hypre nhu yếu thật hiện OpenMP. Mục tiền, chỉ hữu hypre đích tử tập thị tuyến trình đích.

hypre khố mục tiền bất trực tiếp chi trì phục tạp trị đích hệ thống.

Thông quá vcpkg khả dĩ tiến hành an trang

vcpkg install hpyre:x64-windows

3 sử dụng Hypre

3.1 tuyển trạch khái niệm tiếp khẩu

Tại biên tả nhậm hà đại mã chi tiền, yếu tố xuất nhất hạng trọng yếu đích quyết định thị tuyển trạch thích đương đích khái niệm tiếp khẩu. Giá ta khái niệm tiếp khẩu chỉ tại biểu kỳ ứng dụng trình tự khai phát nhân viên tự nhiên địa tư khảo kỳ tuyến tính vấn đề đích phương thức, tịnh vi tha môn đề cung tự nhiên tiếp khẩu, dĩ tiện tương định nghĩa kỳ tuyến tính hệ thống đích sổ cư truyện đệ đáo hypre trung. Tòng bổn chất thượng giảng, giá ta khái niệm tiếp khẩu khả dĩ bị thị vi bang trợ dụng hộ vi hypre cầu giải khí hòa dự trí khí cấu kiến củ trận sổ cư kết cấu đích phương tiện thật dụng trình tự. Đồ1Đích đỉnhHànhThuyết minh liễu hứa đa khái niệm tính tiếp khẩu. Thông thường, khái niệm tiếp khẩu do bất đồng loại hình đích kế toán võng cách biểu kỳ, đãn dã khả năng sử dụng kỳ tha ứng dụng trình tự công năng, như kỉ hà tín tức. Lệ như, sử dụng kết cấu hóa võng cách đích ứng dụng trình tự ( như đồ1Trung tối tả trắc đích tiếp khẩu ) thông thường án soa phân hòa võng cách lai tra khán kỳ tuyến tính vấn đề. Lánh nhất phương diện, sử dụng phi kết cấu hóa võng cách hòa hữu hạn nguyên tố đích ứng dụng trình tự thông thường tòng nguyên tố hòa nguyên kiện cương độ củ trận đích giác độ tra khán kỳ tuyến tính vấn đề. Tối hậu, tối hữu biên đích tiếp khẩu thị tiêu chuẩn tuyến tính đại sổ ( củ trận hành / liệt ) tra khán tuyến tính vấn đề đích phương thức.

hypreKhố mục tiền chi trì tứ cá khái niệm tiếp khẩu, thông thường cấp định vấn đề đích thích đương tuyển trạch tương đương minh hiển, lệ như, kết cấu hóa võng cách tiếp khẩu hiển nhiên bất thích hợp phi kết cấu hóa võng cách ứng dụng trình tự.

  • Kết cấu hóa võng cách hệ thống tiếp khẩu ( kết cấu ):Thử tiếp khẩu thích dụng vu kỳ võng cách do la tập củ hình võng cách tổ thành đích liên hợp, mỗi cá võng cách điểm đô hữu cố định đích phi linh điểm soa phân mô thức. Thử tiếp khẩu cận chi trì mỗi cá võng cách điểm nhất cá vị tri điểm. Hữu quan tường tế tín tức,Thỉnh tham duyệt kết cấu hóa võng cách hệ thống tiếp khẩu ( kết cấu )NhấtChương.
  • Bán kết cấu hóa võng cách hệ thống tiếp khẩu ( kết cấu ):Thử tiếp khẩu thích dụng vu võng cách đại bộ phân vi kết cấu hóa đãn cụ hữu nhất ta phi kết cấu hóa công năng đích ứng dụng trình tự. Kỳ lệ bao quát khối kết cấu võng cách, kết cấu hóa tự thích ứng võng cách ưu hóa ( AMR ) ứng dụng trình tự trung đích phục hợp võng cách hòa quá sáo võng cách. Thử tiếp khẩu chi trì mỗi cá đan nguyên cách đích đa cá vị tri trị. Hữu quan tường tế tín tức,Thỉnh tham duyệt bán kết cấu hóa võng cách hệ thống tiếp khẩu ( kết cấu )NhấtChương.
  • Hữu hạn nguyên tiếp khẩu ( FEI ):Giá thích dụng vu tòng hữu hạn nguyên ly tán hóa hình thành tuyến tính hệ thống đích dụng hộ. Tiếp khẩu phản ánh điển hình đích hữu hạn nguyên sổ cư kết cấu, bao quát nguyên cương độ củ trận. Tuy nhiên giá cá tiếp khẩu tại hypre trung đề cung, đãn kỳ định nghĩa thị tại kỳ tha địa phương xác định đích ( thỉnh phát tống điện tử bưu kiện cấp ngải luân · uy liêm mỗ tư·UyLiêm ·TangĐịchÁ.Chính phủLiễu giải canh đa tín tức ). Hữu quan tường tế tín tức,Thỉnh tham duyệt hữu hạn nguyên tiếpKhẩuChương tiết.
  • Tuyến tính đại sổ hệ thống tiếp khẩu ( IJ ):Giá thị truyện thống đích tuyến tính đại sổ tiếp khẩu. Đối vu kỳ tha cơ vu võng cách đích tiếp khẩu bất hợp thích đích dụng hộ, tha khả dĩ tác vi tối hậu đích thủ đoạn. Tha nhu yếu canh đa đích công tác tại dụng hộ đích nhất bộ phân, tuy nhiên nhưng nhiên tiểu vu kiến lập tịnh hành hi sơ sổ cư kết cấu. Nhất bàn giải toán khí hòa dự trí khí khả thông quá thử tiếp khẩu hoạch đắc, đãn bất nhu yếu canh đa tín tức đích chuyên dụng giải toán khí. Ngã môn đích kinh nghiệm thị, ủng hữu cựu đại mã đích dụng hộ, tại kỳ trung dĩ kinh cụ hữu dụng vu cấu kiến đặc định cách thức đích củ trận đích đại mã, phát hiện IJ tiếp khẩu tương đối dung dịch sử dụng. Hữu quan tường tế tín tức,Thỉnh tham duyệt tuyến tính đại sổ hệ thống tiếp khẩu( IJ)Nhất chương.

Đồ1Thuyết minh khái niệm tuyến tính hệ thống tiếp khẩu khái niệm đích đồ hình

Hpyre cụ hữu tam tằng giá cấu, sổ cư tằng, tuyến tính cầu giải khí, nhiên hậu thị tuyến tính hệ thống tiếp khẩu. Thông thường, dụng hộ ứng tuyển trạch dữ ứng dụng trình tự thất phối đích tối cụ thể đích tiếp khẩu, nhân vi giá tương duẫn hứa tha môn sử dụng chuyên dụng hòa canh hữu hiệu đích giải toán khí hòa dự trí khí, nhi bất hội đâu thất đối canh thông dụng giải toán khí đích phóng vấn quyền hạn. Lệ như, đồ 1 đích đệNhị hànhThịNhất tổ tuyến tính giải toán khí toán pháp. Mỗi cá tuyến tính giải toán khí tổ đô nhu yếu dụng hộ thông quá khái niệm tiếp khẩu đề cung bất đồng đích tín tức. Nhân thử, lệ như, tối tả trắc khuông trung liệt xuất đích kỉ hà đa võng cách toán pháp ( GMG ) chỉ năng dữ tối tả trắc khái niệm tiếp khẩu nhất khởi sử dụng. Lánh nhất phương diện, tối hữu trắc khuông trung đích ILU toán pháp khả dữ nhậm hà khái niệm tiếp khẩu nhất khởi sử dụng. Mỗi cá giải toán khí hòa dự trí khí đích củ trận yếu cầu tại chương tiết cầuGiải khí hòa dự tríKhíDĩ cập hypre tham khảo thủ sách trung đề cung. Nâm sở nhu đích giải toán khí sách lược khả năng hội ảnh hưởng nâm tuyển trạch đích khái niệm tiếp khẩu. Điển hình dụng hộ tương tuyển trạch đan cá Krylov phương pháp hòa đan cá dự trí khí lai giải quyết kỳ hệ thống.

Đồ1Đích đệ tamHànhThị sổ cư bố cục hoặc củ trận / thỉ lượng tồn trữ phương án đích liệt biểu. Tuyến tính giải toán khí dữ tồn trữ phương án đích quan hệ dữ khái niệm tiếp khẩu hòa tuyến tính giải toán khí đích quan hệ tương tự. Thỉnh chú ý, hypre trung mỗ ta tiếp khẩu đương tiền cận chi trì nhất cá củ trận / thỉ lượng tồn trữ phương án tuyển trạch. Khái niệm tiếp khẩu, sở nhu đích giải toán khí hòa dự trí khí dĩ cập củ trận tồn trữ loại tất tu toàn bộ kiêm dung.

3.2 biên tả đại mã

Như thượng nhất tiết sở thuật, tại biên tả nhậm hà đại mã chi tiền, ứng tố xuất dĩ hạ quyết định:

  • Tuyển trạch khái niệm tiếp khẩu.
  • Tuyển trạch sở nhu đích giải toán khí sách lược.
  • Tra trảo mỗi cá giải toán khí hòa dự trí khí đích củ trận yếu cầu.
  • Tuyển trạch dữ giải toán khí, dự trí khí dĩ cập khái niệm tiếp khẩu kiêm dung đích củ trận tồn trữ loại.

Tố xuất dĩ tiền đích quyết sách hậu, thị thời hầu đối ứng dụng trình tự tiến hành biên mã dĩ điều dụnghypreLiễu. Thử thời, tra khán tiền diện đề đáo đích dữhypreKhố nhất khởi đề cung đích kỳ lệ đại mã khả năng phi thường hữu dụng. Kỳ lệ đại mã diễn kỳ dĩ hạ ứng dụng trình tự điều dụnghypreĐích nhất bàn kết cấu:

  • Vi sở tuyển khái niệm giới diện cấu kiến nhậm hà tất yếu đích phụ trợ kết cấu.Lệ như, như quả sử dụng kết cấu hóa võng cách tiếp khẩu, bao quát võng cách hòa mô cụ kết cấu.
  • Thông quá sở tuyển đích khái niệm giới diện cấu kiến củ trận, giải quyết phương án hướng lượng hòa hữu trắc hướng lượng.Mỗi cá khái niệm giới diện đô đề cung nhất hệ liệt điều dụng, dụng vu tương hữu quan vấn đề đích tín tức thâu nhập đáohypreTrung.
  • Sinh thành giải toán khí hòa dự trí khí dĩ cập thiết trí giải toán khí tham sổ ( khả tuyển ).Mỗ ta tham sổ ( như thu liễm dung soa ) tại cầu giải khí chi gian thị tương đồng đích, nhi kỳ tha tham sổ thị đặc định vu giải toán khí đích.
  • Điều dụng giải toán khí đích cầu giải hàm sổ.
  • Tòng giải toán khí kiểm tác sở nhu tín tức.Căn cư nâm đích ứng dụng trình tự, nâm khả năng tưởng yếu đối giải quyết phương án hướng lượng tiến hành kỳ tha canh cải. Thử ngoại, tính năng tín tức ( như điệt đại thứ sổ ) thông thường khả dụng, đãn khả năng dữ giải toán khí đáo giải toán khí bất đồng.

Bổn dụng hộ thủ sách đích hậu tục chương tiết đề cung liễu canh sung phân địa lý giải mỗi cá khái niệm tiếp khẩu hòa mỗi cá giải toán khí đích công năng sở nhu đích tường tế tín tức. Thỉnh ký trụ,hypreTham khảo thủ sách trung đề cung liễu sở hữu khả dụng hàm sổ đích hoàn chỉnh liệt biểu, tịnh thả đề cung đích kỳ lệ đại mã khả năng chứng minh hữu trợ vu tác vi đặc định ứng dụng trình tự đích mô bản.

4 thật lệ trắc thí

Hpyre đích github nguyên đại mã trung đề cung liễu 18 cá thật lệ

https://github.com/hypre-space/hypre/tree/master/src/examples

Tuyển trạch kỳ trung đích đệ nhất cá tiến hành trắc thí.


/******************************************************************************
* Copyright 1998-2019 Lawrence Livermore National Security, LLC and other
* HYPRE Project Developers. See the top-level COPYRIGHT file for details.
*
* SPDX-License-Identifier: (Apache-2.0 OR MIT)
******************************************************************************/

/*
Example 1

Interface: Structured interface (Struct)

Compile with: make ex1 (may need to edit HYPRE_DIR in Makefile)

Sample run: mpirun -np 2 ex1

Description: This is a two processor example. Each processor owns one
box in the grid. For reference, the two grid boxes are those
in the example diagram in the struct interface chapter
of the User's Manual. Note that in this example code, we have
used the two boxes shown in the diagram as belonging
to processor 0 (and given one box to each processor). The
solver is PCG with no preconditioner.

We recommend viewing examples 1-4 sequentially for
a nice overview/tutorial of the struct interface.
*/

#include <stdio.h>
#include <string.h>

/* Struct linear solvers header */
#include "HYPRE_struct_ls.h"

#ifdef HYPRE_EXVIS
#include "vis.c"
#endif

int main(int argc, char* argv[])
{
int i, j, myid, num_procs;

int vis = 0;

HYPRE_StructGrid grid;
HYPRE_StructStencil stencil;
HYPRE_StructMatrix A;
HYPRE_StructVector b;
HYPRE_StructVector x;
HYPRE_StructSolver solver;

/* Initialize MPI */
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &myid);
MPI_Comm_size(MPI_COMM_WORLD, &num_procs);

/* Initialize HYPRE */
HYPRE_Init();

if (num_procs!= 2)
{
if (myid == 0) printf( "Must run with 2 processors!\n" );
MPI_Finalize();

return(0);
}

/* Parse command line */
{
int arg_index = 0;
int print_usage = 0;

while (arg_index < argc)
{
if (strcmp(argv[arg_index], "-vis" ) == 0)
{
arg_index++;
vis = 1;
}
else if (strcmp(argv[arg_index], "-help" ) == 0)
{
print_usage = 1;
break;
}
else
{
arg_index++;
}
}

if ((print_usage) && (myid == 0))
{
printf( "\n" );
printf( "Usage: %s [<options>]\n", argv[0]);
printf( "\n" );
printf( "-vis: save the solution for GLVis visualization\n" );
printf( "\n" );
}

if (print_usage)
{
MPI_Finalize();
return (0);
}
}

/* 1. Set up a grid. Each processor describes the piece
of the grid that it owns. */
{
/* Create an empty 2D grid object */
HYPRE_StructGridCreate(MPI_COMM_WORLD, 2, &grid);

/* Add boxes to the grid */
if (myid == 0)
{
int ilower[2] = { -3,1 }, iupper[2] = { -1,2 };
HYPRE_StructGridSetExtents(grid, ilower, iupper);
}
else if (myid == 1)
{
int ilower[2] = { 0,1 }, iupper[2] = { 2,4 };
HYPRE_StructGridSetExtents(grid, ilower, iupper);
}

/* This is a collective call finalizing the grid assembly.
The grid is now ``ready to be used'' */
HYPRE_StructGridAssemble(grid);
}

/* 2. Define the discretization stencil */
{
/* Create an empty 2D, 5-pt stencil object */
HYPRE_StructStencilCreate(2, 5, &stencil);

/* Define the geometry of the stencil. Each represents a
relative offset (in the index space). */
{
int entry;
int offsets[5][2] = { {0,0}, {-1,0}, {1,0}, {0,-1}, {0,1} };

/* Assign each of the 5 stencil entries */
for (entry = 0; entry < 5; entry++)
HYPRE_StructStencilSetElement(stencil, entry, offsets[entry]);
}
}

/* 3. Set up a Struct Matrix */
{
/* Create an empty matrix object */
HYPRE_StructMatrixCreate(MPI_COMM_WORLD, grid, stencil, &A);

/* Indicate that the matrix coefficients are ready to be set */
HYPRE_StructMatrixInitialize(A);

/* Set the matrix coefficients. Each processor assigns coefficients
for the boxes in the grid that it owns. Note that the coefficients
associated with each stencil entry may vary from grid point to grid
point if desired. Here, we first set the same stencil entries for
each grid point. Then we make modifications to grid points near
the boundary. */
if (myid == 0)
{
int ilower[2] = { -3,1 }, iupper[2] = { -1,2 };
int stencil_indices[5] = { 0,1,2,3,4 }; /* labels for the stencil entries -
these correspond to the offsets
defined above */
int nentries = 5;
int nvalues = 30; /* 6 grid points, each with 5 stencil entries */
double values[30];

/* We have 6 grid points, each with 5 stencil entries */
for (i = 0; i < nvalues; i += nentries)
{
values[i] = 4.0;
for (j = 1; j < nentries; j++)
values[i + j] = -1.0;
}

HYPRE_StructMatrixSetBoxValues(A, ilower, iupper, nentries,
stencil_indices, values);
}
else if (myid == 1)
{
int ilower[2] = { 0,1 }, iupper[2] = { 2,4 };
int stencil_indices[5] = { 0,1,2,3,4 };
int nentries = 5;
int nvalues = 60; /* 12 grid points, each with 5 stencil entries */
double values[60];

for (i = 0; i < nvalues; i += nentries)
{
values[i] = 4.0;
for (j = 1; j < nentries; j++)
values[i + j] = -1.0;
}

HYPRE_StructMatrixSetBoxValues(A, ilower, iupper, nentries,
stencil_indices, values);
}

/* Set the coefficients reaching outside of the boundary to 0 */
if (myid == 0)
{
double values[3];
for (i = 0; i < 3; i++)
values[i] = 0.0;
{
/* values below our box */
int ilower[2] = { -3,1 }, iupper[2] = { -1,1 };
int stencil_indices[1] = { 3 };
HYPRE_StructMatrixSetBoxValues(A, ilower, iupper, 1,
stencil_indices, values);
}
{
/* values to the left of our box */
int ilower[2] = { -3,1 }, iupper[2] = { -3,2 };
int stencil_indices[1] = { 1 };
HYPRE_StructMatrixSetBoxValues(A, ilower, iupper, 1,
stencil_indices, values);
}
{
/* values above our box */
int ilower[2] = { -3,2 }, iupper[2] = { -1,2 };
int stencil_indices[1] = { 4 };
HYPRE_StructMatrixSetBoxValues(A, ilower, iupper, 1,
stencil_indices, values);
}
}
else if (myid == 1)
{
double values[4];
for (i = 0; i < 4; i++)
values[i] = 0.0;
{
/* values below our box */
int ilower[2] = { 0,1 }, iupper[2] = { 2,1 };
int stencil_indices[1] = { 3 };
HYPRE_StructMatrixSetBoxValues(A, ilower, iupper, 1,
stencil_indices, values);
}
{
/* values to the right of our box */
int ilower[2] = { 2,1 }, iupper[2] = { 2,4 };
int stencil_indices[1] = { 2 };
HYPRE_StructMatrixSetBoxValues(A, ilower, iupper, 1,
stencil_indices, values);
}
{
/* values above our box */
int ilower[2] = { 0,4 }, iupper[2] = { 2,4 };
int stencil_indices[1] = { 4 };
HYPRE_StructMatrixSetBoxValues(A, ilower, iupper, 1,
stencil_indices, values);
}
{
/* values to the left of our box
(that do not border the other box on proc. 0) */
int ilower[2] = { 0,3 }, iupper[2] = { 0,4 };
int stencil_indices[1] = { 1 };
HYPRE_StructMatrixSetBoxValues(A, ilower, iupper, 1,
stencil_indices, values);
}
}

/* This is a collective call finalizing the matrix assembly.
The matrix is now ``ready to be used'' */
HYPRE_StructMatrixAssemble(A);
}

/* 4. Set up Struct Vectors for b and x. Each processor sets the vectors
corresponding to its boxes. */
{
/* Create an empty vector object */
HYPRE_StructVectorCreate(MPI_COMM_WORLD, grid, &b);
HYPRE_StructVectorCreate(MPI_COMM_WORLD, grid, &x);

/* Indicate that the vector coefficients are ready to be set */
HYPRE_StructVectorInitialize(b);
HYPRE_StructVectorInitialize(x);

/* Set the vector coefficients */
if (myid == 0)
{
int ilower[2] = { -3,1 }, iupper[2] = { -1,2 };
double values[6]; /* 6 grid points */

for (i = 0; i < 6; i++)
values[i] = 1.0;
HYPRE_StructVectorSetBoxValues(b, ilower, iupper, values);

for (i = 0; i < 6; i++)
values[i] = 0.0;
HYPRE_StructVectorSetBoxValues(x, ilower, iupper, values);
}
else if (myid == 1)
{
int ilower[2] = { 0,1 }, iupper[2] = { 2,4 };
double values[12]; /* 12 grid points */

for (i = 0; i < 12; i++)
values[i] = 1.0;
HYPRE_StructVectorSetBoxValues(b, ilower, iupper, values);

for (i = 0; i < 12; i++)
values[i] = 0.0;
HYPRE_StructVectorSetBoxValues(x, ilower, iupper, values);
}

/* This is a collective call finalizing the vector assembly.
The vectors are now ``ready to be used'' */
HYPRE_StructVectorAssemble(b);
HYPRE_StructVectorAssemble(x);
}

/* 5. Set up and use a solver (See the Reference Manual for descriptions
of all of the options.) */
{
/* Create an empty PCG Struct solver */
HYPRE_StructPCGCreate(MPI_COMM_WORLD, &solver);

/* Set some parameters */
HYPRE_StructPCGSetTol(solver, 1.0e-06); /* convergence tolerance */
HYPRE_StructPCGSetPrintLevel(solver, 2); /* amount of info. printed */

/* Setup and solve */
HYPRE_StructPCGSetup(solver, A, b, x);
HYPRE_StructPCGSolve(solver, A, b, x);
}

/* Save the solution for GLVis visualization, see vis/glvis-ex1.sh */
if (vis)
{
#ifdef HYPRE_EXVIS
GLVis_PrintStructGrid(grid, "vis/ex1.mesh", myid, NULL, NULL);
GLVis_PrintStructVector(x, "vis/ex1.sol", myid);
GLVis_PrintData( "vis/ex1.data", myid, num_procs);
#endif
}

/* Free memory */
HYPRE_StructGridDestroy(grid);
HYPRE_StructStencilDestroy(stencil);
HYPRE_StructMatrixDestroy(A);
HYPRE_StructVectorDestroy(b);
HYPRE_StructVectorDestroy(x);
HYPRE_StructPCGDestroy(solver);

/* Finalize Hypre */
HYPRE_Finalize();

/* Finalize MPI */
MPI_Finalize();

return (0);
}

Biên dịch chi hậu đắc đáo hypreTest.exe, thông quá mpi phương thức vận hành

mpiexec -n 2 hypreTest.exe

Kết quả như hạ

<C*b,b>: 1.800000e+01

Iters ||r||_C conv.rate ||r||_C/||b||_C

----- ------------ --------- ------------

1 2.509980e+00 0.591608 5.916080e-01

2 9.888265e-01 0.393958 2.330686e-01

3 4.572262e-01 0.462393 1.077693e-01

4 1.706474e-01 0.373223 4.022197e-02

5 7.473022e-02 0.437922 1.761408e-02

6 3.402624e-02 0.455321 8.020061e-03

7 1.214929e-02 0.357057 2.863616e-03

8 3.533113e-03 0.290808 8.327628e-04

9 1.343893e-03 0.380371 3.167586e-04

10 2.968745e-04 0.220906 6.997400e-05

11 5.329671e-05 0.179526 1.256215e-05

12 7.308483e-06 0.137128 1.722626e-06

13 7.411552e-07 0.101410 1.746920e-07

5 văn đương thuyết minh

  • 1
    Điểm tán
  • Thải
  • 10
    Thu tàng
    Giác đắc hoàn bất thác? Nhất kiện thu tàng
  • 打赏
    Đả thưởng
  • 0
    Bình luận

“Tương quan thôi tiến” đối nhĩ hữu bang trợ ma?

  • Phi thường một bang trợ
  • Một bang trợ
  • Nhất bàn
  • Hữu bang trợ
  • Phi thường hữu bang trợ
Đề giao
Bình luận
Thiêm gia hồng bao

Thỉnh điền tả hồng bao chúc phúc ngữ hoặc tiêu đề

Hồng bao cá sổ tối tiểu vi 10 cá

Nguyên

Hồng bao kim ngạch tối đê 5 nguyên

Đương tiền dư ngạch3.43Nguyên Tiền vãng sung trị >
Nhu chi phó:10.00Nguyên
Thành tựu nhất ức kỹ thuật nhân!
Lĩnh thủ hậu nhĩ hội tự động thành vi bác chủ hòa hồng bao chủ đích phấn ti Quy tắc
hope_wisdom
Phát xuất đích hồng bao

Đả thưởng tác giả

oceanstonetree

Nhĩ đích cổ lệ tương thị ngã sang tác đích tối đại động lực

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
Tảo mã chi phó:¥1
Hoạch thủ trung
Tảo mã chi phó

Nâm đích dư ngạch bất túc, thỉnh canh hoán tảo mã chi phó hoặcSung trị

Đả thưởng tác giả

Thật phóNguyên
Sử dụng dư ngạch chi phó
Điểm kích trọng tân hoạch thủ
Tảo mã chi phó
Tiền bao dư ngạch 0

Để khấu thuyết minh:

1. Dư ngạch thị tiền bao sung trị đích hư nghĩ hóa tệ, án chiếu 1:1 đích bỉ lệ tiến hành chi phó kim ngạch đích để khấu.
2. Dư ngạch vô pháp trực tiếp cấu mãi hạ tái, khả dĩ cấu mãi VIP, phó phí chuyên lan cập khóa trình.

Dư ngạch sung trị