fedoo.problem.ExplicitDynamic

class ExplicitDynamic(StiffnessAssembly, MassAssembly, TimeStep, DampingAssembly=None, name='MainProblem')

Define a Centred Difference problem for structural dynamic For damping, the backward euler derivative is used to compute the velocity The algorithm come from: Bathe KJ and Edward W, “Numerical methods in finite element analysis”, Prentice Hall, 1976, pp 323-324

__init__(StiffnessAssembly, MassAssembly, TimeStep, DampingAssembly=None, name='MainProblem')

Methods

ExplicitDynamic.GetElasticEnergy()

returns : 0.5 * U.transposed * K * U

ExplicitDynamic.GetKineticEnergy()

returns : 0.5 * Udot.transposed * M * Udot

ExplicitDynamic.MassLumping()

ExplicitDynamic.SetInitialAcceleration(name, ...)

name is the name of the associated variable (generaly 'DispX', 'DispY' or 'DispZ') value is an array containing the initial acceleration of each nodes

ExplicitDynamic.SetInitialDisplacement(name, ...)

name is the name of the associated variable (generaly 'DispX', 'DispY' or 'DispZ') value is an array containing the initial displacement of each nodes

ExplicitDynamic.SetInitialVelocity(name, value)

name is the name of the associated variable (generaly 'DispX', 'DispY' or 'DispZ') value is an array containing the initial velocity of each nodes

ExplicitDynamic.SetMassMatrix(e)

ExplicitDynamic.SetRayleighDamping(alpha, beta)

Compute the damping matrix from the Rayleigh's model: [C] = alpha*[M] + beta*[K]

ExplicitDynamic.SetStiffnessMatrix(e)

ExplicitDynamic.add_output(filename, ...[, ...])

ExplicitDynamic.apply_boundary_conditions([...])

ExplicitDynamic.get_A()

ExplicitDynamic.get_B()

ExplicitDynamic.get_D()

ExplicitDynamic.get_DampingPower()

returns : Udot.transposed * C * Udot The damping disspated energy can be approximated by: Edis = cumtrapz(DampingPower * TimeStep)

ExplicitDynamic.get_X()

ExplicitDynamic.get_Xdot()

ExplicitDynamic.get_active()

Return the active Problem.

ExplicitDynamic.get_all()

Return the list of all problems.

ExplicitDynamic.get_dof_solution([name])

ExplicitDynamic.get_ext_forces([name, ...])

Return the nodal Forces in global coordinates system.

ExplicitDynamic.get_results(assemb, output_list)

ExplicitDynamic.init_bc_start_value()

ExplicitDynamic.initialize()

ExplicitDynamic.make_active()

Define the problem instance as the active Problem.

ExplicitDynamic.save_results([iterOutput])

ExplicitDynamic.set_A(A)

ExplicitDynamic.set_B(B)

ExplicitDynamic.set_D(D)

ExplicitDynamic.set_active(name)

Define the active Problem from its name.

ExplicitDynamic.set_dof_solution(name, value)

ExplicitDynamic.set_solver([solver])

Define the solver for the linear system resolution.

ExplicitDynamic.solve(**kargs)

ExplicitDynamic.update()

ExplicitDynamic.updateStiffness(...)

ExplicitDynamic.update_boundary_conditions()

ExplicitDynamic.active

ExplicitDynamic.n_dof

ExplicitDynamic.name

Return the name of the Problem.

ExplicitDynamic.results

ExplicitDynamic.solver

Return the current solver used for the problem.

ExplicitDynamic.space

Return the ModelingSpace associated to the Problem if defined.

ExplicitDynamic.bc

Boundary conditions defined on the problem.