under construction ...
Welcome to the SfePy wiki!
GSoC Proposal(Ankit Mahato)
Name: Ankit Mahato
Telephone: +91 9532094890
IRC handle including network: email@example.com
Source control username: https://github.com/animator
Gtalk [availability 24x7] : firstname.lastname@example.org
Twitter : twitter.com/ankitmahato
Any other ways we can reach you
Institute E-mail: email@example.com
Home Page: http://home.iitk.ac.in/~amahato
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
SfePy: Enhancing the solver to simulate solid-liquid phase change phenomenon in convective-diffusive situations
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).
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.
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.
Mid - Term Evaluation
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 - https://github.com/sfepy/sfepy/issues/167
Currently working on SfePy Issue# 164
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.
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 - http://home.iitk.ac.in/~amahato/CV.pdf
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)
- 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   http://books.google.co.in/books/about/Introduction_to_Finite_Element_Vibration.html?id=N71ACcE-dXwC&redir_esc=y This book contains vast content. Will go through it and update the wiki soon to point out the particular segment which we can implement.
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 schroedinger.py
- #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