پرش به محتویات

تحلیل استاتیکی خطی (الاستیسیته، موازی)

برای اجرای تحلیل استاتیکی (الاستیسیته) به‌صورت 4-موازی، از داده‌های tutorial/02_elastic_hinge_parallel استفاده کنید.

مدل تحلیل

مورد توضیح یادداشت مرجع
نوع تحلیل تحلیل استاتیکی خطی !SOLUTION,TYPE=STATIC
تعداد گره‌ها 84,056
تعداد المان‌ها 49,871
نوع المان المان چهاروجهی درجه دوم 10 گره‌ای !ELEMENT,TYPE=342 کتابخانه المان
نام ماده STEEL !MATERIAL,NAME=STEEL داده‌های ماده
خاصیت ماده ELASTIC !ELASTIC
شرط مرزی قید، بار متمرکز
حل‌گر ماتریسی CG/SSOR !SOLVER,METHOD=CG,PRECOND=1

ناحیه محاسباتی هر گره محاسباتی

شکل 4.2.1 ناحیه محاسباتی هر گره محاسباتی

محتوای تحلیل

کد FrontISTR را استخراج کنید، به دایرکتوری این مثال بروید و بررسی کنید که فایل‌های زیر که برای تحلیل لازم هستند

نام فایل نوع نقش
hecmw_ctrl.dat داده‌های کنترل کلی
hinge.cnt داده‌های کنترل تحلیل
hinge.msh داده‌های مش
hecmw_part_ctrl.dat داده‌های کنترل پارتیشن‌بندی مش داده‌های کنترلی که هنگام پارتیشن‌بندی مش توسط hecmw_part1 استفاده می‌شود

وجود داشته باشند.

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

خروجی:

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

تحلیل تنش با مقید کردن جابه‌جایی سطوح مقید و اعمال بار متمرکز به سطح بارگذاری انجام می‌شود.

داده‌های کنترل کلی، داده‌های کنترل تحلیل و داده‌های کنترل پارتیشن‌بندی مش در ادامه نشان داده شده‌اند.

داده‌های کنترل کلی hecmw_ctrl.dat

#
# برای تقسیم‌کنندهٔ مش
#
!MESH, NAME=part_in,TYPE=HECMW-ENTIRE # داده‌های مش اصلی که توسط hecmw_part1 تقسیم می‌شود
 hinge.msh
!MESH, NAME=part_out,TYPE=HECMW-DIST  # نام فایل پس از تقسیم توسط hecmw_part1
 hinge_4
#
# برای حل‌گر
#
!MESH, NAME=fstrMSH, TYPE=HECMW-DIST  # داده‌های مش پارتیشن‌بندی‌شده را مشخص کنید
 hinge_4
!CONTROL, NAME=fstrCNT                # داده‌های کنترل تحلیل را مشخص کنید
 hinge.cnt
!RESULT, NAME=fstrRES, IO=OUT         # داده‌های نتیجه را مشخص کنید
 hinge.res
!RESULT, NAME=vis_out, IO=OUT         # داده‌های بصری‌سازی را مشخص کنید
 hinge_vis

داده‌های کنترل تحلیل hinge.cnt

#  فایل کنترل FISTR
## کنترل تحلیل
!VERSION                   # نسخه قالب فایل را مشخص کنید
 3
!SOLUTION, TYPE=STATIC     # نوع تحلیل را مشخص کنید
!WRITE,RESULT              # خروجی داده‌های نتیجه را مشخص کنید
!WRITE,VISUAL              # خروجی داده‌های بصری‌سازی را مشخص کنید
## کنترل حل‌گر
### شرایط مرزی
!BOUNDARY
 BND0, 1, 3, 0.000000      # سطح مقید 1 را مشخص کنید
!BOUNDARY
 BND1, 1, 3, 0.000000      # سطح مقید 2 را مشخص کنید
!CLOAD
 CL0, 1, 0.01000           # سطح بارگذاری را مشخص کنید
### ماده
!MATERIAL, NAME=STEEL      # خواص ماده را مشخص کنید
!ELASTIC                   # ماده الاستیک را تعریف کنید
 210000.0, 0.3
!DENSITY                   # چگالی جرمی را تعریف کنید
 7.85e-6
### تنظیمات حل‌گر
!SOLVER,METHOD=CG,PRECOND=1,ITERLOG=YES,TIMELOG=YES  # حل‌گر را کنترل کنید
 10000, 2
 1.0e-08, 1.0, 0.0
## کنترل پس‌پردازش
!VISUAL,method=PSR         # روش بصری‌سازی را مشخص کنید
!surface_num=1             # تعداد سطوح در یک رندر سطحی
!surface 1                 # محتوای سطح را مشخص کنید
!output_type=VTK           # نوع فایل بصری‌سازی را مشخص کنید
!END                       # پایان داده‌های کنترل تحلیل را نشان می‌دهد

داده‌های کنترل پارتیشن‌بندی مش hecmw_part_ctrl.dat

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

روش اجرای تحلیل

برای اجرای FrontISTR با MPI، ابتدا داده‌های مش hinge.msh را به 4 دامنه تقسیم کنید.

hecmw_part1

خروجی:

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

فایل‌های جدیدی با نام‌های hinge_4.x و part.inp ایجاد می‌شوند.

ls

خروجی:

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

سپس فرمان اجرای FrontISTR یعنی fistr1 را با استفاده از MPI اجرا کنید.

mpirun -np 4 fistr1 -t 1

(اجرا با 4 فرایند MPI و 1 رشته 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 !!

وقتی FrontISTR Completed !! نمایش داده شود، تحلیل کامل شده است.

نتایج تحلیل

پس از پایان تحلیل، چند فایل جدید ایجاد می‌شود.

ls

خروجی:

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

فایل‌های *.res.* داده‌های نتیجه هستند و نتایج تحلیل FrontISTR برای هر گره MPI را در خود دارند. این فایل‌ها را می‌توان با REVOCAP_PrePost و ابزارهای مشابه نمایش داد.

فایل‌های *_vis_* داده‌های بصری‌سازی هستند و می‌توان آن‌ها را با نرم‌افزارهای عمومی بصری‌سازی نمایش داد. در این مثال خروجی با قالب VTK تولید می‌شود، بنابراین برای نمایش از ParaView یا ابزارهای مشابه استفاده کنید.

نتیجه تحلیل تنش فون‌میزس (نمایش با VTK)

شکل 4.2.2 نتیجه تحلیل تنش فون‌میزس (نمایش با VTK)

گزارش نتایج تحلیل 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