brim.core.auxiliary.AuxiliaryDataHandler#

class brim.core.auxiliary.AuxiliaryDataHandler(inertial_frame: ReferenceFrame, inertial_point: Point)#

Bases: object

Class to compute noncontributing loads in a system.

Explanation

This is an experimental class to compute noncontributing forces and torques in a system. To do so, the class creates a tree representation of what points are used to compute the velocity of other points. Based on this tree, auxiliary velocities of each point are computed and added to the inertal velocity graph of the points. For this to work, the system must be defined in a way that the velocity of each point is computed based on the velocity of its parent point in the position tree. This is almost always the case. An example where this is not the case is when the the velocity of the front wheel of a bicycle, which is constrained to touch the ground using a holonomic constraint, is computed based on the assumption that its contact point is an instantaneous center of rotation.

Parameters:
  • inertial_frame (ReferenceFrame) – Inertial reference frame in which the equations of motion will be formed.

  • inertial_point – Inertial point which is used as root in the tree graph representation.z

__init__(inertial_frame: ReferenceFrame, inertial_point: Point)#
__weakref__#

list of weak references to the object (if defined)

add_noncontributing_force(point: Point, direction: Vector, speed_sym: Function, force_sym: Function) AuxiliaryData#

Add the data of a noncontributing force to the graph.

apply_speeds() None#

Apply auxiliary speeds to the velocity graph.

property auxiliary_forces_data: tuple[brim.core.auxiliary.AuxiliaryData]#

Tuple of noncontributing force data.

property auxiliary_speeds: tuple[sympy.core.function.Function]#

Tuple of auxiliary speeds used to compute the noncontributing loads.

property auxiliary_torques_data: tuple[brim.core.auxiliary.AuxiliaryData]#

Tuple of noncontributing torque data.

create_loads() list[LoadBase]#

Create loads for all noncontributing load data.

classmethod from_system(system: System) AuxiliaryDataHandler#

Create an auxiliary data handler from a system.

get_auxiliary_velocity(point: Point) Vector#

Return the auxiliary velocity of a point.

property inertial_frame: ReferenceFrame#

Inertial reference frame.

property inertial_point: Point#

Inertial point which is used as root in the tree graph representation.

retrieve_graphs() None#

Read in the graphs of the system.