Computational Models

I started making computational models after my experience at the 2025–2026 United States Invitational Young Physicists Tournament (USIYPT). At the USIYPT, I worked with my team to study eddy currents and characterize the linear relationship between magnet velocity and braking force. To formulate our team’s argument, my teammate used his math and physics knowledge to derive a set of equations to predict the velocity of a magnet falling down a tube. Inspired by his idea and by my own math, physics, and engineering work on this team, I decided to develop mathematical models of my rockets and solve them computationally, first to predict altitude and then to optimize rocket design.

To figure out how high a rocket flies, I needed to know the forces acting on the rocket at any given time. I started with the trajectory equations.

In my model, I assumed that there were three forces acting on the rocket: gravity, thrust, and drag. Drag opposed the direction of motion and was proportional to the square of the rocket’s velocity. Rough drag coefficients existed for parabolic nose cones, so this force was easily quantified. What remained elusive were the thrust and gravitational forces, both of which depended on the exit velocity of the water.

My first mathematical model for exit velocity was relatively simple. It used Bernoulli’s principle to compare the pressure and velocity inside the bottle with those of the water exiting the bottle. This enabled me to derive an expression for exit velocity as a function of internal pressure. However, as the water escaped, the internal compressed air expanded. As the compressed air expanded, the pressure dropped, which reduced the exit velocity. This formed a set of differential equations that was easy to define but difficult to solve.

To solve these equations, I turned to the computational software Wolfram Mathematica, which could numerically approximate their solutions.

Credit: NASA

This model, after brief tuning, appeared to approximate my rockets’ altitudes. However, I never experimented with it much further because it contained a myriad of physically unrealistic assumptions that limited its accuracy. The model could not account for losses from fluid friction and could not compute thrust over time for a fluid that starts at rest and then accelerates, among other issues.

After months of research, I decided to simulate the internal fluid dynamics of the rocket with a custom computational fluid dynamics (CFD) model. A model of this complexity allows me to simulate fluid flow through specific nozzle designs—different nozzle contraction shapes have different levels of efficiency in converting the pressure of the air in the rocket into exit velocity. This model is still in development. I am currently building it in OpenFOAM, an open-source CFD package. I am using the Unsteady Reynolds-Averaged Navier-Stokes (URANS) equations to calculate energy losses caused by fluid viscosity and nozzle geometry. Once this model is complete, I will be able to determine an optimal nozzle contraction design with a CFD optimizer.

Credit: Gabriel Gerlero, OpenFOAM.app

Credit: Idaho National Laboratory

However, nozzle and fuselage dimensions are only half of the story. This type of CFD optimizer cannot account for how thick the walls of the water rocket need to be to withstand a given pressure. For example, smaller-diameter rockets can use thinner walls to hold the same internal pressure. I am in the process of learning to use an open-source finite element analysis (FEA) framework called MOOSE (Multiphysics Object-Oriented Simulation Environment), which would allow me to predict the optimal wall thickness from fuselage dimensions and required internal pressure. This would let me design rockets that can withstand the target internal pressure while also remaining as lightweight as possible.