English | 日本語
seismic-response
This crate performs seismic response analysis of a single-degree-of-freedom system using Newmark's β method. It can calculate the absolute response acceleration from the seismic acceleration waveform.
If your goal is to perform seismic response analysis, you can also use the calculation site implemented using the wasm version of this crate.
Usage
use Reader;
use crate::;
WebAssembly
This program is published on npm as an npm package. It can be used in the same way as the Rust crate.
Equations
This program is implemented based on the following equations.
Stiffness Coefficient
Calculate the stiffness coefficient ( k ) based on the mass ( m ) and the natural period in milliseconds ( T_ {\text{ms}} ):
$$ k = \frac{4 \pi^2 m}{\left(\frac{T_{\text{ms}}}{1000}\right)^2} $$
Damping Coefficient
Calculate the damping coefficient ( c ) based on the damping constant ( h ), mass ( m ), and stiffness coefficient ( k ):
$$ c = 2h\sqrt{km} $$
Step-by-Step Calculation
Response Acceleration
Calculate the acceleration at the next step ( a_{n+1} ):
$$ a_{n+1} = \frac{p_{n+1} - c\left(v_n + \frac{\Delta t}{2}a_n\right) - k\left(x_n + \Delta t v_n + \left(\frac{1}{2} - \beta\right)\Delta t2 a_n\right)}{m + \frac{\Delta t}{2}c + \beta \Delta t2 k} $$
Here, the external force ( p_{n+1} ) is given by:
$$ p_{n+1} = -xg_{n+1} m $$
Response Velocity
Calculate the velocity at the next step ( v_{n+1} ):
$$ v_{n+1} = v_n + \frac{\Delta t}{2}(a_n + a_{n+1}) $$
Response Displacement
Calculate the displacement at the next step ( x_{n+1} ):
$$ x_{n+1} = x_n + \Delta t v_n + \left(\frac{1}{2} - \beta\right) \Delta t2 a_n + \beta \Delta t2 a_{n+1} $$
Absolute Response Acceleration
Calculate the final absolute response acceleration ( a_{\text{abs}} ):
$$ a_{\text{abs}} = a + xg $$
These are the main equations implemented within the program.
[!NOTE] In these equations, the mass ( m ) is treated as a variable, but in the actual program, calculations are performed assuming a mass of 1. This is because the mass does not affect the absolute response acceleration. This can be confirmed in the test code within the documentation.
License
Licensed under either of the following, at your option:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
(The English in the documentation comments and README file has been translated using DeepL and ChatGPT.)