Remix.run Logo
Show HN: Jacobi–IDE for Abaqus subroutine with analytical tests and AI diagnosis(jacobee.netlify.app)
18 points by white_tiger 11 hours ago | 6 comments

I write Abaqus UMAT subroutines as a graduate student in computational mechanics. These are complex multi-physics simulation models using Abaqus Fortran subroutines (UMAT ~ mechanical behavior, UMATHT ~ heat/diffusion and a lot more) that simulate how different material systems fail under high temperature or manufacturing processes.

However, the entire process has been quite challenging, 80-90% of time is actually spent on how make Abaqus CAE simulate a physics you already know on paper or what are the correct subroutines and variables you should use. Huge time is also spent on diving deep into the .sta .msg files to figure out and debug why a simulation failed. The software or current tooling (IDE ~ which is VS Code etc built for software engineering, not computational physics or mechanics) doesn't tell you why the simulation run into a segmentation error, or warn you when your damage variable being 1 (fully damaged) will lead to a zero division error. Silent mistakes or errors propagate through your simulation silently, and the physics is completely wrong (or worse, physics make sense, but wrong nonetheless). The documentation is terse and complex, haven't changed for a decade, offering basic linear elastic examples only.

The entire way computational engineers approach their work is with a touch/sense of secrecy. Codes are hidden behind NDAs and various policies. Although, this makes sense from a national security standpoint. It slows down and stifle innovation in the field. Codes are not shared like the way software engineers do, repositories are private, .odb files are hidden, Less resources for tutorials on complex multi-physics simulations. This is why Dr. Fei Fei Li in her recent post on world models, identifying the "simulate" part of the world model taxonomy (the other two is a planner and a renderer) as the linchpin of a world model (read here https://x.com/drfeifei/status/2062247238143996275) with orders of magnitude of less available data available to effectively train world models.

On occasions, engineers classify some of these problems as a "skill issue", which I believe is a wrong mindset to have. However, having prior experience building software and webapps, I know how important the tooling and community is to the entire software ecosystem (think open-source projects on Github, Modules/Packages you can easily pip install, and tutorials from legends like Karpathy and a lot more).

With the Jacobi Physics IDE, I am building that tooling and ecosystem for physics simulation. Due to my current knowledge of Abaqus, that is what I start with. But eventually, following feedback and engagement from users, this will expand to cover multiple physics solvers out there (COMSOL, NASTRAN, LS-DYNA....I want to hear more from you guys in the comment) that enable users and researchers to write subroutines and user-defined material behavior for their own unique simulations.

I will love to hear from you guys, download the IDE at https://jacobee.netlify.app/. Thanks.

supernova1 11 hours ago | parent | next [-]

I totally resonate with what you are doing. I use a VS code extension when coding abaqus subroutines and the most feature I can get out of it is syntax highlighting. I will love to see how far this goes! Goodluck.

white_tiger 11 hours ago | parent [-]

That was my workflow initially too. The entire ecosystem around computational simulation tools is lacking. Partly I also think it's because of the lack of attention to languages like Fortran which is mostly viewed as old by current generation of engineers or software developers, getting lesser attention compared to other languages like say Python. But then again, even the current python fem frameworks still run into some of the issues I outlined.

elderring 7 hours ago | parent [-]

Your comment hits the nail on its head! These languages are still used in deep engineering space, nuclear & defence companies and institutions like NASA and the US Airforce. I like what your project is doing. How does the analytical testing works? can I create write my own tests?

white_tiger 6 hours ago | parent [-]

Each test is responsible for a part of the UMAT subroutine, checks it's correctness, compares the subroutine (FEA) with the analytical. Plot their results and show whether the tests passes or fails. AI is built into the process too, but in a manner where they are deterministic and with strong grounding on the physics.

You can also write your own tests in Fortran and run it. You can also share it to the community for others to use.

You can read the docs https://jacobee.netlify.app/docs

white_tiger 11 hours ago | parent | prev | next [-]

*repositories are private, .odb files are hidden locally on computers...

skogee 11 hours ago | parent | prev [-]

Very true, those subroutine documentation haven't changed like forever, it's even more than a decade, maybe two decades. Downloading...