SlideShare a Scribd company logo
2
Most read
14
Most read
16
Most read
© CADFEM 2013
Новожилов Юрий
yury.novozhilov@cadfem-cis.ru
User Defined Materials for LS-DYNA
|
• Средства разработки:
– Intel Parallel Studio XE 2013 с Intel Compiler XE v13.1
– Visual Studio 2008, 2010, 2012 или 11
• Дистрибутивы LS-DYNA:
– http://www.lstc.com/download/ls-dyna_(win)
– http://ftp.lstc.com/user/pc-dyna/
• Компоненты LS-DYNA для сборки:
– ls-dyna_smp_d_R711_winx64_ifort131_lib.zip – двойная точность
– ls-dyna_smp_s_R711_winx64_ifort131_lib.zip – одинарная точность
Установка необходимых компонентов для разработки
2
|
• Intel предоставляет бесплатные лицензии на свои средства разработки для
студентов, научно-исследовательских групп, преподавателей и разработчиков
ПО с открытым исходным кодом
• https://software.intel.com/en-us/qualify-for-free-software
Не коммерческая среда разработки для LS-DYNA
3
|
• Билиотеки
– *.a
• Объекты
– *.o
• Подключаемый код
– *.inc
• Исходные тексты на Fortran
– *.f
• Инструкции по сборке
– makefile
Состав ls-dyna_smp_d_R711_winx64_ifort131_lib
4
|
• Подготовка окружения для работы с командной строкой компилятора:
– STDIN:
◦ "%ProgramFiles(x86)%IntelComposer XE 2013bincompilervars_arch.bat" intel64
– STDOUT:
◦ Intel(R) Parallel Studio XE 2013
◦ Copyright (C) 1985-2012 Intel Corporation. All rights reserved.
◦ Intel(R) Composer XE 2013 (package 089)
◦ Setting environment for using Microsoft Visual Studio 2010 x64 tools.
• Проверка версии компилятора Fortran:
– STDIN:
◦ ifort
– STDOUT:
◦ Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version
13.0.0.089 Build 20120731
◦ Copyright (C) 1985-2012 Intel Corporation. All rights reserved.
◦ ifort: command line error: no files specified; for help type "ifort /help"
Проверка работоспособности окружения
5
|
• Запуск сборки исполняемого файла в подготовленном окружении
– STDIN:
◦ .ls-dyna_smp_d_R711_winx64_ifort131_libnmake
– STDOUT:
◦ -out:lsdyna.exe
◦ -subsystem:console
◦ -stack:1800000000
◦ -force
◦ -nodefaultlib:msvcrt.lib
◦ -nodefaultlib:vcomp.lib
◦ dyn21.obj
◦ dyn21b.obj
◦ couple2other_user.obj
◦ libdyna.lib
◦ libansys.lib
◦ shell32.lib
◦ user32.lib
◦ comctl32.lib
◦ comdlg32.lib
◦ Iphlpapi.lib
◦ gdi32.lib
Компиляций LS-DYNA
6
|
*MAT_USER_DEFINED_MATERIAL_MODELS
$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
$ mid ro mt lmc nhv iortho ibulk ig
1 7850 41 4 0 0 3 4
$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
$ ivect ifail itherm ihyper ieos
0 0 0 0 0
$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
$ p1 = e p2 = pr p3 = bulk p4 = g p5 p6 p7 p8
2e11 0.3 1.6667e11 7.6923e10 0.0 0.0 0.0 0.0
$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
*MAT_USER_DEFINED_MATERIAL_MODELS
7
|
*MAT_USER_DEFINED_MATERIAL_MODELS
$ mid ro mt lmc nhv iortho ibulk ig
1 7850 41 4 0 0 3 4
$ ivect ifail itherm ihyper ieos
0 0 0 0 0
$ p1 = e p2 = pr p3 = bulk p4 = g p5 p6 p7 p8
2e11 0.3 1.6667e11 7.6923e10 0.0 0.0 0.0 0.0
*MAT_ELASTIC
$# mid ro e pr da db not used
1 7850 2e11 0.3 0.0 0.0 0
*MAT_USER_DEFINED_MATERIAL_MODELS
8
|
• mid
– Material identification
– Идентификатор материала в .k
• ro
– Mass density
– Плотность
• mt
– Material type
– Номер пользовательской процедуры
• lmc
– Length of material constant
– Длина массива констант материала
• nhv
– Number of history variables to be stored
– Количество сохраняемых переменных истории
• iortho
– Включатель ортотропии/точечной сварки
• ibulk
– Позиция модуля объемного сжатия в наборе констант
материала
• ig
– Позиция модуля сдвига в наборе констант материала
• ivect
– Vectorization flag
• ifail
– Failure flag
• itherm
– Temperature flag
• ihyper
– Deformation gradient flag
• ieos
– Equation of state
*MAT_USER_DEFINED_MATERIAL_MODELS
9
|
• Все пользовательские материалы должны быть включены в файл
.ls-dyna_smp_d_R711_winx64_ifort131_libdyna21.F
• Шаблоны типовых материалов уже содержаться в этом файле
• LS-DYNA скомпилирована уже с типовыми шаблонами
Создаем свой материал
10
|
Схема работы интерфейса пользовательского материала
11
LS-DYNA вызывает процедуры для элементов из libdyna.a
•call usermat()
Вызов про процедур usermat() для элемента из dyna21.f
•solids: call usermathn()
•shells: call usermats()
•beams: call usermatb()
Вызов под процедуры umatxx() для материала из dyna21.f
•call umat41()
Вычисления внутри umatxx()
•call umat41()
|
7 позиция 73 позиция
| |
+--------------------------------------------------------+
| |
subroutine umat41 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt,
1 temper,failel,crv,cma,qmat,elsiz,idele)
| |
+---------------------------------------------------------+
| |
6 позиция 73 позиция
Базовый синтаксис Fortran
12
|
• cm(i) – константы материала
• eps(i) – деформации
• sig(i) – напряжения
• hsv(i) – переменные истории
• dt1 – шаг по времени
• сapa – reduction factor for transverse shear
• etype:
– eq."solid" for solid elements
– eq."sld2d" for shell forms 13, 14, and 15 (2D
solids)
– eq."shl_t" for shell forms 25, 26, and 27 (shells
with thickness stretch)
– eq."shell" for all other shell elements plus thick
shell forms 1 and 2
– eq."tshel" for thick shell forms 3 and 5
– eq."hbeam" for beam element forms 1 and 11
– eq."tbeam" for beam element form 3 (truss)
– eq."dbeam" for beam element form 6 (discrete)
– eq."beam " for all other beam elements
• tt – текущее время
• temper – текущая температура
• failel – flag for failure, set to .true. to fail an
integration point,
– if .true. on input the integration point has failed
earlier
• crv – array representation of curves in
keyword deck
• cma – additional memory for material data
defined by LMCA at 6th field of 2nd crad of
*DATA_USER_DEFINED
• elsiz – characteristic element size
• idele – element id
Зарезервированные переменные
13*LS-DYNA® KEYWORD USER'S MANUAL VOLUME I, APPENDIX A: User Defined Materials
|
Вычисления для элементов типа SOLID
14
Код Физический смысл
g2 =abs(cm(1))/(1.+cm(2))
g =.5*g2
Модуль сдвига
G=
𝐸
2 1+𝜈
davg=(-eps(1)-eps(2)-eps(3))/3.
Первый инвариант тензора
деформаций
𝑆 =
𝜀1 + 𝜀2 + 𝜀3
3
p=-davg*abs(cm(1))/(1.-2.*cm(2))
𝐾 =
𝐸
1 − 2𝜈
; 𝑃 = 𝑆𝐾
sig(1)=sig(1)+p+g2*(eps(1)+davg)
sig(2)=sig(2)+p+g2*(eps(2)+davg)
sig(3)=sig(3)+p+g2*(eps(3)+davg)
σ𝑖
𝑛
= σ𝑖
𝑛−1
+ 𝑃 𝑛 + 2𝐺 𝜀𝑖
𝑛
− 𝑆
sig(4)=sig(4)+g*eps(4)
sig(5)=sig(5)+g*eps(5)
sig(6)=sig(6)+g*eps(6)
σ𝑖𝑗
𝑛
= σ𝑖𝑗
𝑛−1
+ 𝐺𝜀𝑖𝑗
𝑛
|
Вычисления для элементов типа SHELL
15
Код Физический смысл
gc =capa*g 𝐺 𝑘 = κ𝐺
q1=abs(cm(1))*cm(2)/((1.0+cm(2))*(1.0-
2.0*cm(2)))
q3=1./(q1+g2)
λ =
E𝜈
1 + 𝜈 1 − 2𝜈
; μ =
1
𝑄1 + 2𝐺
ru.wikipedia.org/wiki/Параметры_Ламе
eps(3)=-q1*(eps(1)+eps(2))*q3
davg=(-eps(1)-eps(2)-eps(3))/3.
p=-davg*abs(cm(1))/(1.-2.*cm(2))
𝜀3 = −λμ(𝜀1 + 𝜀2)
𝑆 =
𝜀1 + 𝜀2 + 𝜀3
3
𝐾 =
𝐸
1 − 2𝜈
; 𝑃 = 𝑆𝐾
sig(1)=sig(1)+p+g2*(eps(1)+davg)
sig(2)=sig(2)+p+g2*(eps(2)+davg)
sig(3)=0.0
sig(4)=sig(4)+g *eps(4)
sig(5)=sig(5)+gc*eps(5)
sig(6)=sig(6)+gc*eps(6)
|
• Эрозия материала включается при присвоении failel значения .true. или
соответствующим элементам массива failels значения .true. для
векторизованной формы
Эрозия материала
16
|
c *=== Hello, LS-DYNA Users! ===*
c23456+--------------------------------------------------------+
if (ncycle.eq.1) then
if (cm(16).ne.1234567) then
call usermsg('mat41')
write(*,*)
write(*,*)'+----------------------------------------+'
write(*,*)'| This is output test by Yury Novozhilov |'
write(*,*)'+----------------------------------------+'
write(*,*)' E = ', cm(1)
write(*,*)' nu = ', cm(2)
write(*,*)
endif
endif
c23456+--------------------------------------------------------+
Работы с STDOUT в LS-DYNA
17
|
Пример работы
18
|
*MAT_USER_DEFINED_MATERIAL_MODELS
$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
$ mid ro mt lmc nhv iortho ibulk ig
1 7850 41 5 0 0 3 4
$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
$ ivect ifail itherm ihyper ieos
0 1 0 0 0
$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
$ p1 = e p2 = pr p3 = bulk p4 = g p5 p6 p7 p8
2e11 0.3 1.6667e11 7.6923e10 500e6 0.0 0.0 0.0
$---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
Эрозия материала
19
|
c +--------------------------------------------------------+
c | Von Mises Stress failure |
c +--------------------------------------------------------+
sig_eqv=sqrt((
1 (sig(1)-sig(2))**2+
2 (sig(2)-sig(3))**2+
3 (sig(3)-sig(1))**2+
4 6*(sig(4)**2+sig(5)**2+sig(6)**2)
5 )/2)
if (sig_eqv.gt.cm(5)) failel=.true.
c +--------------------------------------------------------+
Реализация на уровне кода
20
|
c +--------------------------------------------------------+
c | Simulation stop |
c +--------------------------------------------------------+
STOP
c +--------------------------------------------------------+
Остановка расчета
21
|
• Вырезаем полный текст под процедуры из dyn21.F в отдельный *.F файл,
например umat41.F
• Система сборки отслеживает изменения только в файле dyn21.F
• Подключаем внешний файл из dyn21.F:
c +--------------------------------------------------------+
include 'umat41.F'
c +--------------------------------------------------------+
Выделение под процедуры в отдельный файл
22
|
Спасибо за внимание!
23

More Related Content

PPTX
User material Development in LS Dyna
PPT
Designing with plastics
PDF
corruge pipe report.pdf
PPTX
Pro E/Mold Design (Pro/MOLDESIGN)
PDF
Mechanisms in Modern Engineering Design, Volume 3 Gear Mechanisms
PDF
Mechanisms in Modern Engineering Design, Volume 1 Lever Mechanisms
PDF
Mechanisms in Modern Engineering Design, Volume 5 Hydraulic, Pneumatic and El...
User material Development in LS Dyna
Designing with plastics
corruge pipe report.pdf
Pro E/Mold Design (Pro/MOLDESIGN)
Mechanisms in Modern Engineering Design, Volume 3 Gear Mechanisms
Mechanisms in Modern Engineering Design, Volume 1 Lever Mechanisms
Mechanisms in Modern Engineering Design, Volume 5 Hydraulic, Pneumatic and El...

More from Yury Novozhilov (20)

PPTX
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPC
PPTX
Работа решателей Ansys на российском интерконнекте Ангара
PPTX
Методики моделирования взрывов в ANSYS LS-DYNA
PPTX
Топологическая оптимизация конструкций
PPTX
Оптимальное проектирование топологии в ANSYS 18
PPTX
Высокопроизводительные решения в ANSYS 18
PPTX
Aппаратное обеспечения для решения задач механики сыпучих сред
PPTX
Продольный спуск судна на воду в ALE постановке. Работы с FSI и многофазными ...
PPTX
Радиопрозрачный композитный кожух параболической антенны
PPTX
Железобетонные конструкции под воздействием ударных нагрузок в LS-DYNA
PPTX
Моделирование продольного спуска судна на воду
PPTX
Конечно элементное исследование пространственного напряженного состояния прош...
PPTX
Многокритериальная оптимизация металлоконструкции архитектурного элемента
PPTX
Конечно-элементный анализ прочности и долговечности узла телекоммуникационной...
PPTX
Granary Square – King Cross Lighting Mast
PPTX
Моделирование и анализ прочности сэндвич-панели в ANSYS
PPTX
КЭ анализ пространственного напряженного состояния прошитой стекловолокнистой...
PPTX
Прикладные задачи оптимизации формы и топологии конструкций в КЭ моделировании
PPTX
ANSYS EKM – эффективное управление данными инженерных расчетов в процессе раз...
PPTX
Автоматизированные рабочие места интерактивные расчетные методики
Облачные технологии и решений ANSYS. Новые возможности ANSYS HPC
Работа решателей Ansys на российском интерконнекте Ангара
Методики моделирования взрывов в ANSYS LS-DYNA
Топологическая оптимизация конструкций
Оптимальное проектирование топологии в ANSYS 18
Высокопроизводительные решения в ANSYS 18
Aппаратное обеспечения для решения задач механики сыпучих сред
Продольный спуск судна на воду в ALE постановке. Работы с FSI и многофазными ...
Радиопрозрачный композитный кожух параболической антенны
Железобетонные конструкции под воздействием ударных нагрузок в LS-DYNA
Моделирование продольного спуска судна на воду
Конечно элементное исследование пространственного напряженного состояния прош...
Многокритериальная оптимизация металлоконструкции архитектурного элемента
Конечно-элементный анализ прочности и долговечности узла телекоммуникационной...
Granary Square – King Cross Lighting Mast
Моделирование и анализ прочности сэндвич-панели в ANSYS
КЭ анализ пространственного напряженного состояния прошитой стекловолокнистой...
Прикладные задачи оптимизации формы и топологии конструкций в КЭ моделировании
ANSYS EKM – эффективное управление данными инженерных расчетов в процессе раз...
Автоматизированные рабочие места интерактивные расчетные методики
Ad

User Defined Materials in LS-DYNA

  • 1. © CADFEM 2013 Новожилов Юрий yury.novozhilov@cadfem-cis.ru User Defined Materials for LS-DYNA
  • 2. | • Средства разработки: – Intel Parallel Studio XE 2013 с Intel Compiler XE v13.1 – Visual Studio 2008, 2010, 2012 или 11 • Дистрибутивы LS-DYNA: – http://www.lstc.com/download/ls-dyna_(win) – http://ftp.lstc.com/user/pc-dyna/ • Компоненты LS-DYNA для сборки: – ls-dyna_smp_d_R711_winx64_ifort131_lib.zip – двойная точность – ls-dyna_smp_s_R711_winx64_ifort131_lib.zip – одинарная точность Установка необходимых компонентов для разработки 2
  • 3. | • Intel предоставляет бесплатные лицензии на свои средства разработки для студентов, научно-исследовательских групп, преподавателей и разработчиков ПО с открытым исходным кодом • https://software.intel.com/en-us/qualify-for-free-software Не коммерческая среда разработки для LS-DYNA 3
  • 4. | • Билиотеки – *.a • Объекты – *.o • Подключаемый код – *.inc • Исходные тексты на Fortran – *.f • Инструкции по сборке – makefile Состав ls-dyna_smp_d_R711_winx64_ifort131_lib 4
  • 5. | • Подготовка окружения для работы с командной строкой компилятора: – STDIN: ◦ "%ProgramFiles(x86)%IntelComposer XE 2013bincompilervars_arch.bat" intel64 – STDOUT: ◦ Intel(R) Parallel Studio XE 2013 ◦ Copyright (C) 1985-2012 Intel Corporation. All rights reserved. ◦ Intel(R) Composer XE 2013 (package 089) ◦ Setting environment for using Microsoft Visual Studio 2010 x64 tools. • Проверка версии компилятора Fortran: – STDIN: ◦ ifort – STDOUT: ◦ Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 13.0.0.089 Build 20120731 ◦ Copyright (C) 1985-2012 Intel Corporation. All rights reserved. ◦ ifort: command line error: no files specified; for help type "ifort /help" Проверка работоспособности окружения 5
  • 6. | • Запуск сборки исполняемого файла в подготовленном окружении – STDIN: ◦ .ls-dyna_smp_d_R711_winx64_ifort131_libnmake – STDOUT: ◦ -out:lsdyna.exe ◦ -subsystem:console ◦ -stack:1800000000 ◦ -force ◦ -nodefaultlib:msvcrt.lib ◦ -nodefaultlib:vcomp.lib ◦ dyn21.obj ◦ dyn21b.obj ◦ couple2other_user.obj ◦ libdyna.lib ◦ libansys.lib ◦ shell32.lib ◦ user32.lib ◦ comctl32.lib ◦ comdlg32.lib ◦ Iphlpapi.lib ◦ gdi32.lib Компиляций LS-DYNA 6
  • 7. | *MAT_USER_DEFINED_MATERIAL_MODELS $---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 $ mid ro mt lmc nhv iortho ibulk ig 1 7850 41 4 0 0 3 4 $---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 $ ivect ifail itherm ihyper ieos 0 0 0 0 0 $---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 $ p1 = e p2 = pr p3 = bulk p4 = g p5 p6 p7 p8 2e11 0.3 1.6667e11 7.6923e10 0.0 0.0 0.0 0.0 $---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 *MAT_USER_DEFINED_MATERIAL_MODELS 7
  • 8. | *MAT_USER_DEFINED_MATERIAL_MODELS $ mid ro mt lmc nhv iortho ibulk ig 1 7850 41 4 0 0 3 4 $ ivect ifail itherm ihyper ieos 0 0 0 0 0 $ p1 = e p2 = pr p3 = bulk p4 = g p5 p6 p7 p8 2e11 0.3 1.6667e11 7.6923e10 0.0 0.0 0.0 0.0 *MAT_ELASTIC $# mid ro e pr da db not used 1 7850 2e11 0.3 0.0 0.0 0 *MAT_USER_DEFINED_MATERIAL_MODELS 8
  • 9. | • mid – Material identification – Идентификатор материала в .k • ro – Mass density – Плотность • mt – Material type – Номер пользовательской процедуры • lmc – Length of material constant – Длина массива констант материала • nhv – Number of history variables to be stored – Количество сохраняемых переменных истории • iortho – Включатель ортотропии/точечной сварки • ibulk – Позиция модуля объемного сжатия в наборе констант материала • ig – Позиция модуля сдвига в наборе констант материала • ivect – Vectorization flag • ifail – Failure flag • itherm – Temperature flag • ihyper – Deformation gradient flag • ieos – Equation of state *MAT_USER_DEFINED_MATERIAL_MODELS 9
  • 10. | • Все пользовательские материалы должны быть включены в файл .ls-dyna_smp_d_R711_winx64_ifort131_libdyna21.F • Шаблоны типовых материалов уже содержаться в этом файле • LS-DYNA скомпилирована уже с типовыми шаблонами Создаем свой материал 10
  • 11. | Схема работы интерфейса пользовательского материала 11 LS-DYNA вызывает процедуры для элементов из libdyna.a •call usermat() Вызов про процедур usermat() для элемента из dyna21.f •solids: call usermathn() •shells: call usermats() •beams: call usermatb() Вызов под процедуры umatxx() для материала из dyna21.f •call umat41() Вычисления внутри umatxx() •call umat41()
  • 12. | 7 позиция 73 позиция | | +--------------------------------------------------------+ | | subroutine umat41 (cm,eps,sig,epsp,hsv,dt1,capa,etype,tt, 1 temper,failel,crv,cma,qmat,elsiz,idele) | | +---------------------------------------------------------+ | | 6 позиция 73 позиция Базовый синтаксис Fortran 12
  • 13. | • cm(i) – константы материала • eps(i) – деформации • sig(i) – напряжения • hsv(i) – переменные истории • dt1 – шаг по времени • сapa – reduction factor for transverse shear • etype: – eq."solid" for solid elements – eq."sld2d" for shell forms 13, 14, and 15 (2D solids) – eq."shl_t" for shell forms 25, 26, and 27 (shells with thickness stretch) – eq."shell" for all other shell elements plus thick shell forms 1 and 2 – eq."tshel" for thick shell forms 3 and 5 – eq."hbeam" for beam element forms 1 and 11 – eq."tbeam" for beam element form 3 (truss) – eq."dbeam" for beam element form 6 (discrete) – eq."beam " for all other beam elements • tt – текущее время • temper – текущая температура • failel – flag for failure, set to .true. to fail an integration point, – if .true. on input the integration point has failed earlier • crv – array representation of curves in keyword deck • cma – additional memory for material data defined by LMCA at 6th field of 2nd crad of *DATA_USER_DEFINED • elsiz – characteristic element size • idele – element id Зарезервированные переменные 13*LS-DYNA® KEYWORD USER'S MANUAL VOLUME I, APPENDIX A: User Defined Materials
  • 14. | Вычисления для элементов типа SOLID 14 Код Физический смысл g2 =abs(cm(1))/(1.+cm(2)) g =.5*g2 Модуль сдвига G= 𝐸 2 1+𝜈 davg=(-eps(1)-eps(2)-eps(3))/3. Первый инвариант тензора деформаций 𝑆 = 𝜀1 + 𝜀2 + 𝜀3 3 p=-davg*abs(cm(1))/(1.-2.*cm(2)) 𝐾 = 𝐸 1 − 2𝜈 ; 𝑃 = 𝑆𝐾 sig(1)=sig(1)+p+g2*(eps(1)+davg) sig(2)=sig(2)+p+g2*(eps(2)+davg) sig(3)=sig(3)+p+g2*(eps(3)+davg) σ𝑖 𝑛 = σ𝑖 𝑛−1 + 𝑃 𝑛 + 2𝐺 𝜀𝑖 𝑛 − 𝑆 sig(4)=sig(4)+g*eps(4) sig(5)=sig(5)+g*eps(5) sig(6)=sig(6)+g*eps(6) σ𝑖𝑗 𝑛 = σ𝑖𝑗 𝑛−1 + 𝐺𝜀𝑖𝑗 𝑛
  • 15. | Вычисления для элементов типа SHELL 15 Код Физический смысл gc =capa*g 𝐺 𝑘 = κ𝐺 q1=abs(cm(1))*cm(2)/((1.0+cm(2))*(1.0- 2.0*cm(2))) q3=1./(q1+g2) λ = E𝜈 1 + 𝜈 1 − 2𝜈 ; μ = 1 𝑄1 + 2𝐺 ru.wikipedia.org/wiki/Параметры_Ламе eps(3)=-q1*(eps(1)+eps(2))*q3 davg=(-eps(1)-eps(2)-eps(3))/3. p=-davg*abs(cm(1))/(1.-2.*cm(2)) 𝜀3 = −λμ(𝜀1 + 𝜀2) 𝑆 = 𝜀1 + 𝜀2 + 𝜀3 3 𝐾 = 𝐸 1 − 2𝜈 ; 𝑃 = 𝑆𝐾 sig(1)=sig(1)+p+g2*(eps(1)+davg) sig(2)=sig(2)+p+g2*(eps(2)+davg) sig(3)=0.0 sig(4)=sig(4)+g *eps(4) sig(5)=sig(5)+gc*eps(5) sig(6)=sig(6)+gc*eps(6)
  • 16. | • Эрозия материала включается при присвоении failel значения .true. или соответствующим элементам массива failels значения .true. для векторизованной формы Эрозия материала 16
  • 17. | c *=== Hello, LS-DYNA Users! ===* c23456+--------------------------------------------------------+ if (ncycle.eq.1) then if (cm(16).ne.1234567) then call usermsg('mat41') write(*,*) write(*,*)'+----------------------------------------+' write(*,*)'| This is output test by Yury Novozhilov |' write(*,*)'+----------------------------------------+' write(*,*)' E = ', cm(1) write(*,*)' nu = ', cm(2) write(*,*) endif endif c23456+--------------------------------------------------------+ Работы с STDOUT в LS-DYNA 17
  • 19. | *MAT_USER_DEFINED_MATERIAL_MODELS $---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 $ mid ro mt lmc nhv iortho ibulk ig 1 7850 41 5 0 0 3 4 $---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 $ ivect ifail itherm ihyper ieos 0 1 0 0 0 $---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 $ p1 = e p2 = pr p3 = bulk p4 = g p5 p6 p7 p8 2e11 0.3 1.6667e11 7.6923e10 500e6 0.0 0.0 0.0 $---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 Эрозия материала 19
  • 20. | c +--------------------------------------------------------+ c | Von Mises Stress failure | c +--------------------------------------------------------+ sig_eqv=sqrt(( 1 (sig(1)-sig(2))**2+ 2 (sig(2)-sig(3))**2+ 3 (sig(3)-sig(1))**2+ 4 6*(sig(4)**2+sig(5)**2+sig(6)**2) 5 )/2) if (sig_eqv.gt.cm(5)) failel=.true. c +--------------------------------------------------------+ Реализация на уровне кода 20
  • 21. | c +--------------------------------------------------------+ c | Simulation stop | c +--------------------------------------------------------+ STOP c +--------------------------------------------------------+ Остановка расчета 21
  • 22. | • Вырезаем полный текст под процедуры из dyn21.F в отдельный *.F файл, например umat41.F • Система сборки отслеживает изменения только в файле dyn21.F • Подключаем внешний файл из dyn21.F: c +--------------------------------------------------------+ include 'umat41.F' c +--------------------------------------------------------+ Выделение под процедуры в отдельный файл 22