anastruct.fem.system_components.solver ====================================== .. py:module:: anastruct.fem.system_components.solver Functions --------- .. autoapisummary:: anastruct.fem.system_components.solver.stiffness_adaptation anastruct.fem.system_components.solver.det_linear_buckling anastruct.fem.system_components.solver.geometrically_non_linear Module Contents --------------- .. py:function:: stiffness_adaptation(system: anastruct.fem.system.SystemElements, verbosity: int, max_iter: int) -> numpy.ndarray Non linear solver for the nodes by adapting the stiffness of the elements (nodes). :return: Vector with displacements. .. py:function:: det_linear_buckling(system: anastruct.fem.system.SystemElements) -> float Determine linear buckling by solving the generalized eigenvalue problem (k -λkg)x = 0. geometrical stiffness matrix at buckling point: Kg = f(N_max) 1st order forces: N0 Nmax = λN0 Kg(Nmax) = λ(Kg(N0) = λKg0 2nd order analysis is solved by: (K + λKg0)U = F We are interested in the point that there is nog additional load F and displacement U is possible. (K + λKg0)ΔU = ΔF = 0 (K + λKg0) = 0 Is the generalized eigenvalue problem: (A - λB)x = 0 :return: The factor the loads can be increased until the structure fails due to buckling. .. py:function:: geometrically_non_linear(system: anastruct.fem.system.SystemElements, verbosity: int = 0, return_buckling_factor: bool = True, discretize_kwargs: Optional[dict] = None) -> Optional[float] :param system: (SystemElements) :param verbosity: (int) :param return_buckling_factor: (bool) :param discretize_kwargs: (dict) Containing the kwargs passed to the discretize function :param discretize: (function) discretize function. :return: buckling_factor: (flt) The factor the loads can be increased until the structure fails due to buckling.