Research Projects

Aerostructural Optimization of CRM Wing: UMich ADFlow aerodynamic solver (formerly SUmb) developed in Fortran, and UMich TACS structural solver developed in C++, are coupled together using Python SWIG and F2Py bindings, using the individual discipline feasible (IDF) architecture. The resulting multidisciplinary analysis code is used in conjunction with a reducedspace inexactNewtonKrylov algorithm and a novel matrixfree IDF preconditionerto perform aerostrutural shape optimization of the NASA Common Research Model (CRM) wing.

pyPLAC: A simple Parallel Linear Algebra Core implemented with
mpi4py
. Provides basic distributed matrix and vector objects, with useful member functions for matrixvector algebra and linear system solutions. The repository includes a 2D Poisson solver used in a multidisciplinary optimization test problem, which implements the IDF architecture in a way that mimics domain decomposition. Related publication: 10.1007/s0015801717340 
Kona: A Python library for nonlinear constrained optimization. Originally developed in C++, Kona has since been rewritten and redesigned in Python for better interoperability with other languages, and lower barrier of entry for new researchers. Kona employs a linear algebra abstraction layer that allows for rapid development of new optimization algorithms, and easy integration with a wide range of parallelized PDE solvers. Related publication: 10.2514/6.20161422

Aerodynamic Shape Optimization of CRM Wing: Collaboration with MDOLab @ University of Michigan under the NASA LEARN project. Inhouse C++ optimization library was glued to UMich SUmb flow solver via Boost.Python. Additionally, SUmb was modified to provide matrixfree jacobianvector products via Tapenade forward and reverse automatic differentiation. Related publication: 10.2514/6.20151945

Aerostructural Optimization of a 2D Elastic Nozzle: Developed a 2D beam finite element analysis code, coupled to an inhouse quasi1D Euler flow solver. This multidisciplinary analysis code was used to solve an inverse design optimization problem with a reducedspace inexactNewtonKrylov algorithm. Boost library is used extensively for both linear algebra and linking the solver to Kona via Boost.Python. Related publication: 10.2514/6.20140110
Computational Coursework

CSCI 6360 Parallel Programming: Repository of C code samples for parallel programming with MPI, demonstrated on variations of Conwayâ€™s Game of life. Originally written for the CSCI 6360 class taught by Prof. Christopher D. Carothers in the Spring 2016 semester at Rensselaer Polytechnic Institute.

MATH 6840 Numerical Solution of PDEs: Repository of MATLAB code samples for finite difference solution of partial differential equations, and visualization of solution data. Originally written for the MATH 6840 class taught by Prof. Jeffrey W. Banks in the Fall 2015 semester at Rensselaer Polytechnic Institute.

MANE 6760 Finite Elements for Fluid Dynamics: Repository of Python FEnICS code samples for finite element solution of partial differential equations, focused on applications in fluid dynamics. Originally written for the MANE 6760 class taught by Prof. Assad Oberai in the Fall 2013 semester at Rensselaer Polytechnic Institute.
Misc. Projects
 Optimal Design Lab Website: An allinclusive automated static website solution for an academic research group. Implements smart publication parsing from BibTeX files using a Python3 script. Site content is easily updated via YAML and Markdown sources. Built using Jekyll and Foundation CSS.