Numerical integration methods for structural dynamics problems
Author ONSAS
11 Stars
Updated Last
1 Year Ago
Started In
February 2021


Build Status Documentation license Join the chat at

This package contains pure Julia implementations of ordinary differential equations (ODE) solvers for structural dynamics problems.


The following solvers for linear dynamic equations are available:

  • Bathe (equal size sub-steps) [BAT07]
  • Central difference
  • Houbolt [HOU50]
  • Newmark [NEW509]
  • Backward Euler (for first order systems)


The following example is explained in this notebook.

For further examples see the Example section of the documentation.

using StructuralDynamicsODESolvers

k  = 2 ; m  = .5 ;  c = .1 
u0 = 1 ; v0 = 0 

alg = Bathe(Δt = 0.1)

M = m*ones(1, 1)
C = c*ones(1, 1)
K = k*ones(1, 1)
R = zeros(1)

sys = SecondOrderAffineContinuousSystem(M, C, K, R)

U₀ = u0 * ones(1)
V₀ = v0 * ones(1)

prob = InitialValueProblem(sys, (U₀, V₀))

sol = solve(prob, alg, NSTEPS=300);
using Plots

plot(sol, vars=(0, 1), xlab="time", ylab="displacement")

Related libraries

This package has been created for research purposes. If you are new to numerically solving differential equations in Julia, we strongly suggest that you use the DifferentialEquations.jl suite.


Used By Packages

No packages found.