DYNAMICS C API
C-compatible interface to the DYNAMICS library
Loading...
Searching...
No Matches
Linear structural time integration

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.
 

Detailed Description

Function Documentation

◆ c_create_dense_generalized_alpha_integrator()

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.

Parameters
nNumber of degrees of freedom.
mn-by-n mass matrix.
ldmLeading dimension of m.
cn-by-n damping matrix.
ldcLeading dimension of c.
kn-by-n stiffness matrix.
ldkLeading dimension of k.
rho_infinityHigh-frequency spectral radius in [0, 1]. A value of 1 gives the average-acceleration (trapezoidal) scheme.
Returns
Integrator handle; release with c_free_structural_integrator.

◆ c_free_structural_integrator()

void c_free_structural_integrator ( c_structural_integrator  obj)

Release a structural integrator handle.

Parameters
objIntegrator handle; NULL is ignored.

◆ c_structural_integrator_step()

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.

Parameters
objIntegrator handle.
nNumber of degrees of freedom.
force_currentn-element external force at the start of the step.
force_nextn-element external force at the end of the step.
dtPositive time step.
displacementn-element displacement; updated to the end state.
velocityn-element velocity; updated to the end state.
accelerationn-element acceleration; updated to the end state. On the first step this must be consistent with the initial conditions.

◆ c_structural_integrator_solve()

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.

Parameters
objIntegrator handle.
nNumber of degrees of freedom.
nptsNumber of force samples (time points); at least 2.
forcesn-by-npts matrix whose columns are the external force at each time point.
ldfLeading dimension of forces.
dtPositive time step.
displacementn-element displacement; initial state on input, final state on output.
velocityn-element velocity; initial state on input, final state on output.
accelerationn-element acceleration; initial state on input, final state on output.