pyHarm.Analysis.FRF_NonLinear ============================= .. py:module:: pyHarm.Analysis.FRF_NonLinear Classes ------- .. autoapisummary:: pyHarm.Analysis.FRF_NonLinear.FRF_NonLinear Module Contents --------------- .. py:class:: FRF_NonLinear(inputData: dict, System: pyHarm.Systems.ABCSystem.ABCSystem, logger: Optional[logging.Logger] = None, key: str = '', **kwargs) Bases: :py:obj:`pyHarm.Analysis.ABCAnalysis.ABCAnalysis` Nonlinear forced response analysis. Predicts a starting point using the predictor and then solves the residual equations from the starting point. .. attribute:: flag_print if True, prints a message after each Solve method. :type: bool .. attribute:: flag_purge if True, the jacobian values are purged from the solutions stored in the solution list. :type: bool .. attribute:: analysis_options input dictionary completed with the default values if keywords are missing. :type: dict .. attribute:: ds initial prediction step size. :type: float .. attribute:: SolList list of SystemSolution stored after each Solve method. :type: list[SystemSolution] .. attribute:: system ABCSystem associated with the analysis. :type: ABCSystem .. attribute:: adaptstep ABCStepSizeRule associated with the analysis. :type: ABCStepSizeRule .. attribute:: predictor ABCPredictor associated with the analysis. :type: ABCPredictor .. attribute:: corrector ABCCorrector associated with the analysis. :type: ABCCorrector .. attribute:: stopper ABCStopCriterion associated with the analysis. :type: ABCStopCriterion .. attribute:: solver ABCNLSolver associated with the analysis. :type: ABCNLSolver .. attribute:: corrector_init instance of no-continuation corrector for initial solution. :type: ABCCorrector .. attribute:: reductor ABCChainedReductor associated with the analysis. :type: ABCChainedReductor .. py:attribute:: factory_keyword :type: str :value: 'frf' keyword that is used to call the creation of this class in the system factory. :type: str .. py:attribute:: name :value: 'Nonlinear FRF' .. py:attribute:: default default dictionary for the analysis. :type: dict .. py:attribute:: key :value: '' .. py:attribute:: analysis_options .. py:attribute:: flag_print .. py:attribute:: flag_purge .. py:attribute:: logger :type: logging.Logger .. py:attribute:: ds .. py:attribute:: SolList :value: [] .. py:attribute:: system .. py:attribute:: adaptstep .. py:attribute:: predictor .. py:attribute:: corrector .. py:attribute:: stopper .. py:attribute:: solver .. py:attribute:: corrector_init .. py:attribute:: reductor .. py:method:: initialise(x0=None, **kwargs) First Solve on the initial guess. :param x0: if None x0 is the linear solution at initial angular frequency, if "null" x0 is null vector, otherwise x0 is initialised using the provided array. :type x0: None|str|np.ndarray .. py:method:: _get_x0(x0) .. py:method:: CompleteSolution(sol: pyHarm.Solver.SystemSolution) Completes a SystemSolution informations that just went out of the Solve method. :param sol: solution to the system. :type sol: SystemSolution .. py:method:: globalResidual(solx: numpy.ndarray, sol: pyHarm.Solver.SystemSolution) Computes the residual of the whole system without the reducers. :param solx: displacement vector for which residual is computed. :type solx: np.ndarray :param sol: actual SystemSolution being solved. :type sol: SystemSolution .. py:method:: globalJacobian(solx: numpy.ndarray, sol: pyHarm.Solver.SystemSolution) Computes the jacobians of the whole system without the reducers. :param solx: displacement vector for which residual is computed. :type solx: np.ndarray :param sol: actual SystemSolution being solved. :type sol: SystemSolution .. py:method:: globalJacobianwRed(solq: numpy.ndarray, sol: pyHarm.Solver.SystemSolution) Computes the reduced jacobians of the whole system. :param solq: reduced displacement vector for which residual is computed. :type solq: np.ndarray :param sol: actual SystemSolution being solved. :type sol: SystemSolution .. py:method:: globalResidualwRed(solq: numpy.ndarray, sol: pyHarm.Solver.SystemSolution) Computes the reduced residuals of the whole system. :param solq: reduced displacement vector for which residual is computed. :type solq: np.ndarray :param sol: actual SystemSolution being solved. :type sol: SystemSolution .. py:method:: _update_reductor(xpred_full, last_solution_pointer=None) Updates the reducers :param xpred_full: full starting displacement vector. :type xpred_full: np.ndarray :param last_solution_pointer: SystemSolution from which the prediction has been generated. :type last_solution_pointer: SystemSolution :returns: reduced starting displacement vector. J_red (np.ndarray): reduced jacobian matrix. output_expl_dofs (pd.DataFrame): DataFrame of the dofs after applying the reduction layers. :rtype: xpred_red (np.ndarray) .. py:method:: makeStep(**kwargs) Makes a step of solving : get a step size, generate a predicted point, solve the nonlinear system, save the solution. .. py:method:: Solve(x0=None, **kwargs) Makes the whole analysis using continuation techniques until the stopping criterion is validated :param x0: if None x0 is the linear solution at initial angular frequency, if "null" x0 is null vector, otherwise x0 is initialised using the provided array. :type x0: None|str|np.ndarray .. py:method:: purge_jacobians() Purge the Jacobians of Solutions that are no longer used. .. py:method:: export(export_path: str, prefix: str, **kwargs) -> None export resutlts in csv files .. py:method:: _init_log() .. py:method:: _end_log() .. py:method:: _export_log()