For much more rotations, a powerful numeric continuation method is your friend.
The "speed" of the rotation is a result of the adaptive step-size of contique (one frame per converged step, constant framerate).
For much more rotations, a powerful numeric continuation method is your friend.
The "speed" of the rotation is a result of the adaptive step-size of contique (one frame per converged step, constant framerate).
FElupe is now available on conda-forge!
Unfortunately, it doesn't handle optional dependencies like pip. Anyway here's a nice animation of the #hyperelastic "twisting column" example from the book of Bonet & Wood. This one works without any fancy continuation techniques, it's just Newton's method.
Sitting here running #FEA simulations in my hotel room, and my model has 1.24 MILLION degrees of freedom. I’m sure any of you that do FEA probably think that’s pretty pedestrian, but I don’t think many people would realize the size of the matrices being pushed around. This simulation takes about 25 minutes to run because of large displacement and surface contact, and it’s rather amazing that it only takes 25 minutes on modern hardware.
The result of the getting started notebook of #felupe, which is deployed by #jupyterlite on #github, is now ready-to-visualize directly in the browser, thanks to #jupyterview!
https://adtzlr.github.io/felupe-web/lab?path=01_Getting-Started.ipynb
Merry Christmas everyone (...if you're living in a culture where this is celebrated).
It's time to take a break from business as usual - get your batteries reloaded!
(This is a hyperelastic Mooney-Rivlin christmas tree under varying body forces.)
Hello, world! Wait, for a nonlinear simulation #python package? If you'd like to use FElupe for your #hyperelastic #simulation but don't know where to start & too lazy to read the docs, you may use the hello_world() function to print a minimal-working example to the console.
Initially, I wasn't sure if that kind of function really makes sense. But it turns out that I'm using this one quite frequently. (shhh! Author here...
)
Here's an example: let's take the Neo-Hookean [1] isotropic #hyperelastic material model formulation. Just define its strain energy density function and use it in your #simulation [2].
Have you ever thought of using JAX as
#automaticdifferentiation engine in
finite element simulations? Boost the performance
of computationally-expensive hyperelastic material models with #jit in
FElupe!
With FElupe, it's easier than ever to simulate the deformation of nonlinear hyperelastic solid bodies!
In numeric simulations of the deformation of solid bodies coming into contact, a good contact algorithm is required. Beside the typical approaches (node-to-segment, segment-to-segment or Mortar-based), the so-called third medium frictionless contact method with a Hessian-based regularization is carried out in an example of FElupe. The method does not require any special treatment of surface normals - instead, the air (a.k.a. third medium) is represented by a very soft solid (with all its benefits and drawbacks...).
In my Python FEA package FElupe I've noticed that the time spent on assembling (especially large) finite element matrices takes longer than in recent releases. The slowdown is about 15% to 100%, depending on the number of degrees of freedom. From a computational-cost point of view, there are some cheap arrays stored inside a numeric region. A somewhat massive einsum-call further evaluates the values for the sparse finite element matrix. Due to some recent code changes, these cheap region arrays aren't contiguous anymore. That slows down the finite element matrix assembly up to 100%! By ensuring C-contiguous arrays, performance is back to normal (NumPy array flags are available as attribute ndarray.flags).
FElupe now has visual previews for the schemes of most numeric regions (finite element formulation + quadrature rule) in its HTML API docs - thanks to PyVista. There are also a lot of helpful static and interactive plots in other sections of the docs too. Go check it out!
Simulating the nonlinear deformation of hyperelastic structures has never been easier in a few lines of Python code.
Recently, I've put a lot of effort in completing the documentation of FElupe, especially its API reference. There is still room for improvement, but I consider it to be in a fairly good shape now
. There are also new tutorials
and examples
- have a look if you haven't already! If you have ideas
on how to improve it, please let me know!
Interesting paper by @jedbrown et al.
https://doi.org/10.48550/arXiv.2401.13196
For computational mechanics/physics, if you code by just punching in the equations from the textbooks directly, the physics should work, but computationally the way you evaluate the quantities may be unstable. This paper lists some recipes to avoid these.
Mostly small strain problem, but still feels icky to leave in.
Last week Andrei gave his first #keynote #plenary talk at the #ECCOMAS Young Investigators Conference 2023 in the Faculdade de Engenharia da Universidade do Porto. Many thanks to the organisers, particularly Rodrigo Pinto Carvalho and Igor Lopes, for inviting. Advanced #opensource #finiteelementmethod tools are becoming increasingly popular in the ECCOMAS community!