This made as little sense to me as it did when I was talking the Finite Element Methods class during graduate school. Still don't quite understand why you can't just use Runge Kutta methods to numerically solve these problems. I became quite good at manipulating the symbols to derive variational solutions while having absolutely no idea what any of it meant.
Galerkin Approximation
11–20 of 25 posts
Re: Galerkin Approximation
#12As part of the course I got introduced to the FEniCS project[1].
They had Python code looking very much like the math equations generating C++ code at runtime, compiling it into a Python module which got dynamically loaded and executed.
This way they got speeds which rivaled or surpassed handwritten C++, as the C++ code could be optimized around the specific problem, but with superior ergonomics of writing the equations almost directly.
It really blew my mind. I had heard about Java doing JIT but this was on another level for me. Not terribly fancy these days but at the time it really helped me expand my thinking about how to solve problems.
Re: Galerkin Approximation
#13A tangent, but I was exposed to the Galerkin approximation when learning about the Finite Element Method, well over 10 years ago. As part of the course I got introduced to the FEniCS project[1]. They had Python code looking very much like the math equations generating C++ code at runtime, compiling it into a Python module which got dynamically loaded and executed. This way they got speeds which rivaled or surpassed h…
Re: Galerkin Approximation
#14A tangent, but I was exposed to the Galerkin approximation when learning about the Finite Element Method, well over 10 years ago. As part of the course I got introduced to the FEniCS project[1]. They had Python code looking very much like the math equations generating C++ code at runtime, compiling it into a Python module which got dynamically loaded and executed. This way they got speeds which rivaled or surpassed h…
You really should check out Approxfun.jl and DifferentialEquations.jl. The julia ecosystem for this type of thing is incredibly well developed. You get autodiff, auto-sparsity detection, auto-vectorization and more for free. Also, these tools leverage the fact that Julia is fast and has a good macro system so the code you generate is just normal Julia code, which can be used with any of the other tools of the languag…
Re: Galerkin Approximation
#15And, guess what? Since, the Galerkin approximation requires one to choose a basis that is appropriate to the problem at hand, we now have a deep learning solution too (since neural network learning is essentially equivalent to learning an adaptive basis). It is called the Deep Galerkin Method [1]. In a nutshell, the method directly minimizes the L2 error over the PDE, boundary conditions and initial conditions. The i…
Why would you use the Monte Carlo method when the quasi-Monte Carlo method converges so much more quickly? I admit, I am a little biased, because I worked on some QMC stuff in grad school, but it works really, really well in practice. https://en.wikipedia.org/wiki/Quasi-Monte_Carlo_method
Re: Galerkin Approximation
#16A tangent, but I was exposed to the Galerkin approximation when learning about the Finite Element Method, well over 10 years ago. As part of the course I got introduced to the FEniCS project[1]. They had Python code looking very much like the math equations generating C++ code at runtime, compiling it into a Python module which got dynamically loaded and executed. This way they got speeds which rivaled or surpassed h…
You really should check out Approxfun.jl and DifferentialEquations.jl. The julia ecosystem for this type of thing is incredibly well developed. You get autodiff, auto-sparsity detection, auto-vectorization and more for free. Also, these tools leverage the fact that Julia is fast and has a good macro system so the code you generate is just normal Julia code, which can be used with any of the other tools of the languag…
Re: Galerkin Approximation
#17Earlier quoted context omitted.
You really should check out Approxfun.jl and DifferentialEquations.jl. The julia ecosystem for this type of thing is incredibly well developed. You get autodiff, auto-sparsity detection, auto-vectorization and more for free. Also, these tools leverage the fact that Julia is fast and has a good macro system so the code you generate is just normal Julia code, which can be used with any of the other tools of the languag…
The constant shilling for Julia gets old after a while. When it comes to numerical mathematics the implementation language is just a way to express ideas that are more or less independent of whatever language you are using. Last time I checked Julia had close to no professional grade libraries for PDE solving , while there are multiple deal.ii, FenICs, petsc high quality libraries for C++. Don’t get me wrong Julia is…
For my own work I would never say C++ is a nicer choice; I hate writing and dealing with C++ code. It is however a necessary choice since that is where many of best the libraries live.
Re: Galerkin Approximation
#18A tangent, but I was exposed to the Galerkin approximation when learning about the Finite Element Method, well over 10 years ago. As part of the course I got introduced to the FEniCS project[1]. They had Python code looking very much like the math equations generating C++ code at runtime, compiling it into a Python module which got dynamically loaded and executed. This way they got speeds which rivaled or surpassed h…
Re: Galerkin Approximation
#19This made as little sense to me as it did when I was talking the Finite Element Methods class during graduate school. Still don't quite understand why you can't just use Runge Kutta methods to numerically solve these problems. I became quite good at manipulating the symbols to derive variational solutions while having absolutely no idea what any of it meant.
Re: Galerkin Approximation
#20This made as little sense to me as it did when I was talking the Finite Element Methods class during graduate school. Still don't quite understand why you can't just use Runge Kutta methods to numerically solve these problems. I became quite good at manipulating the symbols to derive variational solutions while having absolutely no idea what any of it meant.
* It can handle PDEs on domains with complicated geometries, while finite differences really prefer rectangular domains. This consideration doesn't apply to ODEs which are always solved on one-dimensional intervals.
* For any numerical approximation it is important to have convergence guarantees, and as the blog post mentions, the analysis is much more well understood for finite elements, particularly on irregular geometries. Strang and Fix's 1973 book is the classic reference here.