def nonlinear_force(self, u_e, x0_e): # Compute local deformations, then rotate to global # Returns internal force vector (6,) and tangent stiffness (6,6) pass class SnakeFEModel: def (self, n_elements, length, E, rho, radius=0.005): self.n_elements = n_elements self.n_nodes = n_elements + 1 self.ndof = 3 * self.n_nodes self.E = E self.rho = rho A = np.pi * radius 2 I = np.pi * radius 4 / 4 self.beam = CorotationalBeam(E, A, I, length) self.M = self._mass_matrix()

def solve(self, dt, t_final, actuation_func): t = 0.0 u = np.zeros(self.ndof) v = np.zeros(self.ndof) a = np.zeros(self.ndof) while t < t_final: # Newmark prediction u_pred = u + dt * v + dt**2 * (0.5 - self.beta) * a v_pred = v + dt * (1 - self.gamma) * a # Nonlinear solve for a_new # ... Newton-Raphson using residual = M*a + F_int - F_ext # Update u, v, a t += dt return u, v, a The full implementation (~500 lines) is available in the supplementary material.

def _local_stiffness(self): k = np.zeros((6,6)) # Standard beam stiffness matrix (axial, bending) # ... (implementation omitted for brevity) return k

def _mass_matrix(self): M = lil_matrix((self.ndof, self.ndof)) # Assemble consistent mass matrix return M.tocsc()

Image

WHAT IS GASPARILLA?

#JOINTHEINVASION

Fe Snake Script -

def nonlinear_force(self, u_e, x0_e): # Compute local deformations, then rotate to global # Returns internal force vector (6,) and tangent stiffness (6,6) pass class SnakeFEModel: def (self, n_elements, length, E, rho, radius=0.005): self.n_elements = n_elements self.n_nodes = n_elements + 1 self.ndof = 3 * self.n_nodes self.E = E self.rho = rho A = np.pi * radius 2 I = np.pi * radius 4 / 4 self.beam = CorotationalBeam(E, A, I, length) self.M = self._mass_matrix()

def solve(self, dt, t_final, actuation_func): t = 0.0 u = np.zeros(self.ndof) v = np.zeros(self.ndof) a = np.zeros(self.ndof) while t < t_final: # Newmark prediction u_pred = u + dt * v + dt**2 * (0.5 - self.beta) * a v_pred = v + dt * (1 - self.gamma) * a # Nonlinear solve for a_new # ... Newton-Raphson using residual = M*a + F_int - F_ext # Update u, v, a t += dt return u, v, a The full implementation (~500 lines) is available in the supplementary material. FE Snake Script

def _local_stiffness(self): k = np.zeros((6,6)) # Standard beam stiffness matrix (axial, bending) # ... (implementation omitted for brevity) return k x0_e): # Compute local deformations

def _mass_matrix(self): M = lil_matrix((self.ndof, self.ndof)) # Assemble consistent mass matrix return M.tocsc() ) and tangent stiffness (6

THE LEGEND BEHIND THE INVASION

Off the shores of Florida, the legend of buccaneering sparked a tradition unlike any other. What began as a daring invasion and a forceful command to surrender the key to the city has evolved into today’s Gasparilla—parades, pirates, and an annual takeover that welcomes hundreds of thousands of revelers to join the krewe.

MISSION STATEMENT

The Union Home Mortgage Gasparilla Bowl is more than a game—it’s a full-on celebration. From Selection Day to the moment one team raises the iconic Treasure Trophy, we bring the spirit of Gasparilla to life with a bowl week packed with energy, tradition, and unforgettable experiences. For student-athletes, fans, and partners, it’s a can’t-miss clash that lights up Tampa Bay—and makes the holiday season even brighter for the community we call home.

OUR VALUES

A – Affordable entertainment for the whole family
R – Rally as a community
R – Reward student-athlete success with a first-class experience
G – Give back around the holidays
H – Highlight Tampa Bay

Image
Image

BOWL WEEK EVENTS

LEARN MORE
Image

PHOTO GALLERY

LEARN MORE
Image

NEWS & UPDATES

LEARN MORE

GET YOUR TICKETS TODAY!

#JOINTHEINVASION