Skip to content

Latest commit

 

History

History
113 lines (71 loc) · 5.91 KB

LoadMassProportional.rst

File metadata and controls

113 lines (71 loc) · 5.91 KB

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

node = mbs.AddNode(NodePoint(referenceCoordinates = [1,0,0]))
body = mbs.AddObject(MassPoint(nodeNumber = node, physicsMass=2))
mMass = mbs.AddMarker(MarkerBodyMass(bodyNumber=body))
mbs.AddLoad(LoadMassProportional(markerNumber=mMass, loadVector=[0,0,-9.81]))

#assemble and solve system for default parameters
mbs.Assemble()
mbs.SolveDynamic()

#check result
exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[2]
#final z-coordinate of position shall be -g/2 due to constant acceleration with g=-9.81
#result independent of mass

Relevant Examples and TestModels with weblink:

CMSexampleCourse.py (Examples/), finiteSegmentMethod.py (Examples/), NGsolveCMStutorial.py (Examples/), NGsolvePostProcessingStresses.py (Examples/), ObjectFFRFconvergenceTestBeam.py (Examples/), ObjectFFRFconvergenceTestHinge.py (Examples/), pendulumGeomExactBeam2D.py (Examples/), pendulumVerify.py (Examples/), ALEANCFpipe.py (Examples/), ANCFmovingRigidbody.py (Examples/), ANCFslidingJoint2D.py (Examples/), ANCFslidingJoint2Drigid.py (Examples/), fourBarMechanismIftomm.py (TestModels/), genericJointUserFunctionTest.py (TestModels/), modelUnitTests.py (TestModels/)

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