.. Antonio Rocha io documentation master file, created by sphinx-quickstart on Tue Nov 16 09:29:18 2021. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. Antonio Rocha's io ================== This is my github.io's main page, here you can find a little more about me and links to my projects' documentations. Links: - `GitHub (public programming projects) `__. - `LinkedIn (professional experience and contact) `__. - `ORCID (list of publications) `__. About me ======== I'm a Brazilian/Portuguese Chemical Engineer. I've graduated from the Federal University of Rio de Janeiro (UFRJ) in 2022, having done a double degree exchange at ESPCI - Paris. From 2022 to 2025, I have done an industrial PhD at the University of Lorraine, in partnership with the French electricity company EDF. The subject of my thesis was "Methodology for systematic process design: analysis of superstructural and generative approaches". In it, I have evaluated the potential of generative approaches for process synthesis, comparing them to the well established superstructural optimization. `This paper summarizes the main finds of my thesis `__ The complete thesis will be publicly available one year after my defence (so around december 2026). You may contact me on LinkedIn if you would like a PDF copy of it when it becomes available. Professional Programming experience =================================== My PhD ------ .. figure:: _assets/synthesis_approaches.png :width: 800 :align: center :alt: *"Summary of types of process synthesis approaches.": A pretty figure from my thesis* *"Summary of types of process synthesis approaches.": A pretty figure from my thesis* My most important professional programming experience has by far been my PhD. Here, I will focus on the programming aspects of it. To learn more about the subject itself (for the process engineers out there), you can check out `the article we've published `_ with the thesis' main findings. During my thesis, I've had to work with multiple codebases by myself (which would come to a total of around ~150k lines of code), having to structure them in a way to make them work with one another. Despite this, I have also had the opportunity to colaborate with other researchers, receiving feedback, learning from them, giving my opinion, and managing GitLab projects together, which was also of great value. I believe this was the closest I have gotten to a true software engineering experience. In the process, I truly became comfortable with git (also learning about and using git submodules), environment management with conda and FORTRAN compilation (on both Windows and Linux). When it comes to the tools, I've mainly worked with python (~50k LOC) and modern FORTRAN (~100k LOC). With Python, I've worked once again with PyTorch (and now also Lightning), on an RNN model for an NLP-analogous problem. I've also adapted an old Keras/Tensorflow VAE for our application, and I have extensively worked with the `SFILES 2.0 `_ codebase (for which `I have recently become a contributor! `_), among other things. I also worked extensively with modern FORTRAN, on an process simulation and optimization software developed in-house. During my thesis, I've had to completely restructure this software (which was an extremely rewarding task!) for adapting it for multithreading using OpenMP. On top of that, to handle the volume of simulations that we needed to run, this code would be executed in a distributed fashion on Linux clusters using slurm. Unfortunately, all the codes developed during my thesis are property of EDF and are thus not publicly available. To see some public code, :ref:`skip to this section `! Undergraduate thesis -------------------- In 2022, I did my undergraduate thesis on a Predictive Emissions Monitoring System (PEMS) at the Federal University of Rio de Janeiro (UFRJ). I developed and compared prediction accuracies for different types of neural networks (NNs, CNNs, RNNs) and hybrid models that integrate them. The final report is publicly available (though written in portuguese) and `can be found here `__ Some of the results were presented in the ESCAPE32 2022 conference, the proceedings of `which can be found here `__. **The code I developped became part of a registered software in Brazil (Registro de Programa de Computador)!** .. figure:: _assets/modelohibrido.png :width: 300 :align: center :alt: *Schematic of the hybrid model.* *Schematic of the hybrid model.* Internship ---------- In 2021, I've done an internship on Battery Health estimation, using concepts of `Transfer Learning `__ for applying models trained for one type of battery to batteries of different chemistries and protocols. We've published an open-access article on this work, `which can be found here `__. The complete code is also available at `here `__. In this internship, I've also gained a lot of experience with creating python documentation using [Sphinx](https://www.sphinx-doc.org/en/master/). .. figure:: _assets/battery_soh.jpg :width: 640 :align: center :alt: *Graphs from the publication.* *Some graphs from the* `publication `__. .. _my_public_projects: My Public Projects ================== CNN Project ----------- This is a personal project for developing skills in python and testing different Convolutional Neural Network (CNN) architectures for different tasks. - `GitHub Repository `__ - `Documentation `__ .. figure:: _assets/drawingboard.bmp :width: 640 :align: center :alt: *The state of the Pygame UI implementation.* *The state of the Pygame UI implementation.* ProcessEngineering ------------------ Project for testing the implementation of different Process Engineering concepts. This includes Equation Ordering Algorithms for Sequential Modeling and simulation. It also serves as a dive into object oriented programming and dynamic definitions of functions. - `GitHub Repository `__ - `Documentation `__ Basic Optimization Framework ---------------------------- Small project for relearning FORTRAN 90 and studying optimization concepts. This project is a generic framework over which simple optimization methods can be built upon and run. - `GitHub Repository `__ - `Documentation `__ C++ Game -------- Small project following the footsteps of `Let's make games' "How to make a game" tutorial `__ as a means of learning a little bit of C++. - `GitHub Repository `__ - `Documentation `__