You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current implementation of TransientProblem requires the setting of initial conditions via the setInitConditions() function. In this function the user can directly set all three initial conditions for states, first time derivative states, and second time derivative states. When integrating in time with TACSIntegrator, the initial states are copied directly for the initial time step. This doesn't seem correct, since at least one of the sets of states should be solved for at initial time through the solution of the ODE. Talking with @timryanb, he noted that this issue also changes depending on the type of analysis being done, elastic vs. thermal, since the thermal problem is first-order while the elastic problem is second-order.
For example, consider a transient elastic problem where the initial displacement and velocity are set to zero. For the case where there is a nonzero force at initial time, then the initial acceleration states would be nonzero and need to be solved for. However, if the user specified them to be zero like the displacement and velocity, then the initial acceleration states would be incorrect. This mismatch in initial states negatively affects the time marching solution. Starting from incorrect initial states will ruin the time-order accuracy of the time-marching scheme, so if high-order schemes like DIRK or ESDIRK are being used then this would be a problem.
Is this a known issue? Is there a reason behind the current implementation or a way to set up the transient problem to avoid this issue?
The text was updated successfully, but these errors were encountered:
The current implementation of
TransientProblem
requires the setting of initial conditions via thesetInitConditions()
function. In this function the user can directly set all three initial conditions for states, first time derivative states, and second time derivative states. When integrating in time withTACSIntegrator
, the initial states are copied directly for the initial time step. This doesn't seem correct, since at least one of the sets of states should be solved for at initial time through the solution of the ODE. Talking with @timryanb, he noted that this issue also changes depending on the type of analysis being done, elastic vs. thermal, since the thermal problem is first-order while the elastic problem is second-order.For example, consider a transient elastic problem where the initial displacement and velocity are set to zero. For the case where there is a nonzero force at initial time, then the initial acceleration states would be nonzero and need to be solved for. However, if the user specified them to be zero like the displacement and velocity, then the initial acceleration states would be incorrect. This mismatch in initial states negatively affects the time marching solution. Starting from incorrect initial states will ruin the time-order accuracy of the time-marching scheme, so if high-order schemes like DIRK or ESDIRK are being used then this would be a problem.
Is this a known issue? Is there a reason behind the current implementation or a way to set up the transient problem to avoid this issue?
The text was updated successfully, but these errors were encountered: