Bỏ qua

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

Miền tính toán của từng nút

Hình 4.2.1 Miền tính toán của từng nút

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.

tar xvf FrontISTR.tar.gz
cd FrontISTR/tutorial/02_elastic_hinge_parallel
ls

Kết quả thực thi:

hecmw_ctrl.dat  hecmw_part_ctrl.dat  hinge.cnt  hinge.msh

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

!PARTITION,TYPE=NODE-BASED,METHOD=PMETIS,DOMAIN=4,UCD=part.inp

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.

hecmw_part1

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.

ls

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.

mpirun -np 4 fistr1 -t 1

(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.

ls

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ị.

Kết quả phân tích ứng suất von Mises (hiển thị bằng VTK)

Hình 4.2.2 Kết quả phân tích ứng suất von Mises (hiển thị bằng VTK)

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
AI-assisted translation May contain errors Official docs Status