https://github.com/onsas/structuraldynamicsodesolvers.jl
Numerical integration methods for structural dynamics problems
https://github.com/onsas/structuraldynamicsodesolvers.jl
finite-element-methods numerical-integration structural-dynamics
Last synced: 15 days ago
JSON representation
Numerical integration methods for structural dynamics problems
- Host: GitHub
- URL: https://github.com/onsas/structuraldynamicsodesolvers.jl
- Owner: ONSAS
- License: mit
- Created: 2021-02-09T17:59:32.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-06-29T10:33:41.000Z (about 1 year ago)
- Last Synced: 2025-04-22T09:16:58.591Z (2 months ago)
- Topics: finite-element-methods, numerical-integration, structural-dynamics
- Language: Julia
- Homepage: https://onsas.github.io/StructuralDynamicsODESolvers.jl/dev/
- Size: 2.28 MB
- Stars: 13
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# StructuralDynamicsODESolvers.jl
[](https://github.com/ONSAS/StructuralDynamicsODESolvers.jl/actions?query=workflow%3ACI)
[](https://onsas.github.io/StructuralDynamicsODESolvers.jl/dev/)
[](https://github.com/ONSAS/StructuralDynamicsODESolvers.jl/blob/master/LICENSE)This package contains pure Julia implementations of ordinary differential equations (ODE) solvers for
structural dynamics problems.## Features
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)## Example
The following example is explained in [this notebook](https://nbviewer.org/github/ONSAS/StructuralDynamicsODESolvers.jl/blob/gh-pages/dev/models/massDashpotSpring.ipynb).
For further examples see the [Examples](https://onsas.github.io/StructuralDynamicsODESolvers.jl/dev/models/example_9_1_Bathe/) section of the documentation.
```julia
using StructuralDynamicsODESolversk = 2 ; m = .5 ; c = .1
u0 = 1 ; v0 = 0alg = 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);
``````julia
using Plotsplot(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 suggest that you use the [DifferentialEquations.jl](https://diffeq.sciml.ai/dev/) suite.
## References
- [BAT07] Bathe, Klaus-Jürgen. "[Conserving energy and momentum in nonlinear dynamics: a simple implicit time integration scheme.](https://www.sciencedirect.com/science/article/abs/pii/S0045794906003099)" Computers & structures 85.7-8 (2007): 437-445.
- [NEW59] Newmark, Nathan M. "[A method of computation for structural dynamics.](https://engineering.purdue.edu/~ce573/Documents/Newmark_A%20Method%20of%20Computation%20for%20Structural%20Dynamics.pdf)" Journal of the engineering mechanics division 85.3 (1959): 67-94.
- [HOU50] Houbolt, John C. "[A recurrence matrix solution for the dynamic response of elastic aircraft.](https://arc.aiaa.org/doi/10.2514/8.1722)" Journal of the Aeronautical Sciences 17.9 (1950): 540-550.