https://github.com/dataanalyticsengineering/umat_2scale_lsdyna
Explore the fundamentals of implementing user-defined material routines in LS-DYNA using Python and C++. This includes the realization of two-scale simulation schemes using LS-DYNA.
https://github.com/dataanalyticsengineering/umat_2scale_lsdyna
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.0%) to scientific vocabulary
Repository
Explore the fundamentals of implementing user-defined material routines in LS-DYNA using Python and C++. This includes the realization of two-scale simulation schemes using LS-DYNA.
Basic Info
Statistics
- Stars: 7
- Watchers: 1
- Forks: 4
- Open Issues: 0
- Releases: 0
Metadata Files
readme.md
UMAT2scaleLSDYNA
Basics to implement user-defined material routines in LS-Dyna with Python and C++. This repo realizes two scale simulation schemes in LS-DYNA.
External dependencies
Dependencies below are included in the external_packages directory. They may be included as submodules but for the sake of reproducablity a frozen version of their corresponding repositories is included here.
ttb: Tensor Toolbox for Modern Fortran (ttb), hosted at https://github.com/adtzlr/ttbforpy: A library for Fortran-Python interoperability, hosted at https://github.com/ylikx/forpyezh5: Easy HDF5 C++ Library, hosted at https://github.com/mileschen360/ezh5
Test cases of these packages are included in external_packages/test_*.sh
Licensing
See the license file for the project license and the licenses of the included dependencies.
Citations
Shadi Sharba, Felix Fritzen, Julius Herb. LS-DYNA two-scale homogenization extension. Version 1.0.0 (2021).
@software{sharba2021,
author = {Shadi Sharba, Felix Fritzen, Julius Herb},
title = {LS-DYNA two-scale homogenization extension},
month = Aug,
year = 2021,
version = {v1.0.0},
url = {https://github.com/DataAnalyticsEngineering/UMAT_2scale_LSDYNA}
}
Compiling using docker
Install docker on your machine. You can use the following command (for further details, please check this link)
curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.shObtain the new interface files from GitHub:
git clone https://github.com/DataAnalyticsEngineering/UMAT_2scale_LSDYNA.git && cd UMAT_2scale_LSDYNAObtain
ls-dyna_smp_d_R12_0_0_x64_redhat65_ifort160.tgzusermat package/object version of LS-DYNA from your local distributor of LS-DYNA and place it inUMAT_2scale_LSDYNA. Here are some helpful links (lsdyna-ansys,ansys-forum).Using a terminal, run
0_run_in_docker.shto build the docker image and enter the running container. Or useVSCodewith theDev Containersextension; Open theUMAT_2scale_LSDYNAfoldr then usereopen in containercommand to build and open the project in the container.Inside the container, run
1_setup_dyna.shto compile the new object version of LS-DYNA. The new executable will be placed inside the docker container inUMAT_2scale_LSDYNA/lsdyna_object_version/lsdynaumat
Test cases:
You can use 2_run_tests.sh inside the docker container to run the following test cases:
- External packages: test cases of these packages are included in external_packages/test_*.sh
- test_ttb.sh
- test_forpy.sh
- test_ezh5.sh
- Mixed language programming
- test_call_cpp.sh: compiles and runs a Fortran function that calls a C++ one
- test_call_py.sh: compiles and runs a Fortran function that calls a Python one via C++
Examples:
Check 3_run_examples.sh to know how to run the following examples:
examples/two_scale/analytical_mat_parameter
Temperature dependent material parameters are considered here and given as lambda functions in material_parameters.py.
To get an idea about the implementation check:
- umat_elastic_44_14.F90
- material_parameters.py
- umat.py
examples/two_scale/homogeneous_single_track
Here, an RVE effective response under different load temperatures is assumed to exist and stored in a tabulated format in an HDF5 file. Linear interpolation is used to evaluate effective properties at current temperature given the stored response at one higher and one lower temperatures.
To get an idea about the implementation check:
- umat_elastic_44_14.F90
- umat.py
- rve_elastic.py
Discontinued
examples/two_scale/3d_rveexamples/two_scale/2d_rve
Here, a thermo-mechanical response of a representative volume element is computed using LS-DYNA.
Owner
- Name: DataAnalyticsEngineering
- Login: DataAnalyticsEngineering
- Kind: organization
- Repositories: 1
- Profile: https://github.com/DataAnalyticsEngineering
GitHub Events
Total
- Watch event: 2
- Push event: 3
- Fork event: 1
- Create event: 1
Last Year
- Watch event: 2
- Push event: 3
- Fork event: 1
- Create event: 1
Dependencies
- intel/oneapi-hpckit 2023.0.0-devel-ubuntu22.04 build
- umat_2scale_lsdyna latest