SlideShare a Scribd company logo
1 of 23
© 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

What's hot

Roof Truss Design (By Hamza Waheed UET Lahore )
Roof Truss Design (By Hamza Waheed UET Lahore )Roof Truss Design (By Hamza Waheed UET Lahore )
Roof Truss Design (By Hamza Waheed UET Lahore )Hamza Waheed
 
Lateral or transverse vibration of thin beam
Lateral or transverse vibration of thin beamLateral or transverse vibration of thin beam
Lateral or transverse vibration of thin beamM. Ahmad
 
A critical comparative study of is 800 2007 andis 800-1984-2
A critical comparative study of is 800 2007 andis 800-1984-2A critical comparative study of is 800 2007 andis 800-1984-2
A critical comparative study of is 800 2007 andis 800-1984-2IAEME Publication
 
Finite Element Analysis - UNIT-2
Finite Element Analysis - UNIT-2Finite Element Analysis - UNIT-2
Finite Element Analysis - UNIT-2propaul
 
Durga soft scjp-notes-part-1-javabynataraj
Durga soft scjp-notes-part-1-javabynatarajDurga soft scjp-notes-part-1-javabynataraj
Durga soft scjp-notes-part-1-javabynatarajSatya Johnny
 
DFM (design for manufacturing) example bluestar mould - automotive mold ma...
 DFM (design for manufacturing) example   bluestar mould - automotive mold ma... DFM (design for manufacturing) example   bluestar mould - automotive mold ma...
DFM (design for manufacturing) example bluestar mould - automotive mold ma...Huy Dickens
 

What's hot (9)

Pipe bending machine
Pipe bending machinePipe bending machine
Pipe bending machine
 
Roof Truss Design (By Hamza Waheed UET Lahore )
Roof Truss Design (By Hamza Waheed UET Lahore )Roof Truss Design (By Hamza Waheed UET Lahore )
Roof Truss Design (By Hamza Waheed UET Lahore )
 
Lateral or transverse vibration of thin beam
Lateral or transverse vibration of thin beamLateral or transverse vibration of thin beam
Lateral or transverse vibration of thin beam
 
A critical comparative study of is 800 2007 andis 800-1984-2
A critical comparative study of is 800 2007 andis 800-1984-2A critical comparative study of is 800 2007 andis 800-1984-2
A critical comparative study of is 800 2007 andis 800-1984-2
 
Problems on Torsion
Problems on TorsionProblems on Torsion
Problems on Torsion
 
Finite Element Analysis - UNIT-2
Finite Element Analysis - UNIT-2Finite Element Analysis - UNIT-2
Finite Element Analysis - UNIT-2
 
Durga soft scjp-notes-part-1-javabynataraj
Durga soft scjp-notes-part-1-javabynatarajDurga soft scjp-notes-part-1-javabynataraj
Durga soft scjp-notes-part-1-javabynataraj
 
DFM (design for manufacturing) example bluestar mould - automotive mold ma...
 DFM (design for manufacturing) example   bluestar mould - automotive mold ma... DFM (design for manufacturing) example   bluestar mould - automotive mold ma...
DFM (design for manufacturing) example bluestar mould - automotive mold ma...
 
Structural engineering iii
Structural engineering iiiStructural engineering iii
Structural engineering iii
 

Similar to User Defined Materials in LS-DYNA

DSLs in Lisp and Clojure
DSLs in Lisp and ClojureDSLs in Lisp and Clojure
DSLs in Lisp and ClojureVasil Remeniuk
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовТранслируем.бел
 
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стильPyton – пробуем функциональный стиль
Pyton – пробуем функциональный стильPython Meetup
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Mikhail Kurnosov
 
аппроксимация функции нескольких переменных
аппроксимация функции нескольких переменныхаппроксимация функции нескольких переменных
аппроксимация функции нескольких переменныхDmitry Protopopov
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...pgdayrussia
 
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...JSFestUA
 
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Yandex
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonovComputer Science Club
 
Лекция о языке программирования Haskell
Лекция о языке программирования HaskellЛекция о языке программирования Haskell
Лекция о языке программирования Haskellhusniyarova
 
Hf labs education day. rocket science
Hf labs education day. rocket scienceHf labs education day. rocket science
Hf labs education day. rocket scienceOlga Kiseleva
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
 
Оптимизация производительности Python
Оптимизация производительности PythonОптимизация производительности Python
Оптимизация производительности PythonPyNSK
 
"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)AvitoTech
 
Расширения для PostgreSQL
Расширения для PostgreSQLРасширения для PostgreSQL
Расширения для PostgreSQLAnastasia Lubennikova
 
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Fwdays
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU
 

Similar to User Defined Materials in LS-DYNA (20)

DSLs in Lisp and Clojure
DSLs in Lisp and ClojureDSLs in Lisp and Clojure
DSLs in Lisp and Clojure
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
 
Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетов
 
Pyton – пробуем функциональный стиль
Pyton – пробуем функциональный стильPyton – пробуем функциональный стиль
Pyton – пробуем функциональный стиль
 
Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)Лекция 7. Стандарт OpenMP (подолжение)
Лекция 7. Стандарт OpenMP (подолжение)
 
OpenACC short review
OpenACC short reviewOpenACC short review
OpenACC short review
 
аппроксимация функции нескольких переменных
аппроксимация функции нескольких переменныхаппроксимация функции нескольких переменных
аппроксимация функции нескольких переменных
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 3...
 
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
JS Fest 2019. Владимир Агафонкин. Быстро по умолчанию: алгоритмическое мышлен...
 
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
Евгений Крутько — Опыт внедрения технологий параллельных вычислений для повыш...
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
 
Algo 00
Algo 00Algo 00
Algo 00
 
Лекция о языке программирования Haskell
Лекция о языке программирования HaskellЛекция о языке программирования Haskell
Лекция о языке программирования Haskell
 
Hf labs education day. rocket science
Hf labs education day. rocket scienceHf labs education day. rocket science
Hf labs education day. rocket science
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
 
Оптимизация производительности Python
Оптимизация производительности PythonОптимизация производительности Python
Оптимизация производительности Python
 
"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)"Деплой кода процедур" Мурат Кабилов (Avito)
"Деплой кода процедур" Мурат Кабилов (Avito)
 
Расширения для PostgreSQL
Расширения для PostgreSQLРасширения для PostgreSQL
Расширения для PostgreSQL
 
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
 
Tech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVMTech Talks @NSU: Как приручить дракона: введение в LLVM
Tech Talks @NSU: Как приручить дракона: введение в LLVM
 

More from Yury Novozhilov

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

More from Yury Novozhilov (20)

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

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