Phân tích tĩnh tuyến tính (đàn hồi, song song)¶
Để thực hiện phân tích tĩnh (đàn hồi) với 4 tiến trình song song, sử dụng dữ liệu trong tutorial/02_elastic_hinge_parallel.
Đối tượng phân tích¶
| Hạng mục | Nội dung | Ghi chú | Tham khảo |
|---|---|---|---|
| Loại phân tích | Phân tích tĩnh tuyến tính | !SOLUTION,TYPE=STATIC | |
| Số nút | 84,056 | ||
| Số phần tử | 49,871 | ||
| Loại phần tử | Phần tử tứ diện bậc hai 10 nút | !ELEMENT,TYPE=342 | Thư viện phần tử |
| Tên thuộc tính vật liệu | STEEL | !MATERIAL,NAME=STEEL | Dữ liệu vật liệu |
| Tính chất vật liệu | ELASTIC | !ELASTIC | |
| Điều kiện biên | Ràng buộc, tải tập trung | ||
| Phương pháp giải ma trận | CG/SSOR | !SOLVER,METHOD=CG,PRECOND=1 |

Nội dung phân tích¶
Giải nén mã FrontISTR, chuyển đến thư mục của ví dụ này và kiểm tra rằng các tệp cần thiết cho phân tích
| Tên tệp | Loại | Vai trò |
|---|---|---|
| hecmw_ctrl.dat | Dữ liệu điều khiển tổng thể | |
| hinge.cnt | Dữ liệu điều khiển phân tích | |
| hinge.msh | Dữ liệu lưới | |
| hecmw_part_ctrl.dat | Dữ liệu điều khiển phân chia miền | Dữ liệu điều khiển khi hecmw_part1 phân chia dữ liệu lưới thành các miền |
đều tồn tại.
Kết quả thực thi:
Thực hiện phân tích ứng suất bằng cách ràng buộc chuyển vị của các bề mặt cố định và áp dụng tải tập trung lên bề mặt chịu tải.
Dữ liệu điều khiển tổng thể, dữ liệu điều khiển phân tích và dữ liệu điều khiển phân chia miền được trình bày dưới đây.
Dữ liệu điều khiển tổng thể hecmw_ctrl.dat¶
#
# cho bộ phân chia miền
#
!MESH, NAME=part_in,TYPE=HECMW-ENTIRE # Dữ liệu lưới gốc được hecmw_part1 phân chia
hinge.msh
!MESH, NAME=part_out,TYPE=HECMW-DIST # Tên tệp sau khi được hecmw_part1 phân chia
hinge_4
#
# cho bộ giải
#
!MESH, NAME=fstrMSH, TYPE=HECMW-DIST # Chỉ định dữ liệu lưới đã phân chia
hinge_4
!CONTROL, NAME=fstrCNT # Chỉ định dữ liệu điều khiển phân tích
hinge.cnt
!RESULT, NAME=fstrRES, IO=OUT # Chỉ định dữ liệu kết quả
hinge.res
!RESULT, NAME=vis_out, IO=OUT # Chỉ định dữ liệu trực quan hóa
hinge_vis
Dữ liệu điều khiển phân tích hinge.cnt¶
# Tệp điều khiển cho FISTR
## Điều khiển phân tích
!VERSION # Chỉ định phiên bản định dạng tệp
3
!SOLUTION, TYPE=STATIC # Chỉ định loại phân tích
!WRITE,RESULT # Chỉ định xuất dữ liệu kết quả
!WRITE,VISUAL # Chỉ định xuất dữ liệu trực quan hóa
## Điều khiển bộ giải
### Điều kiện biên
!BOUNDARY
BND0, 1, 3, 0.000000 # Chỉ định bề mặt cố định 1
!BOUNDARY
BND1, 1, 3, 0.000000 # Chỉ định bề mặt cố định 2
!CLOAD
CL0, 1, 0.01000 # Chỉ định bề mặt chịu tải
### Vật liệu
!MATERIAL, NAME=STEEL # Chỉ định thuộc tính vật liệu
!ELASTIC # Định nghĩa vật liệu đàn hồi
210000.0, 0.3
!DENSITY # Định nghĩa khối lượng riêng
7.85e-6
### Thiết lập bộ giải
!SOLVER,METHOD=CG,PRECOND=1,ITERLOG=YES,TIMELOG=YES # Điều khiển bộ giải
10000, 2
1.0e-08, 1.0, 0.0
## Điều khiển hậu xử lý
!VISUAL,method=PSR # Chỉ định phương pháp trực quan hóa
!surface_num=1 # Số bề mặt trong một lần kết xuất bề mặt
!surface 1 # Chỉ định nội dung bề mặt
!output_type=VTK # Chỉ định loại tệp trực quan hóa
!END # Biểu thị kết thúc dữ liệu điều khiển phân tích
Dữ liệu điều khiển phân chia miền hecmw_part_ctrl.dat¶
Quy trình phân tích¶
Để chạy FrontISTR bằng MPI, trước tiên chia dữ liệu lưới hinge.msh thành 4 miền.
Kết quả thực thi:
Oct 07 11:04:52 Info: Reading mesh file...
Oct 07 11:04:52 Info: Starting domain decomposition...
Oct 07 11:04:52 TH(0/8) Info: Creating local mesh for domain #0 ...
Oct 07 11:04:52 TH(2/8) Info: Creating local mesh for domain #1 ...
Oct 07 11:04:52 TH(6/8) Info: Creating local mesh for domain #2 ...
Oct 07 11:04:52 TH(7/8) Info: Creating local mesh for domain #3 ...
Oct 07 11:04:52 Info: Domain decomposition done
Các tệp mới có tên hinge_4.x và part.inp được tạo ra.
Kết quả thực thi:
hecmw_ctrl.dat hecmw_part_ctrl.dat hinge.msh hinge_4.1 hinge_4.3
hecmw_part.log hinge.cnt hinge_4.0 hinge_4.2 part.inp
Tiếp theo, chạy lệnh thực thi FrontISTR fistr1 bằng MPI.
(Thực thi với 4 tiến trình MPI và 1 luồng OpenMP)
##################################################################
# FrontISTR #
##################################################################
---
version: 5.1.0
git_hash: acab000c8c633b7b9d596424769e14363f720841
build:
date: 2020-10-05T07:39:55Z
MPI: enabled
OpenMP: enabled
option: "-p --with-tools --with-refiner --with-metis --with-mumps --with-lapack --with-ml --with-mkl "
HECMW_METIS_VER: 5
execute:
date: 2020-10-07T11:07:21+0900
processes: 4
threads: 1
cores: 4
host:
0: flow-p06
1: flow-p06
2: flow-p06
3: flow-p06
---
...
Step control not defined! Using default step=1
fstr_setup: OK
Start visualize PSF 1 at timestep 0
loading step= 1
sub_step= 1, current_time= 0.0000E+00, time_inc= 0.1000E+01
loading_factor= 0.0000000 1.0000000
### 3x3 BLOCK CG, SSOR, 2
1 2.183567E+00
2 2.423900E+00
3 2.939117E+00
...
2084 1.158654E-08
2085 1.032414E-08
2086 9.436273E-09
### Relative residual = 9.43589E-09
### summary of linear solver
2086 iterations 9.435886E-09
set-up time : 4.695220E-02
solver time : 7.103976E+01
solver/comm time : 1.929294E+01
solver/matvec : 1.544405E+01
solver/precond : 3.243278E+01
solver/1 iter : 3.405549E-02
work ratio (%) : 7.284205E+01
Start visualize PSF 1 at timestep 1
### FSTR_SOLVE_NLGEOM FINISHED!
====================================
TOTAL TIME (sec) : 72.42
pre (sec) : 0.29
solve (sec) : 72.13
====================================
FrontISTR Completed !!
Khi hiển thị FrontISTR Completed !!, phân tích đã hoàn tất.
Kết quả phân tích¶
Sau khi phân tích hoàn tất, một số tệp mới được tạo ra.
Kết quả thực thi:
0.log FSTR.dbg.3 hinge.cnt hinge.res.2.1 hinge_vis_psf.0000
1.log FSTR.msg hinge.msh hinge.res.3.0 hinge_vis_psf.0000.pvtu
2.log FSTR.sta hinge.res.0.0 hinge.res.3.1 hinge_vis_psf.0001
3.log hecmw_ctrl.dat hinge.res.0.1 hinge_4.0 hinge_vis_psf.0001.pvtu
FSTR.dbg.0 hecmw_part.log hinge.res.1.0 hinge_4.1 part.inp
FSTR.dbg.1 hecmw_part_ctrl.dat hinge.res.1.1 hinge_4.2
FSTR.dbg.2 hecmw_vis.ini hinge.res.2.0 hinge_4.3
Các tệp *.res.* là dữ liệu kết quả và chứa kết quả phân tích cho từng nút MPI của FrontISTR. Có thể hiển thị chúng bằng REVOCAP_PrePost và các công cụ tương tự.
Các tệp *_vis_* là dữ liệu trực quan hóa và có thể hiển thị bằng phần mềm trực quan hóa đa dụng. Trong ví dụ này, dữ liệu được xuất ở định dạng VTK, vì vậy có thể dùng ParaView hoặc phần mềm tương tự để hiển thị.

Nhật ký kết quả phân tích 0.log¶
fstr_setup: OK
#### Result step= 0
##### Local Summary @Node :Max/IdMax/Min/IdMin####
//U1 0.0000E+00 1 0.0000E+00 1
//U2 0.0000E+00 1 0.0000E+00 1
//U3 0.0000E+00 1 0.0000E+00 1
//E11 0.0000E+00 1 0.0000E+00 1
//E22 0.0000E+00 1 0.0000E+00 1
//E33 0.0000E+00 1 0.0000E+00 1
//E12 0.0000E+00 1 0.0000E+00 1
//E23 0.0000E+00 1 0.0000E+00 1
//E31 0.0000E+00 1 0.0000E+00 1
//S11 0.0000E+00 1 0.0000E+00 1
//S22 0.0000E+00 1 0.0000E+00 1
//S33 0.0000E+00 1 0.0000E+00 1
//S12 0.0000E+00 1 0.0000E+00 1
//S23 0.0000E+00 1 0.0000E+00 1
//S31 0.0000E+00 1 0.0000E+00 1
//SMS 0.0000E+00 1 0.0000E+00 1
##### Local Summary @Element :Max/IdMax/Min/IdMin####
//E11 0.0000E+00 1 0.0000E+00 1
//E22 0.0000E+00 1 0.0000E+00 1
//E33 0.0000E+00 1 0.0000E+00 1
//E12 0.0000E+00 1 0.0000E+00 1
//E23 0.0000E+00 1 0.0000E+00 1
//E31 0.0000E+00 1 0.0000E+00 1
//S11 0.0000E+00 1 0.0000E+00 1
//S22 0.0000E+00 1 0.0000E+00 1
//S33 0.0000E+00 1 0.0000E+00 1
//S12 0.0000E+00 1 0.0000E+00 1
//S23 0.0000E+00 1 0.0000E+00 1
//S31 0.0000E+00 1 0.0000E+00 1
//SMS 0.0000E+00 1 0.0000E+00 1
##### Global Summary @Node :Max/IdMax/Min/IdMin####
//U1 0.0000E+00 14 0.0000E+00 14
//U2 0.0000E+00 14 0.0000E+00 14
//U3 0.0000E+00 14 0.0000E+00 14
//E11 0.0000E+00 14 0.0000E+00 14
//E22 0.0000E+00 14 0.0000E+00 14
//E33 0.0000E+00 14 0.0000E+00 14
//E12 0.0000E+00 14 0.0000E+00 14
//E23 0.0000E+00 14 0.0000E+00 14
//E31 0.0000E+00 14 0.0000E+00 14
//S11 0.0000E+00 14 0.0000E+00 14
//S22 0.0000E+00 14 0.0000E+00 14
//S33 0.0000E+00 14 0.0000E+00 14
//S12 0.0000E+00 14 0.0000E+00 14
//S23 0.0000E+00 14 0.0000E+00 14
//S31 0.0000E+00 14 0.0000E+00 14
//SMS 0.0000E+00 14 0.0000E+00 14
##### Global Summary @Element :Max/IdMax/Min/IdMin####
//E11 0.0000E+00 14 0.0000E+00 14
//E22 0.0000E+00 14 0.0000E+00 14
//E33 0.0000E+00 14 0.0000E+00 14
//E12 0.0000E+00 14 0.0000E+00 14
//E23 0.0000E+00 14 0.0000E+00 14
//E31 0.0000E+00 14 0.0000E+00 14
//S11 0.0000E+00 14 0.0000E+00 14
//S22 0.0000E+00 14 0.0000E+00 14
//S33 0.0000E+00 14 0.0000E+00 14
//S12 0.0000E+00 14 0.0000E+00 14
//S23 0.0000E+00 14 0.0000E+00 14
//S31 0.0000E+00 14 0.0000E+00 14
//SMS 0.0000E+00 14 0.0000E+00 14
#### Result step= 1
##### Local Summary @Node :Max/IdMax/Min/IdMin####
//U1 7.4906E-03 50978 -6.9368E-04 51989
//U2 6.1150E-05 2426 -1.2781E-04 40202
//U3 1.8720E-04 2712 -5.5024E-03 67858
//E11 1.3024E-03 28591 -1.2844E-03 28580
//E22 2.1102E-04 24593 -2.0594E-04 205
//E33 6.8634E-04 51036 -5.9603E-04 67794
//E12 5.2186E-04 209 -5.4559E-04 28641
//E23 2.5417E-04 28521 -3.2956E-04 187
//E31 7.2396E-04 36168 -9.5847E-04 28591
//S11 3.6844E+02 28591 -3.6387E+02 28580
//S22 1.5841E+02 28591 -1.5743E+02 28580
//S33 1.5959E+02 51036 -1.5643E+02 28580
//S12 4.2150E+01 209 -4.4067E+01 28641
//S23 2.0529E+01 28521 -2.6618E+01 187
//S31 5.8474E+01 36168 -7.7415E+01 28591
//SMS 2.5134E+02 28591 3.5157E-02 12726
##### Local Summary @Element :Max/IdMax/Min/IdMin####
//E11 1.0115E-03 9959 -9.7870E-04 9942
//E22 1.5457E-04 13694 -1.4639E-04 7189
//E33 5.9415E-04 44563 -5.0497E-04 47965
//E12 3.5513E-04 9579 -3.9083E-04 9600
//E23 2.0608E-04 9563 -2.3480E-04 9589
//E31 5.7633E-04 43142 -4.8019E-04 9571
//S11 2.6038E+02 9573 -2.5605E+02 9571
//S22 1.0144E+02 9573 -1.0100E+02 9571
//S33 1.3921E+02 44569 -1.1431E+02 47974
//S12 2.8683E+01 9579 -3.1567E+01 9600
//S23 1.6645E+01 9563 -1.8964E+01 9589
//S31 4.6550E+01 43142 -3.8785E+01 9571
//SMS 2.0350E+02 9959 3.4602E-02 28
##### Global Summary @Node :Max/IdMax/Min/IdMin####
//U1 3.9115E-02 82452 -7.1083E-04 65233
//U2 7.4504E-05 354 -5.8813E-04 696
//U3 5.9493E-04 84 -5.8751E-03 61080
//E11 1.3777E-03 130 -1.3653E-03 77625
//E22 4.9199E-04 61 -5.4370E-04 102
//E33 6.8634E-04 51036 -6.1176E-04 30070
//E12 7.1556E-04 27808 -6.8093E-04 27863
//E23 5.3666E-04 56 -5.4347E-04 82
//E31 7.2396E-04 36168 -9.6621E-04 130
//S11 3.8626E+02 130 -3.6387E+02 28580
//S22 1.6628E+02 130 -1.5743E+02 28580
//S33 1.6502E+02 30033 -1.5643E+02 28580
//S12 5.7795E+01 27808 -5.4998E+01 27863
//S23 4.3345E+01 56 -4.3896E+01 82
//S31 5.8474E+01 36168 -7.8040E+01 130
//SMS 2.8195E+02 77625 1.2755E-02 75112
##### Global Summary @Element :Max/IdMax/Min/IdMin####
//E11 1.0731E-03 10485 -1.2123E-03 41779
//E22 3.9143E-04 33536 -4.1389E-04 22892
//E33 5.9415E-04 44563 -5.0497E-04 47965
//E12 5.3264E-04 9163 -5.0405E-04 9161
//E23 3.9226E-04 33024 -4.1464E-04 23465
//E31 5.7633E-04 43142 -4.8019E-04 9571
//S11 2.7231E+02 9180 -2.9763E+02 41779
//S22 1.0792E+02 9180 -1.0656E+02 41779
//S33 1.3921E+02 44569 -1.1431E+02 47974
//S12 4.3021E+01 9163 -4.0712E+01 9161
//S23 3.1683E+01 33024 -3.3490E+01 23465
//S31 4.6550E+01 43142 -3.8785E+01 9571
//SMS 2.4057E+02 41779 3.1383E-02 38687