LoadMassProportional

Load attached to MarkerBodyMass marker, applying a 3D vector load (e.g. the vector [0,-g,0] is used to apply gravitational loading of size g in negative y-direction).

Additional information for LoadMassProportional:

  • Requested Marker type = Body + BodyMass
  • Short name for Python = Gravity
  • Short name for Python visualization object = VGravity

The item LoadMassProportional with type = ‘MassProportional’ has the following parameters:

  • name [type = String, default = ‘’]:
    load’s unique name
  • markerNumber [type = MarkerIndex, default = invalid (-1)]:
    marker’s number to which load is applied
  • loadVector [\({\mathbf{b}}\), type = Vector3D, default = [0.,0.,0.]]:
    vector-valued load [SI:N/kg = m/s\(^2\)]; typically, this will be the gravity vector in global coordinates; in case of a user function, this v is ignored
  • loadVectorUserFunction [\(\mathrm{UF} \in \Rcal^3\), type = PyFunctionVector3DmbsScalarVector3D, default = 0]:
    A Python function which defines the time-dependent load; see description below; see also notes on loadFactor and drawing in LoadForceVector!
  • visualization [type = VLoadMassProportional]:
    parameters for visualization of item

The item VLoadMassProportional has the following parameters:

  • show [type = Bool, default = True]:
    set true, if item is shown in visualization and false if it is not shown

DESCRIPTION of LoadMassProportional

Details

The load applies a (translational) and distributed load proportional to the distributed body’s density. The marker of type MarkerBodyMass transforms the loadVector via an according jacobian matrix to object coordinates.


Userfunction: loadVectorUserFunction(mbs, t, loadVector)

A user function, which computes the mass proporitional load vector depending on time and object parameters, which is hereafter applied to object or node.

arguments / return
type or size
description
mbs
MainSystem
provides MainSystem mbs to which load belongs
t
Real
current time in mbs
loadVector
Vector3D
\({\mathbf{b}}\) copied from object; WARNING: this parameter does not work in combination with static computation, as it is changed by the solver over step time
returnValue
Vector3D
computed load vector

Example of user function: functionality same as in LoadForceVector

MINI EXAMPLE for LoadMassProportional

 1node = mbs.AddNode(NodePoint(referenceCoordinates = [1,0,0]))
 2body = mbs.AddObject(MassPoint(nodeNumber = node, physicsMass=2))
 3mMass = mbs.AddMarker(MarkerBodyMass(bodyNumber=body))
 4mbs.AddLoad(LoadMassProportional(markerNumber=mMass, loadVector=[0,0,-9.81]))
 5
 6#assemble and solve system for default parameters
 7mbs.Assemble()
 8mbs.SolveDynamic()
 9
10#check result
11exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[2]
12#final z-coordinate of position shall be -g/2 due to constant acceleration with g=-9.81
13#result independent of mass

Relevant Examples and TestModels with weblink:

The web version may not be complete. For details, consider also the Exudyn PDF documentation : theDoc.pdf