Postdoc at Umeå University, Sweden
I write new blog posts every now and then. Do give them a read and let me know what you think.
A few years ago, I worked on Hamilton Jacobi Equations at the Tata Institute of Fundamental Research as an undergraduate. One of the interesting applications of Hamilton Jacobi Equations is the shape from shading problem. I had a great time working with my mentor Prof. G.D.Veerappa Gowda and my friend Sanath Keshav on the project.
It is always exciting to explore whether a particular package can be
extended to implement different methods with some of the low-level API
available within the package. So, I wanted to answer the question -
Can Gridap.jl
can be used to implement the virtual element
method? Virtual element methods can be seen as a generalization of the
finite element method on arbitrary shaped polygon. At the time of
writing this, Gridap.jl
supports simplices and hypercubes to build
the discretization. However, it is possible to use the underlying
machinery to implement the lowest order virtual element method using
Gridap.jl
. In this post, I will be briefly discussing the
implementation.
This is the final post in the Google Summer of Code 2021 series, and here I wish to summarize the project. This post is my official submission of my work for the final evaluation. During the summer of code, I wrote five blog posts related to the project which can be found on the my GSoC webpage. Along with the posts, I have also posted the progress report which can be found at the end of the page. I will briefly go through the new features and list all the Pull Requests submitted to the organization’s main repository that contains my contribution. For demonstrating the new features added, I use the following script:
GSoC project update time! So after the first evaluation, I continued working on the project to extend the interpolation algorithm to Raviart-Thomas elements. In this post I will be summarizing how I went about doing that. Before I begin, I want to point you to couple of things. The main GSoC blog page has a list that summarizes my project progress. I figured I should have it in the main page for easy access. You can also find some Gridap.jl code that I wrote during the project. Second are the two other blog posts:
Let us take the biharmonic problem on \(\Omega\) along with the clamped conditions on the boundary \(\partial\Omega\).
A couple of months ago while I was learning Julia programming, I came across this tweet
Continuing from where we left off in the previous post, I will explain
how I went about finishing tasks #4 to #6 in the list. Just to recall,
in the previous blog post, I explained how to create the source finite
element space and the FEFunction
. I also covered on how to
create the target mesh. To interpolate the old FEFunction
onto the new
mesh, we need to evaluate the old FEFunction
on the cell dofs of the
new mesh. This can be done using the drivers that I discussed in
the first blog post. Here’s how it went…
It’s time for another GSoC project update. During the last couple of weeks, I have been working on building the method for performing interpolations between different meshes. I will be explaining this task list in detail and finish up by describing where this will eventually lead to. I will also briefly talk about some of the challenges I faced as I was going through the list. There are six tasks in the list, and I have listed them down below:
It’s time for a GSoC project update! May 18 to June 8 in the Google Summer of Code timeline was the community bonding period, where the student spends about a month knowing more about the organization and the community. In the previous post, I spoke about the general application process, converging on a topic for the summer of code. In this short post, I will be talking about what goes on during the bonding period. Note that this can vary between the various organizations in GSoC, for example, differing in the tech that they use for communication etc.
I am excited to share that I will participate in the 2021 edition of the Google Summer of Code (GSoC) with Gridap under the NumFOCUS organization. I will be working with Eric Neiva, Oriol Colomés and Santiago Badia during the program. The topic of my project is A fast finite element interpolator in Gridap.jl. In this short blog post, I will share my experiences writing a proposal for the GSoC project. Feel free to click on the links to read the conversation.
Happy New Year everyone! 2020 was definitely a difficult and challenging year for all of us and I hope 2021 will be better. In this quick post, I would like to share an update regarding the new project I was talking about in the last post.
It is quarantine time and that means, it is time to keep myself busier than usual. And what better time to write a blog post! Exploring finite elements with FreeFem++ has been a wonderful experience so far and it has helped me out so much throughout my PhD. The grammar of FreeFem++ enables flexibility in programming while still leaving a high degree of control with the user. The video below shows a fluid simulation in which a jet of fluid entering a porous medium (a trapezoid) vertically. Since we have an obstacle, the fluid escapes from the sides of the porous medium. Thef code is a single script which can work with any polynomial degree of approximation (\(P1,P2,P3\) finite element spaces).
When I began writing this post on 26th November, I was on a train from Wollongong to Newcastle. Being a long ride back home, I decided to work on this blog post about VEM. But I ended up finishing and pushing this post on 5th December.
I recently published a paper on Gradient Recovery technique based on oblique projection for the virtual element method in the ANZIAM journal as a part of CTAC proceedings [1]. The idea behind the gradient recovery technique is to project the virtual element gradient onto the \(L^2\) space using an oblique projection. You can find the finite element equivalent, for example, in this paper [3].
Recently I visited Harbin, China to attend a PhD summer school on Ocean Engineering which was organized by the University of Dundee and Harbin Engineering University. The scientific topic of the Summer School was Hydroelasticity of Fixed and Floating Bodies. The summer school contained lectures on hydroelasticity and soon after we were assigned a group project at the end of the summer school.
In the previous post, I spoke about Shape from Shading – the idea and the concepts related to shape from shading, in particular orthographic shape from shading. Also I presented some of my results that were obtained for a synthetic test image. In this post, I would like to talk about another model for shape from shading – the Perspective Shape from Shading.
The idea of SFS is to reconstruct an object (Shape) from a 2D Image (Shading). There are a lot of ways to reconstruct a 3D Object from a 2D Image. Similar methods include Shape from Stereo, Shape from Contours, Shape from Silhouettes etc.
Object tracking is one of the most important aspects of Computer Vision. Nowadays human security guards are being replaced by automated tracking robots for two main reasons; ONE: robots can detect even the subtlest of motions and record them efficiently; TWO: robots don’t get bored staring into the same space, even for days.
This post is about an application that I tried to make using the OpenCV Image Processing Library. This application can detect the changes in brightness of the environment and adjust your laptop’s screen brightness accordingly.