Below you will find pages that utilize the taxonomy term “Introductory”
Intro to FEniCS - Part 3
In the Intro to FEniCS
- Part 2 episode we completed the first step in developing a FEniCS
model. We characterised the domain. Then, we selected a governing PDE. We then provided suitable boundary conditions. Finally, we expressed the PDE in weak form. We chosen a generalised Helmholtz equation as our PDE. In this episode we will start using the resulting weak form to develop a model.
Intro to FEniCS - Part 2
In the Intro to FEniCS
- Part 1 episode we introduced FEniCS
. We compared it to Elmer and covered how to install it on an Ubuntu workstation. This episode will cover the process of deriving the weak form for the Helmholtz equation. We will focus on the mathematics, which are advanced. Still, we will attempt to present the formalism in an approachable manner.
Intro to FEniCS - Part 1
In the previous episodes we used Elmer to develop a few different acoustics models. We were able to verify the accuracy of Elmer with few benchmark problems. Additionally, we studied the effect of mesh order and size on the accuracy. Finally, we started probing vibro-acoustic problems. We only scratched the surface of Elmer capabilities in this field. Still, it is worth to take a step back and reconsider these problems under a different light. The FEniCS
project is perfect for this. We will be introducing FEniCS
in this episode.
Animations With Paraview
In many of the previous episodes we produced animations of steady state Elmer FEM solutions. For simplicity we did not discuss the details of how to prepare them. The process is actually very simple, but there are few tips and tricks to keep in mind. This episode aims to provide a concise introduction to animations with ParaView.
Intro to meshio
In the previous episodes we manipulated some of the result fields from Elmer with meshio, a very nice Python package that allows us to do many useful operations with meshes and fields. However, in the episodes we did not focus into the details of how to use the package. Whilst this webiste is perhaps not the best place to do so, as the best place to understand how to use a package is, of course, its official documentation, it is useful to collect here few examples and remarks about using it with Julia, the programming language we are using for this project. This will also help clarify what was done in the previous episodes.
Interpreting Helmholtz Solver Solutions
In the previous episodes we obtained various numerical FEM solutions for Helmholtz problems. Although we discussed their meaning in the previous episodes it is useful to discuss that again more deeply in a single page, which can act as a quicker reference. This episode will focus on the Helmholtz solver solution fields, while other episodes will focus on the output of other solvers.
Intro to ParaView
In the previous episodes we often made use of the ParaView postprocessor to visualise our solution field from the Elmer solver. ParaView can do all sorts of cool visualisations and animations, as well as providing the way of doing quantitative analysis. It is by far the best option to visualise and postprocess results from Elmer. It also allows to export data in various formats, such as CSV, that allow us to do any additional kind of postprocessing or verification, by either using Julia, Python or any other language, or even spreadsheet software if you fancy that (for whatever reason…). ParaView functionalities are so many, and so advanced, that it is impossible to cover them all in a blog post. For that, you should instead refer to this page. In this page I will merely collect a few useful tips and tricks that I found useful when working on my studies. This page will be updated throughout the series.
Elmer Model and Solver Parameters
In the previous episodes we solved a few equations with Elmer. We did some choices when we setup the solver parameters. What those parameters do, and how should we set them? This is perhaps the trickiest part in FEM (beside making the mesh right). In this episode we will step back and look at those solver options more closely. This post is really not meant to be an exhaustive explanation. For that, refer to the Elmer documentation.
Refining the Metal Bar Model
In the last episode we seen that our model solution for the modes of vibration of a metal bar wasn’t looking particularly good for the highest mode. In fact, when we clipped into the bar, we seen few bubbles of discontinuity in the displacement field that are not expected for linearly elastic homogeneous and isotropic bodies. To understand this we have to step back a little and think about FEM some more.
Elastic Modes of a Metal Bar
In the last episode we examined the analytical solution of the acoustic modes of a rectangular room and we are now ready to take steps into moving in the world of FEM modelling. Elmer is a powerful package, but it is not extremely user friendly. So, it is best to have a gentle introduction to it first before dwelling into the intricacies of FEM modelling of acoustic fields. One of the simplest problems to solve with Elmer is that of the elastic vibration modes of solids. This problem will allow us to get started with Elmer in the most gentle way possible, by only using the GUI.
Acoustic Modes of a Rectangular Room
In this episode we will look at how to make a simple Julia model of one of the simplest systems in acoustics, a rectangular room with rigid walls, assuming adiabatic wave propagation. Even if this system is among the simplest in acoustics it is actually already very complicated. As such, we will focus only on the modes, one part of the problem, without attempting impulse response simulation or other fancy things like that, for now.
The FEM Pipeline
In the previous article an overview of the open-source ecosystem for scientific and technical computing was presented. In this article the focus will be on FEM. We will first look at how we build a FEM problem, and then select among the packages we listed the software that is best suited for implementing FEM studies.
FEM in a Nutshell
In the previous episodes we seen that physical systems are described by PDEs. However, PDEs are seldom solved analytically, unless for certain simple cases, the reason being that finding the solution of a PDE on a complex, realistic, domain with realistic boundary and initial conditions is extremely complicated, or downright impossible, even when the PDE is known to have analytical solutions from theoretical considerations. For this reason, numerical methods have arisen in order to handle these problems. The essence of numerical methods is that of creating a simplified problem, for which a solution can be found. Of course, the solution of the simplified problem is not the same as the solution of the original problem, but often numerical methods have convergence properties, that is, they are controlled by parameters which, the bigger they are, the close the numerical solution is to the target one. These convergence properties are often demonstrated mathematically, which is very remarkable: although the real solution of a PDE is unknown, it is still possible to handle the problem knowing that a numerical solution can approach it within a certain tolerance.
What is Acoustic Modelling
Welcome to the first actual episode of the series about acoustic modelling with open-source software. We will first try to understand what modelling acoustics means. In reality it doesn’t mean just one thing, as many phenomena of acoustic wave production and propagation can be modelled and simulated in various different ways, with higher or lower degree of accuracy. However, the core of the modelling problem resides in partial differential equations. This post will be a very, very, brief, intuitive and nonrigorous introduction to the topic, mainly to give context to those that are not accustomed to the concept. If you are experienced about physics and acoustics, you can completely skip this episode.
Setting Up an Ubuntu Modelling Environment
In the first episode of this series the open-source ecosystem for the modelling of acoustics was covered. As we will see in the next episodes, we will make extensive use of FEM, at least initially, to model acoustic phenomena. This episode focus on building a simple simulation workstation based around Elmer, a powerful multiphysics FEM suite with excellent acoustics capabilities.
Modelling Acoustics With Open-Source Software
One of the backbones of the scientific paradigms is the repeatability of results. Ideally, all software used for scientific research should be open-source, so to allow complete repeatability of data analysis and models. And in fact, a lot of scientific software is indeed open-source, and a lot of this software can be used to model acoustic phenomena.
What follows below is a panoramic overview of the scientific open-source software ecosystem. This overview is far from comprehensive. Neither it reports software that pertains acoustic simulation only, even though a greater emphasis is given on this. However, it should represent a decent picture of how many tools are available for modelling complex physics, as well as creating all sorts of technical computing projects.