pyHarm.Analysis.FRF_NonLinear

Classes

FRF_NonLinear

Nonlinear forced response analysis.

Module Contents

class pyHarm.Analysis.FRF_NonLinear.FRF_NonLinear(inputData: dict, System: pyHarm.Systems.ABCSystem.ABCSystem, logger: logging.Logger | None = None, key: str = '', **kwargs)

Bases: 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.

flag_print

if True, prints a message after each Solve method.

Type:

bool

flag_purge

if True, the jacobian values are purged from the solutions stored in the solution list.

Type:

bool

analysis_options

input dictionary completed with the default values if keywords are missing.

Type:

dict

ds

initial prediction step size.

Type:

float

SolList

list of SystemSolution stored after each Solve method.

Type:

list[SystemSolution]

system

ABCSystem associated with the analysis.

Type:

ABCSystem

adaptstep

ABCStepSizeRule associated with the analysis.

Type:

ABCStepSizeRule

predictor

ABCPredictor associated with the analysis.

Type:

ABCPredictor

corrector

ABCCorrector associated with the analysis.

Type:

ABCCorrector

stopper

ABCStopCriterion associated with the analysis.

Type:

ABCStopCriterion

solver

ABCNLSolver associated with the analysis.

Type:

ABCNLSolver

corrector_init

instance of no-continuation corrector for initial solution.

Type:

ABCCorrector

reductor

ABCChainedReductor associated with the analysis.

Type:

ABCChainedReductor

factory_keyword: str = 'frf'

keyword that is used to call the creation of this class in the system factory.

Type:

str

name = 'Nonlinear FRF'
default

default dictionary for the analysis.

Type:

dict

key = ''
analysis_options
flag_print
flag_purge
logger: logging.Logger
ds
SolList = []
system
adaptstep
predictor
corrector
stopper
solver
corrector_init
reductor
initialise(x0=None, **kwargs)

First Solve on the initial guess.

Parameters:

x0 (None|str|np.ndarray) – 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.

_get_x0(x0)
CompleteSolution(sol: pyHarm.Solver.SystemSolution)

Completes a SystemSolution informations that just went out of the Solve method.

Parameters:

sol (SystemSolution) – solution to the system.

globalResidual(solx: numpy.ndarray, sol: pyHarm.Solver.SystemSolution)

Computes the residual of the whole system without the reducers.

Parameters:
  • solx (np.ndarray) – displacement vector for which residual is computed.

  • sol (SystemSolution) – actual SystemSolution being solved.

globalJacobian(solx: numpy.ndarray, sol: pyHarm.Solver.SystemSolution)

Computes the jacobians of the whole system without the reducers.

Parameters:
  • solx (np.ndarray) – displacement vector for which residual is computed.

  • sol (SystemSolution) – actual SystemSolution being solved.

globalJacobianwRed(solq: numpy.ndarray, sol: pyHarm.Solver.SystemSolution)

Computes the reduced jacobians of the whole system.

Parameters:
  • solq (np.ndarray) – reduced displacement vector for which residual is computed.

  • sol (SystemSolution) – actual SystemSolution being solved.

globalResidualwRed(solq: numpy.ndarray, sol: pyHarm.Solver.SystemSolution)

Computes the reduced residuals of the whole system.

Parameters:
  • solq (np.ndarray) – reduced displacement vector for which residual is computed.

  • sol (SystemSolution) – actual SystemSolution being solved.

_update_reductor(xpred_full, last_solution_pointer=None)

Updates the reducers

Parameters:
  • xpred_full (np.ndarray) – full starting displacement vector.

  • last_solution_pointer (SystemSolution) – SystemSolution from which the prediction has been generated.

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.

Return type:

xpred_red (np.ndarray)

makeStep(**kwargs)

Makes a step of solving : get a step size, generate a predicted point, solve the nonlinear system, save the solution.

Solve(x0=None, **kwargs)

Makes the whole analysis using continuation techniques until the stopping criterion is validated

Parameters:

x0 (None|str|np.ndarray) – 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.

purge_jacobians()

Purge the Jacobians of Solutions that are no longer used.

export(export_path: str, prefix: str, **kwargs) None

export resutlts in csv files

_init_log()
_end_log()
_export_log()