انتقل إلى المحتوى

التحليل الساكن الخطي (المرونة، التوازي)

لإجراء تحليل ساكن (مرونة) بتنفيذ متوازٍ على 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

#
# for partitioner
#
!MESH, NAME=part_in,TYPE=HECMW-ENTIRE # البيانات الأصلية للشبكة التي سيقسمها hecmw_part1
 hinge.msh
!MESH, NAME=part_out,TYPE=HECMW-DIST  # اسم الملف بعد التقسيم بواسطة hecmw_part1
 hinge_4
#
# for solver
#
!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

#  Control File for FISTR
## Analysis Control
!VERSION                   # تحديد إصدار تنسيق الملف
 3
!SOLUTION, TYPE=STATIC     # تحديد نوع التحليل
!WRITE,RESULT              # تحديد إخراج بيانات النتائج
!WRITE,VISUAL              # تحديد إخراج بيانات التصور
## Solver Control
### Boundary Condition
!BOUNDARY
 BND0, 1, 3, 0.000000      # تحديد السطح المقيّد 1
!BOUNDARY
 BND1, 1, 3, 0.000000      # تحديد السطح المقيّد 2
!CLOAD
 CL0, 1, 0.01000           # تحديد سطح التحميل
### Material
!MATERIAL, NAME=STEEL      # تحديد خصائص المادة
!ELASTIC                   # تعريف المادة المرنة
 210000.0, 0.3
!DENSITY                   # تعريف كثافة الكتلة
 7.85e-6
### Solver Setting
!SOLVER,METHOD=CG,PRECOND=1,ITERLOG=YES,TIMELOG=YES  # التحكم في الحالّ
 10000, 2
 1.0e-08, 1.0, 0.0
## Post Control
!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 إلى أربعة مجالات.

hecmw_part1

ناتج التنفيذ:

Oct 15 23:55:30 Info: Reading mesh file...
Oct 15 23:55:30 Warning: !ZERO is not defined; using -2.731500E+02 as absolute zero, assuming input temperatures are in Celsius. Define !ZERO as 0.0 if they are in Kelvin
Oct 15 23:55:31 Info: Mesh loaded: nodes=84056, elements=49871
Oct 15 23:55:31 Info: Starting domain decomposition...
Oct 15 23:55:31 TH(1/8) Info: Creating local mesh for domain #1 ...
Oct 15 23:55:31 TH(6/8) Info: Creating local mesh for domain #3 ...
Oct 15 23:55:31 TH(4/8) Info: Creating local mesh for domain #2 ...
Oct 15 23:55:31 TH(2/8) Info: Creating local mesh for domain #0 ...
Oct 15 23:55:32 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 وخيط OpenMP واحد)

##################################################################
#                         FrontISTR                              #
##################################################################
---
version:      6.0
git_hash:     443d30f81d945e141e7bd3011dc7701ce3084804
build:
  date:       2026-10-15T23:34:12%z
  MPI:       "3.1, Open MPI 4.0.1"
  OpenMP:     201107
  OpenACC:    disabled
  option:    "-p --with-tools --with-metis --with-mumps --with-lapack --with-ml --with-netcdf "
execute:
  date:       2026-10-15T23:56:21+0900
  processes:  4
  threads:    1
  cores:      4
  MPI:       "3.1, FUJITSU MPI Library 4.0.0 (4.0.1fj4.0.0)"
  host:
    0: wo6079
    1: wo6079
    2: wo6079
    3: wo6079
---
 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.160296E-08
   2085    1.033416E-08
   2086    9.443766E-09
### Relative residual = 9.44177E-09

### summary of linear solver
      2086 iterations      9.441772E-09
    set-up time      :     7.551909E-02
    solver time      :     7.867191E+01
    solver/comm time :     4.397089E-01
    solver/matvec    :     3.454937E+01
    solver/precond   :     5.774887E+01
    solver/1 iter    :     3.771424E-02
    work ratio (%)   :     9.944109E+01

 Start visualize PSF 1 at timestep 1
### FSTR_SOLVE_NLGEOM FINISHED!

 ====================================
    TOTAL TIME (sec) :     83.58
           pre (sec) :      0.47
         solve (sec) :     83.10
 ====================================
 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