# Code

This page has descriptions of my coding projects, along with links to their respective repos.

My GitHub containing the source code for these and my old projects is https://github.com/ianfri. I keep my projects in private GitLab repos, so the public GitHub just contains **copies** of those repos, and may be partially incomplete.

Below is a table of contents with clickable links to jump to each section:

## Parallel Rubble-Pile Asteroid Simulation in C++

https://github.com/ianfri/asteroid-simulation

3-D Rubble-Pile Asteroid Simulator. Uses CPU Multi-threading via the C++ STL. Event-based collisions interpolated with 4th-order symplectic integrator.

(This project needs polishing, but now I'm focused on other work.)

*3-D images to the left are from a 150-second parallel simulation of two asteroids colliding.*

*The ~1700 points plotted are the centers of the hard spheres making up each asteroid.*

*The plots were created using ParaView.*

## Prediction of Airfoil Drag Coefficients with Tensowflow and OpenFOAM

*Plot of the Mean Absolute Error over time on the training and validation datasets*

*STL file containing the geometry for an arbitrary airfoil generated using gmsh*

https://github.com/ianfri/airfoil-tensorflow-openfoam

Used C++, R, and a Bash script to:

Randomly generate DATA set for 10000 NACA-4 airfoils with 4 parameters, and the air velocity, and the angle of attack:

Number describing max camber as a percentage of the chord

Number describing the distance of maximum camber from the airfoil

Leading edge in tens of percents of the chord

Number describing maximum thickness of the airfoil as percent of the chord

Velocity of the air moving past the foil

Angle of attack for the foil

Generate MESHES with

*gmsh*for each of the airfoils from the DATA description of each airfoil from (1)Use

*OpenFOAM*to generate the lift coefficient DATA for each airfoil using the MESHES from (2) and the air velocity and angle from (1)Use the DATA from (1) and (3) to train/test a

*Tensorflow/Keras*Neural Network to predict lift coefficient from the three NACA, air velocity, and angle of attack parameters

## Stock Analysis with Python, Julia and Mathematica

*Bollinger Bands for IBM in Mathematica*

The full code for this project is in a private GitLab repository. A redacted version is available at [link coming soon!]

Created a dashboard in Mathematica for "classic" analysis of a portfolio using standard momentum indicators.

[WIP] Use Python and Neo4j to execute novel graph algorithms for daily trade recommendations.

Created a Julia script for parsing a large historical dataset and outputting clean windows of data.

## Ground-State Energy Calculations using Hartree-Fock in Julia

*HeH+ molecule*

https://github.com/ianfri/hf-julia

Script for calculating the ground-state energy of an HeH+ molecule using a Hartree-Fock Self-Consistent Field procedure.

Heavily based on a blog post I saw following Szabo's text, which was in Python.