LinearAssembler

class sharpy.solvers.linearassembler.LinearAssembler[source]

Warning

Under development - please advise of new features and bugs!

Creates a workspace containing the different linear elements of the state-space.

The user specifies which elements to build sequentially via the linear_system setting.

The most common uses will be:

  • Aerodynamic: sharpy.linear.assembler.LinearUVLM solver
  • Structural: sharpy.linear.assembler.LinearBeam solver
  • Aeroelastic: sharpy.linear.assembler.LinearAeroelastic solver

The solver enables to load a user specific assembly of a state-space by means of the LinearCustom block.

See sharpy.sharpy.linear.assembler.LinearAssembler for a detailed description of each of the state-space assemblies.

Upon assembly of the linear system, the data structure data.linear will be created. The Linear contains the state-space as an attribute. This state space will be the one employed by postprocessors.

Important: running the linear routines requires information on the tangent mass, stiffness and gyroscopic structural matrices therefore the solver solvers.modal.Modal must have been run prior to linearisation. In addition, if the problem includes rigid body velocities, at least one timestep of solvers.DynamicCoupled must have run such that the rigid body velocity is included.

Example:

The typical flow setting used prior to using this solver for an aeroelastic simulation with rigid body dynamics will be similar to:

>>> flow = ['BeamLoader',
>>>        'AerogridLoader',
>>>        'StaticTrim',
>>>        'DynamicCoupled',  # a single time step will suffice
>>>        'Modal',
>>>        'LinearAssembler']

The settings that this solver accepts are given by a dictionary, with the following key-value pairs:

Name Type Description Default
linear_system str Name of chosen state space assembly type None
linear_system_settings dict Settings for the desired state space assembler {}
linearisation_tstep int Chosen linearisation time step number from available time steps -1