Both sides previous revisionPrevious revision | |
abaqus [2024/05/28 13:13] – [Abaqus] bdatta1 | abaqus [2024/05/28 13:25] (current) – [Programming Abaqus user subroutines] bdatta1 |
---|
Don't underestimate the power of Fortran for being a old language. It's still one of the fastest programming language for numerical computing. Under the hood, MATLAB and NumPy uses Fortran libraries. Learn about [[https://en.wikipedia.org/wiki/Fortran| Fortran history]] to understand F77 coding styles and how they are different now (comparison between F77 vs. F90). For legacy reasons, subroutine templates provided by Abaqus/Standard follow F77 standard (Abaqus/Explicit templates are different). We recommend coding the subroutine in a fixed form (save the Fortran files with ''.for'' extensions) but you are not limited by F77 features. As long as the compiler supports you can use features from latest Fortran version in your Abaqus subroutine. | Don't underestimate the power of Fortran for being a old language. It's still one of the fastest programming language for numerical computing. Under the hood, MATLAB and NumPy uses Fortran libraries. Learn about [[https://en.wikipedia.org/wiki/Fortran| Fortran history]] to understand F77 coding styles and how they are different now (comparison between F77 vs. F90). For legacy reasons, subroutine templates provided by Abaqus/Standard follow F77 standard (Abaqus/Explicit templates are different). We recommend coding the subroutine in a fixed form (save the Fortran files with ''.for'' extensions) but you are not limited by F77 features. As long as the compiler supports you can use features from latest Fortran version in your Abaqus subroutine. |
| |
* A good place to start is going through the [[https://fortran-lang.org/learn/ | resources on fortran-lang.org ]]. | * [[https://fortran-lang.org/learn/ | Learning resources on fortran-lang.org ]]. |
* Check [[https://stevelionel.com/drfortran/allposts/ | blog posts from Doctor Fortran ]] | * [[http://annefou.github.io/Fortran/ | Modern Fortran materials by Anne Fou ]] |
| * [[https://masuday.github.io/fortran_tutorial/| Modern Fortran Tutorial by Yutaka Masuda ]] |
* [[https://www.fortran90.org | Fortran 90 website ]] | * [[https://www.fortran90.org | Fortran 90 website ]] |
* [[https://fortranwiki.org/fortran/show/HomePage | Fortran Wiki webpage ]] | * [[https://fortranwiki.org/fortran/show/HomePage | Fortran Wiki webpage ]] |
| * [[https://fortran-lang.org/learn/rosetta_stone/| Fortran for Python programmers]] |
| * [[https://stevelionel.com/drfortran/allposts/ | Blog posts from Doctor Fortran ]] |
| * [[https://bristolcompositesinstitute.github.io/RSE-Guide/abaqus-user-subroutines/index.html| Best practices for Abaqus user subroutine by Bristol Composite Institute ]] |
| |
A list of user subroutines available from Abaqus can be found here: https://docs.software.vt.edu/abaqusv2022/English/SIMACAESUBRefMap/simasub-c-gen-idxusubroutinelist.htm. For most updated list, you should check Abaqus documentation from Dassault Systemes website at https://help.3ds.com (you will need to create an user account login). Among those user subroutines, user material subroutine (UMAT) and user defined element (UEL) in Abaqus/Standard are readily used in academic research to implement new constitutive model and new element technology, respectively. VUMAT and VUEL are Abaqus/Explicit counterparts of the You should read the documentation very thoroughly and understand how these subroutines work before start working on them. Please remember, Abaqus can recognize one Fortran file at the time of execution. If you would like to use multiple user subroutines, you will have to put them in a single Fortran file or arrange it in a way that your main Fortran file can have call other files. | A list of user subroutines available from Abaqus can be found here: https://docs.software.vt.edu/abaqusv2022/English/SIMACAESUBRefMap/simasub-c-gen-idxusubroutinelist.htm. For most updated list, you should check Abaqus documentation from Dassault Systemes website at https://help.3ds.com (you will need to create an user account login). Among those user subroutines, user material subroutine (UMAT) and user defined element (UEL) in Abaqus/Standard are readily used in academic research to implement new constitutive model and new element technology, respectively. VUMAT and VUEL are Abaqus/Explicit counterparts of the You should read the documentation very thoroughly and understand how these subroutines work before start working on them. Please remember, Abaqus can recognize one Fortran file at the time of execution. If you would like to use multiple user subroutines, you will have to put them in a single Fortran file or arrange it in a way that your main Fortran file can have call other files. |
=== Additional resources === | === Additional resources === |
| |
| - [[https://github.com/nasa/CompDam_DGD/| Comp-DGD by NASA ]]:: This is an Abaqus/Explicit VUMAT project by NASA. While it may not be related to our research, but the follows good software practices. |
| - [[https://github.com/HenannResearchGroup?tab=repositories| GitHub repository from Henann Research group at Brown ]]: A collection of different types of Abaqus subroutines by David Henann's group at Brown. |
- Notes on [[https://imechanica.org/files/Writing%20User%20Subroutines%20with%20ABAQUS_0.pdf| Abaqus user subroutine on iMechanica]]: This document is based on a very old version of Abaqus. You should consult the Abaqus manual for additional subroutine-related documentation. | - Notes on [[https://imechanica.org/files/Writing%20User%20Subroutines%20with%20ABAQUS_0.pdf| Abaqus user subroutine on iMechanica]]: This document is based on a very old version of Abaqus. You should consult the Abaqus manual for additional subroutine-related documentation. |
- Prof. Allan F. Bower's class on [[https://www.brown.edu/Departments/Engineering/Courses/En2340/| Computational Methods in Solid Mechanics at Brown University]]: This class covers different finite element formulation (mechanical to multiphysics) and their implementation in a custom Fortran based FEA code which shares the same user subroutine format as Abaqus. | - Prof. Allan F. Bower's class on [[https://www.brown.edu/Departments/Engineering/Courses/En2340/| Computational Methods in Solid Mechanics at Brown University]]: This class covers different finite element formulation (mechanical to multiphysics) and their implementation in a custom Fortran based FEA code which shares the same user subroutine format as Abaqus. |