sfepy.solvers.ts_solvers module

Time stepping solvers.

class sfepy.solvers.ts_solvers.AdaptiveTimeSteppingSolver(conf, **kwargs)[source]

Implicit time stepping solver with an adaptive time step.

Either the built-in or user supplied function can be used to adapt the time step.

name = 'ts.adaptive'
static process_conf(conf, kwargs)[source]

Process configuration options.

solve_step(ts, state0, nls_status=None)[source]

Solve a single time step.

class sfepy.solvers.ts_solvers.ExplicitTimeSteppingSolver(conf, **kwargs)[source]

Explicit time stepping solver with a fixed time step.

name = 'ts.explicit'
static process_conf(conf, kwargs)[source]

Process configuration options.

solve_step(ts, state0, nls_status=None)[source]

Solve a single time step.

class sfepy.solvers.ts_solvers.SimpleTimeSteppingSolver(conf, **kwargs)[source]

Implicit time stepping solver with a fixed time step.

name = 'ts.simple'
static process_conf(conf, kwargs)[source]

Process configuration options.

solve_step(ts, state0, nls_status=None)[source]

Solve a single time step.

class sfepy.solvers.ts_solvers.StationarySolver(conf, **kwargs)[source]

Solver for stationary problems without time stepping.

This class is provided to have a unified interface of the time stepping solvers also for stationary problems.

name = 'ts.stationary'
sfepy.solvers.ts_solvers.adapt_time_step(ts, status, adt, problem=None)[source]

Adapt the time step of ts according to the exit status of the nonlinear solver.

The time step dt is reduced, if the nonlinear solver did not converge. If it converged in less then a specified number of iterations for several time steps, the time step is increased. This is governed by the following parameters:

  • red_factor : time step reduction factor
  • red_max : maximum time step reduction factor
  • inc_factor : time step increase factor
  • inc_on_iter : increase time step if the nonlinear solver converged in less than this amount of iterations...
  • inc_wait : ...for this number of consecutive time steps
Parameters:

ts : VariableTimeStepper instance

The time stepper.

status : IndexedStruct instance

The nonlinear solver exit status.

adt : Struct instance

The adaptivity parameters of the time solver:

problem : ProblemDefinition instance, optional

This canbe used in user-defined adaptivity functions. Not used here.

Returns:

is_break : bool

If True, the adaptivity loop should stop.

sfepy.solvers.ts_solvers.get_initial_state(problem)[source]

Create a zero state vector and apply initial conditions.

sfepy.solvers.ts_solvers.get_min_dt(adt)[source]
sfepy.solvers.ts_solvers.make_explicit_step(ts, state0, problem, mass, nls_status=None)[source]

Make a step of an explicit time stepping solver.

sfepy.solvers.ts_solvers.make_implicit_step(ts, state0, problem, nls_status=None)[source]

Make a step of an implicit time stepping solver.

sfepy.solvers.ts_solvers.prepare_matrix(problem, state)[source]

Pre-assemble tangent system matrix.

sfepy.solvers.ts_solvers.prepare_save_data(ts, conf)[source]

Given a time stepper configuration, return a list of time steps when the state should be saved.