fedoo.problem.LinearBuckling
- class LinearBuckling(assembly, reuse_assembled_matrix=True, name='MainProblem')
Compute linear buckling modes about a prestressed equilibrium state.
The problem solved is
\[\mathbf{K}_M\boldsymbol{\phi} = -\lambda\mathbf{K}_G\boldsymbol{\phi},\]where \(\mathbf{K}_M\) is the material tangent stiffness and \(\mathbf{K}_G\) is the initial-stress stiffness. The supplied assembly must already contain the converged preload state.
- Parameters:
assembly (Assembly-like, Problem or str) – Prestressed assembly, a problem exposing it through
assembly, or the name of a registered assembly.reuse_assembled_matrix (bool, default=True) – Reuse the cached preload matrix when all contributing weak forms agree on whether geometric stiffness was enabled. If False, independently assemble both required matrices.
name (str, default="MainProblem") – Name of the problem.
Notes
Updated-Lagrangian preload states are not supported. Boundary conditions describe perturbations and must therefore be homogeneous.
- __init__(assembly, reuse_assembled_matrix=True, name='MainProblem')
Methods
LinearBuckling.add_global_dof(variable_names)Add global degrees of freedom to the problem.
LinearBuckling.add_output(filename, assembly)Register an output for automatic saving managed by solve methods.
Stop automatic output by removing all registered requests.
Return the active Problem.
Return the list of all problems.
LinearBuckling.get_disp([name])Return displacement components of the selected buckling mode.
LinearBuckling.get_dof_solution([name])LinearBuckling.get_ext_forces([name, ...])Return the nodal Forces in global coordinates system.
Return metadata attached to the currently selected mode.
LinearBuckling.get_results(*args, **kargs)Extract some results from the current problem.
LinearBuckling.get_rot([name])Return rotation components of the selected buckling mode.
Invalidate any cached factorization.
Define the problem instance as the active Problem.
LinearBuckling.save_modes([modes, scale])Save selected modes through outputs registered with
add_output.LinearBuckling.save_results([iterOutput])Write the current state to every registered output.
LinearBuckling.set_X(value)Define the active Problem from its name.
LinearBuckling.set_dof(name, value)Set values in the current degree-of-freedom vector.
LinearBuckling.set_mode(index[, scale])Install one zero-based buckling mode as the current solution.
Enable or disable factorization reuse for repeated solves.
LinearBuckling.set_solver([solver, which, ...])Configure the symmetric generalized eigensolver.
LinearBuckling.solve([n_modes, sigma])Solve for positive critical load factors and buckling modes.
Prestressed source assembly.
Zero-based index of the mode installed as the current solution.
Full unconstrained initial-stress stiffness.
Assembly built for material stiffness, or the reused source.
Full unconstrained material tangent stiffness.
Return the name of the Problem.
Configured eigensolver function, or
Nonein automatic mode.Return the ModelingSpace associated to the Problem if defined.
Assembly built for total tangent stiffness, or the reused source.
Full unconstrained material-plus-geometric tangent stiffness.
Boundary conditions defined on the problem.