fedoo.problem.ExplicitDynamic.solve_history
- ExplicitDynamic.solve_history(tmax, dt=None, update_weakform=False, update_mass=None, save_results=False, interval_output=None, callback=None)
Solve a complete explicit-dynamic time history.
The nominal time increment is constant. It is shortened temporarily when required to reach an exact output time or
tmax, then restored when this method returns. This method does not perform Newton iterations;update_weakformcontrols whether the explicitly evaluated forces and constitutive state are refreshed.- Parameters:
tmax (float) – Final physical time. It must not be lower than the current problem time, so the method can also continue an existing history.
dt (float, optional) – Nominal time increment. If omitted, the
time_stepsupplied toExplicitDynamicis used.update_weakform (bool, default=False) –
Select the physical-model update strategy.
If false, stiffness and the linear internal-force relation cached by
initialize()are reused. No constitutive history is committed between increments. This is the efficient choice for a genuinely linear problem with fixed geometry, fixed contact state and state-independent loads. At requested output times only, a vector assembly update is performed so fields such as stress and strain correspond to the saved displacement; stiffness and mass remain cached.If true, the assembly and constitutive law are updated at the time integrator’s force-evaluation state and again at the accepted end-of-increment state.
set_start()then commits the accepted constitutive history. This is required for nonlinear materials, geometric nonlinearity, evolving contact, or any contribution that depends on the current solution. It is more expensive, but using false in those cases would evaluate incorrect forces even if the explicit algebraic solve itself succeeds.update_mass (bool or None, default=None) – If true, rebuild both finite-element mass and assembly-provider storage each increment. If false, reuse all cached mass terms. If none, keep finite-element mass cached while refreshing only assembly-level storage providers that do not declare
storage_matrix_is_constant = True.save_results (bool, default=False) – Save registered outputs. With no
interval_output, save after every nominal time interval. Supplyinginterval_outputalso enables saving, so this flag need not be set in that case.interval_output (float, optional) – Physical-time interval between saved results. Output times are reached exactly, and the final state at
tmaxis always saved. Use-1to select the nominal time increment. An iteration-count interval is intentionally not supported by this explicit solver.callback (callable, optional) – Function called as
callback(problem)after every accepted time increment, independently of the output interval.
- Returns:
This problem instance.
- Return type:
Notes
Boundary conditions are reapplied for every increment, which allows user code to modify loads, prescribed values, node sets or MPCs while a history is running.