|
DYNAMICS C API
C-compatible interface to the DYNAMICS library
|
Functions | |
| c_structural_integrator | c_create_dense_generalized_alpha_integrator (int n, const double *m, int ldm, const double *c, int ldc, const double *k, int ldk, double rho_infinity) |
| Create a dense generalized-alpha integrator for M*a + C*v + K*u = f. | |
| void | c_free_structural_integrator (c_structural_integrator obj) |
| Release a structural integrator handle. | |
| void | c_structural_integrator_step (c_structural_integrator obj, int n, const double *force_current, const double *force_next, double dt, double *displacement, double *velocity, double *acceleration) |
| Advance the state by one time step. | |
| void | c_structural_integrator_solve (c_structural_integrator obj, int n, int npts, const double *forces, int ldf, double dt, double *displacement, double *velocity, double *acceleration) |
| Advance the state through a force history using npts - 1 constant steps. | |
| c_structural_integrator c_create_dense_generalized_alpha_integrator | ( | int | n, |
| const double * | m, | ||
| int | ldm, | ||
| const double * | c, | ||
| int | ldc, | ||
| const double * | k, | ||
| int | ldk, | ||
| double | rho_infinity | ||
| ) |
Create a dense generalized-alpha integrator for M*a + C*v + K*u = f.
The matrices must already reflect any boundary conditions.
| n | Number of degrees of freedom. |
| m | n-by-n mass matrix. |
| ldm | Leading dimension of m. |
| c | n-by-n damping matrix. |
| ldc | Leading dimension of c. |
| k | n-by-n stiffness matrix. |
| ldk | Leading dimension of k. |
| rho_infinity | High-frequency spectral radius in [0, 1]. A value of 1 gives the average-acceleration (trapezoidal) scheme. |
| void c_free_structural_integrator | ( | c_structural_integrator | obj | ) |
Release a structural integrator handle.
| obj | Integrator handle; NULL is ignored. |
| void c_structural_integrator_step | ( | c_structural_integrator | obj, |
| int | n, | ||
| const double * | force_current, | ||
| const double * | force_next, | ||
| double | dt, | ||
| double * | displacement, | ||
| double * | velocity, | ||
| double * | acceleration | ||
| ) |
Advance the state by one time step.
| obj | Integrator handle. |
| n | Number of degrees of freedom. |
| force_current | n-element external force at the start of the step. |
| force_next | n-element external force at the end of the step. |
| dt | Positive time step. |
| displacement | n-element displacement; updated to the end state. |
| velocity | n-element velocity; updated to the end state. |
| acceleration | n-element acceleration; updated to the end state. On the first step this must be consistent with the initial conditions. |
| void c_structural_integrator_solve | ( | c_structural_integrator | obj, |
| int | n, | ||
| int | npts, | ||
| const double * | forces, | ||
| int | ldf, | ||
| double | dt, | ||
| double * | displacement, | ||
| double * | velocity, | ||
| double * | acceleration | ||
| ) |
Advance the state through a force history using npts - 1 constant steps.
Only the final state is returned.
| obj | Integrator handle. |
| n | Number of degrees of freedom. |
| npts | Number of force samples (time points); at least 2. |
| forces | n-by-npts matrix whose columns are the external force at each time point. |
| ldf | Leading dimension of forces. |
| dt | Positive time step. |
| displacement | n-element displacement; initial state on input, final state on output. |
| velocity | n-element velocity; initial state on input, final state on output. |
| acceleration | n-element acceleration; initial state on input, final state on output. |