Skip to content
Ankit Mahato edited this page May 2, 2013 · 24 revisions


under construction ...

Welcome to the SfePy wiki!

GSoC Proposal(Ankit Mahato)

Student Information

Name: Ankit Mahato


Telephone: +91 9532094890

IRC handle including network:

Source control username:

IM information

Gtalk [availability 24x7] :

Twitter :

Any other ways we can reach you

Institute E-mail:

Home Page:


University Information

University: Indian Institute of Technology, Kanpur

Major: Mechanical Engineering

Current Year: 4th

Expected Graduation date: June 2014

Degree: BTech-MTech Dual Degree (5yrs)

Project Proposal Information

Proposal Title:

SfePy: Enhancing the solver to simulate solid-liquid phase change phenomenon in convective-diffusive situations

Proposal Abstract

SfePy is a well known python package for solving systems of coupled partial differential equations (PDEs) by the finite element method in 2D and 3D. Currently it is used for solving problems related to porous media convection, acoustics, incompressible flows and various other engineering problems. My goal is to make the solver even stronger by adding capabilities to tackle convection-diffusion and phase change phenomena.

Proposal Detailed Description

Convection is created by fluid flow. But this term has an inseparable connection with the diffusion term. The standard governing differential equations are well documented in literature (Numerical Fluid Flow and Heat Transfer, Patankar). The governing equations need to be converted to a weak form and then solved using the SfePy solver. So the first task will be to make SfePy capable of handling such kind of problems. It also includes handling transient conditions. Then the next step will be to make it capable of handling solid-liquid phase change effects. Phase change occurs with the change in enthalpy which in turn depends on the temperature (Comparison between temperature and enthalpy-based formulations for the energy transport equation in multi-component systems, V.F. DE FELICE, A. JARDY and H. COMBEAU). This will be very beneficial as it will help to simulate research problems in the field of solidification. This project will require coding the SfePy solver backed by immense literature survey (books entitled FEM for fluid Flows, FEM for Fluid Dynamics, and various research papers in my field of major).


Phase 0

4th May - 16th June

In this period I will review the entire SfePy code and the literature necessary for the project (FEM for flow problems). Then I will convert the required governing equations and formulate its weak form.

Phase 1

17th June - 30th July

In this period I will work on the convection-diffusion solver part. Once complete I shall begin with the convection-diffusion coupled with the phase change phenomenon. The solutions will be benchmarked side by side in order to verify the solution.

2nd August

Mid - Term Evaluation

Phase 2

2nd August - 20th September

I will continue the Convection-Diffusion coupled with phase change and then move ahead with using SfePy to solve representative and standard problems in solid-liquid phase change to generate corresponding examples.

Throughout the cycle documentation will be done as when when the modules are completed.

How will it benefit the community?

With this project SfePy will gain a wider user base as Solidification research groups around the world comprising students and researchers will realize its potential in solving research problems. This will benefit our SfePy community a lot and inspire others to join and contribute to this open source project. This phase change phenomenon will be a stepping stone as it will open an entire new domain to use simulations to design the products of future. One such application is to simulate the flow and heat transfer in an refrigerator with phase change material as its refrigerant which is eco-friendly as there are no CFC emissions.


Relevant courses undertaken

Finite Element Methods for Engineering

Computational Fluid Flow and Heat Transfer

Heat Transfer in Solidification

My research area is Phase changing material modelling.

Patches submitted/Issues Resolved:

SfePy Issue# 167 -

Currently working on SfePy Issue# 164

Coding Experience


Programming/Markup/Scripting languages: C, C++, Java, Python, Cython, Ruby, HTML, CSS, PHP, JavaScript, MySQL, Shell Libraries and Toolkits: Vpython, Matplotlib, Mayavi, Blender, OpenCV, OpenGL, Numpy, Scipy, tk, gtk, wx, fox


Building Custom Applications in Abaqus/CAE using Python

May-July 2012 (Summer Internship)

Organisation : Dassault Systemes

As companies start using engineering simulations more and more, there is a compelling need to make simulation work flows more efficient so that analysts spend more time in engineering and less time in manual tasks such as meshing and report generation. The obvious way to do this would be to automate the routine tasks, and wrap them in custom applications which could be easily deployed across a company. Abaqus/CAE is a modelling and results visualization environment for Abaqus FEA solvers. Abaqus/CAE provides an open interface based on Python, a general-purpose programming language, to build custom plugins and applications. The project completed by me comprised a series of tasks where automation and customization would be immensely helpful in improving efficiency.

Virtual Lab for Acoustics

May - June 2011 (Summer Internship)

Organisation : Ministry of Human Resource and Development, Govt. of India

Designed the Acoustics laboratory platform to promote education in this field of engineering. Added the feature of remotely triggering an experiment in an actual lab and providing the student the result of the experiment through the computer interface. This would entail carrying out the actual lab experiment remotely.

FracGEN - Fractal Generator

May - June 2010

Organisation: Programming Club, IIT Kanpur

Created a Fractal Generator using Python. In the next phase developed a way to use Python Scripting for 3D Modelling so as to have industrial application for designing and manufacturing complicated geometries. It stood 6th in SoftKriti, the open software contest during Techkriti 2011, the inter-collegiate festival.

Mentored Projects

These projects were undertaken by my juniors under my mentorship and were successfully completed.

CystoSim : The open source crystal simulation engine

CAS : Computer Algebra System

Virtual Boxing : Augmented Reality Boxing Game

ML Tron : Machine Learning Tron


Secured 1st position in EI Eduvate - The Educational App Contest in Techkriti 2013.

Special Appreciation in Yahoo HackU 2012 for PosterGEN - The app which generated posters on the fly.

Google Codejam 2011: World Rank 541 (top 5 percent coders) and 6th in India.

Winner and Certified “best hack for community benefit", in Yahoo HackU, 2011for HealthHack. It was a SMS based web application was built for the health center of IITK which could potentially save a lot of time for both students and faculty

Positions of Responsibility

Coordinator, International High Performance Computing Contest, Techkriti'13

Coordinator, Programming Club IIT Kanpur, 2011-12

Coordinator, IOPC and Software Corner, Techkriti'12

Web Coordinator, AME, 2011-12

For complete CV -


I will be working throughout the GSoC period with no leaves. In the period September 16-21 I will have examinations on two days(schedule not yet released) so I request prior permission to take a 2 day leave in this period for which I will make up prior to it.

GSoC 2013 Ideas

Write down your ideas for GSoC 2013, in the following form:

  • idea title (name of prospective student)

idea description

The ideas:

  • Parallelization (Ankit Mahato)

SfePy can support multicore via numpy/scipy multicore support, but compute cluster support is not available which requires knowledge of MPI. So we can add computing cluster support where jobs need to communicate with each other and exploit the high performance computing in order to make it scalable. In Python it can be done using mpi4py module. I have prior experience of HPC on PARAM Supercomputing Grid using MPI in C.

  • Pre- and Post-processing GUI frontend (Ankit Mahato)

One of the reason why people use proprietary software is their ease to use. We can build complete simulation platform with powerful frontend for pre-processing to analysis to post-processing. This will include the script support wherein people can write scripts to post process the data on the platform itself. Also it will be made modular so as to make it extensible. We can look into integrating it with CAD packages like PythonCAD or built our own pre-processor or postprocessor using powerful GUI toolkit to provide the complete simulation solution. I have prior experience of Vpython, vtk along with wx,gtk,fxpy.

  • Incorporating solidification and phase changing materials (Ankit Mahato) [Finalized]

Incorporating Solidification simulation and Phase changing material simulation which has never been done in any simulation software package before. I will develop its model based on various research paper and my own research and encorporate it into SfePy. It involves solving coupled transport equations.

  • FEVA (Ankit Mahato)

Extending SfePy to encompass FEVA - Finite Element Vibration Analysis [1] [1] This book contains vast content. Will go through it and update the wiki soon to point out the particular segment which we can implement.

Before GSoC

It would be good to prospective student(s) to try tackling some of the issues listed below to get acquainted with SfePy code before the GSoC starts:

  • #196 Document properly term evaluation modes and postprocessing/probing.
  • #195 describe how to add Neumann BC in a diffusion example and tutorial (tutorial part done by Alec)
  • #164 Python 3 compatibility
  • #140 test
  • #133 Provide examples for SfePy Terms

Implementing the other enhancements listed in issues would be, of course, also very useful, but those IMHO too difficult for someone trying to learn the code.


The following examples ...


The following tutorials ...

A beginner's tutorial
You can’t perform that action at this time.