fedoo.problem.Modal
- class Modal(assembly: Assembly, name: str = 'MainProblem')
Compute natural frequencies and mode shapes of a linear model.
The undamped free-vibration problem is
\[\mathbf{K}\boldsymbol{\phi} = \omega^2\mathbf{M}\boldsymbol{\phi}.\]Modalobtains the stiffness and consistent mass matrices from the supplied assembly. Dirichlet and multi-point constraints are applied to both matrices before the generalized symmetric eigenproblem is solved.- Parameters:
assembly (Assembly-like object or str) – Linear mechanical assembly. Its weak forms must provide second-order storage, normally through a material density or
set_inertia.name (str, default="MainProblem") – Name of the problem.
Notes
Mode shapes are mass-normalized and stored by row in
modes. Frequencies are expressed in cycles per unit of time; angular frequencies are expressed in radians per unit of time.- __init__(assembly: Assembly, name: str = 'MainProblem')
Methods
Modal.add_global_dof(variable_names[, ...])Add global degrees of freedom to the problem.
Modal.add_output(filename, assembly[, ...])Register an output for automatic saving managed by solve methods.
Modal.apply_boundary_conditions([t_fact, ...])Stop automatic output by removing all registered requests.
Return the active Problem.
Return the list of all problems.
Modal.get_disp([name])Return displacement components of the currently selected mode.
Modal.get_dof_solution([name])Modal.get_ext_forces([name, include_mpc])Return the nodal Forces in global coordinates system.
Return metadata attached to the currently selected output mode.
Modal.get_results(*args, **kargs)Extract some results from the current problem.
Modal.get_rot([name])Return rotation components of the currently selected mode.
Invalidate any cached factorization.
Define the problem instance as the active Problem.
Modal.save_modes([modes, scale, update_weakform])Save selected modes through outputs registered with
add_output.Modal.save_results([iterOutput])Write the current state to every registered output.
Modal.set_A(A)Modal.set_B(B)Modal.set_D(D)Modal.set_X(value)Modal.set_active(name)Define the active Problem from its name.
Modal.set_dof(name, value)Set values in the current degree-of-freedom vector.
Modal.set_mode(index[, scale, update_weakform])Install one mode shape as the current displacement solution.
Modal.set_reuse_factorization([reuse])Enable or disable factorization reuse for repeated solves.
Modal.set_solver([solver, which, tol, ...])Configure the symmetric generalized eigensolver.
Modal.solve([n_modes, sigma])Solve the generalized eigenvalue problem.
Mechanical assembly used by the modal problem.
Zero-based index of the mode installed as the current solution.
Assembly used to construct the consistent mass matrix.
Full unconstrained consistent mass matrix from the last solve.
Return the name of the Problem.
Configured eigensolver function, or
Nonein automatic mode.Return the ModelingSpace associated to the Problem if defined.
Full unconstrained stiffness matrix from the last solve.
Boundary conditions defined on the problem.