From ad5bf4f6a9cadc0f756a6eeffe0fb8cc5207346b Mon Sep 17 00:00:00 2001 From: jgerstmayr Date: Wed, 19 Jul 2023 19:49:30 +0200 Subject: [PATCH] add: FullPivot eigen solver, sensor traces, ChatGPT.py, many fixes: mutable args, reevingSystemSprings, GetInterpolatedSignalValue, SolutionViewer, Minimize; see Issue tracker --- README.rst | 2 +- docs/RST/Abbreviations.rst | 2 +- docs/RST/Examples/ROSExampleMassPoint.rst | 226 ++++++ docs/RST/Examples/ROSExampleTurtle.rst | 324 +++++++++ docs/RST/Examples/chatGPTupdate.rst | 184 +++++ docs/RST/Examples/craneReevingSystem.rst | 20 +- docs/RST/Examples/minimizeExample.rst | 5 +- .../Examples/nMassOscillatorEigenmodes.rst | 182 +---- .../Examples/serialRobotInverseKinematics.rst | 20 +- docs/RST/Examples/shapeOptimization.rst | 56 +- docs/RST/Examples/springDamperTutorialNew.rst | 8 +- docs/RST/ExamplesIndex.rst | 4 + docs/RST/Exudyn.rst | 2 +- docs/RST/ExudynBasics.rst | 52 +- docs/RST/GettingStarted.rst | 15 +- docs/RST/InstallationInstructions.rst | 95 ++- docs/RST/RigidBodyAndJointsTutorial.rst | 5 +- .../TestModels/mainSystemExtensionsTests.rst | 16 +- .../TestModels/reevingSystemSpringsTest.rst | 10 +- docs/RST/TroubleShootingAndFAQ.rst | 2 +- docs/RST/cInterface/DataStructures.rst | 12 + docs/RST/cInterface/MainSystem.rst | 168 +++-- docs/RST/confHelper.py | 2 +- docs/RST/confHelperPyUtilities.py | 2 +- docs/RST/items/LoadForceVector.rst | 2 +- docs/RST/items/LoadMassProportional.rst | 2 +- docs/RST/items/MarkerBodyRigid.rst | 2 +- docs/RST/items/MarkerSuperElementPosition.rst | 2 +- docs/RST/items/NodeRigidBodyEP.rst | 2 +- docs/RST/items/ObjectANCFCable2D.rst | 2 +- .../ObjectConnectorCartesianSpringDamper.rst | 4 +- docs/RST/items/ObjectConnectorCoordinate.rst | 2 +- .../ObjectConnectorCoordinateSpringDamper.rst | 2 +- docs/RST/items/ObjectConnectorDistance.rst | 2 +- docs/RST/items/ObjectConnectorGravity.rst | 2 +- .../ObjectConnectorLinearSpringDamper.rst | 2 +- .../ObjectConnectorReevingSystemSprings.rst | 20 +- .../ObjectConnectorRigidBodySpringDamper.rst | 4 +- .../RST/items/ObjectConnectorSpringDamper.rst | 2 +- .../ObjectConnectorTorsionalSpringDamper.rst | 4 +- docs/RST/items/ObjectGenericODE1.rst | 2 +- docs/RST/items/ObjectGenericODE2.rst | 2 +- docs/RST/items/ObjectGround.rst | 2 +- docs/RST/items/ObjectJointRevoluteZ.rst | 2 +- docs/RST/items/ObjectKinematicTree.rst | 4 +- docs/RST/items/ObjectMass1D.rst | 2 +- docs/RST/items/ObjectMassPoint.rst | 2 +- docs/RST/items/ObjectMassPoint2D.rst | 2 +- docs/RST/items/ObjectRigidBody.rst | 2 +- docs/RST/items/ObjectRigidBody2D.rst | 2 +- docs/RST/items/ObjectRotationalMass1D.rst | 2 +- docs/RST/items/SensorKinematicTree.rst | 2 +- docs/RST/items/SensorUserFunction.rst | 2 +- docs/RST/pythonUtilities/FEM.rst | 154 ++-- docs/RST/pythonUtilities/GUI.rst | 2 +- docs/RST/pythonUtilities/basicUtilities.rst | 38 +- .../pythonUtilities/graphicsDataUtilities.rst | 10 +- docs/RST/pythonUtilities/plot.rst | 20 +- docs/RST/pythonUtilities/processing.rst | 27 +- .../pythonUtilities/rigidBodyUtilities.rst | 6 +- docs/RST/pythonUtilities/robotics.special.rst | 2 +- docs/RST/pythonUtilities/signalProcessing.rst | 4 + docs/RST/structures/SimulationSettings.rst | 5 +- docs/RST/structures/VisualizationSettings.rst | 69 ++ docs/RST/trackerlog.rst | 121 +++- docs/howTo/WSL.txt | 17 +- docs/howTo/ubuntuPythonSetup.txt | 7 +- docs/theDoc/MainSystemCreateExt.tex | 643 +++++++++++++++++ docs/theDoc/MainSystemExt.tex | 649 +---------------- docs/theDoc/abbreviations.tex | 2 +- docs/theDoc/bibliographyDoc.bib | 11 + docs/theDoc/buildDate.tex | 2 +- docs/theDoc/gettingStarted.tex | 113 +-- docs/theDoc/interfaces.tex | 41 +- docs/theDoc/introduction.tex | 55 +- docs/theDoc/itemDefinition.tex | 80 ++- docs/theDoc/manual_interfaces.tex | 43 +- docs/theDoc/pythonUtilitiesDescription.tex | 300 ++++---- docs/theDoc/theDoc.pdf | Bin 6891444 -> 6914369 bytes docs/theDoc/trackerlog.tex | 194 ++++- docs/theDoc/tutorial.tex | 5 +- docs/theDoc/version.tex | 4 +- .../pythonDev/Examples/ROSExampleMassPoint.py | 212 ++++++ main/pythonDev/Examples/ROSExampleTurtle.py | 310 ++++++++ main/pythonDev/Examples/chatGPTupdate.py | 170 +++++ main/pythonDev/Examples/craneReevingSystem.py | 20 +- main/pythonDev/Examples/minimizeExample.py | 5 +- .../Examples/nMassOscillatorEigenmodes.py | 182 +---- .../Examples/serialRobotInverseKinematics.py | 20 +- main/pythonDev/Examples/shapeOptimization.py | 56 +- .../Examples/springDamperTutorialNew.py | 8 +- .../MiniExamples/LoadMassProportional.py | 2 +- .../MarkerSuperElementPosition.py | 2 +- .../MiniExamples/ObjectANCFCable2D.py | 2 +- .../ObjectConnectorCartesianSpringDamper.py | 2 +- .../MiniExamples/ObjectConnectorCoordinate.py | 2 +- .../ObjectConnectorCoordinateSpringDamper.py | 2 +- .../MiniExamples/ObjectConnectorDistance.py | 2 +- .../MiniExamples/ObjectConnectorGravity.py | 2 +- .../ObjectConnectorLinearSpringDamper.py | 2 +- .../ObjectConnectorRigidBodySpringDamper.py | 2 +- .../ObjectConnectorSpringDamper.py | 2 +- .../ObjectConnectorTorsionalSpringDamper.py | 2 +- .../MiniExamples/ObjectGenericODE1.py | 2 +- .../MiniExamples/ObjectGenericODE2.py | 2 +- .../MiniExamples/ObjectJointRevoluteZ.py | 2 +- .../MiniExamples/ObjectKinematicTree.py | 2 +- .../TestModels/MiniExamples/ObjectMass1D.py | 2 +- .../MiniExamples/ObjectMassPoint.py | 2 +- .../MiniExamples/ObjectMassPoint2D.py | 2 +- .../MiniExamples/ObjectRigidBody2D.py | 2 +- .../MiniExamples/ObjectRotationalMass1D.py | 2 +- .../TestModels/mainSystemExtensionsTests.py | 16 +- .../TestModels/reevingSystemSpringsTest.py | 10 +- .../TestModels/runTestSuiteRefSol.py | 2 +- main/pythonDev/exudyn/FEM.py | 15 + main/pythonDev/exudyn/GUI.py | 4 +- main/pythonDev/exudyn/__init__.py | 3 +- main/pythonDev/exudyn/__init__.pyi | 23 +- main/pythonDev/exudyn/basicUtilities.py | 9 + main/pythonDev/exudyn/interactive.py | 15 +- main/pythonDev/exudyn/itemInterface.py | 669 +++++++++--------- main/pythonDev/exudyn/mainSystemExtensions.py | 48 +- main/pythonDev/exudyn/plot.py | 18 +- main/pythonDev/exudyn/processing.py | 75 +- .../pythonDev/exudyn/robotics/rosInterface.py | 302 ++++++++ main/pythonDev/exudyn/signalProcessing.py | 6 +- main/pythonDev/exudyn/solver.py | 8 +- main/setup.py | 11 +- main/src/Autogenerated/BeamSectionGeometry.h | 2 +- .../CObjectConnectorReevingSystemSprings.h | 6 +- main/src/Autogenerated/CSolverStructures.h | 12 +- main/src/Autogenerated/DictionariesGetSet.h | 168 ++++- .../MainObjectConnectorReevingSystemSprings.h | 8 +- main/src/Autogenerated/MainSolver.h | 6 +- .../PyStructuralElementsDataStructures.h | 2 +- main/src/Autogenerated/Pybind_modules.h | 28 +- main/src/Autogenerated/SimulationSettings.h | 24 +- .../src/Autogenerated/VisualizationSettings.h | 178 ++++- .../src/Autogenerated/pybind_manual_classes.h | 14 +- main/src/Autogenerated/versionCpp.cpp | 4 +- main/src/Graphics/GlfwClient.cpp | 176 ++++- main/src/Graphics/GlfwClient.h | 17 +- .../Graphics/VisualizationSystemContainer.cpp | 131 ++++ .../Graphics/VisualizationSystemContainer.h | 3 + .../VisualizationSystemContainerBase.h | 5 + main/src/Main/CSystem.cpp | 27 +- main/src/Main/rendererPythonInterface.cpp | 2 +- .../Objects/CObjectBeamGeometricallyExact.cpp | 10 +- .../CObjectConnectorReevingSystemSprings.cpp | 8 +- main/src/Objects/CObjectFFRFreducedOrder.cpp | 6 +- main/src/Objects/CObjectKinematicTree.cpp | 1 + .../Objects/checkPreAssembleConsistencies.cpp | 6 + main/src/Pymodules/PyMatrixContainer.cpp | 9 +- main/src/Pymodules/PyMatrixVector.h | 33 +- main/src/Pymodules/PybindModule.cpp | 2 +- main/src/Pymodules/PybindUtilities.h | 19 +- main/src/Solver/CSolver.cpp | 45 +- main/src/System/CContact.cpp | 1 + main/src/Utilities/ReleaseAssert.h | 27 +- main/src/Utilities/ResizableArray.h | 1 + .../src/pythonGenerator/autoGenerateHelper.py | 22 +- .../pythonGenerator/autoGeneratePyBindings.py | 79 ++- main/src/pythonGenerator/doc2rst.py | 5 +- main/src/pythonGenerator/exudynVersion.py | 4 +- .../generated/MainSystemCreateExt.rst | 532 ++++++++++++++ .../generated/MainSystemExt.rst | 544 +------------- .../generated/stubAutoBindingsExt.pyi | 2 +- .../generated/stubSystemStructures.pyi | 21 + .../mainSystemExtensionsHeader.py | 48 +- main/src/pythonGenerator/objectDefinition.py | 66 +- .../pythonAutoGenerateObjects.py | 123 +++- .../pythonAutoGenerateSystemStructures.py | 9 +- .../systemStructuresDefinition.py | 43 +- .../pythonGenerator/utilitiesDocuGenerator.py | 40 +- 175 files changed, 6062 insertions(+), 2838 deletions(-) create mode 100644 docs/RST/Examples/ROSExampleMassPoint.rst create mode 100644 docs/RST/Examples/ROSExampleTurtle.rst create mode 100644 docs/RST/Examples/chatGPTupdate.rst create mode 100644 docs/theDoc/MainSystemCreateExt.tex create mode 100644 main/pythonDev/Examples/ROSExampleMassPoint.py create mode 100644 main/pythonDev/Examples/ROSExampleTurtle.py create mode 100644 main/pythonDev/Examples/chatGPTupdate.py create mode 100644 main/pythonDev/exudyn/robotics/rosInterface.py create mode 100644 main/src/pythonGenerator/generated/MainSystemCreateExt.rst diff --git a/README.rst b/README.rst index 4b939ec8..e951ca8f 100644 --- a/README.rst +++ b/README.rst @@ -37,7 +37,7 @@ Exudyn **A flexible multibody dynamics systems simulation code with Python and C++** -Exudyn version = 1.6.164.dev1 (Gillespie) +Exudyn version = 1.7.0 (Hall) + **University of Innsbruck**, Department of Mechatronics, Innsbruck, Austria diff --git a/docs/RST/Abbreviations.rst b/docs/RST/Abbreviations.rst index 17f8d98a..5df5beca 100644 --- a/docs/RST/Abbreviations.rst +++ b/docs/RST/Abbreviations.rst @@ -114,7 +114,7 @@ see also :ref:`Section Notation `\ . .. _T66: -\ **T66**\ : Pl"ucker transformation +\ **T66**\ : Plücker transformation .. _trig: diff --git a/docs/RST/Examples/ROSExampleMassPoint.rst b/docs/RST/Examples/ROSExampleMassPoint.rst new file mode 100644 index 00000000..cee7d344 --- /dev/null +++ b/docs/RST/Examples/ROSExampleMassPoint.rst @@ -0,0 +1,226 @@ + +.. _examples-rosexamplemasspoint: + +********************** +ROSExampleMassPoint.py +********************** + +You can view and download this file on Github: `ROSExampleMassPoint.py `_ + +.. code-block:: python + :linenos: + + #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + # This is an EXUDYN python example how to use ROS and EXUDYN + # + # Details: This example shows how to communicate between an exudyn simulation + # and ROS publisher and subscriber from bash + # To make use of this example, you need to + # install ROS (ROS1 noetic) including rospy (see rosInterface.py) + # prerequisits to use: + # use a bash terminal to start the roscore with: + # roscore + # send force command to add load to the mass point form bash file with: + # rostopic pub -r 100 /cmd_wrench geometry_msgs/WrenchStamped "..." + # Author: Martin Sereinig, Peter Manzl + # Date: 2023-05-31 (created) + # + # Copyright:This file is part of Exudyn. Exudyn is free software. + # You can redistribute it and/or modify it under the terms of the Exudyn license. + # See 'LICENSE.txt' for more details. + # + #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + import numpy as np + import exudyn as exu + from exudyn.utilities import * + + # import needed ROS modules and messages + import rospy + from geometry_msgs.msg import WrenchStamped, Twist + from std_msgs.msg import String + + # import new exudyn ROS interface class + import rosInterface as exuROS + + # here build inherited class and using within a simple exudyn simulation of one mass spring-damper + class MyExudynROSInterface(exuROS.ROSInterface): + def __init__(self): + # use initialisation of super class + # this initialize a rosnode with name + super().__init__(name='exuROSexample3Dmass') + # initialization of all standard publisher done by super class + # self.exuPosePublisher + # self.exuStringPublisher + # self.exuSystemstatePublisher + # self.exuTimePublisher + # self.exuTwistPublisher + + # use standard publisher functions form super class! + # self.PublishPoseUpdate + # self.PublishTwistUpdate + # self.PublishSystemStateUpdate + + # initialize all subscriber + # suitable callback function is auto generated by superclass (using lambda function) + # twist subscriber: cmd_vel + twistSubsrciberBase = '' + twistSubsrciberTopic = 'cmd_vel' # topic to subscribe + self.cmd_vel = Twist() # data type of topic, must be named: self.twistSubscriberTopic + self.myTwistSubscriber = self.InitSubscriber(twistSubsrciberBase,twistSubsrciberTopic,Twist) + + # wrench subscriber: cmd_wrench + twistSubsrciberBase = '' + twistSubsrciberTopic = 'cmd_wrench' # topic to subscribe + self.cmd_wrench = WrenchStamped() # data type of topic, must be named: self.twistSubscriberTopic + self.myWrenchSubscriber = self.InitSubscriber(twistSubsrciberBase,twistSubsrciberTopic,WrenchStamped) + + # string subsriber: my_string + stringSubsrciberBase = '' + stringSubsrciberTopic = 'my_string' # topic to subscribe + self.my_string = String() # data type of topic, must be named: self.twistSubscriberTopic + self.myStringSubscriber = self.InitSubscriber(stringSubsrciberBase,stringSubsrciberTopic,String) + + # string subsriber: /exudyn/SimpleString + stringSubsrciberBase2 = 'exudyn/' # namespace of topic + stringSubsrciberTopic2 = 'SimpleString' # topic to subscribe + self.SimpleString = String() # data type of topic, must be named: self.twistSubscriberTopic + self.myStringSubscriber = self.InitSubscriber(stringSubsrciberBase2,stringSubsrciberTopic2,String) + + + # test main function + def main(): + + # build exudyn model + SC = exu.SystemContainer() + mbs = SC.AddSystem() + tRes = 0.001 # step size in s + tEnd = 1e5 # simulation time in s + # mass and dimension of sphere + mass = 6 + r = 0.03 + background = GraphicsDataCheckerBoard(point=[-0.5,0,0], + normal=[1, 0, 0], + color=[0.7]*3+[1], + alternatingColor=[0.8]*3+[1]) + + graphicsSphere = GraphicsDataSphere(point=[0,0,0], + radius=r, + color=(1,0,0,1), + nTiles=64) + + origin = [0, 0, 0] + bGround = mbs.AddObject(ObjectGround(referencePosition=origin, + visualization=VObjectGround(graphicsData=[background]))) + + inertiaSphere = InertiaSphere(mass=mass,radius=r) + + # user interaction point + [nUIP, bUIP]=AddRigidBody(mainSys = mbs, + inertia = inertiaSphere, + nodeType = str(exu.NodeType.RotationEulerParameters), + position = [origin[0], origin[1], origin[2]], + rotationMatrix = np.eye(3), + angularVelocity = np.zeros(3), + velocity= [0,0,0], + gravity = [0, 0, 0], + graphicsDataList = [graphicsSphere]) + + # create markers: + mGround = mbs.AddMarker(MarkerBodyRigid(bodyNumber=bGround, localPosition=[0, 0, 0.])) + mUIP = mbs.AddMarker(MarkerBodyRigid(bodyNumber=bUIP)) + mUIPLoad = mbs.AddLoad(LoadForceVector(markerNumber = mUIP,loadVector =[0,0,0])) + + k = 100 + oSpringDamper = mbs.AddObject(RigidBodySpringDamper(markerNumbers=[mGround, mUIP], + stiffness=np.eye(6)*k, + damping=np.eye(6)*k*5e-2, + visualization={'show': False, 'drawSize': -1, 'color': [-1]*4})) + + + # sensor for position of endpoint of pendulum + sensorPos = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Position)) + sensorOri = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Rotation)) + sensorVelt = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Velocity)) + sensorVelr = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.AngularVelocity)) + + # store sensor value of each step in mbs variable, so that is accessible from user function + mbs.variables['pos'] = sensorPos + mbs.variables['ori'] = sensorOri + mbs.variables['velt'] = sensorVelt + mbs.variables['velr'] = sensorVelr + + # initialize ROS interface from own subclass + myROSInterface = MyExudynROSInterface() + + print('rosversion: ' + str(myROSInterface.myROSversionEnvInt)) + rospy.logdebug('node running and publishing') + + # exudyn PreStepUserFunction + def PreStepUserFunction(mbs, t): + # send position data to ROS + myROSInterface.PublishPoseUpdate(mbs,t) + # send velocity data to ROS + myROSInterface.PublishTwistUpdate(mbs,t) + # send system state data to ROS + myROSInterface.PublishSystemStateUpdate(mbs,t) + + # get string data from ROS /my_string topic, please use: rostopic pub -r 100 /my_string geometry_msgs/WrenchStamped "..." + someMessage = myROSInterface.my_string.data + if someMessage != '' : + print('mystringdata',someMessage) + + # get wrench data from ROS /cmd_wrench topic, please use: rostopic pub -r 100 /cmd_wrench geometry_msgs/WrenchStamped "..." + rosForces = myROSInterface.cmd_wrench.wrench.force + rosTorques = myROSInterface.cmd_wrench.wrench.torque + print('forces from ROS:', rosForces) + print('torques from ROS : ', rosTorques) + + # demo set force to certain value received from ROS /cmd_wrench + newForce = [rosForces.x, rosForces.y, rosForces.z] + mbs.SetLoadParameter(mUIPLoad,'loadVector',newForce) + + return True + + mbs.SetPreStepUserFunction(PreStepUserFunction) + # assemble multi body system with all previous specified properties and components + mbs.Assemble() + # set simulation settings + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.endTime = tEnd + simulationSettings.timeIntegration.numberOfSteps = int(tEnd/tRes) + simulationSettings.timeIntegration.newton.relativeTolerance = 1e-8*100 + simulationSettings.timeIntegration.newton.absoluteTolerance = 1e-10 + simulationSettings.timeIntegration.verboseMode = 1 # if 0 no output; higher --> more output information about solver + simulationSettings.timeIntegration.newton.useModifiedNewton = False + simulationSettings.timeIntegration.newton.numericalDifferentiation.minimumCoordinateSize = 1 + simulationSettings.timeIntegration.generalizedAlpha.spectralRadius = 0.5 + simulationSettings.timeIntegration.generalizedAlpha.computeInitialAccelerations = False + simulationSettings.timeIntegration.simulateInRealtime = True # crucial for operating with robot + simulationSettings.displayStatistics = True + simulationSettings.solutionSettings.solutionInformation = "3D Spring Damper" + simulationSettings.solutionSettings.writeSolutionToFile = False + viewMatrix = np.eye(3) @ RotationMatrixZ(np.pi/2)@ RotationMatrixX(np.pi/2) + SC.visualizationSettings.general.autoFitScene = False + # set up parameter for usage in WSL2 (Ubuntu 20.04) on Windows 10 + SC.visualizationSettings.window.startupTimeout = 5000 + SC.visualizationSettings.interactive.selectionLeftMouse=False + SC.visualizationSettings.interactive.selectionRightMouse=False + + exu.StartRenderer(True) + exu.SolveDynamic(mbs, simulationSettings) + + return True + + # __main__ function for testing the interface + if __name__ == "__main__": + try: + main() + except rospy.ROSInterruptException: + pass + + + diff --git a/docs/RST/Examples/ROSExampleTurtle.rst b/docs/RST/Examples/ROSExampleTurtle.rst new file mode 100644 index 00000000..5f948a88 --- /dev/null +++ b/docs/RST/Examples/ROSExampleTurtle.rst @@ -0,0 +1,324 @@ + +.. _examples-rosexampleturtle: + +******************* +ROSExampleTurtle.py +******************* + +You can view and download this file on Github: `ROSExampleTurtle.py `_ + +.. code-block:: python + :linenos: + + #!/usr/bin/env python3 + #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + # This is an EXUDYN python example how to use ROS and EXUDYN + # + # Details: This example shows how to communicate between an exudyn simulation + # and ROS + # To make use of this example, you need to + # install ROS (ROS1 noetic) including rospy (see exudynROSInterface.py) + # prerequisite to use: + # use a bash terminal to start the roscore with: + # roscore + # you can also use the ROS turtlesim_node to subsrcibe the Twist massage from exudyn + # use a bash terminal to start the turtlesim node with: + # rosrun turtlesim turtlesim_node turtle1/cmd_vel:=exudyn/Twist + # start example with argument -pub, to use it with external publisher: + # python3 ROSexampleTurtle.py -pub + # start example with argument -noTrack, to not track the turtle: + # python3 ROSexampleTurtle.py -noTrack + # for even more ROS functionality create a ROS package (e.q. myExudynInterface) in a catkin workspace, + # copy files ROSExampleTurtle.py, Turtle.stl and ROSExampleBringup.launch file in corresponding folders within the package + # for more functionality see also: ROSExampleMassPoint.py, ROSExampleBringup.launch, ROSExampleControlVelocity.py + # Author: Martin Sereinig, Peter Manzl + # Date: 2023-05-31 (created) + # + # Copyright:This file is part of Exudyn. Exudyn is free software. + # You can redistribute it and/or modify it under the terms of the Exudyn license. + # See 'LICENSE.txt' for more details. + # + #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + import numpy as np + import sys + import exudyn as exu + from exudyn.utilities import * + + # import needed ROS modules and messages + import rospy + from geometry_msgs.msg import Twist + from std_msgs.msg import String + + # import new exudyn ROS interface class + import rosInterface as exuROS + + # here build inherited class and using within a simple exudyn simulation of one mass spring-damper + class MyExudynROSInterface(exuROS.ROSInterface): + def __init__(self): + # use initialisation of super class + # this initialize a rosnode with name + super().__init__(name='ROSexampleTurtle') + # initialization of all standard publisher done by super class + # self.exuPosePublisher + # self.exuStringPublisher + # self.exuSystemstatePublisher + # self.exuTimePublisher + # self.exuTwistPublisher + + # use standard publisher functions form super class! + # self.PublishPoseUpdate + # self.PublishTwistUpdate + # self.PublishSystemStateUpdate + + # initialize all subscriber + # suitable callback function is auto generated by superclass (using lambda function) + # twist subscriber: cmd_vel + twistSubsrciberBase = '' + twistSubsrciberTopic = 'cmd_vel' # topic to subscribe + self.cmd_vel = Twist() # data type of topic, must be named: self.twistSubscriberTopic + self.myTwistSubscriber = self.InitSubscriber(twistSubsrciberBase,twistSubsrciberTopic,Twist) + # string subsriber: my_string + stringSubsrciberBase = '' + stringSubsrciberTopic = 'my_string' # topic to subscribe + self.my_string = String() # data type of topic, must be named: self.twistSubscriberTopic + self.myStringSubscriber = self.InitSubscriber(stringSubsrciberBase,stringSubsrciberTopic,String) + + + def main(): + + #function to check if argument is in sys.argv with try/except + def argumentInSysArgv(index): + try: + sys.argv[index] + except IndexError: + return '' + else: + return sys.argv[index] + + # turtle moves in circle and is tracked by default (no arguments) + hearToPublisher = False + saveTrack = True + # parse command line arguments for multiple arguments: + # -pub: use external publisher + # -noTrack: do not track turtle + if len(sys.argv) > 1: + for arguments in range(len(sys.argv)): + if argumentInSysArgv(arguments) == '-pub': + hearToPublisher = True + print('Wait for external ROS publisher on /cmd_vel for turtle to move') + if argumentInSysArgv(arguments) == '-noTrack': + saveTrack = False + print('Turtle is not tracked') + + # build exudyn model + SC = exu.SystemContainer() + mbs = SC.AddSystem() + tRes = 0.001 # step size in s + tEnd = 1e5 # simulation time in s + # density and dimension of box + boxdensity = 1e-5 + boxLength = [0.5, 0.25, 0.1] + + background = GraphicsDataCheckerBoard(point=[0,0,0], + normal=[0, 0, 1], + color=[0.7]*3+[0.5], + alternatingColor=[0.8]*3+[1], + nTiles=10, + size=10) + + graphicsCube = GraphicsDataOrthoCubePoint(centerPoint = [0,0,0], + size = boxLength, + color = [1,0.,0.,1.], + addNormals = False, + addEdges = False, + edgeColor = color4black, + addFaces = True) + inertiaCube = InertiaCuboid(density= boxdensity, sideLengths = boxLength) + + + origin = [0, 0, 0] + bGround = mbs.AddObject(ObjectGround(referencePosition=origin, + visualization=VObjectGround(graphicsData=[background]))) + + # graphics userfunction definieren: + if saveTrack: + def graphicsTrajUF(mbs, itemNumber): + t = mbs.systemData.GetTime(exu.ConfigurationType.Visualization) + # position of turtle stored by sensor in mbs.variables['pos'] + pOld = mbs.GetSensorStoredData(mbs.variables['pos']) + try: + iCurr = np.min([np.argmin(abs(pOld[:,0] - t)), len(pOld[:,0])-1]) + pOld = pOld[:iCurr, :] + except: + pass + + if len(pOld) > 2: + trajData = np.matrix.flatten(pOld[:,1:]).tolist() + + for i in range(int(len(trajData)/3)): + trajData[2+3*i] += 0.115 # draw it on top of the robot + graphicsTraj = {'type':'Line', 'data': trajData, 'color':color4blue} + else: + graphicsTraj = [] + return [graphicsTraj] + # add object ground with graphics user function to add turtle track + oTrack = mbs.AddObject(ObjectGround(visualization =VObjectGround(graphicsData=[], graphicsDataUserFunction = graphicsTrajUF))) + + graphicsTurtleList = [] + try: + try: + path2stl = rospy.get_param('/ROSExampleTurtle/stlFilePath') # node_name/argsname + except: + path2stl = '' + print('stl file path: ', path2stl) + turtleRot = RotationMatrixZ(-np.pi/2) + stlGrafics = GraphicsDataFromSTLfile(path2stl+'Turtle.stl',color=[1,0,0,1],scale=0.25,pOff=[0.35,0,0], Aoff=turtleRot) + graphicsTurtleList += [stlGrafics] + except: + print('stl not found, maybe wrong directory, use box instead') + graphicsTurtleList += [graphicsCube] + + # user interaction point + [nUIP, bUIP]=AddRigidBody(mainSys = mbs, + inertia = inertiaCube, + nodeType = str(exu.NodeType.RotationEulerParameters), + position = [origin[0], origin[1], origin[2]], + rotationMatrix = np.eye(3), + angularVelocity = np.array([0,0,0]), + velocity= [0,0,0], + gravity = [0, 0, 0], + graphicsDataList = graphicsTurtleList) + + + # create markers: + mGround = mbs.AddMarker(MarkerBodyRigid(bodyNumber=bGround, localPosition=[0.0, 0.0, 0.0])) + mUIP = mbs.AddMarker(MarkerBodyRigid(bodyNumber=bUIP)) + + dampingHelper = 1e-4 + # create userfunction for TorsionalSpringDamper + def UFtorque(mbs,t,itemNumber,r,av,k,d,offset): + return (av-offset)*d + # create TorsionalSpringDamper object + oTSD = mbs.AddObject(TorsionalSpringDamper(markerNumbers = [mGround,mUIP], + damping = dampingHelper, + offset = 0, + springTorqueUserFunction = UFtorque)) + # create userfunction for CartesianSpringDamper + def UFforce(mbs, t,itemNumber, u, v, k, d, offset): + return [(v[0]-offset[0])*d[0], (v[1]-offset[1])*d[1], (v[2]-offset[2])*d[2]] + # create CartesianSpringDamper object + + oCSD = mbs.AddObject(CartesianSpringDamper(markerNumbers = [mGround, mUIP], + damping = [dampingHelper,dampingHelper,dampingHelper], + offset = [0,0,0], + springForceUserFunction = UFforce, + visualization=VObjectConnectorCartesianSpringDamper(show=False))) + + sensorPos = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Position,storeInternal=True)) + sensorOri = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Rotation)) + sensorVelt = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Velocity)) + sensorVelr = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.AngularVelocity)) + + # store sensor value of each step in mbs variable, so that is accessible from user function + mbs.variables['pos'] = sensorPos # just needed if sensor is used for sensor information + mbs.variables['ori'] = sensorOri # just needed if sensor is used for sensor information + mbs.variables['velt'] = sensorVelt # just needed if sensor is used for sensor information + mbs.variables['velr'] = sensorVelr # just needed if sensor is used for sensor information + mbs.variables['hearToPublisher'] = hearToPublisher # needed to use with and without external publisher + mbs.variables['nodeNumber'] = nUIP # just needed if nodeNumber is used for sensor information + + # initialize ROS interface from own subclass + myROSInterface = MyExudynROSInterface() + + print('rosversion: ' + str(myROSInterface.myROSversionEnvInt)) + rospy.logdebug('node running and publishing') + + # exudyn PreStepUserFunction + def PreStepUserFunction(mbs, t): + + # get velocity data from ROS /cmd_vel topic, please use: rostopic pub -r 100 /cmd_vel geometry_msgs/Twist "..." + rosLinearVelo = myROSInterface.cmd_vel.linear + rosAngularVelo = myROSInterface.cmd_vel.angular + + # EXAMPLE to get position and orientation from exudyn turtle via sensor + turtlePosition = mbs.GetSensorValues(mbs.variables['pos']) + turtleOrientation = mbs.GetSensorValues(mbs.variables['ori'])[2] + turtleOrientationMatrix = RotationMatrixZ(turtleOrientation) + + + # set velocities to exudyn turtle simulation + if mbs.variables['hearToPublisher'] ==True: + # exudyn turtle hears on publisher + desiredLinearVelocity = turtleOrientationMatrix @ [rosLinearVelo.x, rosLinearVelo.y, rosLinearVelo.z] + desiredAngularVelocity = [rosAngularVelo.x, rosAngularVelo.y, rosAngularVelo.z] + else: + # exudyn turtle moves in a circle + desiredLinearVelocity = turtleOrientationMatrix @ [1, 0, 0] + desiredAngularVelocity = [0, 0, 1] + + mbs.SetObjectParameter(oCSD, 'offset', desiredLinearVelocity) + mbs.SetObjectParameter(oTSD, 'offset', desiredAngularVelocity[2]) + + # send velocity data to ROS + myROSInterface.PublishTwistUpdate(mbs,t) + # send position data to ROS + myROSInterface.PublishPoseUpdate(mbs,t) + # send system state data to ROS + myROSInterface.PublishSystemStateUpdate(mbs,t) + + return True + + + + + + mbs.SetPreStepUserFunction(PreStepUserFunction) + # assemble multi body system with all previous specified properties and components + mbs.Assemble() + # set simulation settings + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.endTime = tEnd + simulationSettings.timeIntegration.numberOfSteps = int(tEnd/tRes) + simulationSettings.timeIntegration.newton.relativeTolerance = 1e-8*100 + simulationSettings.timeIntegration.newton.absoluteTolerance = 1e-10 + simulationSettings.timeIntegration.verboseMode = 1 # if 0 no output; higher --> more output information about solver + simulationSettings.timeIntegration.newton.useModifiedNewton = False + simulationSettings.timeIntegration.newton.numericalDifferentiation.minimumCoordinateSize = 1 + simulationSettings.timeIntegration.generalizedAlpha.spectralRadius = 0.5 + simulationSettings.timeIntegration.generalizedAlpha.computeInitialAccelerations = False + + simulationSettings.timeIntegration.simulateInRealtime = True # crucial for operating with robot + simulationSettings.displayStatistics = True + simulationSettings.solutionSettings.solutionInformation = "Exudyn-ROS turtle" + + simulationSettings.solutionSettings.writeSolutionToFile = False + SC.visualizationSettings.general.autoFitScene = True + # set up parameter for usage in WSL2 (Ubuntu 20.04) on Windows 10 + SC.visualizationSettings.interactive.trackMarker = mUIP + SC.visualizationSettings.window.startupTimeout = 8000 + SC.visualizationSettings.openGL.initialZoom = 0.2 + SC.visualizationSettings.openGL.initialMaxSceneSize= 0.7 + SC.visualizationSettings.interactive.selectionLeftMouse=False + SC.visualizationSettings.interactive.selectionRightMouse=False + + + exu.StartRenderer(True) + exu.SolveDynamic(mbs, simulationSettings) + + return True + + # create a function + + # __main__ function + if __name__ == "__main__": + try: + main() + except rospy.ROSInterruptException: + pass + + + diff --git a/docs/RST/Examples/chatGPTupdate.rst b/docs/RST/Examples/chatGPTupdate.rst new file mode 100644 index 00000000..ebeaefa5 --- /dev/null +++ b/docs/RST/Examples/chatGPTupdate.rst @@ -0,0 +1,184 @@ + +.. _examples-chatgptupdate: + +**************** +chatGPTupdate.py +**************** + +You can view and download this file on Github: `chatGPTupdate.py `_ + +.. code-block:: python + :linenos: + + #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + # This is an Exudyn file + # + # Details: this file serves as a list of examples that shall be used by + # ChatGPT to update information on its internal knowledge of Exudyn + # dating to 2021; the examples use the mainSystemExtensions + # which are heavily simplifying usage of point masses and rigid bodies + # Version: V1 + # + # Author: Johannes Gerstmayr + # Date: 2023-06-30 + # + # Copyright:This file is part of Exudyn. Exudyn is free software. You can redistribute it and/or modify it under the terms of the Exudyn license. See 'LICENSE.txt' for more details. + # + #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + #copy the text below here into a ChatGPT input window: + + #Use the following information as an update of the internal data of the Python multibody code Exudyn. + #See the following examples to create multibody systems in Exudyn. + #NOTE: mbs.Create...(...) calls several functions in the background to create nodes, objects, markers and loads in Exudyn. + #all quantities are giving as 3D lists [x,y,z] for positions, velocities, .... + #rotations are usually given as rotation matrix (numpy array); + #RotationVector2RotationMatrix([rotX, rotY, rotZ]) computes a rotation around the global x,y,z rotation axis + + #%%++++++++++++++++++++++++++++++++++++++++++++++++++++ + #create rigid bodies and mass points with distance constraint and joints + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() #create a MainSystem 'mbs' to work with + + #draw orthonormal cube in local frame where it is added to; + #cube is added to reference point of object, usually the center of mass (COM): + graphicsCube = GraphicsDataOrthoCubePoint(centerPoint = [0,0,0], + size=[1,0.1,0.1], color=color4orange) + + #create inertia (mass, COM, inertia tensor) to be used in rigid body: + inertiaCube = InertiaCuboid(density=5000, sideLengths=[1,0.1,0.1]) + + #create simple rigid body + #note that graphics is always attached to reference point of body, which is by default the COM + b0 = mbs.CreateRigidBody(inertia = inertiaCube, + referencePosition = [0.5,0,0], #reference position x/y/z of COM + referenceRotationMatrix=RotationVector2RotationMatrix([0,0,pi*0.5]), + initialAngularVelocity=[2,0,0], + initialVelocity=[0,4,0], + gravity = [0,-9.81,0], + graphicsDataList = [graphicsCube]) + + #add an additional load to rigid body at left end; this always requires markers; + #for torques use Torque(...) instead of Force(...) + markerBody0 = mbs.AddMarker(MarkerBodyRigid(bodyNumber=b0, localPosition=[-0.5,0,0])) + mbs.AddLoad(Force(markerNumber=markerBody0, + loadVector=[10,0,0])) #load is 10N in x-direction + + #create a simple mass point at [1,-1,0] with initial velocity + m1 = mbs.CreateMassPoint(referencePosition=[1,-1,0], + initialVelocity = [2,5,0], #initial velocities for mass point + physicsMass=1, drawSize = 0.2) + #we can obtain the node number from the mass point: + n1 = mbs.GetObject(m1)['nodeNumber'] + + #add a ground object: + #graphics data for sphere: + gGround0 = GraphicsDataSphere(point=[3,1,0], radius = 0.1, color=color4red, nTiles=16) + #graphics for checkerboard background: + gGround1 = GraphicsDataCheckerBoard(point=[3,0,-2], normal=[0,0,1], size=10) + oGround = mbs.AddObject(ObjectGround(visualization=VObjectGround(graphicsData=[gGround0,gGround1]))) + + #create a rigid distance between bodies (using local position) or between nodes + mbs.CreateDistanceConstraint(bodyOrNodeList=[oGround, b0], + localPosition0 = [ 0. ,0,0], + localPosition1 = [-0.5,0,0], + distance=None, #automatically computed + drawSize=0.06) + + #distance constraint between body b0 and mass m1 + mbs.CreateDistanceConstraint(bodyOrNodeList=[b0, m1], + localPosition0 = [0.5,0,0], + localPosition1 = [0.,0.,0.], #must be [0,0,0] for Node + distance=None, #automatically computed + drawSize=0.06) + + #add further rigid body, which will be connected with joints + b1 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, sideLengths=[1,0.1,0.1]), + referencePosition = [2.5,0,0], #reference position x/y/z + gravity = [0,-9.81,0], + graphicsDataList = [graphicsCube]) + + b2 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, sideLengths=[1,0.1,0.1]), + referencePosition = [3.5,0,0], #reference position x/y/z + gravity = [0,-9.81,0], + graphicsDataList = [graphicsCube]) + + #create revolute joint with following args: + # name: name string for joint; markers get Marker0:name and Marker1:name + # bodyNumbers: a list of object numbers for body0 and body1; must be rigid body or ground object + # position: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 + # axis: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global rotation axis of the joint in reference configuration; else: local axis in body0 + # useGlobalFrame: if False, the point and axis vectors are defined in the local coordinate system of body0 + # show: if True, connector visualization is drawn + # axisRadius: radius of axis for connector graphical representation + # axisLength: length of axis for connector graphical representation + # color: color of connector + #returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint + mbs.CreateRevoluteJoint(bodyNumbers=[b1, b2], position=[3,0,0], axis=[0,0,1], #rotation along global z-axis + useGlobalFrame=True, axisRadius=0.02, axisLength=0.14) + + + #create prismatic joint with following args: + # name: name string for joint; markers get Marker0:name and Marker1:name + # bodyNumbers: a list of object numbers for body0 and body1; must be rigid body or ground object + # position: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 + # axis: a 3D vector as list or np.array containing the global translation axis of the joint in reference configuration + # useGlobalFrame: if False, the point and axis vectors are defined in the local coordinate system of body0 + # show: if True, connector visualization is drawn + # axisRadius: radius of axis for connector graphical representation + # axisLength: length of axis for connector graphical representation + # color: color of connector + #returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint + mbs.CreatePrismaticJoint(bodyNumbers=[oGround, b1], position=[2,0,0], axis=[1,0,0], #can move in global x-direction + useGlobalFrame=True, axisRadius=0.02, axisLength=1) + + # #instead of the prismatic joint, we could add another revolute joint to b1 to get a double-pendulum: + # mbs.CreateRevoluteJoint(bodyNumbers=[oGround, b1], position=[2,0,0], axis=[0,0,1], + # useGlobalFrame=True, axisRadius=0.02, axisLength=0.14) + + + #create simple mass point, connected with ground + m2 = mbs.CreateMassPoint(referencePosition = [7,2,0], + physicsMass = 10, gravity = [0,-9.81,0], + drawSize = 0.5, color=color4blue) + + #create spring damper between bodies (using local position) or between nodes + #spring-damper may not have size 0; spring reference length is computed from reference configuration + oSD = mbs.CreateSpringDamper(bodyOrNodeList=[oGround, m2], + localPosition0=[6,0,0], + localPosition1=[0,0,0], + stiffness=1e3, damping=1e1, + drawSize=0.2) + + #alternatively, we can use a CartesianSpringDamper; has spring and damper coefficients as list of x/y/z components + #it has no reference length and acts on the coordinates of both objects: + oCSD = mbs.CreateCartesianSpringDamper(bodyOrNodeList=[oGround, m2], + localPosition0=[7,2,0], + localPosition1=[0,0,0], + stiffness=[20,0,1e4], #stiffness in x/y/z direction + damping=[0.1,0,10], + drawSize=0.2) + + #prepare mbs for simulation: + mbs.Assemble() + #some simulation parameters: + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 5 + + #for redundant constraints, the following two settings: + simulationSettings.linearSolverSettings.ignoreSingularJacobian=True + simulationSettings.linearSolverType = exu.LinearSolverType.EigenDense + + mbs.SolveDynamic(simulationSettings = simulationSettings, + solverType=exu.DynamicSolverType.GeneralizedAlpha) + SC.visualizationSettings.nodes.drawNodesAsPoint=False #draw nodes as spheres; better graphics for nodes + + #visualize results: + mbs.SolutionViewer() + + + diff --git a/docs/RST/Examples/craneReevingSystem.rst b/docs/RST/Examples/craneReevingSystem.rst index 8113be89..7efbbdfa 100644 --- a/docs/RST/Examples/craneReevingSystem.rst +++ b/docs/RST/Examples/craneReevingSystem.rst @@ -303,7 +303,11 @@ You can view and download this file on Github: `craneReevingSystem.py stored internally in solver - # staticSolver.ComputeJacobianODE2RHS(mbs,scalarFactor_ODE2=-1, - # scalarFactor_ODE2_t=0, - # scalarFactor_ODE1=0) #could be 1 to include ODE1 part - # if nAE != 0: - # #compute AE part of jacobian if needed for constraint projection - # staticSolver.ComputeJacobianAE(mbs, scalarFactor_ODE2=1., scalarFactor_ODE2_t=0., - # scalarFactor_ODE1=0., #could be 1 to include ODE1 part - # velocityLevel=False) - - # jacobian = staticSolver.GetSystemJacobian() #read out stored jacobian; includes ODE2, ODE1 and nAE part - - # staticSolver.FinalizeSolver(mbs, simulationSettings) #close files, etc. - - # #obtain ODE2 part from jacobian == stiffness matrix - # Kode2 = jacobian[0:nODE2,0:nODE2] - - # remappingIndices = np.arange(nODE2) #maps new coordinates to original (full) ones - # if constrainedCoordinates != []: - # Mode2 = np.delete(np.delete(Mode2, constrainedCoordinates, 0), constrainedCoordinates, 1) - # Kode2 = np.delete(np.delete(Kode2, constrainedCoordinates, 0), constrainedCoordinates, 1) - # remappingIndices = np.delete(remappingIndices, constrainedCoordinates) - - # if nAE != 0 and not ignoreAlgebraicEquations and constrainedCoordinates != []: - # raise ValueError('ComputeODE2Eigenvalues: in case of algebraic equations, either ignoreAlgebraicEquations=True or constrainedCoordinates=[]') - - # if constrainedCoordinates != [] or nAE == 0: - # if not useSparseSolver: - # [eigenValuesUnsorted, eigenVectors] = eigh(Kode2, Mode2) #this gives omega^2 ... squared eigen frequencies (rad/s) - # if useAbsoluteValues: - # sortIndices = np.argsort(abs(eigenValuesUnsorted)) #get resorting index - # eigenValues = np.sort(a=abs(eigenValuesUnsorted)) #eigh returns unsorted eigenvalues... - # else: - # sortIndices = np.argsort(eigenValuesUnsorted) #get resorting index - # eigenValues = np.sort(a=eigenValuesUnsorted) #eigh returns unsorted eigenvalues... - # if numberOfEigenvalues > 0: - # eigenValues = eigenValues[0:numberOfEigenvalues] - # eigenVectors = eigenVectors[:,sortIndices[0:numberOfEigenvalues]] #eigenvectors are given in columns! - # else: - # if numberOfEigenvalues == 0: #compute all eigenvalues - # numberOfEigenvalues = nODE2 - - # Kcsr = csr_matrix(Kode2) - # Mcsr = csr_matrix(Mode2) - - # #use "LM" (largest magnitude), but shift-inverted mode with sigma=0, to find the zero-eigenvalues: - # #see https://docs.scipy.org/doc/scipy/reference/tutorial/arpack.html - # [eigenValues, eigenVectors] = eigsh(A=Kcsr, k=numberOfEigenvalues, M=Mcsr, - # which='LM', sigma=0, mode='normal') - - # #sort eigenvalues - # if useAbsoluteValues: - # sortIndices = np.argsort(abs(eigenValues)) #get resorting index - # eigenValues = np.sort(a=abs(eigenValues)) - # else: - # sortIndices = np.argsort(eigenValues) #get resorting index - # eigenValues = np.sort(a=eigenValues) - # eigenVectors = eigenVectors[:,sortIndices] #eigenvectors are given in columns! - - # eigenVectorsNew = np.zeros((nODE2,numberOfEigenvalues)) - # if constrainedCoordinates != []: - # # print('remap=', remappingIndices) - # for i in range(numberOfEigenvalues): - # eigenVectorsNew[remappingIndices,i] = eigenVectors[:,i] - # eigenVectors = eigenVectorsNew - # else: - # #%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - # #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - # #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - # if useSparseSolver: - # raise ValueError('ComputeODE2Eigenvalues: in case of algebraic equations and ignoreAlgebraicEquations=False, useSparseSolver must be False') - # #use SVD to project equations into nullspace - # #constraint jacobian: - # C = jacobian[0:nODE2,nODE2+nODE1:] - - # #compute SVD; D includes singular values - # [U,D,V] = svd(C) - - # nnz = (abs(D) > singularValuesTolerance).sum() #size of constraints, often number of cols of C - - # nullspace = U[:,nnz:].T #U[nnz:] - # Knullspace = nullspace@Kode2@nullspace.T - # Mnullspace = nullspace@Mode2@nullspace.T - - # # print('nODE2=',nODE2) - # # print('nAE=',nAE) - # # print('nnz=',nnz) - # # print('C=',C.shape) - # # print('U=',U.shape) - # # print('sing.val.=',D.round(5)) - # # print('Knullspace=',Knullspace.round(5)) - # # print('Mnullspace=',Mnullspace.round(5)) - # # print('nullspace=',nullspace.round(3)) - - # [eigenValuesUnsorted, eigenVectorsReduced] = eigh(Knullspace,Mnullspace) - # if useAbsoluteValues: - # sortIndices = np.argsort(abs(eigenValuesUnsorted)) #get resorting index - # eigenValues = np.sort(a=abs(eigenValuesUnsorted)) #eigh returns unsorted eigenvalues... - # else: - # sortIndices = np.argsort(eigenValuesUnsorted) #get resorting index - # eigenValues = np.sort(a=eigenValuesUnsorted) #eigh returns unsorted eigenvalues... - - # if numberOfEigenvalues > 0: - # eigenValues = eigenValues[0:numberOfEigenvalues] - # sortIndices = sortIndices[0:numberOfEigenvalues] - # eigenVectorsReduced = eigenVectorsReduced[:,sortIndices] #eigenvectors are given in columns! - - # eigenVectors = nullspace.T @ eigenVectorsReduced - - - # #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - # #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - - - - - - - - - - - - - - - - + #exu.StopRenderer() #safely close rendering window! + from exudyn.signalProcessing import ComputeFFT + from exudyn.plot import PlotFFT + data = mbs.GetSensorStoredData(sensPosN) + [freq, amp, phase] = ComputeFFT(data[:,0], data[:,1]) + PlotFFT(freq, amp) + #%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if True: from exudyn.interactive import AnimateModes [values, systemEigenVectors] = mbs.ComputeODE2Eigenvalues() diff --git a/docs/RST/Examples/serialRobotInverseKinematics.rst b/docs/RST/Examples/serialRobotInverseKinematics.rst index 368a4e41..15b9dfde 100644 --- a/docs/RST/Examples/serialRobotInverseKinematics.rst +++ b/docs/RST/Examples/serialRobotInverseKinematics.rst @@ -35,6 +35,7 @@ You can view and download this file on Github: `serialRobotInverseKinematics.py import numpy as np + exu.RequireVersion('1.6.31') # exuVersion = np.array(exu.__version__.split('.')[:3], dtype=int) exuVersion = exu.__version__.split('.')[:3] exuVersion = exuVersion[0] + exuVersion[1] + exuVersion[2] @@ -46,7 +47,7 @@ You can view and download this file on Github: `serialRobotInverseKinematics.py #%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #motion planning: jointSpaceInterpolation = False #false interpolates TCP position in work space/Cartesian coordinates - motionCase = 1 # case 1 and 2 move in different planes + motionCase = 2 # case 1 and 2 move in different planes #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -166,6 +167,14 @@ You can view and download this file on Github: `serialRobotInverseKinematics.py sJoints = mbs.AddSensor(SensorNode(nodeNumber=robotDict['nodeGeneric'], storeInternal=True, outputVariableType=exu.OutputVariableType.Coordinates)) + sPosTCP = mbs.AddSensor(SensorKinematicTree(objectNumber=oKT, linkNumber=5, localPosition=HT2translation(HTtool), + storeInternal=True, + outputVariableType=exu.OutputVariableType.Position)) + + sRotTCP = mbs.AddSensor(SensorKinematicTree(objectNumber=oKT, linkNumber=5, localPosition=HT2translation(HTtool), + storeInternal=True, + outputVariableType=exu.OutputVariableType.RotationMatrix)) + #user function which is called only once per step, speeds up simulation drastically def PreStepUF(mbs, t): if not jointSpaceInterpolation: @@ -215,6 +224,15 @@ You can view and download this file on Github: `serialRobotInverseKinematics.py SC.visualizationSettings.openGL.shadow=0.3 SC.visualizationSettings.openGL.perspective=0.5 + #traces: + SC.visualizationSettings.sensors.traces.listOfPositionSensors = [sPosTCP] + SC.visualizationSettings.sensors.traces.listOfTriadSensors =[sRotTCP] + SC.visualizationSettings.sensors.traces.showPositionTrace=True + SC.visualizationSettings.sensors.traces.showTriads=True + SC.visualizationSettings.sensors.traces.showVectors=False + SC.visualizationSettings.sensors.traces.showFuture=False + SC.visualizationSettings.sensors.traces.triadsShowEvery=5 + #%% tEnd = 5 # endtime of the simulation h = 0.002 #500 steps take 0.16 seconds, 0.3ms / step (83% Python + inverse kinematics) diff --git a/docs/RST/Examples/shapeOptimization.rst b/docs/RST/Examples/shapeOptimization.rst index 8280df19..33e43812 100644 --- a/docs/RST/Examples/shapeOptimization.rst +++ b/docs/RST/Examples/shapeOptimization.rst @@ -212,9 +212,9 @@ You can view and download this file on Github: `shapeOptimization.py minimize ... + return 140 + min(-100,-fMin) #maximize eigenfrequency => minimize ... except: - return -99 + return 140-99 @@ -237,26 +237,38 @@ You can view and download this file on Github: `shapeOptimization.py `_); Example given in \ ``Examples/springDamperUserFunctionNumbaJIT.py``\ showing speedups of factor 4; more complicated Python functions may see speedups of 10 - 50 diff --git a/docs/RST/GettingStarted.rst b/docs/RST/GettingStarted.rst index 04bf8f6f..a62bb4ab 100644 --- a/docs/RST/GettingStarted.rst +++ b/docs/RST/GettingStarted.rst @@ -29,16 +29,17 @@ For details on the interaction of nodes, objects, markers and loads see Section There are several journal papers of the developers which were using Exudyn (list may be incomplete): -+ A. Zwölfer, J. Gerstmayr. A concise nodal-based derivation of the floating frame of reference formulation for displacement-based solid finite elements, Journal of Multibody System Dynamics, Vol. 49(3), pp. 291 -- 313, 2020. -+ S. Holzinger, J. Schöberl, J. Gerstmayr. The equations of motion for a rigid body using non-redundant unified local velocity coordinates. Multibody System Dynamics, Vol. 48, pp. 283 -- 309, 2020. -+ S. Holzinger, J. Gerstmayr. Time integration of rigid bodies modelled with three rotation parameters, Multibody System Dynamics, Vol. 53(5), 2021. -+ A. Zwölfer, J. Gerstmayr. The nodal-based floating frame of reference formulation with modal reduction. Acta Mechanica, Vol. 232, pp. 835--851 (2021). -+ M. Pieber, K. Ntarladima, R. Winkler, J. Gerstmayr. A Hybrid ALE Formulation for the Investigation of the Stability of Pipes Conveying Fluid and Axially Moving Beams, ASME Journal of Computational and Nonlinear Dynamics, 2022. -+ S. Holzinger, M. Schieferle, C. Gutmann, M. Hofer, J. Gerstmayr. Modeling and Parameter Identification for a Flexible Rotor with Impacts. Journal of Computational and Nonlinear Dynamics, 2022. -+ R. Neurauter, J. Gerstmayr. A novel motion reconstruction method for inertial sensors with constraints, Multibody System Dynamics, 2022. + J. Gerstmayr. Exudyn -- A C++ based Python package for flexible multibody systems. Preprint, Research Square, 2023. \ `https://doi.org/10.21203/rs.3.rs-2693700/v1 `_\ ++ P. Manzl, O. Rogov, J. Gerstmayr, A. Mikkola, G. Orzechowski. Reliability Evaluation of Reinforcement Learning Methods for Mechanical Systems with Increasing Complexity. Preprint, Research Square, 2023. \ `https://doi.org/10.21203/rs.3.rs-3066420/v1 `_\ + S. Holzinger, M. Arnold, J. Gerstmayr. Evaluation and Implementation of Lie Group Integration Methods for Rigid Multibody Systems. Preprint, Research Square, 2023. \ `https://doi.org/10.21203/rs.3.rs-2715112/v1 `_\ + M. Sereinig, P. Manzl, and J. Gerstmayr. Task Dependent Comfort Zone, a Base Placement Strategy for Autonomous Mobile Manipulators using Manipulability Measures, Robotics and Autonomous Systems, submitted. ++ R. Neurauter, J. Gerstmayr. A novel motion reconstruction method for inertial sensors with constraints, Multibody System Dynamics, 2022. ++ M. Pieber, K. Ntarladima, R. Winkler, J. Gerstmayr. A Hybrid ALE Formulation for the Investigation of the Stability of Pipes Conveying Fluid and Axially Moving Beams, ASME Journal of Computational and Nonlinear Dynamics, 2022. ++ S. Holzinger, M. Schieferle, C. Gutmann, M. Hofer, J. Gerstmayr. Modeling and Parameter Identification for a Flexible Rotor with Impacts. Journal of Computational and Nonlinear Dynamics, 2022. ++ S. Holzinger, J. Gerstmayr. Time integration of rigid bodies modelled with three rotation parameters, Multibody System Dynamics, Vol. 53(5), 2021. ++ A. Zwölfer, J. Gerstmayr. The nodal-based floating frame of reference formulation with modal reduction. Acta Mechanica, Vol. 232, pp. 835--851 (2021). ++ A. Zwölfer, J. Gerstmayr. A concise nodal-based derivation of the floating frame of reference formulation for displacement-based solid finite elements, Journal of Multibody System Dynamics, Vol. 49(3), pp. 291 -- 313, 2020. ++ S. Holzinger, J. Schöberl, J. Gerstmayr. The equations of motion for a rigid body using non-redundant unified local velocity coordinates. Multibody System Dynamics, Vol. 48, pp. 283 -- 309, 2020. diff --git a/docs/RST/InstallationInstructions.rst b/docs/RST/InstallationInstructions.rst index 5c6a7c47..5c2a6a54 100644 --- a/docs/RST/InstallationInstructions.rst +++ b/docs/RST/InstallationInstructions.rst @@ -16,7 +16,7 @@ Exudyn only works with Python. Thus, you need an appropriate Python installation So far (2021-07), we tested + \ **Anaconda 2021-11, 64bit, Python 3.9**\ \ (older Anaconda3 versions can be downloaded via the repository archive \ ``https://repo.anaconda.com/archive/``\ ) -+ Currently, we work with Python 3.6 - Python 3.10 \ **conda environments**\ on Windows, Linux and MacOS (3.8-3.10). ++ Currently, we work with Python 3.6 - Python 3.11 \ **conda environments**\ on Windows, Linux and MacOS (3.8-3.10). + \ **Spyder 5.1.5**\ (with Python 3.9.7, 64bit) and \ **Spyder 4.1.3**\ (with Python 3.7.7, 64bit), which is included in the Anaconda installation\ (Note that it is important that Spyder, Python and Exudyn are \ **either**\ 32bit \ **or**\ 64bit and are compiled up to the same minor version, i.e., 3.7.x. There will be a strange .DLL error, if you mix up 32/64bit. It is possible to install both, Anaconda 32bit and Anaconda 64bit -- then you should follow the recommendations of paths as suggested by Anaconda installer.); Spyder works with all virtual environments Many alternative options exist: @@ -42,7 +42,7 @@ If you do not install Anaconda (e.g., under Linux), make sure that you have the You can install most of these packages using \ ``pip install numpy``\ (Windows) or \ ``pip3 install numpy``\ (Linux). NOTE: as there is only \ ``numpy``\ needed (but not for all sub-packages) and \ ``numpy``\ supports many variants, we do not add a particular requirement for installation of depending packages. It is not necessary to install \ ``scipy``\ as long as you are not using features of \ ``scipy``\ . Same reason for \ ``tkinter``\ and \ ``matplotlib``\ . -For interaction (right-mouse-click, some key-board commands) you need the Python module \ ``tkinter``\ . This is included in regular Anaconda distributions (recommended, see below), but on UBUNTU you need to type alike (do not forget the '3', otherwise it installs for Python2 ...): +For interaction (right-mouse-click, some key-board commands) you need the Python module \ ``tkinter``\ . This is included in regular Anaconda distributions (recommended, see below), but on Ubuntu you need to type alike (do not forget the '3', otherwise it installs for Python2 ...): \ ``sudo apt-get install python3-tk``\ @@ -59,48 +59,78 @@ Pre-built versions of Exudyn are hosted on \ ``pypi.org``\ , see the project + `https://pypi.org/project/exudyn `_ -As with most other packages, in the regular case (if your binary has been pre-built) you just need to do\ (If the index of pypi is not updated, it may help to use \ ``pip install -i https://pypi.org/project/ exudyn``\ ) +As with most other packages, in the regular case (if your binary has been pre-built) you just need to do \ ``pip install exudyn``\ -On Linux (currently only pre-built for UBUNTU, but should work on many other linux platforms), \ **update pip to at least 20.3**\ and use +On Ubuntu/Linux, make sure that pip is installed and up-to-date (\ **update pip to at least 20.3**\ ; otherwise the manylinux wheels will not be accepted!): + + \ ``sudo apt install python3-pip``\ + \ ``python3 -m pip install --upgrade``\ + +Depending on installation the command may read \ ``pip3``\ or \ ``pip``\ : \ ``pip3 install exudyn``\ -For pre-releases (use with care!), add '\ :math:`--`\ pre' flag: +For pre-releases (use with care!), add \ ``--pre``\ flag: + + \ ``pip install exudyn --pre -U``\ + +The \ ``-U``\ (identical to \ ``--upgrade``\ ) flag ensures that the current installed version is also updated in case of a change of the micro version (e.g., from version 1.6.119 to version 1.6.164), otherwise, it will only update if you switch to a newer minor version. + +In some cases (e.g. for AppleM1 or special Linux versions), your pre-built binary will not work due to some incompatibilities. Then you need to build from source as described in the 'Build and install' sections, Section :ref:`sec-install-installinstructions-buildwindows`\ . + + +Troubleshooting pip install +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Pip install may fail, if your linux version does not support the current manylinux version. +This is known for CentOS or simlilar systems which usually support manylinux2014. In this case, you have to build Exudyn from source, see Section :ref:`sec-install-installinstructions-buildubuntu`\ . - \ ``pip install exudyn \ :math:`--`\ pre``\ +Sometimes, you install exudyn, but when running python, the \ ``import exudyn``\ fails. +In case of several environments, check where your installation goes. To guarantee that the pip install goes to the python call, use: + + \ ``python -m pip install exudyn``\ + +which ensures that the used python is calling its associated pip module. + +If the PyPi index is not updated, it may help to use + + \ ``pip install -i https://pypi.org/project/ exudyn``\ -In some cases (e.g. for AppleM1), your pre-built binary will not work due to some incompatibilities. Then you need to build from source as described in the 'Build and install' sections, Section :ref:`sec-install-installinstructions-buildwindows`\ . .. _sec-install-installinstructions-wheel: -Install from specific Wheel (UBUNTU and Windows) +Install from specific Wheel (Ubuntu and Windows) ------------------------------------------------ A way to install the Python package Exudyn is to use the so-called 'wheels' (file ending \ ``.whl``\ ). +NOTE that this approach usually is not required; just use the pip installer of the previous section! + +\ **Ubuntu**\ : + Wheels can be downloaded directly from `https://pypi.org/project/exudyn/\#files `_, for many Python versions and architectures. -For UBUNTU18.04 (which by default uses Python 3.6) this may read (version number 1.0.20 may be different): +For Ubuntu 18.04 (which by default uses Python 3.6) this may read (version number 1.0.20 may be different): + \ ``Python 3.6, 64bit``\ : pip3 install dist\ :math:`\backslash`\ exudyn-1.0.20-cp36-cp36-linux_x86_64.whl -For UBUNTU20.04 (which by default uses Python 3.8) this may read (version number 1.0.20 may be different): +For Ubuntu 20.04 (which by default uses Python 3.8) this may read (version number 1.0.20 may be different): + \ ``Python 3.8, 64bit``\ : pip3 install dist\ :math:`\backslash`\ exudyn-1.0.20-cp38-cp38-linux_x86_64.whl NOTE that your installation may have environments with different Python versions, so install that Exudyn version appropriately! -If the wheel installation does not work on UBUNTU, it is highly recommended to build Exudyn for your specific system as given in Section :ref:`sec-install-installinstructions-buildubuntu`\ . +If the wheel installation does not work on Ubuntu, it is highly recommended to build Exudyn for your specific system as given in Section :ref:`sec-install-installinstructions-buildubuntu`\ . \ **Windows**\ : First, open an Anaconda prompt: + EITHER calling: START->Anaconda->... OR go to anaconda/Scripts folder and call activate.bat -+ You can check your Python version then, by running \ ``python``\ \ (\ ``python3``\ under UBUNTU 18.04), the output reads like: ++ You can check your Python version then, by running \ ``python``\ \ (\ ``python3``\ under Ubuntu 18.04), the output reads like: \ ``Python 3.6.5 \ :math:`|`\ Anaconda, Inc.\ :math:`|`\ (default, Mar 29 2018, 13:32:41) \ :math:`[`\ MSC v.1900 64 bit (AMD64)\ :math:`]`\ on win32``\ ... @@ -209,10 +239,10 @@ in order to interact with the render window, as there is only a single-threaded .. _sec-install-installinstructions-buildubuntu: -Build and install Exudyn under UBUNTU? +Build and install Exudyn under Ubuntu? -------------------------------------- -Having a new UBUNTU 18.04 standard installation (e.g. using a VM virtual box environment), the following steps need to be done (Python \ **3.6**\ is already installed on UBUNTU18.04, otherwise use \ ``sudo apt install python3``\ )\ (see also the youtube video: `https://www.youtube.com/playlist?list=PLZduTa9mdcmOh5KVUqatD9GzVg_jtl6fx `_): +Having a new Ubuntu 18.04 standard installation (e.g. using a VM virtual box environment), the following steps need to be done (Python \ **3.6**\ is already installed on Ubuntu 18.04, otherwise use \ ``sudo apt install python3``\ )\ (see also the youtube video: `https://www.youtube.com/playlist?list=PLZduTa9mdcmOh5KVUqatD9GzVg_jtl6fx `_): First update ... @@ -224,7 +254,7 @@ First update ... -Install necessary Python libraries and pip3; \ ``matplotlib``\ and\ ``scipy``\ are not required for installation but used in Exudyn examples: +Install necessary Python libraries and pip3; \ ``matplotlib``\ and \ ``scipy``\ are not required for installation but used in Exudyn examples: .. code-block:: @@ -244,14 +274,30 @@ Install pybind11 (needed for running the setup.py file derived from the pybind11 +To have dialogs enabled, you need to install \ ``Tk``\ /\ ``tkinter``\ (may be already installed in your case). +\ ``Tk``\ is installed on Ubuntu via apt-get and should then be available in Python: + +.. code-block:: -If graphics is used (\ ``\#define USE_GLFW_GRAPHICS``\ in \ ``BasicDefinitions.h``\ ), you must install the according GLFW and OpenGL libs: + sudo apt-get install python3-tk + + + + +If graphics is used (\ ``\#define USE_GLFW_GRAPHICS``\ in \ ``BasicDefinitions.h``\ ), you must install the according GLFW libs: + +.. code-block:: + + sudo apt-get install libglfw3 libglfw3-dev + + + +In some cases, it may be required to install OpenGL and some of the following libraries: .. code-block:: sudo apt-get install freeglut3 freeglut3-dev sudo apt-get install mesa-common-dev - sudo apt-get install libglfw3 libglfw3-dev sudo apt-get install libx11-dev xorg-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev @@ -271,7 +317,7 @@ Congratulation! \ **Now, run a test example**\ (will also open an OpenGL window \ ``python3 pythonDev/Examples/rigid3Dexample.py``\ -You can also create a UBUNTU wheel which can be easily installed on the same machine (x64), same operating system (UBUNTU18.04) and with same Python version (e.g., 3.6): +You can also create a Ubuntu wheel which can be easily installed on the same machine (x64), same operating system (Ubuntu 18.04) and with same Python version (e.g., 3.6): \ ``sudo pip3 install wheel``\ \ ``sudo python3 setup.py bdist_wheel --parallel``\ @@ -279,12 +325,13 @@ You can also create a UBUNTU wheel which can be easily installed on the same mac \ **Exudyn under Ubuntu / WSL**\ : -+ Note that Exudyn also nicely works under WSL (Windows subsystem for linux; tested for Ubuntu18.04) and an according xserver (VcXsrv). -+ Just set the display variable in your .bashrc file accordingly and you can enjoy the OpenGL windows and settings. ++ Note that Exudyn also nicely works under WSL (Windows subsystem for linux; tested for Ubuntu 18.04) and an according xserver (VcXsrv). ++ In case of old WSL2, just set the display variable in your .bashrc file accordingly and you can enjoy the OpenGL windows and settings. + It shall be noted that WSL + xserver works better than on MacOS, even for tkinter, multitasking, etc.! So, if you have troubles with your Mac, use a virtual machine with ubuntu and a xserver, that may do better ++ In case of WSLg (since 2021), only the software-OpenGL works; therefore, you have to set (possibly in .bashrc file): \ ``export LIBGL_ALWAYS_SOFTWARE=0``\ -\ **Exudyn under Raspberry Pi 4b**\ : +\ **Exudyn under RaspberryPi 4b**\ : + Exudyn also compiles under RaspberryPi 4b, Ubuntu Mate 20.04, Python 3.8; current version should compile out of the box using \ ``python3 setup.py install``\ command. + Performance is quite ok and it is even capable to use all cores (but you should add a fan!) @@ -294,7 +341,7 @@ You can also create a UBUNTU wheel which can be easily installed on the same mac \ **KNOWN issues for linux builds**\ : + Using \ **WSL2**\ (Windows subsystem for linux), there occur some conflicts during build because of incompatible windows and linux file systems and builds will not be copied to the dist folder; workaround: go to explorer, right click on 'build' directory and set all rights for authenticated user to 'full access' -+ \ **compiler (gcc,g++) conflicts**\ : It seems that Exudyn works well on UBUNTU18.04 with the original \ ``Python 3.6.9``\ and \ ``gcc-7.5.0``\ version as well as with UBUNTU20.04 with \ ``Python 3.8.5``\ and \ ``gcc-9.3.0``\ . Upgrading \ ``gcc``\ on a linux system with Python 3.6 to, e.g., \ ``gcc-8.2``\ showed us a linker error when loading the Exudyn module in Python -- there are some common restriction using \ ``gcc``\ versions different from those with which the Python version has been built. Starting \ ``python``\ or \ ``python3``\ on your linux machine shows you the \ ``gcc``\ version it had been build with. Check your current \ ``gcc``\ version with: \ ``gcc --version``\ ++ \ **compiler (gcc,g++) conflicts**\ : It seems that Exudyn works well on Ubuntu 18.04 with the original \ ``Python 3.6.9``\ and \ ``gcc-7.5.0``\ version as well as with Ubuntu 20.04 with \ ``Python 3.8.5``\ and \ ``gcc-9.3.0``\ . Upgrading \ ``gcc``\ on a Linux system with Python 3.6 to, e.g., \ ``gcc-8.2``\ showed us a linker error when loading the Exudyn module in Python -- there are some common restriction using \ ``gcc``\ versions different from those with which the Python version has been built. Starting \ ``python``\ or \ ``python3``\ on your linux machine shows you the \ ``gcc``\ version it had been build with. Check your current \ ``gcc``\ version with: \ ``gcc --version``\ @@ -309,7 +356,7 @@ To uninstall exudyn under Windows, run (may require admin rights): \ ``pip uninstall exudyn``\ -To uninstall under UBUNTU, run: +To uninstall under Ubuntu, run: \ ``sudo pip3 uninstall exudyn``\ @@ -337,5 +384,5 @@ In order to make full usage of the C++ code and extending it, you can use: + link it to your own code + NOTE: on Linux systems, you mostly need to replace '\ :math:`/`\ ' with '\ :math:`\backslash`\ ' -+ Linux, etc.: not fully supported yet; however, all external libraries are Linux-compatible and thus should run with minimum adaptation efforts. ++ Linux, etc.: Use the build methods described above; Visual Studio Code may allow native Python and C++ debugging; switching to other build mechanisms (CMakeLists or scikit-build-core). diff --git a/docs/RST/RigidBodyAndJointsTutorial.rst b/docs/RST/RigidBodyAndJointsTutorial.rst index 6cce82f2..1c28505b 100644 --- a/docs/RST/RigidBodyAndJointsTutorial.rst +++ b/docs/RST/RigidBodyAndJointsTutorial.rst @@ -274,8 +274,7 @@ which results in the following output (shortened): Sometimes it is hard to understand the degree of freedom for the constrained system. Furthermore, we may have added -- by error -- -redundant constraints, which are not solvable or at least cause solver problems. Both can be checked with the command -\ ````\ : +redundant constraints, which are not solvable or at least cause solver problems. Both can be checked with the command: .. code-block:: python @@ -349,7 +348,7 @@ while solution can be viewed using the \ ``SolutionViewer()``\ . With \ ``solutionWritePeriod``\ you can adjust the frequency which is used to store the solution of the whole model, which may lead to very large files and may slow down simulation, but is used in the \ ``SolutionViewer()``\ to reload the solution after simulation. -In order to improve visualization, there are hundreds of options, see Visualization settings in Section :ref:`sec-vsettingsgeneral`\ , some of them used here: +In order to improve visualization, there are hundreds of options, see Visualization settings in Section :ref:`sec-visualizationsettingsmain`\ , some of them used here: .. code-block:: python diff --git a/docs/RST/TestModels/mainSystemExtensionsTests.rst b/docs/RST/TestModels/mainSystemExtensionsTests.rst index 07be120f..12624cd0 100644 --- a/docs/RST/TestModels/mainSystemExtensionsTests.rst +++ b/docs/RST/TestModels/mainSystemExtensionsTests.rst @@ -50,8 +50,8 @@ You can view and download this file on Github: `mainSystemExtensionsTests.py 0 and i < len(posList)-1: - Lref += r*pi + #note that in this test example, Lref is slightly too long, leading to negative spring forces (compression) if not treated nonlinearly with default settings in ReevingSystemSprings + Lref += r*pi #0.8*r*pi would always lead to tension #mR = mbs.AddMarker(MarkerBodyRigid(bodyNumber=bR, localPosition=[0,-r,0])) #mbs.AddLoad(Force(markerNumber=mR, loadVector=[0,-inertiaRoll.mass*9.81,0])) @@ -134,9 +135,11 @@ You can view and download this file on Github: `reevingSystemSpringsTest.py `__\ (\ ``solution = None``\ , \ ``rowIncrement = 1``\ , \ ``timeout = 0.04``\ , \ ``runOnStart = True``\ , \ ``runMode = 2``\ , \ ``fontSize = 12``\ , \ ``title = ''``\ , \ ``checkRenderEngineStopFlag = True``\ ) - -- | \ *function description*\ : - | open interactive dialog and visulation (animate) solution loaded with LoadSolutionFile(...); Change slider 'Increment' to change the automatic increment of time frames; Change mode between continuous run, one cycle (fits perfect for animation recording) or 'Static' (to change Solution steps manually with the mouse); update period also lets you change the speed of animation; Press Run / Stop button to start/stop interactive mode (updating of grpahics) - | - NOTE that this function is added to MainSystem via Python function SolutionViewer. -- | \ *input*\ : - | \ ``solution``\ : solution dictionary previously loaded with exudyn.utilities.LoadSolutionFile(...); will be played from first to last row; if solution==None, it tries to load the file coordinatesSolutionFileName as stored in mbs.sys['simulationSettings'], which are the simulationSettings of the previous simulation - | \ ``rowIncrement``\ : can be set larger than 1 in order to skip solution frames: e.g. rowIncrement=10 visualizes every 10th row (frame) - | \ ``timeout``\ : in seconds is used between frames in order to limit the speed of animation; e.g. use timeout=0.04 to achieve approximately 25 frames per second - | \ ``runOnStart``\ : immediately go into 'Run' mode - | \ ``runMode``\ : 0=continuous run, 1=one cycle, 2=static (use slider/mouse to vary time steps) - | \ ``fontSize``\ : define font size for labels in InteractiveDialog - | \ ``title``\ : if empty, it uses default; otherwise define specific title - | \ ``checkRenderEngineStopFlag``\ : if True, stopping renderer (pressing Q or Escape) also causes stopping the interactive dialog -- | \ *output*\ : - | None; updates current visualization state, renders the scene continuously (after pressing button 'Run') -- | \ *example*\ : - -.. code-block:: python - - #HERE, mbs must contain same model as solution stored in coordinatesSolution.txt - #adjust autoFitScence, otherwise it may lead to unwanted fit to scene - SC.visualizationSettings.general.autoFitScene = False - from exudyn.interactive import SolutionViewer #import function - sol = LoadSolutionFile('coordinatesSolution.txt') #load solution: adjust to your file name - mbs.SolutionViewer(sol) #call via MainSystem - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `addPrismaticJoint.py `_\ (Ex), \ `addRevoluteJoint.py `_\ (Ex), \ `beltDriveALE.py `_\ (Ex), \ `beltDriveReevingSystem.py `_\ (Ex), \ `beltDrivesComparison.py `_\ (Ex), \ `ACFtest.py `_\ (TM), \ `ANCFbeltDrive.py `_\ (TM), \ `ANCFgeneralContactCircle.py `_\ (TM) - + referencePosition = [1,0,0], + gravity = [0,0,-9.81]) .. _sec-mainsystemextensions-createmasspoint: Function: CreateMassPoint ^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateMassPoint `__\ (\ ``name = ''``\ , \ ``referenceCoordinates = [0.,0.,0.]``\ , \ ``initialCoordinates = [0.,0.,0.]``\ , \ ``initialVelocities = [0.,0.,0.]``\ , \ ``physicsMass = 0``\ , \ ``gravity = [0.,0.,0.]``\ , \ ``graphicsDataList = []``\ , \ ``drawSize = -1``\ , \ ``color = [-1.,-1.,-1.,-1.]``\ , \ ``show = True``\ , \ ``create2D = False``\ , \ ``returnDict = False``\ ) +`CreateMassPoint `__\ (\ ``name = ''``\ , \ ``referencePosition = [0.,0.,0.]``\ , \ ``initialDisplacement = [0.,0.,0.]``\ , \ ``initialVelocity = [0.,0.,0.]``\ , \ ``physicsMass = 0``\ , \ ``gravity = [0.,0.,0.]``\ , \ ``graphicsDataList = []``\ , \ ``drawSize = -1``\ , \ ``color = [-1.,-1.,-1.,-1.]``\ , \ ``show = True``\ , \ ``create2D = False``\ , \ ``returnDict = False``\ ) - | \ *function description*\ : | helper function to create 2D or 3D mass point object and node, using arguments as in NodePoint and MassPoint | - NOTE that this function is added to MainSystem via Python function MainSystemCreateMassPoint. - | \ *input*\ : | \ ``name``\ : name string for object, node is 'Node:'+name - | \ ``referenceCoordinates``\ : reference coordinates for point node (always a 3D vector, no matter if 2D or 3D mass) - | \ ``initialCoordinates``\ : initial displacements for point node (always a 3D vector, no matter if 2D or 3D mass) - | \ ``initialVelocities``\ : initial velocities for point node (always a 3D vector, no matter if 2D or 3D mass) + | \ ``referencePosition``\ : reference coordinates for point node (always a 3D vector, no matter if 2D or 3D mass) + | \ ``initialDisplacement``\ : initial displacements for point node (always a 3D vector, no matter if 2D or 3D mass) + | \ ``initialVelocity``\ : initial velocities for point node (always a 3D vector, no matter if 2D or 3D mass) | \ ``physicsMass``\ : mass of mass point | \ ``gravity``\ : gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) | \ ``graphicsDataList``\ : list of GraphicsData for optional mass visualization @@ -205,8 +158,8 @@ Function: CreateMassPoint import numpy as np SC = exu.SystemContainer() mbs = SC.AddSystem() - b0=mbs.CreateMassPoint(referenceCoordinates = [0,0,0], - initialVelocities = [2,5,0], + b0=mbs.CreateMassPoint(referencePosition = [0,0,0], + initialVelocity = [2,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) mbs.Assemble() @@ -218,7 +171,7 @@ Function: CreateMassPoint Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `springDamperTutorialNew.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) + \ `chatGPTupdate.py `_\ (Ex), \ `springDamperTutorialNew.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) @@ -275,7 +228,7 @@ Function: CreateRigidBody Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `addPrismaticJoint.py `_\ (Ex), \ `addRevoluteJoint.py `_\ (Ex), \ `graphicsDataExample.py `_\ (Ex), \ `rigidBodyTutorial3.py `_\ (Ex), \ `rigidBodyTutorial3withMarkers.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `computeODE2AEeigenvaluesTest.py `_\ (TM), \ `driveTrainTest.py `_\ (TM) + \ `addPrismaticJoint.py `_\ (Ex), \ `addRevoluteJoint.py `_\ (Ex), \ `chatGPTupdate.py `_\ (Ex), \ `graphicsDataExample.py `_\ (Ex), \ `rigidBodyTutorial3.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `computeODE2AEeigenvaluesTest.py `_\ (TM), \ `driveTrainTest.py `_\ (TM) @@ -312,8 +265,8 @@ Function: CreateSpringDamper import numpy as np SC = exu.SystemContainer() mbs = SC.AddSystem() - b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2,5,0], + b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) oGround = mbs.AddObject(ObjectGround()) @@ -333,7 +286,7 @@ Function: CreateSpringDamper Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `springDamperTutorialNew.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) + \ `chatGPTupdate.py `_\ (Ex), \ `springDamperTutorialNew.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) @@ -368,7 +321,7 @@ Function: CreateCartesianSpringDamper import numpy as np SC = exu.SystemContainer() mbs = SC.AddSystem() - b0 = mbs.CreateMassPoint(referenceCoordinates = [7,0,0], + b0 = mbs.CreateMassPoint(referencePosition = [7,0,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) oGround = mbs.AddObject(ObjectGround()) @@ -387,7 +340,7 @@ Function: CreateCartesianSpringDamper Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `computeODE2AEeigenvaluesTest.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM) + \ `chatGPTupdate.py `_\ (Ex), \ `computeODE2AEeigenvaluesTest.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM) @@ -476,7 +429,7 @@ Function: CreateRevoluteJoint Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `addRevoluteJoint.py `_\ (Ex), \ `rigidBodyTutorial3.py `_\ (Ex), \ `solutionViewerTest.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM), \ `perf3DRigidBodies.py `_\ (TM) + \ `addRevoluteJoint.py `_\ (Ex), \ `chatGPTupdate.py `_\ (Ex), \ `rigidBodyTutorial3.py `_\ (Ex), \ `solutionViewerTest.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM), \ `perf3DRigidBodies.py `_\ (TM) @@ -529,7 +482,7 @@ Function: CreatePrismaticJoint Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `addPrismaticJoint.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) + \ `addPrismaticJoint.py `_\ (Ex), \ `chatGPTupdate.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) @@ -677,7 +630,7 @@ Function: CreateDistanceConstraint gravity = [0,-9.81,0], graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], color=color4orange)]) - m1 = mbs.CreateMassPoint(referenceCoordinates=[5.5,-1,0], + m1 = mbs.CreateMassPoint(referencePosition=[5.5,-1,0], physicsMass=1, drawSize = 0.2) n1 = mbs.GetObject(m1)['nodeNumber'] oGround = mbs.AddObject(ObjectGround()) @@ -700,7 +653,70 @@ Function: CreateDistanceConstraint Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `mainSystemExtensionsTests.py `_\ (TM) + \ `chatGPTupdate.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) + + +.. _sec-mainsystem-pythonextensions: + + +MainSystem extensions (general) +=============================== + +This section represents general extensions to MainSystem, which are direct calls to Python functions, such as PlotSensor or SolveDynamic; these extensions allow a more intuitive interaction with the MainSystem class, see the following example. For activation, import \ ``exudyn.mainSystemExtensions``\ or \ ``exudyn.utilities``\ + +.. code-block:: python + :linenos: + + #this example sketches the usage + #for complete examples see Examples/ or TestModels/ folders + #create some multibody system (mbs) first: + # ... + # + #compute system degree of freedom: + mbs.ComputeSystemDegreeOfFreedom(verbose=True) + # + #call solver function directly from mbs: + mbs.SolveDynamic(exu.SimulationSettings()) + # + #plot sensor directly from mbs: + mbs.PlotSensor(...) + + +.. _sec-mainsystemextensions-solutionviewer: + +Function: SolutionViewer +^^^^^^^^^^^^^^^^^^^^^^^^ +`SolutionViewer `__\ (\ ``solution = None``\ , \ ``rowIncrement = 1``\ , \ ``timeout = 0.04``\ , \ ``runOnStart = True``\ , \ ``runMode = 2``\ , \ ``fontSize = 12``\ , \ ``title = ''``\ , \ ``checkRenderEngineStopFlag = True``\ ) + +- | \ *function description*\ : + | open interactive dialog and visulation (animate) solution loaded with LoadSolutionFile(...); Change slider 'Increment' to change the automatic increment of time frames; Change mode between continuous run, one cycle (fits perfect for animation recording) or 'Static' (to change Solution steps manually with the mouse); update period also lets you change the speed of animation; Press Run / Stop button to start/stop interactive mode (updating of grpahics) + | - NOTE that this function is added to MainSystem via Python function SolutionViewer. +- | \ *input*\ : + | \ ``solution``\ : solution dictionary previously loaded with exudyn.utilities.LoadSolutionFile(...); will be played from first to last row; if solution==None, it tries to load the file coordinatesSolutionFileName as stored in mbs.sys['simulationSettings'], which are the simulationSettings of the previous simulation + | \ ``rowIncrement``\ : can be set larger than 1 in order to skip solution frames: e.g. rowIncrement=10 visualizes every 10th row (frame) + | \ ``timeout``\ : in seconds is used between frames in order to limit the speed of animation; e.g. use timeout=0.04 to achieve approximately 25 frames per second + | \ ``runOnStart``\ : immediately go into 'Run' mode + | \ ``runMode``\ : 0=continuous run, 1=one cycle, 2=static (use slider/mouse to vary time steps) + | \ ``fontSize``\ : define font size for labels in InteractiveDialog + | \ ``title``\ : if empty, it uses default; otherwise define specific title + | \ ``checkRenderEngineStopFlag``\ : if True, stopping renderer (pressing Q or Escape) also causes stopping the interactive dialog +- | \ *output*\ : + | None; updates current visualization state, renders the scene continuously (after pressing button 'Run') +- | \ *example*\ : + +.. code-block:: python + + #HERE, mbs must contain same model as solution stored in coordinatesSolution.txt + #adjust autoFitScence, otherwise it may lead to unwanted fit to scene + SC.visualizationSettings.general.autoFitScene = False + from exudyn.interactive import SolutionViewer #import function + sol = LoadSolutionFile('coordinatesSolution.txt') #load solution: adjust to your file name + mbs.SolutionViewer(sol) #call via MainSystem + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `addPrismaticJoint.py `_\ (Ex), \ `addRevoluteJoint.py `_\ (Ex), \ `beltDriveALE.py `_\ (Ex), \ `beltDriveReevingSystem.py `_\ (Ex), \ `beltDrivesComparison.py `_\ (Ex), \ `ACFtest.py `_\ (TM), \ `ANCFbeltDrive.py `_\ (TM), \ `ANCFgeneralContactCircle.py `_\ (TM) @@ -708,7 +724,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: PlotSensor ^^^^^^^^^^^^^^^^^^^^ -`PlotSensor `__\ (\ ``sensorNumbers = []``\ , \ ``components = 0``\ , \ ``xLabel = 'time (s)'``\ , \ ``yLabel = None``\ , \ ``labels = []``\ , \ ``colorCodeOffset = 0``\ , \ ``newFigure = True``\ , \ ``closeAll = False``\ , \ ``componentsX = []``\ , \ ``title = ''``\ , \ ``figureName = ''``\ , \ ``fontSize = 16``\ , \ ``colors = []``\ , \ ``lineStyles = []``\ , \ ``lineWidths = []``\ , \ ``markerStyles = []``\ , \ ``markerSizes = []``\ , \ ``markerDensity = 0.08``\ , \ ``rangeX = []``\ , \ ``rangeY = []``\ , \ ``majorTicksX = 10``\ , \ ``majorTicksY = 10``\ , \ ``offsets = []``\ , \ ``factors = []``\ , \ ``subPlot = []``\ , \ ``sizeInches = [6.4,4.8]``\ , \ ``fileName = ''``\ , \ ``useXYZcomponents = True``\ , \ ``**kwargs``\ ) +`PlotSensor `__\ (\ ``sensorNumbers = []``\ , \ ``components = 0``\ , \ ``xLabel = 'time (s)'``\ , \ ``yLabel = None``\ , \ ``labels = []``\ , \ ``colorCodeOffset = 0``\ , \ ``newFigure = True``\ , \ ``closeAll = False``\ , \ ``componentsX = []``\ , \ ``title = ''``\ , \ ``figureName = ''``\ , \ ``fontSize = 16``\ , \ ``colors = []``\ , \ ``lineStyles = []``\ , \ ``lineWidths = []``\ , \ ``markerStyles = []``\ , \ ``markerSizes = []``\ , \ ``markerDensity = 0.08``\ , \ ``rangeX = []``\ , \ ``rangeY = []``\ , \ ``majorTicksX = 10``\ , \ ``majorTicksY = 10``\ , \ ``offsets = []``\ , \ ``factors = []``\ , \ ``subPlot = []``\ , \ ``sizeInches = [6.4,4.8]``\ , \ ``fileName = ''``\ , \ ``useXYZcomponents = True``\ , \ ``**kwargs``\ ) - | \ *function description*\ : | Helper function for direct and easy visualization of sensor outputs, without need for loading text files, etc.; PlotSensor can be used to simply plot, e.g., the measured x-Position over time in a figure. PlotSensor provides an interface to matplotlib (which needs to be installed). Default values of many function arguments can be changed using the exudyn.plot function PlotSensorDefaults(), see there for usage. @@ -749,6 +765,8 @@ Function: PlotSensor | \ ``[*kwargs]``\ : | \ ``minorTicksXon``\ : if True, turn minor ticks for x-axis on | \ ``minorTicksYon``\ : if True, turn minor ticks for y-axis on + | \ ``logScaleX``\ : use log scale for x-axis + | \ ``logScaleY``\ : use log scale for y-axis | \ ``fileCommentChar``\ : if exists, defines the comment character in files (\#, | \ ``fileDelimiterChar``\ : if exists, defines the character indicating the columns for data (',', ' ', ';', ...) - | \ *output*\ : @@ -913,8 +931,8 @@ Function: ComputeLinearizedSystem SC = exu.SystemContainer() mbs = SC.AddSystem() # - b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2*0,5,0], + b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2*0,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) # @@ -971,8 +989,8 @@ Function: ComputeODE2Eigenvalues SC = exu.SystemContainer() mbs = SC.AddSystem() # - b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2*0,5,0], + b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2*0,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) # diff --git a/docs/RST/confHelper.py b/docs/RST/confHelper.py index af7bdc47..0a6b0c94 100644 --- a/docs/RST/confHelper.py +++ b/docs/RST/confHelper.py @@ -3,5 +3,5 @@ listClassNames=['SystemContainer', 'MainSystem', 'SystemData', 'GeneralContact', 'VisuGeneralContact', 'MatrixContainer', 'Vector3DList', 'Vector2DList', 'Vector6DList', 'Matrix3DList', 'Matrix6DList', 'SimulationSettings', 'OutputVariableType', 'ConfigurationType', 'ItemType', 'Node', 'Joint', 'DynamicSolverType', 'CrossSectionType', 'KeyCode', 'LinearSolverType', 'Contact', ] -listFunctionNames=['GetVersionString', 'Help', 'RequireVersion', 'StartRenderer', 'StopRenderer', 'IsRendererActive', 'DoRendererIdleTasks', 'SolveStatic', 'SolveDynamic', 'ComputeODE2Eigenvalues', 'SetOutputPrecision', 'SetLinalgOutputFormatPython', 'SetWriteToConsole', 'SetWriteToFile', 'SetPrintDelayMilliSeconds', 'Print', 'SuppressWarnings', 'InfoStat', 'Go', 'InvalidIndex', 'Reset', 'AddSystem', 'NumberOfSystems', 'GetSystem', 'GetRenderState', 'SetRenderState', 'RedrawAndSaveImage', 'WaitForRenderEngineStopFlag', 'RenderEngineZoomAll', 'AttachToRenderEngine', 'DetachFromRenderEngine', 'SendRedrawSignal', 'GetCurrentMouseCoordinates', 'Assemble', 'AssembleCoordinates', 'AssembleLTGLists', 'AssembleInitializeSystemCoordinates', 'AssembleSystemInitialize', 'GetSystemContainer', 'WaitForUserToContinue', 'GetRenderEngineStopFlag', 'SetRenderEngineStopFlag', 'ActivateRendering', 'SetPreStepUserFunction', 'SetPostNewtonUserFunction', 'AddGeneralContact', 'GetGeneralContact', 'DeleteGeneralContact', 'NumberOfGeneralContacts', '__repr__', 'AddNode', 'GetNodeNumber', 'GetNode', 'ModifyNode', 'GetNodeDefaults', 'GetNodeOutput', 'GetNodeODE2Index', 'GetNodeODE1Index', 'GetNodeAEIndex', 'GetNodeParameter', 'SetNodeParameter', 'AddObject', 'GetObjectNumber', 'GetObject', 'ModifyObject', 'GetObjectDefaults', 'GetObjectOutput', 'GetObjectOutputBody', 'GetObjectOutputSuperElement', 'GetObjectParameter', 'SetObjectParameter', 'AddMarker', 'GetMarkerNumber', 'GetMarker', 'ModifyMarker', 'GetMarkerDefaults', 'GetMarkerParameter', 'SetMarkerParameter', 'GetMarkerOutput', 'AddLoad', 'GetLoadNumber', 'GetLoad', 'ModifyLoad', 'GetLoadDefaults', 'GetLoadValues', 'GetLoadParameter', 'SetLoadParameter', 'AddSensor', 'GetSensorNumber', 'GetSensor', 'ModifySensor', 'GetSensorDefaults', 'GetSensorValues', 'GetSensorStoredData', 'GetSensorParameter', 'SetSensorParameter', 'NumberOfLoads', 'NumberOfMarkers', 'NumberOfNodes', 'NumberOfObjects', 'NumberOfSensors', 'ODE2Size', 'ODE1Size', 'AEsize', 'DataSize', 'SystemSize', 'GetTime', 'SetTime', 'AddODE2LoadDependencies', 'Info', 'InfoLTG', 'GetODE2Coordinates', 'SetODE2Coordinates', 'GetODE2Coordinates_t', 'SetODE2Coordinates_t', 'GetODE2Coordinates_tt', 'SetODE2Coordinates_tt', 'GetODE1Coordinates', 'SetODE1Coordinates', 'GetODE1Coordinates_t', 'SetODE1Coordinates_t', 'GetAECoordinates', 'SetAECoordinates', 'GetDataCoordinates', 'SetDataCoordinates', 'GetSystemState', 'SetSystemState', 'GetObjectLTGODE2', 'GetObjectLTGODE1', 'GetObjectLTGAE', 'GetObjectLTGData', 'GetNodeLTGODE2', 'GetNodeLTGODE1', 'GetNodeLTGAE', 'GetNodeLTGData', 'GetPythonObject', 'SetFrictionPairings', 'SetFrictionProportionalZone', 'SetSearchTreeCellSize', 'SetSearchTreeBox', 'AddSphereWithMarker', 'AddANCFCable', 'AddTrianglesRigidBodyBased', 'GetItemsInBox', 'GetMarkerBasedSphere', 'ShortestDistanceAlongLine', 'UpdateContacts', 'GetActiveContacts', 'SetWithDenseMatrix', 'SetWithSparseMatrixCSR', 'Convert2DenseMatrix', 'UseDenseMatrix', 'Append', '__len__', '__setitem__', '__getitem__', 'visualizationSettings', 'systemData', 'systemIsConsistent', 'interactiveMode', ] +listFunctionNames=['GetVersionString', 'Help', 'RequireVersion', 'StartRenderer', 'StopRenderer', 'IsRendererActive', 'DoRendererIdleTasks', 'SolveStatic', 'SolveDynamic', 'ComputeODE2Eigenvalues', 'SetOutputPrecision', 'SetLinalgOutputFormatPython', 'SetWriteToConsole', 'SetWriteToFile', 'SetPrintDelayMilliSeconds', 'Print', 'SuppressWarnings', 'InfoStat', 'Go', 'InvalidIndex', 'Reset', 'AddSystem', 'NumberOfSystems', 'GetSystem', 'GetRenderState', 'SetRenderState', 'RedrawAndSaveImage', 'WaitForRenderEngineStopFlag', 'RenderEngineZoomAll', 'AttachToRenderEngine', 'DetachFromRenderEngine', 'SendRedrawSignal', 'GetCurrentMouseCoordinates', 'Assemble', 'AssembleCoordinates', 'AssembleLTGLists', 'AssembleInitializeSystemCoordinates', 'AssembleSystemInitialize', 'GetSystemContainer', 'WaitForUserToContinue', 'GetRenderEngineStopFlag', 'SetRenderEngineStopFlag', 'ActivateRendering', 'SetPreStepUserFunction', 'SetPostNewtonUserFunction', 'AddGeneralContact', 'GetGeneralContact', 'DeleteGeneralContact', 'NumberOfGeneralContacts', '__repr__', 'AddNode', 'GetNodeNumber', 'GetNode', 'ModifyNode', 'GetNodeDefaults', 'GetNodeOutput', 'GetNodeODE2Index', 'GetNodeODE1Index', 'GetNodeAEIndex', 'GetNodeParameter', 'SetNodeParameter', 'AddObject', 'GetObjectNumber', 'GetObject', 'ModifyObject', 'GetObjectDefaults', 'GetObjectOutput', 'GetObjectOutputBody', 'GetObjectOutputSuperElement', 'GetObjectParameter', 'SetObjectParameter', 'AddMarker', 'GetMarkerNumber', 'GetMarker', 'ModifyMarker', 'GetMarkerDefaults', 'GetMarkerParameter', 'SetMarkerParameter', 'GetMarkerOutput', 'AddLoad', 'GetLoadNumber', 'GetLoad', 'ModifyLoad', 'GetLoadDefaults', 'GetLoadValues', 'GetLoadParameter', 'SetLoadParameter', 'AddSensor', 'GetSensorNumber', 'GetSensor', 'ModifySensor', 'GetSensorDefaults', 'GetSensorValues', 'GetSensorStoredData', 'GetSensorParameter', 'SetSensorParameter', 'NumberOfLoads', 'NumberOfMarkers', 'NumberOfNodes', 'NumberOfObjects', 'NumberOfSensors', 'ODE2Size', 'ODE1Size', 'AEsize', 'DataSize', 'SystemSize', 'GetTime', 'SetTime', 'AddODE2LoadDependencies', 'Info', 'InfoLTG', 'GetODE2Coordinates', 'SetODE2Coordinates', 'GetODE2Coordinates_t', 'SetODE2Coordinates_t', 'GetODE2Coordinates_tt', 'SetODE2Coordinates_tt', 'GetODE1Coordinates', 'SetODE1Coordinates', 'GetODE1Coordinates_t', 'SetODE1Coordinates_t', 'GetAECoordinates', 'SetAECoordinates', 'GetDataCoordinates', 'SetDataCoordinates', 'GetSystemState', 'SetSystemState', 'GetObjectLTGODE2', 'GetObjectLTGODE1', 'GetObjectLTGAE', 'GetObjectLTGData', 'GetNodeLTGODE2', 'GetNodeLTGODE1', 'GetNodeLTGAE', 'GetNodeLTGData', 'GetPythonObject', 'SetFrictionPairings', 'SetFrictionProportionalZone', 'SetSearchTreeCellSize', 'SetSearchTreeBox', 'AddSphereWithMarker', 'AddANCFCable', 'AddTrianglesRigidBodyBased', 'GetItemsInBox', 'GetMarkerBasedSphere', 'ShortestDistanceAlongLine', 'UpdateContacts', 'GetActiveContacts', 'SetWithDenseMatrix', 'SetWithSparseMatrixCSR', 'Convert2DenseMatrix', 'UseDenseMatrix', 'Append', '__len__', '__setitem__', '__getitem__', '__copy__', '__deepcopy__', 'visualizationSettings', 'systemData', 'systemIsConsistent', 'interactiveMode', ] diff --git a/docs/RST/confHelperPyUtilities.py b/docs/RST/confHelperPyUtilities.py index 45b66344..b52cd5c5 100644 --- a/docs/RST/confHelperPyUtilities.py +++ b/docs/RST/confHelperPyUtilities.py @@ -1,7 +1,7 @@ #this is a helper file to define additional keywords for examples #Created: 2023-03-17, Johannes Gerstmayr -listPyFunctionNames=['CreateMBS', 'SetupSpaces', 'MapAction2MBS', 'Output2StateAndDone', 'State2InitialValues', 'TestModel', 'SetSolver', 'PreInitializeSolver', 'IntegrateStep', 'step', 'reset', 'render', 'close', 'ClearWorkspace', 'DiagonalMatrix', 'NormL2', 'VSum', 'VAdd', 'VSub', 'VMult', 'ScalarMult', 'Normalize', 'Vec2Tilde', 'Tilde2Vec', 'GaussIntegrate', 'LobattoIntegrate', 'GenerateStraightLineANCFCable2D', 'GenerateCircularArcANCFCable2D', 'CreateReevingCurve', 'PointsAndSlopes2ANCFCable2D', 'GenerateSlidingJoint', 'GenerateAleSlidingJoint', 'CompressedRowSparseToDenseMatrix', 'MapSparseMatrixIndices', 'VectorDiadicUnitMatrix3D', 'CyclicCompareReversed', 'AddEntryToCompressedRowSparseArray', 'CSRtoRowsAndColumns', 'CSRtoScipySparseCSR', 'ScipySparseCSRtoCSR', 'ResortIndicesOfCSRmatrix', 'ResortIndicesOfNGvector', 'ResortIndicesExudyn2NGvector', 'ConvertHexToTrigs', 'ConvertTetToTrigs', 'ConvertDenseToCompressedRowMatrix', 'ReadMatrixFromAnsysMMF', 'ReadMatrixDOFmappingVectorFromAnsysTxt', 'ReadNodalCoordinatesFromAnsysTxt', 'ReadElementsFromAnsysTxt', 'CMSObjectComputeNorm', 'Strain2Stress', 'StrainVector2StressVector', 'StrainVector2StressVector2D', 'LameParameters', 'AddObjectFFRF', 'UFforce', 'UFmassGenericODE2', 'SaveToFile', 'LoadFromFile', 'AddObjectFFRFreducedOrderWithUserFunctions', 'UFmassFFRFreducedOrder', 'UFforceFFRFreducedOrder', 'AddObjectFFRFreducedOrder', 'ImportFromAbaqusInputFile', 'ReadMassMatrixFromAbaqus', 'ReadStiffnessMatrixFromAbaqus', 'ImportMeshFromNGsolve', 'ComputeEigenmodesNGsolve', 'ComputeHurtyCraigBamptonModesNGsolve', 'ComputePostProcessingModesNGsolve', 'GetMassMatrix', 'GetStiffnessMatrix', 'NumberOfNodes', 'GetNodePositionsAsArray', 'GetNodePositionsMean', 'NumberOfCoordinates', 'GetNodeAtPoint', 'GetNodesInPlane', 'GetNodesInCube', 'GetNodesOnLine', 'GetNodesOnCylinder', 'GetNodesOnCircle', 'GetNodeWeightsFromSurfaceAreas', 'GetSurfaceTriangles', 'VolumeToSurfaceElements', 'GetGyroscopicMatrix', 'ScaleMassMatrix', 'ScaleStiffnessMatrix', 'AddElasticSupportAtNode', 'AddNodeMass', 'CreateLinearFEMObjectGenericODE2', 'CreateNonlinearFEMObjectGenericODE2NGsolve', 'ComputeEigenmodes', 'ComputeEigenModesWithBoundaryNodes', 'ComputeHurtyCraigBamptonModes', 'GetEigenFrequenciesHz', 'ComputePostProcessingModes', 'ComputeCampbellDiagram', 'CheckConsistency', 'ReadMassMatrixFromAnsys', 'ReadStiffnessMatrixFromAnsys', 'ReadNodalCoordinatesFromAnsys', 'ReadElementsFromAnsys', 'SwitchTripletOrder', 'ComputeTriangleNormal', 'ComputeTriangleArea', 'GraphicsData2PointsAndTrigs', 'GraphicsDataFromPointsAndTrigs', 'RefineMesh', 'ShrinkMeshNormalToSurface', 'MoveGraphicsData', 'MergeGraphicsDataTriangleList', 'GraphicsDataLine', 'GraphicsDataCircle', 'GraphicsDataText', 'GraphicsDataRectangle', 'GraphicsDataOrthoCubeLines', 'GraphicsDataOrthoCube', 'GraphicsDataOrthoCubePoint', 'GraphicsDataCube', 'GraphicsDataSphere', 'GraphicsDataCylinder', 'GraphicsDataRigidLink', 'GraphicsDataFromSTLfileTxt', 'GraphicsDataFromSTLfile', 'AddEdgesAndSmoothenNormals', 'ExportGraphicsData2STL', 'GraphicsDataSolidOfRevolution', 'GraphicsDataArrow', 'GraphicsDataBasis', 'GraphicsDataFrame', 'GraphicsDataQuad', 'GraphicsDataCheckerBoard', 'ComputeTriangularMesh', 'SegmentsFromPoints', 'CirclePointsAndSegments', 'GraphicsDataSolidExtrusion', 'GetTkRootAndNewWindow', 'TkRootExists', 'EditDictionaryWithTypeInfo', 'AnimateModes', 'SolutionViewer', 'OnQuit', 'StartSimulation', 'ProcessWidgetStates', 'ContinuousRunFunction', 'InitializePlots', 'UpdatePlots', 'InitializeSolver', 'FinalizeSolver', 'RunSimulationPeriod', 'MassCOMinertia2T66', 'Inertia2T66', 'Inertia66toMassCOMinertia', 'JointTransformMotionSubspace66', 'JointTransformMotionSubspace', 'CRM', 'CRF', 'Size', 'XL', 'ForwardDynamicsCRB', 'ComputeMassMatrixAndForceTerms', 'AddExternalForces', 'Sinc', 'Cot', 'R3xSO3Matrix2RotationMatrix', 'R3xSO3Matrix2Translation', 'R3xSO3Matrix', 'ExpSO3', 'ExpS3', 'LogSO3', 'TExpSO3', 'TExpSO3Inv', 'ExpSE3', 'LogSE3', 'TExpSE3', 'TExpSE3Inv', 'ExpR3xSO3', 'TExpR3xSO3', 'TExpR3xSO3Inv', 'CompositionRuleDirectProductR3AndS3', 'CompositionRuleSemiDirectProductR3AndS3', 'CompositionRuleDirectProductR3AndR3RotVec', 'CompositionRuleSemiDirectProductR3AndR3RotVec', 'CompositionRuleDirectProductR3AndR3RotXYZAngles', 'CompositionRuleSemiDirectProductR3AndR3RotXYZAngles', 'CompositionRuleForEulerParameters', 'CompositionRuleForRotationVectors', 'CompositionRuleRotXYZAnglesRotationVector', 'CreateMassPoint', 'CreateRigidBody', 'CreateSpringDamper', 'CreateCartesianSpringDamper', 'CreateRigidBodySpringDamper', 'CreateRevoluteJoint', 'CreatePrismaticJoint', 'CreateSphericalJoint', 'CreateGenericJoint', 'CreateDistanceConstraint', 'StribeckFunction', 'RegularizedFrictionStep', 'RegularizedFriction', 'VonMisesStress', 'UFvonMisesStress', 'ParseOutputFileHeader', 'PlotSensorDefaults', 'PlotSensor', 'PlotFFT', 'FileStripSpaces', 'DataArrayFromSensorList', 'LoadImage', 'PlotImage', 'GetVersionPlatformString', 'ProcessParameterList', 'ParameterVariation', 'GeneticOptimization', 'Minimize', 'ComputeSensitivities', 'PlotOptimizationResults2D', 'PlotSensitivityResults', 'ComputeOrthonormalBasisVectors', 'ComputeOrthonormalBasis', 'GramSchmidt', 'Skew', 'Skew2Vec', 'ComputeSkewMatrix', 'EulerParameters2G', 'EulerParameters2GLocal', 'EulerParameters2RotationMatrix', 'RotationMatrix2EulerParameters', 'AngularVelocity2EulerParameters_t', 'RotationVector2RotationMatrix', 'RotationMatrix2RotationVector', 'ComputeRotationAxisFromRotationVector', 'RotationVector2G', 'RotationVector2GLocal', 'RotXYZ2RotationMatrix', 'RotationMatrix2RotXYZ', 'RotXYZ2G', 'RotXYZ2G_t', 'RotXYZ2GLocal', 'RotXYZ2GLocal_t', 'AngularVelocity2RotXYZ_t', 'RotXYZ2EulerParameters', 'RotationMatrix2RotZYZ', 'RotationMatrixX', 'RotationMatrixY', 'RotationMatrixZ', 'HomogeneousTransformation', 'HTtranslate', 'HTtranslateX', 'HTtranslateY', 'HTtranslateZ', 'HT0', 'HTrotateX', 'HTrotateY', 'HTrotateZ', 'HT2translation', 'HT2rotationMatrix', 'InverseHT', 'RotationX2T66', 'RotationY2T66', 'RotationZ2T66', 'Translation2T66', 'TranslationX2T66', 'TranslationY2T66', 'TranslationZ2T66', 'T66toRotationTranslation', 'InverseT66toRotationTranslation', 'RotationTranslation2T66', 'RotationTranslation2T66Inverse', 'T66toHT', 'HT2T66Inverse', 'InertiaTensor2Inertia6D', 'Inertia6D2InertiaTensor', 'StrNodeType2NodeType', 'GetRigidBodyNode', 'AddRigidBody', 'AddRevoluteJoint', 'AddPrismaticJoint', 'SetWithCOMinertia', 'Inertia', 'InertiaCOM', 'COM', 'Mass', 'Translated', 'Rotated', 'Transformed', 'GetInertia6D', 'StdDH2HT', 'ModDHKK2HT', 'projectAngleToPMPi', 'SetPDcontrol', 'HasPDcontrol', 'GetPDcontrol', 'AddLink', 'IsSerialRobot', 'GetLink', 'HasParent', 'GetParentIndex', 'NumberOfLinks', 'GetBaseHT', 'GetToolHT', 'LinkHT', 'JointHT', 'COMHT', 'StaticTorques', 'Jacobian', 'CreateKinematicTree', 'CreateRedundantCoordinateMBS', 'GetKinematicTree66', 'GetLinkGraphicsData', 'BuildFromDictionary', 'GetCurrentRobotHT', 'InterpolateHTs', 'SolveSafe', 'Solve', 'MakeCorkeRobot', 'ComputeIK3R', 'ComputeIKPuma560', 'ComputeIKUR', 'Manipulator4Rsimple', 'Manipulator3RSimple', 'ManipulatorPANDA', 'ManipulatorUR5', 'ManipulatorPuma560', 'LinkDict2Robot', 'LinkDictModDHKK2Robot', 'GetBasicProfile', 'GetFinalCoordinates', 'Add', 'GetTimes', 'Initialize', 'Evaluate', 'EvaluateCoordinate', 'VelocityManipulability', 'ForceManipulability', 'StiffnessManipulability', 'JointJacobian', 'MassMatrix', 'DynamicManipulability', 'CalculateAllMeasures', 'AddLidar', 'FilterSensorOutput', 'FilterSignal', 'ComputeFFT', 'GetInterpolatedSignalValue', 'SolverErrorMessage', 'SolveStatic', 'SolveDynamic', 'SolverSuccess', 'ComputeLinearizedSystem', 'ComputeODE2Eigenvalues', 'ComputeSystemDegreeOfFreedom', 'CheckSolverInfoStatistics', 'ShowOnlyObjects', 'HighlightItem', '__UFsensorDistance', 'CreateDistanceSensorGeometry', 'CreateDistanceSensor', 'UFsensorRecord', 'AddSensorRecorder', 'LoadSolutionFile', 'NumpyInt8ArrayToString', 'BinaryReadIndex', 'BinaryReadReal', 'BinaryReadString', 'BinaryReadArrayIndex', 'BinaryReadRealVector', 'LoadBinarySolutionFile', 'RecoverSolutionFile', 'InitializeFromRestartFile', 'SetSolutionState', 'AnimateSolution', 'DrawSystemGraph', 'CreateTCPIPconnection', 'TCPIPsendReceive', 'CloseTCPIPconnection', ] +listPyFunctionNames=['CreateMBS', 'SetupSpaces', 'MapAction2MBS', 'Output2StateAndDone', 'State2InitialValues', 'TestModel', 'SetSolver', 'PreInitializeSolver', 'IntegrateStep', 'step', 'reset', 'render', 'close', 'ClearWorkspace', 'SmartRound2String', 'DiagonalMatrix', 'NormL2', 'VSum', 'VAdd', 'VSub', 'VMult', 'ScalarMult', 'Normalize', 'Vec2Tilde', 'Tilde2Vec', 'GaussIntegrate', 'LobattoIntegrate', 'GenerateStraightLineANCFCable2D', 'GenerateCircularArcANCFCable2D', 'CreateReevingCurve', 'PointsAndSlopes2ANCFCable2D', 'GenerateSlidingJoint', 'GenerateAleSlidingJoint', 'CompressedRowSparseToDenseMatrix', 'MapSparseMatrixIndices', 'VectorDiadicUnitMatrix3D', 'CyclicCompareReversed', 'AddEntryToCompressedRowSparseArray', 'CSRtoRowsAndColumns', 'CSRtoScipySparseCSR', 'ScipySparseCSRtoCSR', 'ResortIndicesOfCSRmatrix', 'ResortIndicesOfNGvector', 'ResortIndicesExudyn2NGvector', 'ConvertHexToTrigs', 'ConvertTetToTrigs', 'ConvertDenseToCompressedRowMatrix', 'ReadMatrixFromAnsysMMF', 'ReadMatrixDOFmappingVectorFromAnsysTxt', 'ReadNodalCoordinatesFromAnsysTxt', 'ReadElementsFromAnsysTxt', 'CMSObjectComputeNorm', 'Strain2Stress', 'StrainVector2StressVector', 'StrainVector2StressVector2D', 'LameParameters', 'AddObjectFFRF', 'UFforce', 'UFmassGenericODE2', 'SaveToFile', 'LoadFromFile', 'AddObjectFFRFreducedOrderWithUserFunctions', 'UFmassFFRFreducedOrder', 'UFforceFFRFreducedOrder', 'AddObjectFFRFreducedOrder', 'ImportFromAbaqusInputFile', 'ReadMassMatrixFromAbaqus', 'ReadStiffnessMatrixFromAbaqus', 'ImportMeshFromNGsolve', 'ComputeEigenmodesNGsolve', 'ComputeHurtyCraigBamptonModesNGsolve', 'ComputePostProcessingModesNGsolve', 'GetMassMatrix', 'GetStiffnessMatrix', 'NumberOfNodes', 'GetNodePositionsAsArray', 'GetNodePositionsMean', 'NumberOfCoordinates', 'GetNodeAtPoint', 'GetNodesInPlane', 'GetNodesInCube', 'GetNodesOnLine', 'GetNodesOnCylinder', 'GetNodesOnCircle', 'GetNodeWeightsFromSurfaceAreas', 'GetSurfaceTriangles', 'VolumeToSurfaceElements', 'GetGyroscopicMatrix', 'ScaleMassMatrix', 'ScaleStiffnessMatrix', 'AddElasticSupportAtNode', 'AddNodeMass', 'CreateLinearFEMObjectGenericODE2', 'CreateNonlinearFEMObjectGenericODE2NGsolve', 'ComputeEigenmodes', 'ComputeEigenModesWithBoundaryNodes', 'ComputeHurtyCraigBamptonModes', 'GetEigenFrequenciesHz', 'ComputePostProcessingModes', 'ComputeCampbellDiagram', 'CheckConsistency', 'ReadMassMatrixFromAnsys', 'ReadStiffnessMatrixFromAnsys', 'ReadNodalCoordinatesFromAnsys', 'ReadElementsFromAnsys', 'SwitchTripletOrder', 'ComputeTriangleNormal', 'ComputeTriangleArea', 'GraphicsData2PointsAndTrigs', 'GraphicsDataFromPointsAndTrigs', 'RefineMesh', 'ShrinkMeshNormalToSurface', 'MoveGraphicsData', 'MergeGraphicsDataTriangleList', 'GraphicsDataLine', 'GraphicsDataCircle', 'GraphicsDataText', 'GraphicsDataRectangle', 'GraphicsDataOrthoCubeLines', 'GraphicsDataOrthoCube', 'GraphicsDataOrthoCubePoint', 'GraphicsDataCube', 'GraphicsDataSphere', 'GraphicsDataCylinder', 'GraphicsDataRigidLink', 'GraphicsDataFromSTLfileTxt', 'GraphicsDataFromSTLfile', 'AddEdgesAndSmoothenNormals', 'ExportGraphicsData2STL', 'GraphicsDataSolidOfRevolution', 'GraphicsDataArrow', 'GraphicsDataBasis', 'GraphicsDataFrame', 'GraphicsDataQuad', 'GraphicsDataCheckerBoard', 'ComputeTriangularMesh', 'SegmentsFromPoints', 'CirclePointsAndSegments', 'GraphicsDataSolidExtrusion', 'GetTkRootAndNewWindow', 'TkRootExists', 'EditDictionaryWithTypeInfo', 'AnimateModes', 'SolutionViewer', 'OnQuit', 'StartSimulation', 'ProcessWidgetStates', 'ContinuousRunFunction', 'InitializePlots', 'UpdatePlots', 'InitializeSolver', 'FinalizeSolver', 'RunSimulationPeriod', 'MassCOMinertia2T66', 'Inertia2T66', 'Inertia66toMassCOMinertia', 'JointTransformMotionSubspace66', 'JointTransformMotionSubspace', 'CRM', 'CRF', 'Size', 'XL', 'ForwardDynamicsCRB', 'ComputeMassMatrixAndForceTerms', 'AddExternalForces', 'Sinc', 'Cot', 'R3xSO3Matrix2RotationMatrix', 'R3xSO3Matrix2Translation', 'R3xSO3Matrix', 'ExpSO3', 'ExpS3', 'LogSO3', 'TExpSO3', 'TExpSO3Inv', 'ExpSE3', 'LogSE3', 'TExpSE3', 'TExpSE3Inv', 'ExpR3xSO3', 'TExpR3xSO3', 'TExpR3xSO3Inv', 'CompositionRuleDirectProductR3AndS3', 'CompositionRuleSemiDirectProductR3AndS3', 'CompositionRuleDirectProductR3AndR3RotVec', 'CompositionRuleSemiDirectProductR3AndR3RotVec', 'CompositionRuleDirectProductR3AndR3RotXYZAngles', 'CompositionRuleSemiDirectProductR3AndR3RotXYZAngles', 'CompositionRuleForEulerParameters', 'CompositionRuleForRotationVectors', 'CompositionRuleRotXYZAnglesRotationVector', 'CreateMassPoint', 'CreateRigidBody', 'CreateSpringDamper', 'CreateCartesianSpringDamper', 'CreateRigidBodySpringDamper', 'CreateRevoluteJoint', 'CreatePrismaticJoint', 'CreateSphericalJoint', 'CreateGenericJoint', 'CreateDistanceConstraint', 'StribeckFunction', 'RegularizedFrictionStep', 'RegularizedFriction', 'VonMisesStress', 'UFvonMisesStress', 'ParseOutputFileHeader', 'PlotSensorDefaults', 'PlotSensor', 'PlotFFT', 'FileStripSpaces', 'DataArrayFromSensorList', 'LoadImage', 'PlotImage', 'GetVersionPlatformString', 'ProcessParameterList', 'ParameterVariation', 'GeneticOptimization', 'Minimize', 'ComputeSensitivities', 'PlotOptimizationResults2D', 'PlotSensitivityResults', 'ComputeOrthonormalBasisVectors', 'ComputeOrthonormalBasis', 'GramSchmidt', 'Skew', 'Skew2Vec', 'ComputeSkewMatrix', 'EulerParameters2G', 'EulerParameters2GLocal', 'EulerParameters2RotationMatrix', 'RotationMatrix2EulerParameters', 'AngularVelocity2EulerParameters_t', 'RotationVector2RotationMatrix', 'RotationMatrix2RotationVector', 'ComputeRotationAxisFromRotationVector', 'RotationVector2G', 'RotationVector2GLocal', 'RotXYZ2RotationMatrix', 'RotationMatrix2RotXYZ', 'RotXYZ2G', 'RotXYZ2G_t', 'RotXYZ2GLocal', 'RotXYZ2GLocal_t', 'AngularVelocity2RotXYZ_t', 'RotXYZ2EulerParameters', 'RotationMatrix2RotZYZ', 'RotationMatrixX', 'RotationMatrixY', 'RotationMatrixZ', 'HomogeneousTransformation', 'HTtranslate', 'HTtranslateX', 'HTtranslateY', 'HTtranslateZ', 'HT0', 'HTrotateX', 'HTrotateY', 'HTrotateZ', 'HT2translation', 'HT2rotationMatrix', 'InverseHT', 'RotationX2T66', 'RotationY2T66', 'RotationZ2T66', 'Translation2T66', 'TranslationX2T66', 'TranslationY2T66', 'TranslationZ2T66', 'T66toRotationTranslation', 'InverseT66toRotationTranslation', 'RotationTranslation2T66', 'RotationTranslation2T66Inverse', 'T66toHT', 'HT2T66Inverse', 'InertiaTensor2Inertia6D', 'Inertia6D2InertiaTensor', 'StrNodeType2NodeType', 'GetRigidBodyNode', 'AddRigidBody', 'AddRevoluteJoint', 'AddPrismaticJoint', 'SetWithCOMinertia', 'Inertia', 'InertiaCOM', 'COM', 'Mass', 'Translated', 'Rotated', 'Transformed', 'GetInertia6D', 'StdDH2HT', 'ModDHKK2HT', 'projectAngleToPMPi', 'SetPDcontrol', 'HasPDcontrol', 'GetPDcontrol', 'AddLink', 'IsSerialRobot', 'GetLink', 'HasParent', 'GetParentIndex', 'NumberOfLinks', 'GetBaseHT', 'GetToolHT', 'LinkHT', 'JointHT', 'COMHT', 'StaticTorques', 'Jacobian', 'CreateKinematicTree', 'CreateRedundantCoordinateMBS', 'GetKinematicTree66', 'GetLinkGraphicsData', 'BuildFromDictionary', 'GetCurrentRobotHT', 'InterpolateHTs', 'SolveSafe', 'Solve', 'MakeCorkeRobot', 'ComputeIK3R', 'ComputeIKPuma560', 'ComputeIKUR', 'Manipulator4Rsimple', 'Manipulator3RSimple', 'ManipulatorPANDA', 'ManipulatorUR5', 'ManipulatorPuma560', 'LinkDict2Robot', 'LinkDictModDHKK2Robot', 'GetBasicProfile', 'GetFinalCoordinates', 'Add', 'GetTimes', 'Initialize', 'Evaluate', 'EvaluateCoordinate', 'VelocityManipulability', 'ForceManipulability', 'StiffnessManipulability', 'JointJacobian', 'MassMatrix', 'DynamicManipulability', 'CalculateAllMeasures', 'AddLidar', 'FilterSensorOutput', 'FilterSignal', 'ComputeFFT', 'GetInterpolatedSignalValue', 'SolverErrorMessage', 'SolveStatic', 'SolveDynamic', 'SolverSuccess', 'ComputeLinearizedSystem', 'ComputeODE2Eigenvalues', 'ComputeSystemDegreeOfFreedom', 'CheckSolverInfoStatistics', 'ShowOnlyObjects', 'HighlightItem', '__UFsensorDistance', 'CreateDistanceSensorGeometry', 'CreateDistanceSensor', 'UFsensorRecord', 'AddSensorRecorder', 'LoadSolutionFile', 'NumpyInt8ArrayToString', 'BinaryReadIndex', 'BinaryReadReal', 'BinaryReadString', 'BinaryReadArrayIndex', 'BinaryReadRealVector', 'LoadBinarySolutionFile', 'RecoverSolutionFile', 'InitializeFromRestartFile', 'SetSolutionState', 'AnimateSolution', 'DrawSystemGraph', 'CreateTCPIPconnection', 'TCPIPsendReceive', 'CloseTCPIPconnection', ] listPyClassNames=['OpenAIGymInterfaceEnv', 'MaterialBaseClass', 'KirchhoffMaterial', 'FiniteElement', 'Tet4', 'ObjectFFRFinterface', 'ObjectFFRFreducedOrderInterface', 'HCBstaticModeSelection', 'FEMinterface', 'InteractiveDialog', 'KinematicTree33', 'KinematicTree66', 'RigidBodyInertia', 'InertiaCuboid', 'InertiaRodX', 'InertiaMassPoint', 'InertiaSphere', 'InertiaHollowSphere', 'InertiaCylinder', 'VRobotLink', 'RobotLink', 'VRobotTool', 'RobotTool', 'VRobotBase', 'RobotBase', 'Robot', 'InverseKinematicsNumerical', 'ProfileConstantAcceleration', 'ProfileLinearAccelerationsList', 'ProfilePTP', 'Trajectory', 'TCPIPdata', ] diff --git a/docs/RST/items/LoadForceVector.rst b/docs/RST/items/LoadForceVector.rst index 96d178f6..e0ed23a2 100644 --- a/docs/RST/items/LoadForceVector.rst +++ b/docs/RST/items/LoadForceVector.rst @@ -95,7 +95,7 @@ A user function, which computes the force vector depending on time and object pa Relevant Examples and TestModels with weblink: - \ `addPrismaticJoint.py `_\ (Examples/), \ `addRevoluteJoint.py `_\ (Examples/), \ `interactiveTutorial.py `_\ (Examples/), \ `pendulumVerify.py `_\ (Examples/), \ `solutionViewerTest.py `_\ (Examples/), \ `SpringDamperMassUserFunction.py `_\ (Examples/), \ `springDamperTutorialNew.py `_\ (Examples/), \ `ANCFcantileverTest.py `_\ (Examples/), \ `ANCFcantileverTestDyn.py `_\ (Examples/), \ `ANCFcontactCircle.py `_\ (Examples/), \ `ANCFcontactCircle2.py `_\ (Examples/), \ `ANCFmovingRigidbody.py `_\ (Examples/), \ `perf3DRigidBodies.py `_\ (TestModels/), \ `plotSensorTest.py `_\ (TestModels/), \ `revoluteJointPrismaticJointTest.py `_\ (TestModels/) + \ `addPrismaticJoint.py `_\ (Examples/), \ `addRevoluteJoint.py `_\ (Examples/), \ `interactiveTutorial.py `_\ (Examples/), \ `pendulumVerify.py `_\ (Examples/), \ `ROSExampleMassPoint.py `_\ (Examples/), \ `solutionViewerTest.py `_\ (Examples/), \ `SpringDamperMassUserFunction.py `_\ (Examples/), \ `springDamperTutorialNew.py `_\ (Examples/), \ `ANCFcantileverTest.py `_\ (Examples/), \ `ANCFcantileverTestDyn.py `_\ (Examples/), \ `ANCFcontactCircle.py `_\ (Examples/), \ `ANCFcontactCircle2.py `_\ (Examples/), \ `perf3DRigidBodies.py `_\ (TestModels/), \ `plotSensorTest.py `_\ (TestModels/), \ `revoluteJointPrismaticJointTest.py `_\ (TestModels/) diff --git a/docs/RST/items/LoadMassProportional.rst b/docs/RST/items/LoadMassProportional.rst index 24590997..a2462b02 100644 --- a/docs/RST/items/LoadMassProportional.rst +++ b/docs/RST/items/LoadMassProportional.rst @@ -95,7 +95,7 @@ MINI EXAMPLE for LoadMassProportional #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[2] diff --git a/docs/RST/items/MarkerBodyRigid.rst b/docs/RST/items/MarkerBodyRigid.rst index 34b55424..1c706603 100644 --- a/docs/RST/items/MarkerBodyRigid.rst +++ b/docs/RST/items/MarkerBodyRigid.rst @@ -40,7 +40,7 @@ DESCRIPTION of MarkerBodyRigid Relevant Examples and TestModels with weblink: - \ `addPrismaticJoint.py `_\ (Examples/), \ `addRevoluteJoint.py `_\ (Examples/), \ `ANCFcontactCircle.py `_\ (Examples/), \ `ANCFcontactCircle2.py `_\ (Examples/), \ `ANCFslidingJoint2D.py `_\ (Examples/), \ `ANCFtestHalfcircle.py `_\ (Examples/), \ `ANCFtests2.py `_\ (Examples/), \ `beltDriveALE.py `_\ (Examples/), \ `beltDriveReevingSystem.py `_\ (Examples/), \ `beltDrivesComparison.py `_\ (Examples/), \ `bicycleIftommBenchmark.py `_\ (Examples/), \ `CMSexampleCourse.py `_\ (Examples/), \ `abaqusImportTest.py `_\ (TestModels/), \ `ACFtest.py `_\ (TestModels/), \ `ANCFbeltDrive.py `_\ (TestModels/) + \ `addPrismaticJoint.py `_\ (Examples/), \ `addRevoluteJoint.py `_\ (Examples/), \ `ANCFcontactCircle.py `_\ (Examples/), \ `ANCFcontactCircle2.py `_\ (Examples/), \ `ANCFslidingJoint2D.py `_\ (Examples/), \ `ANCFtestHalfcircle.py `_\ (Examples/), \ `ANCFtests2.py `_\ (Examples/), \ `beltDriveALE.py `_\ (Examples/), \ `beltDriveReevingSystem.py `_\ (Examples/), \ `beltDrivesComparison.py `_\ (Examples/), \ `bicycleIftommBenchmark.py `_\ (Examples/), \ `chatGPTupdate.py `_\ (Examples/), \ `abaqusImportTest.py `_\ (TestModels/), \ `ACFtest.py `_\ (TestModels/), \ `ANCFbeltDrive.py `_\ (TestModels/) diff --git a/docs/RST/items/MarkerSuperElementPosition.rst b/docs/RST/items/MarkerSuperElementPosition.rst index 210606d3..85fdbd17 100644 --- a/docs/RST/items/MarkerSuperElementPosition.rst +++ b/docs/RST/items/MarkerSuperElementPosition.rst @@ -136,7 +136,7 @@ MINI EXAMPLE for MarkerSuperElementPosition #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) + mbs.SolveDynamic(solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass1, exu.OutputVariableType.Position)[0] diff --git a/docs/RST/items/NodeRigidBodyEP.rst b/docs/RST/items/NodeRigidBodyEP.rst index 8978b274..5a7f767b 100644 --- a/docs/RST/items/NodeRigidBodyEP.rst +++ b/docs/RST/items/NodeRigidBodyEP.rst @@ -129,7 +129,7 @@ see Section :ref:`sec-rigidbodyutilities-addrigidbody`\ , which simplifies the s Relevant Examples and TestModels with weblink: - \ `rigid3Dexample.py `_\ (Examples/), \ `rigidBodyIMUtest.py `_\ (Examples/), \ `rigidRotor3DbasicBehaviour.py `_\ (Examples/), \ `rigidRotor3DFWBW.py `_\ (Examples/), \ `rigidRotor3Dnutation.py `_\ (Examples/), \ `rigidRotor3Drunup.py `_\ (Examples/), \ `bicycleIftommBenchmark.py `_\ (Examples/), \ `craneReevingSystem.py `_\ (Examples/), \ `fourBarMechanism3D.py `_\ (Examples/), \ `gyroStability.py `_\ (Examples/), \ `humanRobotInteraction.py `_\ (Examples/), \ `leggedRobot.py `_\ (Examples/), \ `explicitLieGroupIntegratorPythonTest.py `_\ (TestModels/), \ `explicitLieGroupIntegratorTest.py `_\ (TestModels/), \ `explicitLieGroupMBSTest.py `_\ (TestModels/) + \ `rigid3Dexample.py `_\ (Examples/), \ `rigidBodyIMUtest.py `_\ (Examples/), \ `rigidRotor3DbasicBehaviour.py `_\ (Examples/), \ `rigidRotor3DFWBW.py `_\ (Examples/), \ `rigidRotor3Dnutation.py `_\ (Examples/), \ `rigidRotor3Drunup.py `_\ (Examples/), \ `rr.py `_\ (Examples/), \ `bicycleIftommBenchmark.py `_\ (Examples/), \ `craneReevingSystem.py `_\ (Examples/), \ `fourBarMechanism3D.py `_\ (Examples/), \ `gyroStability.py `_\ (Examples/), \ `humanRobotInteraction.py `_\ (Examples/), \ `explicitLieGroupIntegratorPythonTest.py `_\ (TestModels/), \ `explicitLieGroupIntegratorTest.py `_\ (TestModels/), \ `explicitLieGroupMBSTest.py `_\ (TestModels/) diff --git a/docs/RST/items/ObjectANCFCable2D.rst b/docs/RST/items/ObjectANCFCable2D.rst index 85f6760a..344ae2aa 100644 --- a/docs/RST/items/ObjectANCFCable2D.rst +++ b/docs/RST/items/ObjectANCFCable2D.rst @@ -443,7 +443,7 @@ MINI EXAMPLE for ObjectANCFCable2D #assemble and solve system for default parameters mbs.Assemble() - exu.SolveStatic(mbs) + mbs.SolveStatic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(lastNode, exu.OutputVariableType.Displacement)[0] diff --git a/docs/RST/items/ObjectConnectorCartesianSpringDamper.rst b/docs/RST/items/ObjectConnectorCartesianSpringDamper.rst index 018767bf..0b44ce00 100644 --- a/docs/RST/items/ObjectConnectorCartesianSpringDamper.rst +++ b/docs/RST/items/ObjectConnectorCartesianSpringDamper.rst @@ -274,14 +274,14 @@ MINI EXAMPLE for ObjectConnectorCartesianSpringDamper #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Displacement)[1] Relevant Examples and TestModels with weblink: - \ `mouseInteractionExample.py `_\ (Examples/), \ `rigid3Dexample.py `_\ (Examples/), \ `sliderCrank3DwithANCFbeltDrive2.py `_\ (Examples/), \ `ANCFcontactCircle.py `_\ (Examples/), \ `ANCFcontactCircle2.py `_\ (Examples/), \ `ANCFslidingJoint2D.py `_\ (Examples/), \ `cartesianSpringDamper.py `_\ (Examples/), \ `flexibleRotor3Dtest.py `_\ (Examples/), \ `lavalRotor2Dtest.py `_\ (Examples/), \ `NGsolvePistonEngine.py `_\ (Examples/), \ `NGsolvePostProcessingStresses.py `_\ (Examples/), \ `objectFFRFreducedOrderNetgen.py `_\ (Examples/), \ `scissorPrismaticRevolute2D.py `_\ (TestModels/), \ `sphericalJointTest.py `_\ (TestModels/), \ `ANCFcontactCircleTest.py `_\ (TestModels/) + \ `mouseInteractionExample.py `_\ (Examples/), \ `rigid3Dexample.py `_\ (Examples/), \ `rr.py `_\ (Examples/), \ `sliderCrank3DwithANCFbeltDrive2.py `_\ (Examples/), \ `ANCFcontactCircle.py `_\ (Examples/), \ `ANCFcontactCircle2.py `_\ (Examples/), \ `ANCFslidingJoint2D.py `_\ (Examples/), \ `cartesianSpringDamper.py `_\ (Examples/), \ `flexibleRotor3Dtest.py `_\ (Examples/), \ `lavalRotor2Dtest.py `_\ (Examples/), \ `NGsolvePistonEngine.py `_\ (Examples/), \ `NGsolvePostProcessingStresses.py `_\ (Examples/), \ `scissorPrismaticRevolute2D.py `_\ (TestModels/), \ `sphericalJointTest.py `_\ (TestModels/), \ `ANCFcontactCircleTest.py `_\ (TestModels/) diff --git a/docs/RST/items/ObjectConnectorCoordinate.rst b/docs/RST/items/ObjectConnectorCoordinate.rst index 435fd3bb..93743d42 100644 --- a/docs/RST/items/ObjectConnectorCoordinate.rst +++ b/docs/RST/items/ObjectConnectorCoordinate.rst @@ -279,7 +279,7 @@ MINI EXAMPLE for ObjectConnectorCoordinate #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Displacement)[0] diff --git a/docs/RST/items/ObjectConnectorCoordinateSpringDamper.rst b/docs/RST/items/ObjectConnectorCoordinateSpringDamper.rst index a945251e..5f9c9665 100644 --- a/docs/RST/items/ObjectConnectorCoordinateSpringDamper.rst +++ b/docs/RST/items/ObjectConnectorCoordinateSpringDamper.rst @@ -228,7 +228,7 @@ MINI EXAMPLE for ObjectConnectorCoordinateSpringDamper #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, diff --git a/docs/RST/items/ObjectConnectorDistance.rst b/docs/RST/items/ObjectConnectorDistance.rst index ef41684b..be8350f4 100644 --- a/docs/RST/items/ObjectConnectorDistance.rst +++ b/docs/RST/items/ObjectConnectorDistance.rst @@ -154,7 +154,7 @@ MINI EXAMPLE for ObjectConnectorDistance sims=exu.SimulationSettings() sims.timeIntegration.generalizedAlpha.spectralRadius=0.7 - exu.SolveDynamic(mbs, sims) + mbs.SolveDynamic(sims) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Position)[0] diff --git a/docs/RST/items/ObjectConnectorGravity.rst b/docs/RST/items/ObjectConnectorGravity.rst index 5ad91733..83480398 100644 --- a/docs/RST/items/ObjectConnectorGravity.rst +++ b/docs/RST/items/ObjectConnectorGravity.rst @@ -207,7 +207,7 @@ MINI EXAMPLE for ObjectConnectorGravity mbs.Assemble() sims = exu.SimulationSettings() sims.timeIntegration.endTime = tEnd - exu.SolveDynamic(mbs, sims, solverType=exu.DynamicSolverType.RK67) + mbs.SolveDynamic(sims, solverType=exu.DynamicSolverType.RK67) #check result at default integration time #expect y=x after one period of orbiting (got: 100000.00000000479) diff --git a/docs/RST/items/ObjectConnectorLinearSpringDamper.rst b/docs/RST/items/ObjectConnectorLinearSpringDamper.rst index a0073a6c..530de908 100644 --- a/docs/RST/items/ObjectConnectorLinearSpringDamper.rst +++ b/docs/RST/items/ObjectConnectorLinearSpringDamper.rst @@ -244,7 +244,7 @@ MINI EXAMPLE for ObjectConnectorLinearSpringDamper #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Displacement)[0] diff --git a/docs/RST/items/ObjectConnectorReevingSystemSprings.rst b/docs/RST/items/ObjectConnectorReevingSystemSprings.rst index 00e077f2..113afb3d 100644 --- a/docs/RST/items/ObjectConnectorReevingSystemSprings.rst +++ b/docs/RST/items/ObjectConnectorReevingSystemSprings.rst @@ -5,7 +5,7 @@ ObjectConnectorReevingSystemSprings =================================== -A rD reeving system defined by a list of torque-free and friction-free sheaves or points that are connected with one rope (modelled as massless spring). The force is assumed to be constant all over the rope. The sheaves or connection points are defined by \ :math:`nr`\ rigid body markers \ :math:`[m_0, \, m_1, \, \ldots, \, m_{nr-1}]`\ . At both ends of the rope there may be a prescribed motion coupled to a coordinate marker each, given by \ :math:`m_{c0}`\ and \ :math:`m_{c1}`\ . +A rD reeving system defined by a list of torque-free and friction-free sheaves or points that are connected with one rope (modelled as massless spring). NOTE that the spring can undergo tension AND compression (in order to avoid compression, use a PreStepUserFunction to turn off stiffness and damping in this case!). The force is assumed to be constant all over the rope. The sheaves or connection points are defined by \ :math:`nr`\ rigid body markers \ :math:`[m_0, \, m_1, \, \ldots, \, m_{nr-1}]`\ . At both ends of the rope there may be a prescribed motion coupled to a coordinate marker each, given by \ :math:`m_{c0}`\ and \ :math:`m_{c1}`\ . \ **Additional information for ObjectConnectorReevingSystemSprings**\ : @@ -33,6 +33,8 @@ The item \ **ObjectConnectorReevingSystemSprings**\ with type = 'ConnectorReevi | torsional damping [SI:Nms] between sheaves; this effect can damp rotations around the rope axis, pairwise between sheaves; this parameter is experimental * | **dampingShear** [\ :math:`DS`\ , type = UReal, default = 0.]: | damping of shear motion [SI:Ns] between sheaves; this effect can damp motion perpendicular to the rope between each pair of sheaves; this parameter is experimental +* | **regularizationForce** [\ :math:`F_{reg}`\ , type = Real, default = 0.1]: + | small regularization force [SI:N] in order to avoid large compressive forces; this regularization force can either be \ :math:`<0`\ (using a linear tension/compression spring model) or \ :math:`>0`\ , which restricts forces in the rope to be always \ :math:`\ge -F_{reg}`\ . Note that smaller forces lead to problems in implicit integrators and smaller time steps. For explicit integrators, this force can be chosen close to zero. * | **referenceLength** [\ :math:`L_{ref}`\ , type = Real, default = 0.]: | reference length for computation of roped force * | **sheavesAxes** [\ :math:`{\mathbf{l}}_a = [\LU{m0}{{\mathbf{a}}_0},\, \LU{m1}{{\mathbf{a}}_1},\, \ldots ] in [\Rcal^{3}, ...]`\ , type = Vector3DList, default = []]: @@ -197,13 +199,25 @@ In case that \ ``hasCoordinateMarkers=True``\ , the total reference length and i while we set \ :math:`L_0 = L_{ref}`\ and \ :math:`\dot L_0=0`\ otherwise. -The force in the reeving system (assumed to be constant all over the rope) reads +The linear force in the reeving system (assumed to be constant all over the rope) is computed as .. math:: - F = (L-L_{0}) \frac{EA}{L_0} + (\dot L - \dot L_0)\frac{DA}{L_0} + F_{lin} = (L-L_{0}) \frac{EA}{L_0} + (\dot L - \dot L_0)\frac{DA}{L_0} +The rope force is computed from + +.. math:: + + F = \begin{cases} F_{lin} \quad \mathrm{if} \quad F_{lin} > 0 \\ F_{reg} \cdot \mathrm{tanh}(F_{lin}/F_{reg})\quad \mathrm{else} \end{cases} + + +Which allows small compressive forces \ :math:`F_{reg}`\ . +In case that \ :math:`F_{reg} < 0`\ , compressive forces are not regularized (linear spring). +The case \ :math:`F_{reg} = 0`\ will be used in future only in combination with a data node, +which allows switching similar as in friction and contact elements. + Note that in case of \ :math:`L_0=0`\ , the term \ :math:`\frac{1}{L_0}`\ is replaced by \ :math:`1000`\ . However, this case must be avoided by the user by choosing appropriate parameters for the system. diff --git a/docs/RST/items/ObjectConnectorRigidBodySpringDamper.rst b/docs/RST/items/ObjectConnectorRigidBodySpringDamper.rst index 30d7f4eb..bf9ecee8 100644 --- a/docs/RST/items/ObjectConnectorRigidBodySpringDamper.rst +++ b/docs/RST/items/ObjectConnectorRigidBodySpringDamper.rst @@ -340,14 +340,14 @@ MINI EXAMPLE for ObjectConnectorRigidBodySpringDamper #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Displacement)[1] Relevant Examples and TestModels with weblink: - \ `stiffFlyballGovernor2.py `_\ (Examples/), \ `connectorRigidBodySpringDamperTest.py `_\ (TestModels/), \ `rotatingTableTest.py `_\ (TestModels/), \ `stiffFlyballGovernor.py `_\ (TestModels/), \ `superElementRigidJointTest.py `_\ (TestModels/) + \ `ROSExampleMassPoint.py `_\ (Examples/), \ `stiffFlyballGovernor2.py `_\ (Examples/), \ `connectorRigidBodySpringDamperTest.py `_\ (TestModels/), \ `rotatingTableTest.py `_\ (TestModels/), \ `stiffFlyballGovernor.py `_\ (TestModels/), \ `superElementRigidJointTest.py `_\ (TestModels/) diff --git a/docs/RST/items/ObjectConnectorSpringDamper.rst b/docs/RST/items/ObjectConnectorSpringDamper.rst index e652e764..2e875ccb 100644 --- a/docs/RST/items/ObjectConnectorSpringDamper.rst +++ b/docs/RST/items/ObjectConnectorSpringDamper.rst @@ -345,7 +345,7 @@ MINI EXAMPLE for ObjectConnectorSpringDamper #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] diff --git a/docs/RST/items/ObjectConnectorTorsionalSpringDamper.rst b/docs/RST/items/ObjectConnectorTorsionalSpringDamper.rst index 1f9b5cf4..f80e5030 100644 --- a/docs/RST/items/ObjectConnectorTorsionalSpringDamper.rst +++ b/docs/RST/items/ObjectConnectorTorsionalSpringDamper.rst @@ -251,14 +251,14 @@ MINI EXAMPLE for ObjectConnectorTorsionalSpringDamper #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Rotation)[2] Relevant Examples and TestModels with weblink: - \ `serialRobotInteractiveLimits.py `_\ (Examples/), \ `serialRobotKinematicTree.py `_\ (Examples/), \ `serialRobotTSD.py `_\ (Examples/), \ `rotatingTableTest.py `_\ (TestModels/), \ `sliderCrank3Dbenchmark.py `_\ (TestModels/) + \ `ROSExampleTurtle.py `_\ (Examples/), \ `serialRobotInteractiveLimits.py `_\ (Examples/), \ `serialRobotKinematicTree.py `_\ (Examples/), \ `serialRobotTSD.py `_\ (Examples/), \ `rotatingTableTest.py `_\ (TestModels/), \ `sliderCrank3Dbenchmark.py `_\ (TestModels/) diff --git a/docs/RST/items/ObjectGenericODE1.rst b/docs/RST/items/ObjectGenericODE1.rst index 665c5057..d036a52d 100644 --- a/docs/RST/items/ObjectGenericODE1.rst +++ b/docs/RST/items/ObjectGenericODE1.rst @@ -172,7 +172,7 @@ MINI EXAMPLE for ObjectGenericODE1 sims=exu.SimulationSettings() solverType = exu.DynamicSolverType.RK44 - exu.SolveDynamic(mbs, solverType=solverType, simulationSettings=sims) + mbs.SolveDynamic(solverType=solverType, simulationSettings=sims) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nODE1, exu.OutputVariableType.Coordinates)[0] diff --git a/docs/RST/items/ObjectGenericODE2.rst b/docs/RST/items/ObjectGenericODE2.rst index c3a9fbff..5d91931a 100644 --- a/docs/RST/items/ObjectGenericODE2.rst +++ b/docs/RST/items/ObjectGenericODE2.rst @@ -369,7 +369,7 @@ MINI EXAMPLE for ObjectGenericODE2 #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) + mbs.SolveDynamic(solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass1, exu.OutputVariableType.Position)[0] diff --git a/docs/RST/items/ObjectGround.rst b/docs/RST/items/ObjectGround.rst index 9b8a04e5..111db7c0 100644 --- a/docs/RST/items/ObjectGround.rst +++ b/docs/RST/items/ObjectGround.rst @@ -138,7 +138,7 @@ inefficient and only designed to enable simpler tests, but not large scale probl sims=exu.SimulationSettings() sims.timeIntegration.numberOfSteps = 10000000 #many steps to see graphics exu.StartRenderer() #perform zoom all (press 'a' several times) after startup to see the sphere - exu.SolveDynamic(mbs, sims) + mbs.SolveDynamic(sims) exu.StopRenderer() diff --git a/docs/RST/items/ObjectJointRevoluteZ.rst b/docs/RST/items/ObjectJointRevoluteZ.rst index 1b12ef57..b33c8cab 100644 --- a/docs/RST/items/ObjectJointRevoluteZ.rst +++ b/docs/RST/items/ObjectJointRevoluteZ.rst @@ -211,7 +211,7 @@ MINI EXAMPLE for ObjectJointRevoluteZ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Rotation)[2] diff --git a/docs/RST/items/ObjectKinematicTree.rst b/docs/RST/items/ObjectKinematicTree.rst index add5a575..93f0b667 100644 --- a/docs/RST/items/ObjectKinematicTree.rst +++ b/docs/RST/items/ObjectKinematicTree.rst @@ -207,7 +207,7 @@ We can compute the local joint angular velocity \ :math:`\tomega_i`\ and transl .. math:: - {\mathbf{v}}^J_i = \vp{\tomega_i}{{\mathbf{w}}_i} = \tPhi_i \, q_i + {\mathbf{v}}^J_i = \vp{\tomega_i}{{\mathbf{w}}_i} = \tPhi_i \, \dot q_i The joint coordinates, which can be rotational or translational, are stored in the vector @@ -396,7 +396,7 @@ MINI EXAMPLE for ObjectKinematicTree simulationSettings = exu.SimulationSettings() #takes currently set values or default values simulationSettings.timeIntegration.numberOfSteps = 1000 #gives very accurate results - exu.SolveDynamic(mbs, simulationSettings , solverType=exu.DynamicSolverType.RK67) #highly accurate! + mbs.SolveDynamic(simulationSettings , solverType=exu.DynamicSolverType.RK67) #highly accurate! #check final value of angle: q0 = mbs.GetNodeOutput(nGeneric, exu.OutputVariableType.Coordinates) diff --git a/docs/RST/items/ObjectMass1D.rst b/docs/RST/items/ObjectMass1D.rst index 6bbf2978..4c840fda 100644 --- a/docs/RST/items/ObjectMass1D.rst +++ b/docs/RST/items/ObjectMass1D.rst @@ -152,7 +152,7 @@ MINI EXAMPLE for ObjectMass1D #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result, get current mass position at local position [0,0,0] exudynTestGlobals.testResult = mbs.GetObjectOutputBody(mass, exu.OutputVariableType.Position, [0,0,0])[0] diff --git a/docs/RST/items/ObjectMassPoint.rst b/docs/RST/items/ObjectMassPoint.rst index c811ffcb..65d9326c 100644 --- a/docs/RST/items/ObjectMassPoint.rst +++ b/docs/RST/items/ObjectMassPoint.rst @@ -132,7 +132,7 @@ MINI EXAMPLE for ObjectMassPoint #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] diff --git a/docs/RST/items/ObjectMassPoint2D.rst b/docs/RST/items/ObjectMassPoint2D.rst index 9a8f987a..5db11215 100644 --- a/docs/RST/items/ObjectMassPoint2D.rst +++ b/docs/RST/items/ObjectMassPoint2D.rst @@ -131,7 +131,7 @@ MINI EXAMPLE for ObjectMassPoint2D #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] diff --git a/docs/RST/items/ObjectRigidBody.rst b/docs/RST/items/ObjectRigidBody.rst index 478a6dad..ce459b2b 100644 --- a/docs/RST/items/ObjectRigidBody.rst +++ b/docs/RST/items/ObjectRigidBody.rst @@ -334,7 +334,7 @@ see Section :ref:`sec-rigidbodyutilities-addrigidbody`\ , which simplifies the s Relevant Examples and TestModels with weblink: - \ `rigid3Dexample.py `_\ (Examples/), \ `rigidBodyIMUtest.py `_\ (Examples/), \ `bicycleIftommBenchmark.py `_\ (Examples/), \ `craneReevingSystem.py `_\ (Examples/), \ `fourBarMechanism3D.py `_\ (Examples/), \ `gyroStability.py `_\ (Examples/), \ `humanRobotInteraction.py `_\ (Examples/), \ `leggedRobot.py `_\ (Examples/), \ `mouseInteractionExample.py `_\ (Examples/), \ `multiMbsTest.py `_\ (Examples/), \ `openVRengine.py `_\ (Examples/), \ `particleClusters.py `_\ (Examples/), \ `explicitLieGroupIntegratorPythonTest.py `_\ (TestModels/), \ `explicitLieGroupIntegratorTest.py `_\ (TestModels/), \ `explicitLieGroupMBSTest.py `_\ (TestModels/) + \ `rigid3Dexample.py `_\ (Examples/), \ `rigidBodyIMUtest.py `_\ (Examples/), \ `rr.py `_\ (Examples/), \ `bicycleIftommBenchmark.py `_\ (Examples/), \ `craneReevingSystem.py `_\ (Examples/), \ `fourBarMechanism3D.py `_\ (Examples/), \ `gyroStability.py `_\ (Examples/), \ `humanRobotInteraction.py `_\ (Examples/), \ `leggedRobot.py `_\ (Examples/), \ `mouseInteractionExample.py `_\ (Examples/), \ `multiMbsTest.py `_\ (Examples/), \ `openVRengine.py `_\ (Examples/), \ `explicitLieGroupIntegratorPythonTest.py `_\ (TestModels/), \ `explicitLieGroupIntegratorTest.py `_\ (TestModels/), \ `explicitLieGroupMBSTest.py `_\ (TestModels/) diff --git a/docs/RST/items/ObjectRigidBody2D.rst b/docs/RST/items/ObjectRigidBody2D.rst index 908fe9c3..06d3a68d 100644 --- a/docs/RST/items/ObjectRigidBody2D.rst +++ b/docs/RST/items/ObjectRigidBody2D.rst @@ -212,7 +212,7 @@ MINI EXAMPLE for ObjectRigidBody2D #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] diff --git a/docs/RST/items/ObjectRotationalMass1D.rst b/docs/RST/items/ObjectRotationalMass1D.rst index a5a5aef7..0c1a8686 100644 --- a/docs/RST/items/ObjectRotationalMass1D.rst +++ b/docs/RST/items/ObjectRotationalMass1D.rst @@ -161,7 +161,7 @@ MINI EXAMPLE for ObjectRotationalMass1D #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result, get current rotor z-rotation at local position [0,0,0] exudynTestGlobals.testResult = mbs.GetObjectOutputBody(rotor, exu.OutputVariableType.Rotation, [0,0,0]) diff --git a/docs/RST/items/SensorKinematicTree.rst b/docs/RST/items/SensorKinematicTree.rst index 3d9fb1df..b8e906b3 100644 --- a/docs/RST/items/SensorKinematicTree.rst +++ b/docs/RST/items/SensorKinematicTree.rst @@ -45,7 +45,7 @@ DESCRIPTION of SensorKinematicTree Relevant Examples and TestModels with weblink: - \ `serialRobotKinematicTreeDigging.py `_\ (Examples/), \ `stiffFlyballGovernorKT.py `_\ (Examples/), \ `kinematicTreeAndMBStest.py `_\ (TestModels/), \ `kinematicTreeConstraintTest.py `_\ (TestModels/) + \ `serialRobotInverseKinematics.py `_\ (Examples/), \ `serialRobotKinematicTreeDigging.py `_\ (Examples/), \ `stiffFlyballGovernorKT.py `_\ (Examples/), \ `kinematicTreeAndMBStest.py `_\ (TestModels/), \ `kinematicTreeConstraintTest.py `_\ (TestModels/) diff --git a/docs/RST/items/SensorUserFunction.rst b/docs/RST/items/SensorUserFunction.rst index 69434179..4f9be8c0 100644 --- a/docs/RST/items/SensorUserFunction.rst +++ b/docs/RST/items/SensorUserFunction.rst @@ -114,7 +114,7 @@ The user function arguments are as follows: #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() if False: from exudyn.plot import PlotSensor diff --git a/docs/RST/pythonUtilities/FEM.rst b/docs/RST/pythonUtilities/FEM.rst index fa5073c8..0585752c 100644 --- a/docs/RST/pythonUtilities/FEM.rst +++ b/docs/RST/pythonUtilities/FEM.rst @@ -16,7 +16,7 @@ Support functions and helper classes for import of meshes, finite element models Function: CompressedRowSparseToDenseMatrix ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CompressedRowSparseToDenseMatrix `__\ (\ ``sparseData``\ ) +`CompressedRowSparseToDenseMatrix `__\ (\ ``sparseData``\ ) - | \ *function description*\ : | convert zero-based sparse matrix data to dense numpy matrix @@ -34,7 +34,7 @@ Function: CompressedRowSparseToDenseMatrix Function: MapSparseMatrixIndices ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`MapSparseMatrixIndices `__\ (\ ``matrix``\ , \ ``sorting``\ ) +`MapSparseMatrixIndices `__\ (\ ``matrix``\ , \ ``sorting``\ ) - | \ *function description*\ : | resort a sparse matrix (internal CSR format) with given sorting for rows and columns; changes matrix directly! used for ANSYS matrix import @@ -48,7 +48,7 @@ Function: MapSparseMatrixIndices Function: VectorDiadicUnitMatrix3D ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`VectorDiadicUnitMatrix3D `__\ (\ ``v``\ ) +`VectorDiadicUnitMatrix3D `__\ (\ ``v``\ ) - | \ *function description*\ : | compute diadic product of vector v and a 3D unit matrix = diadic(v,I\ :math:`_{3x3}`\ ); used for ObjectFFRF and CMS implementation @@ -62,7 +62,7 @@ Function: VectorDiadicUnitMatrix3D Function: CyclicCompareReversed ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CyclicCompareReversed `__\ (\ ``list1``\ , \ ``list2``\ ) +`CyclicCompareReversed `__\ (\ ``list1``\ , \ ``list2``\ ) - | \ *function description*\ : | compare cyclic two lists, reverse second list; return True, if any cyclic shifted lists are same, False otherwise @@ -76,7 +76,7 @@ Function: CyclicCompareReversed Function: AddEntryToCompressedRowSparseArray ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`AddEntryToCompressedRowSparseArray `__\ (\ ``sparseData``\ , \ ``row``\ , \ ``column``\ , \ ``value``\ ) +`AddEntryToCompressedRowSparseArray `__\ (\ ``sparseData``\ , \ ``row``\ , \ ``column``\ , \ ``value``\ ) - | \ *function description*\ : | add entry to compressedRowSparse matrix, avoiding duplicates @@ -91,7 +91,7 @@ Function: AddEntryToCompressedRowSparseArray Function: CSRtoRowsAndColumns ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CSRtoRowsAndColumns `__\ (\ ``sparseMatrixCSR``\ ) +`CSRtoRowsAndColumns `__\ (\ ``sparseMatrixCSR``\ ) - | \ *function description*\ : | compute rows and columns of a compressed sparse matrix and return as tuple: (rows,columns) @@ -105,7 +105,7 @@ Function: CSRtoRowsAndColumns Function: CSRtoScipySparseCSR ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CSRtoScipySparseCSR `__\ (\ ``sparseMatrixCSR``\ ) +`CSRtoScipySparseCSR `__\ (\ ``sparseMatrixCSR``\ ) - | \ *function description*\ : | convert internal compressed CSR to scipy.sparse csr matrix @@ -123,7 +123,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: ScipySparseCSRtoCSR ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ScipySparseCSRtoCSR `__\ (\ ``scipyCSR``\ ) +`ScipySparseCSRtoCSR `__\ (\ ``scipyCSR``\ ) - | \ *function description*\ : | convert scipy.sparse csr matrix to internal compressed CSR @@ -137,7 +137,7 @@ Function: ScipySparseCSRtoCSR Function: ResortIndicesOfCSRmatrix ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ResortIndicesOfCSRmatrix `__\ (\ ``mXXYYZZ``\ , \ ``numberOfRows``\ ) +`ResortIndicesOfCSRmatrix `__\ (\ ``mXXYYZZ``\ , \ ``numberOfRows``\ ) - | \ *function description*\ : | resort indices of given NGsolve CSR matrix in XXXYYYZZZ format to XYZXYZXYZ format; numberOfRows must be equal to columns @@ -152,7 +152,7 @@ Function: ResortIndicesOfCSRmatrix Function: ResortIndicesOfNGvector ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ResortIndicesOfNGvector `__\ (\ ``vXXYYZZ``\ ) +`ResortIndicesOfNGvector `__\ (\ ``vXXYYZZ``\ ) - | \ *function description*\ : | resort indices of given NGsolve vector in XXXYYYZZZ format to XYZXYZXYZ format @@ -166,7 +166,7 @@ Function: ResortIndicesOfNGvector Function: ResortIndicesExudyn2NGvector ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ResortIndicesExudyn2NGvector `__\ (\ ``vXYZXYZ``\ ) +`ResortIndicesExudyn2NGvector `__\ (\ ``vXYZXYZ``\ ) - | \ *function description*\ : | resort indices of given Exudyun vector XYZXYZXYZ to NGsolve vector in XXXYYYZZZ format @@ -180,7 +180,7 @@ Function: ResortIndicesExudyn2NGvector Function: ConvertHexToTrigs ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ConvertHexToTrigs `__\ (\ ``nodeNumbers``\ ) +`ConvertHexToTrigs `__\ (\ ``nodeNumbers``\ ) - | \ *function description*\ : | convert list of Hex8/C3D8 element with 8 nodes in nodeNumbers into triangle-List @@ -200,7 +200,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: ConvertTetToTrigs ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ConvertTetToTrigs `__\ (\ ``nodeNumbers``\ ) +`ConvertTetToTrigs `__\ (\ ``nodeNumbers``\ ) - | \ *function description*\ : | convert list of Tet4/Tet10 element with 4 or 10 nodes in nodeNumbers into triangle-List @@ -216,7 +216,7 @@ Function: ConvertTetToTrigs Function: ConvertDenseToCompressedRowMatrix ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ConvertDenseToCompressedRowMatrix `__\ (\ ``denseMatrix``\ ) +`ConvertDenseToCompressedRowMatrix `__\ (\ ``denseMatrix``\ ) - | \ *function description*\ : | convert numpy.array dense matrix to (internal) compressed row format @@ -230,7 +230,7 @@ Function: ConvertDenseToCompressedRowMatrix Function: ReadMatrixFromAnsysMMF ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ReadMatrixFromAnsysMMF `__\ (\ ``fileName``\ , \ ``verbose = False``\ ) +`ReadMatrixFromAnsysMMF `__\ (\ ``fileName``\ , \ ``verbose = False``\ ) - | \ *function description*\ : | This function reads either the mass or stiffness matrix from an Ansys @@ -273,7 +273,7 @@ Function: ReadMatrixFromAnsysMMF Function: ReadMatrixDOFmappingVectorFromAnsysTxt ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ReadMatrixDOFmappingVectorFromAnsysTxt `__\ (\ ``fileName``\ ) +`ReadMatrixDOFmappingVectorFromAnsysTxt `__\ (\ ``fileName``\ ) - | \ *function description*\ : | read sorting vector for ANSYS mass and stiffness matrices and return sorting vector as np.array @@ -289,7 +289,7 @@ Function: ReadMatrixDOFmappingVectorFromAnsysTxt Function: ReadNodalCoordinatesFromAnsysTxt ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ReadNodalCoordinatesFromAnsysTxt `__\ (\ ``fileName``\ , \ ``verbose = False``\ ) +`ReadNodalCoordinatesFromAnsysTxt `__\ (\ ``fileName``\ , \ ``verbose = False``\ ) - | \ *function description*\ : | This function reads the nodal coordinates exported from Ansys. @@ -319,7 +319,7 @@ Function: ReadNodalCoordinatesFromAnsysTxt Function: ReadElementsFromAnsysTxt ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ReadElementsFromAnsysTxt `__\ (\ ``fileName``\ , \ ``verbose = False``\ ) +`ReadElementsFromAnsysTxt `__\ (\ ``fileName``\ , \ ``verbose = False``\ ) - | \ *function description*\ : | This function reads the nodal coordinates exported from Ansys. @@ -349,7 +349,7 @@ Function: ReadElementsFromAnsysTxt Function: CMSObjectComputeNorm ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CMSObjectComputeNorm `__\ (\ ``mbs``\ , \ ``objectNumber``\ , \ ``outputVariableType``\ , \ ``norm = 'max'``\ , \ ``nodeNumberList = []``\ ) +`CMSObjectComputeNorm `__\ (\ ``mbs``\ , \ ``objectNumber``\ , \ ``outputVariableType``\ , \ ``norm = 'max'``\ , \ ``nodeNumberList = []``\ ) - | \ *function description*\ : | compute current (max, min, ...) value for chosen ObjectFFRFreducedOrder object (CMSobject) with exu.OutputVariableType. The function operates on nodal values. This is a helper function, which can be used to conveniently compute output quantities of the CMSobject efficiently and to use it in sensors @@ -393,7 +393,7 @@ CLASS KirchhoffMaterial(MaterialBaseClass) (in module FEM) Class function: Strain2Stress ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`Strain2Stress `__\ (\ ``self``\ , \ ``strain``\ ) +`Strain2Stress `__\ (\ ``self``\ , \ ``strain``\ ) - | \ *classFunction*\ : | convert strain tensor into stress tensor using elasticity tensor @@ -404,7 +404,7 @@ Class function: Strain2Stress Class function: StrainVector2StressVector ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`StrainVector2StressVector `__\ (\ ``self``\ , \ ``strainVector``\ ) +`StrainVector2StressVector `__\ (\ ``self``\ , \ ``strainVector``\ ) - | \ *classFunction*\ : | convert strain vector into stress vector @@ -415,7 +415,7 @@ Class function: StrainVector2StressVector Class function: StrainVector2StressVector2D ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`StrainVector2StressVector2D `__\ (\ ``self``\ , \ ``strainVector2D``\ ) +`StrainVector2StressVector2D `__\ (\ ``self``\ , \ ``strainVector2D``\ ) - | \ *classFunction*\ : | compute 2D stress vector from strain vector @@ -426,7 +426,7 @@ Class function: StrainVector2StressVector2D Class function: LameParameters ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`LameParameters `__\ (\ ``self``\ ) +`LameParameters `__\ (\ ``self``\ ) - | \ *classFunction*\ : | compute Lame parameters from internal Young's modulus and Poisson ratio @@ -473,7 +473,7 @@ CLASS ObjectFFRFinterface (in module FEM) Class function: \_\_init\_\_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`\_\_init\_\_ `__\ (\ ``self``\ , \ ``femInterface``\ ) +`\_\_init\_\_ `__\ (\ ``self``\ , \ ``femInterface``\ ) - | \ *classFunction*\ : | initialize ObjectFFRFinterface with FEMinterface class @@ -486,7 +486,7 @@ Class function: \_\_init\_\_ Class function: AddObjectFFRF ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`AddObjectFFRF `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``positionRef = [0,0,0]``\ , \ ``eulerParametersRef = [1,0,0,0]``\ , \ ``initialVelocity = [0,0,0]``\ , \ ``initialAngularVelocity = [0,0,0]``\ , \ ``gravity = [0,0,0]``\ , \ ``constrainRigidBodyMotion = True``\ , \ ``massProportionalDamping = 0``\ , \ ``stiffnessProportionalDamping = 0``\ , \ ``color = [0.1,0.9,0.1,1.]``\ ) +`AddObjectFFRF `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``positionRef = [0,0,0]``\ , \ ``eulerParametersRef = [1,0,0,0]``\ , \ ``initialVelocity = [0,0,0]``\ , \ ``initialAngularVelocity = [0,0,0]``\ , \ ``gravity = [0,0,0]``\ , \ ``constrainRigidBodyMotion = True``\ , \ ``massProportionalDamping = 0``\ , \ ``stiffnessProportionalDamping = 0``\ , \ ``color = [0.1,0.9,0.1,1.]``\ ) - | \ *classFunction*\ : | add according nodes, objects and constraints for FFRF object to MainSystem mbs; only implemented for Euler parameters @@ -508,7 +508,7 @@ Class function: AddObjectFFRF Class function: UFforce ^^^^^^^^^^^^^^^^^^^^^^^ -`UFforce `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``t``\ , \ ``q``\ , \ ``q_t``\ ) +`UFforce `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``t``\ , \ ``q``\ , \ ``q_t``\ ) - | \ *classFunction*\ : | optional forceUserFunction for ObjectFFRF (per default, this user function is ignored) @@ -519,7 +519,7 @@ Class function: UFforce Class function: UFmassGenericODE2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`UFmassGenericODE2 `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``t``\ , \ ``q``\ , \ ``q_t``\ ) +`UFmassGenericODE2 `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``t``\ , \ ``q``\ , \ ``q_t``\ ) - | \ *classFunction*\ : | optional massMatrixUserFunction for ObjectFFRF (per default, this user function is ignored) @@ -544,7 +544,7 @@ CLASS ObjectFFRFreducedOrderInterface (in module FEM) Class function: \_\_init\_\_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`\_\_init\_\_ `__\ (\ ``self``\ , \ ``femInterface = None``\ , \ ``rigidBodyNodeType = 'NodeType.RotationEulerParameters'``\ , \ ``roundMassMatrix = 1e-13``\ , \ ``roundStiffnessMatrix = 1e-13``\ ) +`\_\_init\_\_ `__\ (\ ``self``\ , \ ``femInterface = None``\ , \ ``rigidBodyNodeType = 'NodeType.RotationEulerParameters'``\ , \ ``roundMassMatrix = 1e-13``\ , \ ``roundStiffnessMatrix = 1e-13``\ ) - | \ *classFunction*\ : | initialize ObjectFFRFreducedOrderInterface with FEMinterface class @@ -561,7 +561,7 @@ Class function: \_\_init\_\_ Class function: SaveToFile ^^^^^^^^^^^^^^^^^^^^^^^^^^ -`SaveToFile `__\ (\ ``self``\ , \ ``fileName``\ , \ ``fileVersion = 1``\ ) +`SaveToFile `__\ (\ ``self``\ , \ ``fileName``\ , \ ``fileVersion = 1``\ ) - | \ *classFunction*\ : | save all data to a data filename; can be used to avoid loading femInterface and FE data @@ -577,7 +577,7 @@ Class function: SaveToFile Class function: LoadFromFile ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`LoadFromFile `__\ (\ ``self``\ , \ ``fileName``\ ) +`LoadFromFile `__\ (\ ``self``\ , \ ``fileName``\ ) - | \ *classFunction*\ : | load all data (nodes, elements, ...) from a data filename previously stored with SaveToFile(...). @@ -593,7 +593,7 @@ Class function: LoadFromFile Class function: AddObjectFFRFreducedOrderWithUserFunctions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`AddObjectFFRFreducedOrderWithUserFunctions `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``positionRef = [0,0,0]``\ , \ ``initialVelocity = [0,0,0]``\ , \ ``rotationMatrixRef = []``\ , \ ``initialAngularVelocity = [0,0,0]``\ , \ ``gravity = [0,0,0]``\ , \ ``UFforce = 0``\ , \ ``UFmassMatrix = 0``\ , \ ``massProportionalDamping = 0``\ , \ ``stiffnessProportionalDamping = 0``\ , \ ``color = [0.1,0.9,0.1,1.]``\ , \ ``eulerParametersRef = []``\ ) +`AddObjectFFRFreducedOrderWithUserFunctions `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``positionRef = [0,0,0]``\ , \ ``initialVelocity = [0,0,0]``\ , \ ``rotationMatrixRef = []``\ , \ ``initialAngularVelocity = [0,0,0]``\ , \ ``gravity = [0,0,0]``\ , \ ``UFforce = 0``\ , \ ``UFmassMatrix = 0``\ , \ ``massProportionalDamping = 0``\ , \ ``stiffnessProportionalDamping = 0``\ , \ ``color = [0.1,0.9,0.1,1.]``\ , \ ``eulerParametersRef = []``\ ) - | \ *classFunction*\ : | add according nodes, objects and constraints for ObjectFFRFreducedOrder object to MainSystem mbs; use this function with userfunctions=0 in order to use internal C++ functionality, which is approx. 10x faster; implementation of userfunctions also available for rotation vector (Lie group formulation), which needs further testing @@ -629,7 +629,7 @@ Class function: AddObjectFFRFreducedOrderWithUserFunctions Class function: UFmassFFRFreducedOrder ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`UFmassFFRFreducedOrder `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``t``\ , \ ``qReduced``\ , \ ``qReduced_t``\ ) +`UFmassFFRFreducedOrder `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``t``\ , \ ``qReduced``\ , \ ``qReduced_t``\ ) - | \ *classFunction*\ : | CMS mass matrix user function; qReduced and qReduced_t contain the coordiantes of the rigid body node and the modal coordinates in one vector! @@ -640,7 +640,7 @@ Class function: UFmassFFRFreducedOrder Class function: UFforceFFRFreducedOrder ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`UFforceFFRFreducedOrder `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``t``\ , \ ``qReduced``\ , \ ``qReduced_t``\ ) +`UFforceFFRFreducedOrder `__\ (\ ``self``\ , \ ``exu``\ , \ ``mbs``\ , \ ``t``\ , \ ``qReduced``\ , \ ``qReduced_t``\ ) - | \ *classFunction*\ : | CMS force matrix user function; qReduced and qReduced_t contain the coordiantes of the rigid body node and the modal coordinates in one vector! @@ -651,7 +651,7 @@ Class function: UFforceFFRFreducedOrder Class function: AddObjectFFRFreducedOrder ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`AddObjectFFRFreducedOrder `__\ (\ ``self``\ , \ ``mbs``\ , \ ``positionRef = [0,0,0]``\ , \ ``initialVelocity = [0,0,0]``\ , \ ``rotationMatrixRef = []``\ , \ ``initialAngularVelocity = [0,0,0]``\ , \ ``massProportionalDamping = 0``\ , \ ``stiffnessProportionalDamping = 0``\ , \ ``gravity = [0,0,0]``\ , \ ``color = [0.1,0.9,0.1,1.]``\ ) +`AddObjectFFRFreducedOrder `__\ (\ ``self``\ , \ ``mbs``\ , \ ``positionRef = [0,0,0]``\ , \ ``initialVelocity = [0,0,0]``\ , \ ``rotationMatrixRef = []``\ , \ ``initialAngularVelocity = [0,0,0]``\ , \ ``massProportionalDamping = 0``\ , \ ``stiffnessProportionalDamping = 0``\ , \ ``gravity = [0,0,0]``\ , \ ``color = [0.1,0.9,0.1,1.]``\ ) - | \ *classFunction*\ : | add according nodes, objects and constraints for ObjectFFRFreducedOrder object to MainSystem mbs; use this function in order to use internal C++ functionality, which is approx. 10x faster than AddObjectFFRFreducedOrderWithUserFunctions(...) @@ -707,7 +707,7 @@ CLASS FEMinterface (in module FEM) Class function: \_\_init\_\_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`\_\_init\_\_ `__\ (\ ``self``\ ) +`\_\_init\_\_ `__\ (\ ``self``\ ) - | \ *classFunction*\ : | initalize all data of the FEMinterface by, e.g., \ ``fem = FEMinterface()``\ @@ -735,7 +735,7 @@ Class function: \_\_init\_\_ Class function: SaveToFile ^^^^^^^^^^^^^^^^^^^^^^^^^^ -`SaveToFile `__\ (\ ``self``\ , \ ``fileName``\ , \ ``fileVersion = 13``\ ) +`SaveToFile `__\ (\ ``self``\ , \ ``fileName``\ , \ ``fileVersion = 13``\ ) - | \ *classFunction*\ : | save all data (nodes, elements, ...) to a data filename; this function is much faster than the text-based import functions @@ -751,7 +751,7 @@ Class function: SaveToFile Class function: LoadFromFile ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`LoadFromFile `__\ (\ ``self``\ , \ ``fileName``\ , \ ``forceVersion = None``\ ) +`LoadFromFile `__\ (\ ``self``\ , \ ``fileName``\ , \ ``forceVersion = None``\ ) - | \ *classFunction*\ : | load all data (nodes, elements, ...) from a data filename previously stored with SaveToFile(...). @@ -768,7 +768,7 @@ Class function: LoadFromFile Class function: ImportFromAbaqusInputFile ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ImportFromAbaqusInputFile `__\ (\ ``self``\ , \ ``fileName``\ , \ ``typeName = 'Part'``\ , \ ``name = 'Part-1'``\ , \ ``verbose = False``\ , \ ``createSurfaceTrigs = True``\ , \ ``surfaceTrigsAll = False``\ ) +`ImportFromAbaqusInputFile `__\ (\ ``self``\ , \ ``fileName``\ , \ ``typeName = 'Part'``\ , \ ``name = 'Part-1'``\ , \ ``verbose = False``\ , \ ``createSurfaceTrigs = True``\ , \ ``surfaceTrigsAll = False``\ ) - | \ *classFunction*\ : | import nodes and elements from Abaqus input file and create surface elements; @@ -793,7 +793,7 @@ Class function: ImportFromAbaqusInputFile Class function: ReadMassMatrixFromAbaqus ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ReadMassMatrixFromAbaqus `__\ (\ ``self``\ , \ ``fileName``\ , \ ``type = 'SparseRowColumnValue'``\ ) +`ReadMassMatrixFromAbaqus `__\ (\ ``self``\ , \ ``fileName``\ , \ ``type = 'SparseRowColumnValue'``\ ) - | \ *classFunction*\ : | read mass matrix from compressed row text format (exported from Abaqus); in order to export system matrices, write the following lines in your Abaqus input file: @@ -808,7 +808,7 @@ Class function: ReadMassMatrixFromAbaqus Class function: ReadStiffnessMatrixFromAbaqus ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ReadStiffnessMatrixFromAbaqus `__\ (\ ``self``\ , \ ``fileName``\ , \ ``type = 'SparseRowColumnValue'``\ ) +`ReadStiffnessMatrixFromAbaqus `__\ (\ ``self``\ , \ ``fileName``\ , \ ``type = 'SparseRowColumnValue'``\ ) - | \ *classFunction*\ : | read stiffness matrix from compressed row text format (exported from Abaqus) @@ -819,7 +819,7 @@ Class function: ReadStiffnessMatrixFromAbaqus Class function: ImportMeshFromNGsolve ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ImportMeshFromNGsolve `__\ (\ ``self``\ , \ ``mesh``\ , \ ``density``\ , \ ``youngsModulus``\ , \ ``poissonsRatio``\ , \ ``verbose = False``\ , \ ``computeEigenmodes = False``\ , \ ``meshOrder = 1``\ , \ ``**kwargs``\ ) +`ImportMeshFromNGsolve `__\ (\ ``self``\ , \ ``mesh``\ , \ ``density``\ , \ ``youngsModulus``\ , \ ``poissonsRatio``\ , \ ``verbose = False``\ , \ ``computeEigenmodes = False``\ , \ ``meshOrder = 1``\ , \ ``**kwargs``\ ) - | \ *classFunction*\ : | import mesh from NETGEN/NGsolve and setup mechanical problem @@ -843,7 +843,7 @@ Class function: ImportMeshFromNGsolve Class function: ComputeEigenmodesNGsolve ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ComputeEigenmodesNGsolve `__\ (\ ``self``\ , \ ``bfM``\ , \ ``bfK``\ , \ ``nModes``\ , \ ``maxEigensolveIterations = 40``\ , \ ``excludeRigidBodyModes = 0``\ , \ ``verbose = False``\ ) +`ComputeEigenmodesNGsolve `__\ (\ ``self``\ , \ ``bfM``\ , \ ``bfK``\ , \ ``nModes``\ , \ ``maxEigensolveIterations = 40``\ , \ ``excludeRigidBodyModes = 0``\ , \ ``verbose = False``\ ) - | \ *classFunction*\ : | compute nModes smallest eigenvalues and eigenmodes from mass and stiffnessMatrix; store mode vectors in modeBasis, but exclude a number of 'excludeRigidBodyModes' rigid body modes from modeBasis; uses scipy for solution of generalized eigenvalue problem @@ -863,7 +863,7 @@ Class function: ComputeEigenmodesNGsolve Class function: ComputeHurtyCraigBamptonModesNGsolve ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ComputeHurtyCraigBamptonModesNGsolve `__\ (\ ``self``\ , \ ``bfM``\ , \ ``bfK``\ , \ ``boundaryNodesList``\ , \ ``nEigenModes``\ , \ ``maxEigensolveIterations = 40``\ , \ ``verbose = False``\ ) +`ComputeHurtyCraigBamptonModesNGsolve `__\ (\ ``self``\ , \ ``bfM``\ , \ ``bfK``\ , \ ``boundaryNodesList``\ , \ ``nEigenModes``\ , \ ``maxEigensolveIterations = 40``\ , \ ``verbose = False``\ ) - | \ *classFunction*\ : | compute static and eigen modes based on Hurty-Craig-Bampton, for details see theory part Section :ref:`sec-theory-cms`\ . This function uses internal computational functionality of NGsolve and is often much faster than the scipy variant @@ -885,7 +885,7 @@ Class function: ComputeHurtyCraigBamptonModesNGsolve Class function: ComputePostProcessingModesNGsolve ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ComputePostProcessingModesNGsolve `__\ (\ ``self``\ , \ ``fes``\ , \ ``material = 0``\ , \ ``outputVariableType = 'OutputVariableType.StressLocal'``\ , \ ``verbose = False``\ ) +`ComputePostProcessingModesNGsolve `__\ (\ ``self``\ , \ ``fes``\ , \ ``material = 0``\ , \ ``outputVariableType = 'OutputVariableType.StressLocal'``\ , \ ``verbose = False``\ ) - | \ *classFunction*\ : | compute special stress or strain modes in order to enable visualization of stresses and strains in ObjectFFRFreducedOrder; takes a NGsolve fes as input and uses internal NGsolve methods to efficiently compute stresses or strains @@ -906,7 +906,7 @@ Class function: ComputePostProcessingModesNGsolve Class function: GetMassMatrix ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetMassMatrix `__\ (\ ``self``\ , \ ``sparse = True``\ ) +`GetMassMatrix `__\ (\ ``self``\ , \ ``sparse = True``\ ) - | \ *classFunction*\ : | get sparse mass matrix in according format @@ -917,7 +917,7 @@ Class function: GetMassMatrix Class function: GetStiffnessMatrix ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetStiffnessMatrix `__\ (\ ``self``\ , \ ``sparse = True``\ ) +`GetStiffnessMatrix `__\ (\ ``self``\ , \ ``sparse = True``\ ) - | \ *classFunction*\ : | get sparse stiffness matrix in according format @@ -928,7 +928,7 @@ Class function: GetStiffnessMatrix Class function: NumberOfNodes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`NumberOfNodes `__\ (\ ``self``\ ) +`NumberOfNodes `__\ (\ ``self``\ ) - | \ *classFunction*\ : | get total number of nodes @@ -939,7 +939,7 @@ Class function: NumberOfNodes Class function: GetNodePositionsAsArray ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetNodePositionsAsArray `__\ (\ ``self``\ ) +`GetNodePositionsAsArray `__\ (\ ``self``\ ) - | \ *classFunction*\ : | get node points as array; only possible, if there exists only one type of Position nodes @@ -960,7 +960,7 @@ Class function: GetNodePositionsAsArray Class function: GetNodePositionsMean ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetNodePositionsMean `__\ (\ ``self``\ , \ ``nodeNumberList``\ ) +`GetNodePositionsMean `__\ (\ ``self``\ , \ ``nodeNumberList``\ ) - | \ *classFunction*\ : | get mean (average) position of nodes defined by list of node numbers @@ -971,7 +971,7 @@ Class function: GetNodePositionsMean Class function: NumberOfCoordinates ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`NumberOfCoordinates `__\ (\ ``self``\ ) +`NumberOfCoordinates `__\ (\ ``self``\ ) - | \ *classFunction*\ : | get number of total nodal coordinates @@ -982,7 +982,7 @@ Class function: NumberOfCoordinates Class function: GetNodeAtPoint ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetNodeAtPoint `__\ (\ ``self``\ , \ ``point``\ , \ ``tolerance = 1e-5``\ , \ ``raiseException = True``\ ) +`GetNodeAtPoint `__\ (\ ``self``\ , \ ``point``\ , \ ``tolerance = 1e-5``\ , \ ``raiseException = True``\ ) - | \ *classFunction*\ : | get node number for node at given point, e.g. p=[0.1,0.5,-0.2], using a tolerance (+/-) if coordinates are available only with reduced accuracy @@ -994,7 +994,7 @@ Class function: GetNodeAtPoint Class function: GetNodesInPlane ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetNodesInPlane `__\ (\ ``self``\ , \ ``point``\ , \ ``normal``\ , \ ``tolerance = 1e-5``\ ) +`GetNodesInPlane `__\ (\ ``self``\ , \ ``point``\ , \ ``normal``\ , \ ``tolerance = 1e-5``\ ) - | \ *classFunction*\ : | get node numbers in plane defined by point p and (normalized) normal vector n using a tolerance for the distance to the plane @@ -1006,7 +1006,7 @@ Class function: GetNodesInPlane Class function: GetNodesInCube ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetNodesInCube `__\ (\ ``self``\ , \ ``pMin``\ , \ ``pMax``\ ) +`GetNodesInCube `__\ (\ ``self``\ , \ ``pMin``\ , \ ``pMax``\ ) - | \ *classFunction*\ : | get node numbers in cube, given by pMin and pMax, containing the minimum and maximum x, y, and z coordinates @@ -1025,7 +1025,7 @@ Class function: GetNodesInCube Class function: GetNodesOnLine ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetNodesOnLine `__\ (\ ``self``\ , \ ``p1``\ , \ ``p2``\ , \ ``tolerance = 1e-5``\ ) +`GetNodesOnLine `__\ (\ ``self``\ , \ ``p1``\ , \ ``p2``\ , \ ``tolerance = 1e-5``\ ) - | \ *classFunction*\ : | get node numbers lying on line defined by points p1 and p2 and tolerance, which is accepted for points slightly outside the surface @@ -1036,7 +1036,7 @@ Class function: GetNodesOnLine Class function: GetNodesOnCylinder ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetNodesOnCylinder `__\ (\ ``self``\ , \ ``p1``\ , \ ``p2``\ , \ ``radius``\ , \ ``tolerance = 1e-5``\ ) +`GetNodesOnCylinder `__\ (\ ``self``\ , \ ``p1``\ , \ ``p2``\ , \ ``radius``\ , \ ``tolerance = 1e-5``\ ) - | \ *classFunction*\ : | get node numbers lying on cylinder surface; cylinder defined by cylinder axes (points p1 and p2), @@ -1049,7 +1049,7 @@ Class function: GetNodesOnCylinder Class function: GetNodesOnCircle ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetNodesOnCircle `__\ (\ ``self``\ , \ ``point``\ , \ ``normal``\ , \ ``r``\ , \ ``tolerance = 1e-5``\ ) +`GetNodesOnCircle `__\ (\ ``self``\ , \ ``point``\ , \ ``normal``\ , \ ``r``\ , \ ``tolerance = 1e-5``\ ) - | \ *classFunction*\ : | get node numbers lying on a circle, by point p, (normalized) normal vector n (which is the axis of the circle) and radius r @@ -1062,7 +1062,7 @@ Class function: GetNodesOnCircle Class function: GetNodeWeightsFromSurfaceAreas ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetNodeWeightsFromSurfaceAreas `__\ (\ ``self``\ , \ ``nodeList``\ , \ ``normalizeWeights = True``\ ) +`GetNodeWeightsFromSurfaceAreas `__\ (\ ``self``\ , \ ``nodeList``\ , \ ``normalizeWeights = True``\ ) - | \ *classFunction*\ : | return list of node weights based on surface triangle areas; surface triangles are identified as such for which all nodes of a triangle are on the surface @@ -1079,7 +1079,7 @@ Class function: GetNodeWeightsFromSurfaceAreas Class function: GetSurfaceTriangles ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetSurfaceTriangles `__\ (\ ``self``\ ) +`GetSurfaceTriangles `__\ (\ ``self``\ ) - | \ *classFunction*\ : | return surface trigs as node number list (for drawing in EXUDYN and for node weights) @@ -1090,7 +1090,7 @@ Class function: GetSurfaceTriangles Class function: VolumeToSurfaceElements ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`VolumeToSurfaceElements `__\ (\ ``self``\ , \ ``verbose = False``\ ) +`VolumeToSurfaceElements `__\ (\ ``self``\ , \ ``verbose = False``\ ) - | \ *classFunction*\ : | generate surface elements from volume elements @@ -1103,7 +1103,7 @@ Class function: VolumeToSurfaceElements Class function: GetGyroscopicMatrix ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetGyroscopicMatrix `__\ (\ ``self``\ , \ ``rotationAxis = 2``\ , \ ``sparse = True``\ ) +`GetGyroscopicMatrix `__\ (\ ``self``\ , \ ``rotationAxis = 2``\ , \ ``sparse = True``\ ) - | \ *classFunction*\ : | get gyroscopic matrix in according format; rotationAxis=[0,1,2] = [x,y,z] @@ -1114,7 +1114,7 @@ Class function: GetGyroscopicMatrix Class function: ScaleMassMatrix ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ScaleMassMatrix `__\ (\ ``self``\ , \ ``factor``\ ) +`ScaleMassMatrix `__\ (\ ``self``\ , \ ``factor``\ ) - | \ *classFunction*\ : | scale (=multiply) mass matrix with factor @@ -1125,7 +1125,7 @@ Class function: ScaleMassMatrix Class function: ScaleStiffnessMatrix ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ScaleStiffnessMatrix `__\ (\ ``self``\ , \ ``factor``\ ) +`ScaleStiffnessMatrix `__\ (\ ``self``\ , \ ``factor``\ ) - | \ *classFunction*\ : | scale (=multiply) stiffness matrix with factor @@ -1136,7 +1136,7 @@ Class function: ScaleStiffnessMatrix Class function: AddElasticSupportAtNode ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`AddElasticSupportAtNode `__\ (\ ``self``\ , \ ``nodeNumber``\ , \ ``springStiffness = [1e8,1e8,1e8]``\ ) +`AddElasticSupportAtNode `__\ (\ ``self``\ , \ ``nodeNumber``\ , \ ``springStiffness = [1e8,1e8,1e8]``\ ) - | \ *classFunction*\ : | modify stiffness matrix to add elastic support (joint, etc.) to a node; nodeNumber zero based (as everywhere in the code...) @@ -1148,7 +1148,7 @@ Class function: AddElasticSupportAtNode Class function: AddNodeMass ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`AddNodeMass `__\ (\ ``self``\ , \ ``nodeNumber``\ , \ ``addedMass``\ ) +`AddNodeMass `__\ (\ ``self``\ , \ ``nodeNumber``\ , \ ``addedMass``\ ) - | \ *classFunction*\ : | modify mass matrix by adding a mass to a certain node, modifying directly the mass matrix @@ -1159,7 +1159,7 @@ Class function: AddNodeMass Class function: CreateLinearFEMObjectGenericODE2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateLinearFEMObjectGenericODE2 `__\ (\ ``self``\ , \ ``mbs``\ , \ ``color = [0.9,0.4,0.4,1.]``\ ) +`CreateLinearFEMObjectGenericODE2 `__\ (\ ``self``\ , \ ``mbs``\ , \ ``color = [0.9,0.4,0.4,1.]``\ ) - | \ *classFunction*\ : | create GenericODE2 object out of (linear) FEM model; uses always the sparse matrix mode, independent of the solver settings; this model can be directly used inside the multibody system as a static or dynamic FEM subsystem undergoing small deformations; computation is several magnitudes slower than ObjectFFRFreducedOrder @@ -1174,7 +1174,7 @@ Class function: CreateLinearFEMObjectGenericODE2 Class function: CreateNonlinearFEMObjectGenericODE2NGsolve ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateNonlinearFEMObjectGenericODE2NGsolve `__\ (\ ``self``\ , \ ``mbs``\ , \ ``mesh``\ , \ ``density``\ , \ ``youngsModulus``\ , \ ``poissonsRatio``\ , \ ``meshOrder = 1``\ , \ ``color = [0.9,0.4,0.4,1.]``\ ) +`CreateNonlinearFEMObjectGenericODE2NGsolve `__\ (\ ``self``\ , \ ``mbs``\ , \ ``mesh``\ , \ ``density``\ , \ ``youngsModulus``\ , \ ``poissonsRatio``\ , \ ``meshOrder = 1``\ , \ ``color = [0.9,0.4,0.4,1.]``\ ) - | \ *classFunction*\ : | create GenericODE2 object fully nonlinear FEM model using NGsolve; uses always the sparse matrix mode, independent of the solver settings; this model can be directly used inside the multibody system as a static or dynamic nonlinear FEM subsystem undergoing large deformations; computation is several magnitudes slower than ObjectFFRFreducedOrder @@ -1202,7 +1202,7 @@ Class function: CreateNonlinearFEMObjectGenericODE2NGsolve Class function: ComputeEigenmodes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ComputeEigenmodes `__\ (\ ``self``\ , \ ``nModes``\ , \ ``excludeRigidBodyModes = 0``\ , \ ``useSparseSolver = True``\ ) +`ComputeEigenmodes `__\ (\ ``self``\ , \ ``nModes``\ , \ ``excludeRigidBodyModes = 0``\ , \ ``useSparseSolver = True``\ ) - | \ *classFunction*\ : | compute nModes smallest eigenvalues and eigenmodes from mass and stiffnessMatrix; store mode vectors in modeBasis, but exclude a number of 'excludeRigidBodyModes' rigid body modes from modeBasis; uses scipy for solution of generalized eigenvalue problem @@ -1221,7 +1221,7 @@ Class function: ComputeEigenmodes Class function: ComputeEigenModesWithBoundaryNodes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ComputeEigenModesWithBoundaryNodes `__\ (\ ``self``\ , \ ``boundaryNodes``\ , \ ``nEigenModes``\ , \ ``useSparseSolver = True``\ ) +`ComputeEigenModesWithBoundaryNodes `__\ (\ ``self``\ , \ ``boundaryNodes``\ , \ ``nEigenModes``\ , \ ``useSparseSolver = True``\ ) - | \ *classFunction*\ : | compute eigenmodes, using a set of boundary nodes that are all fixed; very similar to ComputeEigenmodes, but with additional definition of (fixed) boundary nodes. @@ -1238,7 +1238,7 @@ Class function: ComputeEigenModesWithBoundaryNodes Class function: ComputeHurtyCraigBamptonModes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ComputeHurtyCraigBamptonModes `__\ (\ ``self``\ , \ ``boundaryNodesList``\ , \ ``nEigenModes``\ , \ ``useSparseSolver = True``\ , \ ``computationMode = HCBstaticModeSelection.RBE2``\ , \ ``boundaryNodesWeights = []``\ , \ ``excludeRigidBodyMotion = True``\ , \ ``RBE3secondMomentOfAreaWeighting = True``\ , \ ``verboseMode = False``\ , \ ``timerTreshold = 20000``\ ) +`ComputeHurtyCraigBamptonModes `__\ (\ ``self``\ , \ ``boundaryNodesList``\ , \ ``nEigenModes``\ , \ ``useSparseSolver = True``\ , \ ``computationMode = HCBstaticModeSelection.RBE2``\ , \ ``boundaryNodesWeights = []``\ , \ ``excludeRigidBodyMotion = True``\ , \ ``RBE3secondMomentOfAreaWeighting = True``\ , \ ``verboseMode = False``\ , \ ``timerTreshold = 20000``\ ) - | \ *classFunction*\ : | compute static and eigen modes based on Hurty-Craig-Bampton, for details see theory part Section :ref:`sec-theory-cms`\ . Note that this function may need significant time, depending on your hardware, but 50.000 nodes will require approx. 1-2 minutes and more nodes typically raise time more than linearly. @@ -1263,7 +1263,7 @@ Class function: ComputeHurtyCraigBamptonModes Class function: GetEigenFrequenciesHz ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetEigenFrequenciesHz `__\ (\ ``self``\ ) +`GetEigenFrequenciesHz `__\ (\ ``self``\ ) - | \ *classFunction*\ : | return list of eigenvalues in Hz of previously computed eigenmodes @@ -1274,7 +1274,7 @@ Class function: GetEigenFrequenciesHz Class function: ComputePostProcessingModes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ComputePostProcessingModes `__\ (\ ``self``\ , \ ``material = 0``\ , \ ``outputVariableType = 'OutputVariableType.StressLocal'``\ , \ ``numberOfThreads = 1``\ ) +`ComputePostProcessingModes `__\ (\ ``self``\ , \ ``material = 0``\ , \ ``outputVariableType = 'OutputVariableType.StressLocal'``\ , \ ``numberOfThreads = 1``\ ) - | \ *classFunction*\ : | compute special stress or strain modes in order to enable visualization of stresses and strains in ObjectFFRFreducedOrder; @@ -1293,7 +1293,7 @@ Class function: ComputePostProcessingModes Class function: ComputeCampbellDiagram ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ComputeCampbellDiagram `__\ (\ ``self``\ , \ ``terminalFrequency``\ , \ ``nEigenfrequencies = 10``\ , \ ``frequencySteps = 25``\ , \ ``rotationAxis = 2``\ , \ ``plotDiagram = False``\ , \ ``verbose = False``\ , \ ``useCorotationalFrame = False``\ , \ ``useSparseSolver = False``\ ) +`ComputeCampbellDiagram `__\ (\ ``self``\ , \ ``terminalFrequency``\ , \ ``nEigenfrequencies = 10``\ , \ ``frequencySteps = 25``\ , \ ``rotationAxis = 2``\ , \ ``plotDiagram = False``\ , \ ``verbose = False``\ , \ ``useCorotationalFrame = False``\ , \ ``useSparseSolver = False``\ ) - | \ *classFunction*\ : | compute Campbell diagram for given mechanical system @@ -1320,7 +1320,7 @@ Class function: ComputeCampbellDiagram Class function: CheckConsistency ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CheckConsistency `__\ (\ ``self``\ ) +`CheckConsistency `__\ (\ ``self``\ ) - | \ *classFunction*\ : | perform some consistency checks @@ -1331,7 +1331,7 @@ Class function: CheckConsistency Class function: ReadMassMatrixFromAnsys ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ReadMassMatrixFromAnsys `__\ (\ ``self``\ , \ ``fileName``\ , \ ``dofMappingVectorFile``\ , \ ``sparse = True``\ , \ ``verbose = False``\ ) +`ReadMassMatrixFromAnsys `__\ (\ ``self``\ , \ ``fileName``\ , \ ``dofMappingVectorFile``\ , \ ``sparse = True``\ , \ ``verbose = False``\ ) - | \ *classFunction*\ : | read mass matrix from CSV format (exported from Ansys) @@ -1342,7 +1342,7 @@ Class function: ReadMassMatrixFromAnsys Class function: ReadStiffnessMatrixFromAnsys ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ReadStiffnessMatrixFromAnsys `__\ (\ ``self``\ , \ ``fileName``\ , \ ``dofMappingVectorFile``\ , \ ``sparse = True``\ , \ ``verbose = False``\ ) +`ReadStiffnessMatrixFromAnsys `__\ (\ ``self``\ , \ ``fileName``\ , \ ``dofMappingVectorFile``\ , \ ``sparse = True``\ , \ ``verbose = False``\ ) - | \ *classFunction*\ : | read stiffness matrix from CSV format (exported from Ansys) @@ -1353,7 +1353,7 @@ Class function: ReadStiffnessMatrixFromAnsys Class function: ReadNodalCoordinatesFromAnsys ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ReadNodalCoordinatesFromAnsys `__\ (\ ``self``\ , \ ``fileName``\ , \ ``verbose = False``\ ) +`ReadNodalCoordinatesFromAnsys `__\ (\ ``self``\ , \ ``fileName``\ , \ ``verbose = False``\ ) - | \ *classFunction*\ : | read nodal coordinates (exported from Ansys as .txt-File) @@ -1364,7 +1364,7 @@ Class function: ReadNodalCoordinatesFromAnsys Class function: ReadElementsFromAnsys ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ReadElementsFromAnsys `__\ (\ ``self``\ , \ ``fileName``\ , \ ``verbose = False``\ ) +`ReadElementsFromAnsys `__\ (\ ``self``\ , \ ``fileName``\ , \ ``verbose = False``\ ) - | \ *classFunction*\ : | read elements (exported from Ansys as .txt-File) diff --git a/docs/RST/pythonUtilities/GUI.rst b/docs/RST/pythonUtilities/GUI.rst index 1f6d09f7..79db764b 100644 --- a/docs/RST/pythonUtilities/GUI.rst +++ b/docs/RST/pythonUtilities/GUI.rst @@ -43,7 +43,7 @@ Function: TkRootExists Function: EditDictionaryWithTypeInfo ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`EditDictionaryWithTypeInfo `__\ (\ ``settingsStructure``\ , \ ``exu = None``\ , \ ``dictionaryName = 'edit'``\ ) +`EditDictionaryWithTypeInfo `__\ (\ ``settingsStructure``\ , \ ``exu = None``\ , \ ``dictionaryName = 'edit'``\ ) - | \ *function description*\ : | edit dictionaryData and return modified (new) dictionary diff --git a/docs/RST/pythonUtilities/basicUtilities.rst b/docs/RST/pythonUtilities/basicUtilities.rst index 2b321b3b..c5c95673 100644 --- a/docs/RST/pythonUtilities/basicUtilities.rst +++ b/docs/RST/pythonUtilities/basicUtilities.rst @@ -51,6 +51,20 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: +---- + + +.. _sec-basicutilities-smartround2string: + +Function: SmartRound2String +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`SmartRound2String `__\ (\ ``x``\ , \ ``prec = 3``\ ) + +- | \ *function description*\ : + | round to max number of digits; may give more digits if this is shorter; using in general the format() with '.g' option, but keeping decimal point and using exponent where necessary + + + ---- @@ -58,7 +72,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: DiagonalMatrix ^^^^^^^^^^^^^^^^^^^^^^^^ -`DiagonalMatrix `__\ (\ ``rowsColumns``\ , \ ``value = 1``\ ) +`DiagonalMatrix `__\ (\ ``rowsColumns``\ , \ ``value = 1``\ ) - | \ *function description*\ : | create a diagonal or identity matrix; used for interface.py, avoiding the need for numpy @@ -77,7 +91,7 @@ Function: DiagonalMatrix Function: NormL2 ^^^^^^^^^^^^^^^^ -`NormL2 `__\ (\ ``vector``\ ) +`NormL2 `__\ (\ ``vector``\ ) - | \ *function description*\ : | compute L2 norm for vectors without switching to numpy or math module @@ -99,7 +113,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: VSum ^^^^^^^^^^^^^^ -`VSum `__\ (\ ``vector``\ ) +`VSum `__\ (\ ``vector``\ ) - | \ *function description*\ : | compute sum of all values of vector @@ -121,7 +135,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: VAdd ^^^^^^^^^^^^^^ -`VAdd `__\ (\ ``v0``\ , \ ``v1``\ ) +`VAdd `__\ (\ ``v0``\ , \ ``v1``\ ) - | \ *function description*\ : | add two vectors instead using numpy @@ -143,7 +157,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: VSub ^^^^^^^^^^^^^^ -`VSub `__\ (\ ``v0``\ , \ ``v1``\ ) +`VSub `__\ (\ ``v0``\ , \ ``v1``\ ) - | \ *function description*\ : | subtract two vectors instead using numpy: result = v0-v1 @@ -165,7 +179,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: VMult ^^^^^^^^^^^^^^^ -`VMult `__\ (\ ``v0``\ , \ ``v1``\ ) +`VMult `__\ (\ ``v0``\ , \ ``v1``\ ) - | \ *function description*\ : | scalar multiplication of two vectors instead using numpy: result = v0' \* v1 @@ -183,7 +197,7 @@ Function: VMult Function: ScalarMult ^^^^^^^^^^^^^^^^^^^^ -`ScalarMult `__\ (\ ``scalar``\ , \ ``v``\ ) +`ScalarMult `__\ (\ ``scalar``\ , \ ``v``\ ) - | \ *function description*\ : | multiplication vectors with scalar: result = scalar \* v @@ -205,7 +219,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: Normalize ^^^^^^^^^^^^^^^^^^^ -`Normalize `__\ (\ ``v``\ ) +`Normalize `__\ (\ ``v``\ ) - | \ *function description*\ : | take a 3D vector and return a normalized 3D vector (L2Norm=1) @@ -227,7 +241,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: Vec2Tilde ^^^^^^^^^^^^^^^^^^^ -`Vec2Tilde `__\ (\ ``v``\ ) +`Vec2Tilde `__\ (\ ``v``\ ) - | \ *function description*\ : | apply tilde operator (skew) to 3D-vector and return skew matrix @@ -250,7 +264,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: Tilde2Vec ^^^^^^^^^^^^^^^^^^^ -`Tilde2Vec `__\ (\ ``m``\ ) +`Tilde2Vec `__\ (\ ``m``\ ) - | \ *function description*\ : | take skew symmetric matrix and return vector (inverse of Skew(...)) @@ -268,7 +282,7 @@ Function: Tilde2Vec Function: GaussIntegrate ^^^^^^^^^^^^^^^^^^^^^^^^ -`GaussIntegrate `__\ (\ ``functionOfX``\ , \ ``integrationOrder``\ , \ ``a``\ , \ ``b``\ ) +`GaussIntegrate `__\ (\ ``functionOfX``\ , \ ``integrationOrder``\ , \ ``a``\ , \ ``b``\ ) - | \ *function description*\ : | compute numerical integration of functionOfX in interval [a,b] using Gaussian integration @@ -289,7 +303,7 @@ Function: GaussIntegrate Function: LobattoIntegrate ^^^^^^^^^^^^^^^^^^^^^^^^^^ -`LobattoIntegrate `__\ (\ ``functionOfX``\ , \ ``integrationOrder``\ , \ ``a``\ , \ ``b``\ ) +`LobattoIntegrate `__\ (\ ``functionOfX``\ , \ ``integrationOrder``\ , \ ``a``\ , \ ``b``\ ) - | \ *function description*\ : | compute numerical integration of functionOfX in interval [a,b] using Lobatto integration diff --git a/docs/RST/pythonUtilities/graphicsDataUtilities.rst b/docs/RST/pythonUtilities/graphicsDataUtilities.rst index bd1053e1..0b0c0fae 100644 --- a/docs/RST/pythonUtilities/graphicsDataUtilities.rst +++ b/docs/RST/pythonUtilities/graphicsDataUtilities.rst @@ -333,7 +333,7 @@ Function: GraphicsDataOrthoCubeLines Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `NGsolveCraigBampton.py `_\ (Ex), \ `rigid3Dexample.py `_\ (Ex), \ `genericJointUserFunctionTest.py `_\ (TM), \ `rigidBodyCOMtest.py `_\ (TM), \ `sphericalJointTest.py `_\ (TM) + \ `NGsolveCraigBampton.py `_\ (Ex), \ `rigid3Dexample.py `_\ (Ex), \ `rr.py `_\ (Ex), \ `genericJointUserFunctionTest.py `_\ (TM), \ `rigidBodyCOMtest.py `_\ (TM), \ `sphericalJointTest.py `_\ (TM) @@ -388,7 +388,7 @@ Function: GraphicsDataOrthoCubePoint Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `addPrismaticJoint.py `_\ (Ex), \ `addRevoluteJoint.py `_\ (Ex), \ `beltDrivesComparison.py `_\ (Ex), \ `bicycleIftommBenchmark.py `_\ (Ex), \ `craneReevingSystem.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `carRollingDiscTest.py `_\ (TM), \ `computeODE2AEeigenvaluesTest.py `_\ (TM) + \ `addPrismaticJoint.py `_\ (Ex), \ `addRevoluteJoint.py `_\ (Ex), \ `beltDrivesComparison.py `_\ (Ex), \ `bicycleIftommBenchmark.py `_\ (Ex), \ `chatGPTupdate.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `carRollingDiscTest.py `_\ (TM), \ `computeODE2AEeigenvaluesTest.py `_\ (TM) @@ -440,7 +440,7 @@ Function: GraphicsDataSphere Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `bicycleIftommBenchmark.py `_\ (Ex), \ `graphicsDataExample.py `_\ (Ex), \ `humanRobotInteraction.py `_\ (Ex), \ `lugreFrictionTest.py `_\ (Ex), \ `nMassOscillatorEigenmodes.py `_\ (Ex), \ `connectorGravityTest.py `_\ (TM), \ `contactCoordinateTest.py `_\ (TM), \ `coordinateVectorConstraint.py `_\ (TM) + \ `bicycleIftommBenchmark.py `_\ (Ex), \ `chatGPTupdate.py `_\ (Ex), \ `graphicsDataExample.py `_\ (Ex), \ `humanRobotInteraction.py `_\ (Ex), \ `lugreFrictionTest.py `_\ (Ex), \ `connectorGravityTest.py `_\ (TM), \ `contactCoordinateTest.py `_\ (TM), \ `coordinateVectorConstraint.py `_\ (TM) @@ -559,7 +559,7 @@ Function: GraphicsDataFromSTLfile Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `humanRobotInteraction.py `_\ (Ex), \ `stlFileImport.py `_\ (Ex) + \ `humanRobotInteraction.py `_\ (Ex), \ `ROSExampleTurtle.py `_\ (Ex), \ `stlFileImport.py `_\ (Ex) @@ -824,7 +824,7 @@ Function: GraphicsDataCheckerBoard Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `bicycleIftommBenchmark.py `_\ (Ex), \ `craneReevingSystem.py `_\ (Ex), \ `finiteSegmentMethod.py `_\ (Ex), \ `flexiblePendulumANCF.py `_\ (Ex), \ `graphicsDataExample.py `_\ (Ex), \ `ANCFoutputTest.py `_\ (TM), \ `bricardMechanism.py `_\ (TM), \ `connectorGravityTest.py `_\ (TM) + \ `bicycleIftommBenchmark.py `_\ (Ex), \ `chatGPTupdate.py `_\ (Ex), \ `craneReevingSystem.py `_\ (Ex), \ `finiteSegmentMethod.py `_\ (Ex), \ `flexiblePendulumANCF.py `_\ (Ex), \ `ANCFoutputTest.py `_\ (TM), \ `bricardMechanism.py `_\ (TM), \ `connectorGravityTest.py `_\ (TM) diff --git a/docs/RST/pythonUtilities/plot.rst b/docs/RST/pythonUtilities/plot.rst index 80d9dbc9..dcc11dd9 100644 --- a/docs/RST/pythonUtilities/plot.rst +++ b/docs/RST/pythonUtilities/plot.rst @@ -15,7 +15,7 @@ Plot utility functions based on matplotlib, including plotting of sensors and FF Function: ParseOutputFileHeader ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ParseOutputFileHeader `__\ (\ ``lines``\ ) +`ParseOutputFileHeader `__\ (\ ``lines``\ ) - | \ *function description*\ : | parse header of output file (solution file, sensor file, genetic optimization output, ...) given in file.readlines() format @@ -31,7 +31,7 @@ Function: ParseOutputFileHeader Function: PlotSensorDefaults ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`PlotSensorDefaults `__\ () +`PlotSensorDefaults `__\ () - | \ *function description*\ : | returns structure with default values for PlotSensor which can be modified once to be set for all later calls of PlotSensor @@ -58,7 +58,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: PlotSensor ^^^^^^^^^^^^^^^^^^^^ -`PlotSensor `__\ (\ ``mbs``\ , \ ``sensorNumbers = []``\ , \ ``components = 0``\ , \ ``xLabel = 'time (s)'``\ , \ ``yLabel = None``\ , \ ``labels = []``\ , \ ``colorCodeOffset = 0``\ , \ ``newFigure = True``\ , \ ``closeAll = False``\ , \ ``componentsX = []``\ , \ ``title = ''``\ , \ ``figureName = ''``\ , \ ``fontSize = 16``\ , \ ``colors = []``\ , \ ``lineStyles = []``\ , \ ``lineWidths = []``\ , \ ``markerStyles = []``\ , \ ``markerSizes = []``\ , \ ``markerDensity = 0.08``\ , \ ``rangeX = []``\ , \ ``rangeY = []``\ , \ ``majorTicksX = 10``\ , \ ``majorTicksY = 10``\ , \ ``offsets = []``\ , \ ``factors = []``\ , \ ``subPlot = []``\ , \ ``sizeInches = [6.4,4.8]``\ , \ ``fileName = ''``\ , \ ``useXYZcomponents = True``\ , \ ``**kwargs``\ ) +`PlotSensor `__\ (\ ``mbs``\ , \ ``sensorNumbers = []``\ , \ ``components = 0``\ , \ ``xLabel = 'time (s)'``\ , \ ``yLabel = None``\ , \ ``labels = []``\ , \ ``colorCodeOffset = 0``\ , \ ``newFigure = True``\ , \ ``closeAll = False``\ , \ ``componentsX = []``\ , \ ``title = ''``\ , \ ``figureName = ''``\ , \ ``fontSize = 16``\ , \ ``colors = []``\ , \ ``lineStyles = []``\ , \ ``lineWidths = []``\ , \ ``markerStyles = []``\ , \ ``markerSizes = []``\ , \ ``markerDensity = 0.08``\ , \ ``rangeX = []``\ , \ ``rangeY = []``\ , \ ``majorTicksX = 10``\ , \ ``majorTicksY = 10``\ , \ ``offsets = []``\ , \ ``factors = []``\ , \ ``subPlot = []``\ , \ ``sizeInches = [6.4,4.8]``\ , \ ``fileName = ''``\ , \ ``useXYZcomponents = True``\ , \ ``**kwargs``\ ) - | **NOTE**\ : this function is directly available in MainSystem (mbs); it should be directly called as mbs.PlotSensor(...). For description of the interface, see the MainSystem Python extensions, :ref:`sec-mainsystemextensions-plotsensor`\ @@ -72,7 +72,7 @@ Function: PlotSensor Function: PlotFFT ^^^^^^^^^^^^^^^^^ -`PlotFFT `__\ (\ ``frequency``\ , \ ``data``\ , \ ``xLabel = 'frequency'``\ , \ ``yLabel = 'magnitude'``\ , \ ``label = ''``\ , \ ``freqStart = 0``\ , \ ``freqEnd = -1``\ , \ ``logScaleX = True``\ , \ ``logScaleY = True``\ , \ ``majorGrid = True``\ , \ ``minorGrid = True``\ ) +`PlotFFT `__\ (\ ``frequency``\ , \ ``data``\ , \ ``xLabel = 'frequency'``\ , \ ``yLabel = 'magnitude'``\ , \ ``label = ''``\ , \ ``freqStart = 0``\ , \ ``freqEnd = -1``\ , \ ``logScaleX = True``\ , \ ``logScaleY = True``\ , \ ``majorGrid = True``\ , \ ``minorGrid = True``\ ) - | \ *function description*\ : | plot fft spectrum of signal @@ -91,6 +91,10 @@ Function: PlotFFT - | \ *output*\ : | creates plot and returns plot (plt) handle +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `nMassOscillatorEigenmodes.py `_\ (Ex) + ---- @@ -100,7 +104,7 @@ Function: PlotFFT Function: FileStripSpaces ^^^^^^^^^^^^^^^^^^^^^^^^^ -`FileStripSpaces `__\ (\ ``filename``\ , \ ``outputFilename``\ , \ ``fileCommentChar = ''``\ , \ ``removeDoubleChars = ''``\ ) +`FileStripSpaces `__\ (\ ``filename``\ , \ ``outputFilename``\ , \ ``fileCommentChar = ''``\ , \ ``removeDoubleChars = ''``\ ) - | \ *function description*\ : | strip spaces at beginning / end of lines; this may be sometimes necessary when reading solutions from files that are space-separated @@ -121,7 +125,7 @@ Function: FileStripSpaces Function: DataArrayFromSensorList ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`DataArrayFromSensorList `__\ (\ ``mbs``\ , \ ``sensorNumbers``\ , \ ``positionList = []``\ , \ ``time = ''``\ ) +`DataArrayFromSensorList `__\ (\ ``mbs``\ , \ ``sensorNumbers``\ , \ ``positionList = []``\ , \ ``time = ''``\ ) - | \ *function description*\ : | helper function to create data array from outputs defined by sensorNumbers list [+optional positionList which must have, e.g., local arc-length of beam according to sensor numbers]; if time=='', current sensor values will be used; if time!=[], evaluation will be based on loading values from file or sensor internal data and evaluate at that time @@ -146,7 +150,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: LoadImage ^^^^^^^^^^^^^^^^^^^ -`LoadImage `__\ (\ ``fileName``\ , \ ``trianglesAsLines = True``\ , \ ``verbose = False``\ ) +`LoadImage `__\ (\ ``fileName``\ , \ ``trianglesAsLines = True``\ , \ ``verbose = False``\ ) - | \ *function description*\ : | import image text file as exported from RedrawAndSaveImage() with exportImages.saveImageFormat='TXT'; triangles are converted to lines @@ -168,7 +172,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: PlotImage ^^^^^^^^^^^^^^^^^^^ -`PlotImage `__\ (\ ``imageData``\ , \ ``HT = np.eye(4)``\ , \ ``axesEqual = True``\ , \ ``plot3D = False``\ , \ ``lineWidths = 1``\ , \ ``lineStyles = '-'``\ , \ ``triangleEdgeColors = 'black'``\ , \ ``triangleEdgeWidths = 0.5``\ , \ ``removeAxes = True``\ , \ ``orthogonalProjection = True``\ , \ ``title = ''``\ , \ ``figureName = ''``\ , \ ``fileName = ''``\ , \ ``fontSize = 16``\ , \ ``closeAll = False``\ , \ ``azim = 0.``\ , \ ``elev = 0.``\ ) +`PlotImage `__\ (\ ``imageData``\ , \ ``HT = np.eye(4)``\ , \ ``axesEqual = True``\ , \ ``plot3D = False``\ , \ ``lineWidths = 1``\ , \ ``lineStyles = '-'``\ , \ ``triangleEdgeColors = 'black'``\ , \ ``triangleEdgeWidths = 0.5``\ , \ ``removeAxes = True``\ , \ ``orthogonalProjection = True``\ , \ ``title = ''``\ , \ ``figureName = ''``\ , \ ``fileName = ''``\ , \ ``fontSize = 16``\ , \ ``closeAll = False``\ , \ ``azim = 0.``\ , \ ``elev = 0.``\ ) - | \ *function description*\ : | plot 2D or 3D vector image data as provided by LoadImage(...) using matplotlib diff --git a/docs/RST/pythonUtilities/processing.rst b/docs/RST/pythonUtilities/processing.rst index 99b1042e..03c65648 100644 --- a/docs/RST/pythonUtilities/processing.rst +++ b/docs/RST/pythonUtilities/processing.rst @@ -16,7 +16,7 @@ It includes parameter variation and (genetic) optimization functionality. Function: GetVersionPlatformString ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GetVersionPlatformString `__\ () +`GetVersionPlatformString `__\ () - | \ *function description*\ : | internal function to return Exudyn version string, which allows to identify how results have been obtained @@ -33,7 +33,7 @@ Function: GetVersionPlatformString Function: ProcessParameterList ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ProcessParameterList `__\ (\ ``parameterFunction``\ , \ ``parameterList``\ , \ ``useMultiProcessing``\ , \ ``clusterHostNames = []``\ , \ ``**kwargs``\ ) +`ProcessParameterList `__\ (\ ``parameterFunction``\ , \ ``parameterList``\ , \ ``useMultiProcessing``\ , \ ``clusterHostNames = []``\ , \ ``**kwargs``\ ) - | \ *function description*\ : | processes parameterFunction for given parameters in parameterList, see ParameterVariation @@ -77,7 +77,7 @@ Function: ProcessParameterList Function: ParameterVariation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ParameterVariation `__\ (\ ``parameterFunction``\ , \ ``parameters``\ , \ ``useLogSpace = False``\ , \ ``debugMode = False``\ , \ ``addComputationIndex = False``\ , \ ``useMultiProcessing = False``\ , \ ``showProgress = True``\ , \ ``parameterFunctionData = {}``\ , \ ``clusterHostNames = []``\ , \ ``numberOfThreads = None``\ , \ ``resultsFile = ''``\ , \ ``**kwargs``\ ) +`ParameterVariation `__\ (\ ``parameterFunction``\ , \ ``parameters``\ , \ ``useLogSpace = False``\ , \ ``debugMode = False``\ , \ ``addComputationIndex = False``\ , \ ``useMultiProcessing = False``\ , \ ``showProgress = True``\ , \ ``parameterFunctionData = {}``\ , \ ``clusterHostNames = []``\ , \ ``numberOfThreads = None``\ , \ ``resultsFile = ''``\ , \ ``**kwargs``\ ) - | \ *function description*\ : | calls successively the function parameterFunction(parameterDict) with variation of parameters in given range; parameterDict is a dictionary, containing the current values of parameters, @@ -122,7 +122,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: GeneticOptimization ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`GeneticOptimization `__\ (\ ``objectiveFunction``\ , \ ``parameters``\ , \ ``populationSize = 100``\ , \ ``numberOfGenerations = 10``\ , \ ``elitistRatio = 0.1``\ , \ ``crossoverProbability = 0.25``\ , \ ``crossoverAmount = 0.5``\ , \ ``rangeReductionFactor = 0.7``\ , \ ``distanceFactor = 0.1``\ , \ ``childDistribution = "uniform"``\ , \ ``distanceFactorGenerations = -1``\ , \ ``debugMode = False``\ , \ ``addComputationIndex = False``\ , \ ``useMultiProcessing = False``\ , \ ``showProgress = True``\ , \ ``clusterHostNames = []``\ , \ ``**kwargs``\ ) +`GeneticOptimization `__\ (\ ``objectiveFunction``\ , \ ``parameters``\ , \ ``populationSize = 100``\ , \ ``numberOfGenerations = 10``\ , \ ``elitistRatio = 0.1``\ , \ ``crossoverProbability = 0.25``\ , \ ``crossoverAmount = 0.5``\ , \ ``rangeReductionFactor = 0.7``\ , \ ``distanceFactor = 0.1``\ , \ ``childDistribution = "uniform"``\ , \ ``distanceFactorGenerations = -1``\ , \ ``debugMode = False``\ , \ ``addComputationIndex = False``\ , \ ``useMultiProcessing = False``\ , \ ``showProgress = True``\ , \ ``clusterHostNames = []``\ , \ ``parameterFunctionData = {}``\ , \ ``**kwargs``\ ) - | \ *function description*\ : | compute minimum of given objectiveFunction @@ -139,6 +139,7 @@ Function: GeneticOptimization | \ ``distanceFactor``\ : children only survive at a certain relative distance of the current range; must be small enough (< 0.5) to allow individuals to survive; ignored if distanceFactor=0; as a rule of thumb, the distanceFactor should be zero in case that there is only one significant minimum, but if there are many local minima, the distanceFactor should be used to search at several different local minima | \ ``childDistribution``\ : string with name of distribution for producing childs: "normal" (Gaussian, with sigma defining range), "uniform" (exactly in range of childs) | \ ``distanceFactorGenerations``\ : number of generations (populations) at which the distance factor is active; the distance factor is used to find several local minima; finally, convergence is speed up without the distance factor + | \ ``parameterFunctionData``\ : dictionary containing additional data passed to the objectiveFunction inside the parameters with dict key 'functionData'; use this e.g. for passing solver parameters or other settings | \ ``randomizerInitialization``\ : initialize randomizer at beginning of optimization in order to get reproducible results, provide any integer in the range between 0 and 2\*\*32 - 1 (default: no initialization) | \ ``debugMode``\ : if True, additional print out is done | \ ``addComputationIndex``\ : if True, key 'computationIndex' is added to every parameterDict in the call to parameterFunction(), which allows to generate independent output files for every parameter, etc. @@ -173,29 +174,25 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: Minimize ^^^^^^^^^^^^^^^^^^ -`Minimize `__\ (\ ``objectiveFunction``\ , \ ``parameters``\ , \ ``initialGuess = []``\ , \ ``method = 'Nelder-Mead'``\ , \ ``tol = 1e-4``\ , \ ``options = {}``\ , \ ``enforceBounds = True``\ , \ ``debugMode = False``\ , \ ``showProgress = True``\ , \ ``addComputationIndex = False``\ , \ ``storeFunctionValues = True``\ , \ ``**kwargs``\ ) +`Minimize `__\ (\ ``objectiveFunction``\ , \ ``parameters``\ , \ ``initialGuess = []``\ , \ ``method = 'Nelder-Mead'``\ , \ ``tol = 1e-4``\ , \ ``options = {}``\ , \ ``enforceBounds = True``\ , \ ``debugMode = False``\ , \ ``showProgress = True``\ , \ ``addComputationIndex = False``\ , \ ``storeFunctionValues = True``\ , \ ``**kwargs``\ ) - | \ *function description*\ : - | Compute minimum of given objectiveFunction. This function is based on scipy.optimize.minimize() and it provides the same interface as GeneticOptimization(). + | Compute minimum of given objectiveFunction. This function is based on scipy.optimize.minimize() and it provides the same interface as GeneticOptimization(). Note that in special cases, you should copy this function and adapt to your needs. - | \ *input*\ : | \ ``objectiveFunction``\ : function, which takes the form parameterFunction(parameterDict) and which returns a value or list (or numpy array) which reflects the size of the objective to be minimized | \ ``parameters``\ : given as a dictionary, consist of name and tuple containing the search range for this parameter (begin, end), e.g. 'mass':(10,50) | \ ``storeFunctionValues``\ : if True, objectiveFunction values are computed (additional costs!) and stored in every iteration into valueList | \ ``initialGuess``\ : initial guess. Array of real elements of size (n,), where 'n' is the number of independent variables. If not provided by the user, initialGuess is computed from bounds provided in parameterDict. | \ ``method``\ : solver that should be used, e.g. 'Nelder-Mead', 'Powell', 'CG' etc. A list of available solvers can be found in the documentation of scipy.optimize.minimize(). - | \ ``tol``\ : tolerance for termination. When tol is specified, the selected minimization algorithm sets some relevant solver-specific tolerance(s) equal to tol. For detailed control, use solver-specific options using the 'options' variable. + | \ ``tol``\ : tolerance for termination. When tol is specified, the selected minimization algorithm sets some relevant solver-specific tolerance(s) equal to tol (but this is usually not the tolerance for loss or parameters1). For detailed control, use solver-specific options using the 'options' variable. | \ ``options``\ : dictionary of solver options. Can be used to set absolute and relative error tolerances. Detailed information can be found in the documentation of scipy.optimize.minimize(). | \ ``enforceBounds``\ : if True, ensures that only parameters within the bounds specified in ParameterDict are used for minimization; this may help to avoid, e.g., negative values, but may lead to non-convergence | \ ``verbose``\ : prints solver information into console, e.g. number of iterations 'nit', number of funcion evaluations 'nfev', status etc. - | \ ``showProgress``\ : if True, shows for every iteration objective function value, number of current iteration, time needed for current iteration, maximum number of iterations until solver option 'maxiter' is reached. + | \ ``showProgress``\ : if True, shows for every iteration objective function value, current iteration number, time needed for current iteration, maximum number of iterations and loss (current value of objective function) | \ ``addComputationIndex``\ : if True, key 'computationIndex' is added for consistency reasons with GeneticOptimizaiton to every parameterDict in the call to parameterFunction(); however, the value is always 0, because no multi threading is used in Minimize(...) | \ ``resultsFile``\ : if provided, the results are stored columnwise into the given file and written after every generation; use resultsMonitor.py to track results in realtime | \ ``useScipyBounds``\ : if True, use scipy.optimize.minimize() option 'bounds' to apply bounds on variable specified in ParameterDict. Note, this option is only used by some specific methods of scipy.optimize.minimize()! method='Nelder-Mead' ignores this option for example! if False, option 'enforceBounds' will be set to False! | \ ``args``\ : extra arguments passed to the objective function and its derivatives (fun, jac and hess functions). - | \ ``jac``\ : method for computing the gradient vector. - | \ ``hess``\ : method for computing the Hessian matrix. - | \ ``hessp``\ : hessian of objective function times an arbitrary vector p. - | \ ``constraints``\ : constraints definition (only for COBYLA, SLSQP and trust-constr). - | \ *output*\ : | returns [optimumParameter, optimumValue, parameterList, valueList], containing the optimum parameter set 'optimumParameter', optimum value 'optimumValue', the whole list of parameters parameterList with according objective values 'valueList' - | \ *author*\ : @@ -216,7 +213,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: ComputeSensitivities ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`ComputeSensitivities `__\ (\ ``parameterFunction``\ , \ ``parameters``\ , \ ``scaledByReference = False``\ , \ ``debugMode = False``\ , \ ``addComputationIndex = False``\ , \ ``useMultiProcessing = False``\ , \ ``showProgress = True``\ , \ ``parameterFunctionData = dict()``\ , \ ``**kwargs``\ ) +`ComputeSensitivities `__\ (\ ``parameterFunction``\ , \ ``parameters``\ , \ ``scaledByReference = False``\ , \ ``debugMode = False``\ , \ ``addComputationIndex = False``\ , \ ``useMultiProcessing = False``\ , \ ``showProgress = True``\ , \ ``parameterFunctionData = dict()``\ , \ ``**kwargs``\ ) - | \ *function description*\ : | Perform a sensitivity analysis by successively calling the function parameterFunction(parameterList[i]) with a one at a time variation of parameters in the defined increments. @@ -256,7 +253,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: PlotOptimizationResults2D ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`PlotOptimizationResults2D `__\ (\ ``parameterList``\ , \ ``valueList``\ , \ ``xLogScale = False``\ , \ ``yLogScale = False``\ ) +`PlotOptimizationResults2D `__\ (\ ``parameterList``\ , \ ``valueList``\ , \ ``xLogScale = False``\ , \ ``yLogScale = False``\ ) - | \ *function description*\ : | visualize results of optimization for every parameter (2D plots) @@ -281,7 +278,7 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: Function: PlotSensitivityResults ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`PlotSensitivityResults `__\ (\ ``valRef``\ , \ ``valuesSorted``\ , \ ``sensitivity``\ , \ ``fVar = None``\ , \ ``strYAxis = None``\ ) +`PlotSensitivityResults `__\ (\ ``valRef``\ , \ ``valuesSorted``\ , \ ``sensitivity``\ , \ ``fVar = None``\ , \ ``strYAxis = None``\ ) - | \ *function description*\ : | visualize results of Sensitivityanalyis for every parameter (2D plots) diff --git a/docs/RST/pythonUtilities/rigidBodyUtilities.rst b/docs/RST/pythonUtilities/rigidBodyUtilities.rst index 6446af20..dcce7d0a 100644 --- a/docs/RST/pythonUtilities/rigidBodyUtilities.rst +++ b/docs/RST/pythonUtilities/rigidBodyUtilities.rst @@ -241,7 +241,7 @@ Function: RotationVector2RotationMatrix Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `stiffFlyballGovernor2.py `_\ (Ex), \ `explicitLieGroupMBSTest.py `_\ (TM), \ `stiffFlyballGovernor.py `_\ (TM) + \ `chatGPTupdate.py `_\ (Ex), \ `stiffFlyballGovernor2.py `_\ (Ex), \ `explicitLieGroupMBSTest.py `_\ (TM), \ `stiffFlyballGovernor.py `_\ (TM) @@ -1363,7 +1363,7 @@ Class function: \_\_init\_\_ Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `addPrismaticJoint.py `_\ (Ex), \ `addRevoluteJoint.py `_\ (Ex), \ `craneReevingSystem.py `_\ (Ex), \ `fourBarMechanism3D.py `_\ (Ex), \ `kinematicTreeAndMBS.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `carRollingDiscTest.py `_\ (TM), \ `computeODE2AEeigenvaluesTest.py `_\ (TM) + \ `addPrismaticJoint.py `_\ (Ex), \ `addRevoluteJoint.py `_\ (Ex), \ `chatGPTupdate.py `_\ (Ex), \ `craneReevingSystem.py `_\ (Ex), \ `fourBarMechanism3D.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `carRollingDiscTest.py `_\ (TM), \ `computeODE2AEeigenvaluesTest.py `_\ (TM) .. _sec-module-rigidbodyutilities-class-inertiarodx(rigidbodyinertia): @@ -1432,7 +1432,7 @@ Class function: \_\_init\_\_ Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `graphicsDataExample.py `_\ (Ex), \ `particleClusters.py `_\ (Ex), \ `particlesSilo.py `_\ (Ex), \ `tippeTop.py `_\ (Ex), \ `distanceSensor.py `_\ (TM), \ `generalContactFrictionTests.py `_\ (TM) + \ `graphicsDataExample.py `_\ (Ex), \ `particleClusters.py `_\ (Ex), \ `particlesSilo.py `_\ (Ex), \ `ROSExampleMassPoint.py `_\ (Ex), \ `tippeTop.py `_\ (Ex), \ `distanceSensor.py `_\ (TM), \ `generalContactFrictionTests.py `_\ (TM) .. _sec-module-rigidbodyutilities-class-inertiahollowsphere(rigidbodyinertia): diff --git a/docs/RST/pythonUtilities/robotics.special.rst b/docs/RST/pythonUtilities/robotics.special.rst index baa27550..50ce8e25 100644 --- a/docs/RST/pythonUtilities/robotics.special.rst +++ b/docs/RST/pythonUtilities/robotics.special.rst @@ -136,7 +136,7 @@ Function: MassMatrix Relevant Examples (Ex) and TestModels (TM) with weblink to github: - \ `nMassOscillatorEigenmodes.py `_\ (Ex), \ `shapeOptimization.py `_\ (Ex), \ `solverFunctionsTestEigenvalues.py `_\ (Ex), \ `ACFtest.py `_\ (TM), \ `manualExplicitIntegrator.py `_\ (TM), \ `objectFFRFreducedOrderAccelerations.py `_\ (TM), \ `objectFFRFreducedOrderShowModes.py `_\ (TM), \ `objectFFRFreducedOrderStressModesTest.py `_\ (TM) + \ `shapeOptimization.py `_\ (Ex), \ `solverFunctionsTestEigenvalues.py `_\ (Ex), \ `ACFtest.py `_\ (TM), \ `manualExplicitIntegrator.py `_\ (TM), \ `objectFFRFreducedOrderAccelerations.py `_\ (TM), \ `objectFFRFreducedOrderShowModes.py `_\ (TM), \ `objectFFRFreducedOrderStressModesTest.py `_\ (TM), \ `objectFFRFreducedOrderTest.py `_\ (TM) diff --git a/docs/RST/pythonUtilities/signalProcessing.rst b/docs/RST/pythonUtilities/signalProcessing.rst index c1fe5b3d..9ce133b8 100644 --- a/docs/RST/pythonUtilities/signalProcessing.rst +++ b/docs/RST/pythonUtilities/signalProcessing.rst @@ -84,6 +84,10 @@ Function: ComputeFFT - | \ *date*\ : | 02.04.2020 +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `nMassOscillatorEigenmodes.py `_\ (Ex) + ---- diff --git a/docs/RST/structures/SimulationSettings.rst b/docs/RST/structures/SimulationSettings.rst index 42aee85d..1a0a181b 100644 --- a/docs/RST/structures/SimulationSettings.rst +++ b/docs/RST/structures/SimulationSettings.rst @@ -1,6 +1,9 @@ +.. _sec-simulationsettingsmain: + + ******************* Simulation settings ******************* @@ -449,7 +452,7 @@ LinearSolverSettings has the following items: * | **ignoreSingularJacobian** [type = bool, default = False]: | \ ``simulationSettings.linearSolverSettings.ignoreSingularJacobian``\ | [ONLY implemented for dense, Eigen matrix mode] False: standard way, fails if jacobian is singular; True: use Eigen's FullPivLU (thus only works with LinearSolverType.EigenDense) which handles over- and underdetermined systems; can often resolve redundant constraints, but MAY ALSO LEAD TO ERRONEOUS RESULTS! -* | **pivotThreshold** [type = PReal, default = 0]: +* | **pivotThreshold** [type = UReal, default = 0]: | \ ``simulationSettings.linearSolverSettings.pivotThreshold``\ | [ONLY available for EXUdense and EigenDense (FullPivot) solver] threshold for dense linear solver, can be used to detect close to singular solutions, setting this to, e.g., 1e-12; solver then reports on equations that are causing close to singularity * | **reuseAnalyzedPattern** [type = bool, default = False]: diff --git a/docs/RST/structures/VisualizationSettings.rst b/docs/RST/structures/VisualizationSettings.rst index 053b0e89..b0ab898f 100644 --- a/docs/RST/structures/VisualizationSettings.rst +++ b/docs/RST/structures/VisualizationSettings.rst @@ -1,6 +1,9 @@ +.. _sec-visualizationsettingsmain: + + ********************** Visualization settings ********************** @@ -404,6 +407,69 @@ VSettingsLoads has the following items: +.. _sec-vsettingssensortraces: + +VSettingsSensorTraces +--------------------- + +Visualization settings for traces of sensors. Note that a large number of time points (influenced by simulationSettings.solutionSettings.sensorsWritePeriod) may lead to slow graphics. + +VSettingsSensorTraces has the following items: + +* | **lineWidth** [type = UFloat, default = 2.]: + | \ ``SC.visualizationSettings.sensorTraces.lineWidth``\ + | line width for traces +* | **listOfPositionSensors** [type = ArrayIndex, default = [], size = -1]: + | \ ``SC.visualizationSettings.sensorTraces.listOfPositionSensors``\ + | list of position sensors which can be shown as trace inside render window if sensors have storeInternal=True; if this list is empty and showPositionTrace=True, then all available sensors are shown +* | **listOfTriadSensors** [type = ArrayIndex, default = [], size = -1]: + | \ ``SC.visualizationSettings.sensorTraces.listOfTriadSensors``\ + | list of sensors of with OutputVariableType RotationMatrix; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showTriads=True; the triad is drawn at the related position +* | **listOfVectorSensors** [type = ArrayIndex, default = [], size = -1]: + | \ ``SC.visualizationSettings.sensorTraces.listOfVectorSensors``\ + | list of sensors with 3D vector quantities; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showVectors=True; the vector quantity is drawn relative to the related position +* | **positionsShowEvery** [type = PInt, default = 1]: + | \ ``SC.visualizationSettings.sensorTraces.positionsShowEvery``\ + | integer value i; out of available sensor data, show every i-th position +* | **sensorsMbsNumber** [type = Index, default = 0]: + | \ ``SC.visualizationSettings.sensorTraces.sensorsMbsNumber``\ + | number of main system which is used to for sensor lists; if only 1 mbs is in the SystemContainer, use 0; if there are several mbs, it needs to specify the number +* | **showCurrent** [type = bool, default = True]: + | \ ``SC.visualizationSettings.sensorTraces.showCurrent``\ + | show current trace position (and especially vector quantity) related to current visualization state; this only works in solution viewer if sensor values are stored at time grid points of the solution file (up to a precision of 1e-10) and may therefore be temporarily unavailable +* | **showFuture** [type = bool, default = False]: + | \ ``SC.visualizationSettings.sensorTraces.showFuture``\ + | show trace future to current visualization state if already computed (e.g. in SolutionViewer) +* | **showPast** [type = bool, default = True]: + | \ ``SC.visualizationSettings.sensorTraces.showPast``\ + | show trace previous to current visualization state +* | **showPositionTrace** [type = bool, default = False]: + | \ ``SC.visualizationSettings.sensorTraces.showPositionTrace``\ + | show position trace of all position sensors if listOfPositionSensors=[] or of specified sensors; sensors need to activate storeInternal=True +* | **showTriads** [type = bool, default = False]: + | \ ``SC.visualizationSettings.sensorTraces.showTriads``\ + | if True, show basis vectors from rotation matrices provided by sensors +* | **showVectors** [type = bool, default = False]: + | \ ``SC.visualizationSettings.sensorTraces.showVectors``\ + | if True, show vector quantities according to description in showPositionTrace +* | **traceColors** [type = ArrayFloat, default = [0.2,0.2,0.2,1., 0.8,0.2,0.2,1., 0.2,0.8,0.2,1., 0.2,0.2,0.8,1., 0.2,0.8,0.8,1., 0.8,0.2,0.8,1., 0.8,0.4,0.1,1.], size = -1]: + | \ ``SC.visualizationSettings.sensorTraces.traceColors``\ + | RGBA float values for traces in one array; using 6x4 values gives different colors for 6 traces; in case of triads, the 0/1/2-axes are drawn in red, green, and blue +* | **triadSize** [type = float, default = 0.1 ]: + | \ ``SC.visualizationSettings.sensorTraces.triadSize``\ + | length of triad axes if shown +* | **triadsShowEvery** [type = PInt, default = 1]: + | \ ``SC.visualizationSettings.sensorTraces.triadsShowEvery``\ + | integer value i; out of available sensor data, show every i-th triad +* | **vectorScaling** [type = float, default = 0.01]: + | \ ``SC.visualizationSettings.sensorTraces.vectorScaling``\ + | scaling of vector quantities; if, e.g., loads, this factor has to be adjusted significantly +* | **vectorsShowEvery** [type = PInt, default = 1]: + | \ ``SC.visualizationSettings.sensorTraces.vectorsShowEvery``\ + | integer value i; out of available sensor data, show every i-th vector + + + .. _sec-vsettingssensors: VSettingsSensors @@ -413,6 +479,9 @@ Visualization settings for sensors. VSettingsSensors has the following items: +* | **traces** [type = VSettingsSensorTraces]: + | \ ``SC.visualizationSettings.sensors.traces``\ + | settings for showing (position) sensor traces and vector plots in the render window * | **defaultColor** [type = Float4, default = [0.6,0.6,0.1,1.], size = 4]: | \ ``SC.visualizationSettings.sensors.defaultColor``\ | default cRGB color for sensors; 4th value is alpha-transparency diff --git a/docs/RST/trackerlog.rst b/docs/RST/trackerlog.rst index a9bb8518..14bf85cd 100644 --- a/docs/RST/trackerlog.rst +++ b/docs/RST/trackerlog.rst @@ -19,15 +19,102 @@ BUG numbers refer to the according issue numbers. General information on current version: -+ Exudyn version = 1.6.164.dev1, -+ last change = 2023-06-12, -+ Number of issues = 1620, -+ Number of resolved issues = 1444 (164 in current version), ++ Exudyn version = 1.7.0, ++ last change = 2023-07-19, ++ Number of issues = 1650, ++ Number of resolved issues = 1470 (0 in current version), + +*********** +Version 1.7 +*********** + + * Version 1.7.0: resolved Issue 1649: release (release) + - description: switch to new release 1.7 + - date resolved: **2023-07-19 16:07**\ , date raised: 2023-07-19 *********** Version 1.6 *********** + * Version 1.6.189: resolved Issue 1648: ReevingSystemSprings (fix) + - description: adjust test example for treating compression forces + - date resolved: **2023-07-17 12:10**\ , date raised: 2023-07-17 + * Version 1.6.188: resolved Issue 1647: sensorTraces (extension) + - description: add vectors and triads to position traces; show current vector or triad and add some further options for visualization, see visualizationSettings sensors.traces + - **notes:** added triads and vectors, showing traces of motion at sensor points + - date resolved: **2023-07-14 18:34**\ , date raised: 2023-07-14 + * Version 1.6.187: resolved Issue 1640: visualization (extension) + - description: show trace of sensor positions (incl. frames) in render window; settings and list of sensors provided in visualizationSettings.sensors.traces with list of sensors, positionTrace, listOfPositionSensors=[] (empty means all position sensors, listOfVectorSensors=[] which can provide according vector quantities for positions; showVectors, vectorScaling=0.001, showPast=True, showFuture=False, showCurrent=True, lineWidth=2 + - date resolved: **2023-07-14 11:20**\ , date raised: 2023-07-11 + * Version 1.6.186: resolved Issue 1646: ArrayFloat (extension) + - description: C++ add type + - date resolved: **2023-07-13 16:27**\ , date raised: 2023-07-13 + * Version 1.6.185: resolved Issue 1645: ReevingSystemSprings (extension) + - description: add way to remove compression forces in rope + - **notes:** added parameter regularizationForce with tanh regularization for avoidance of compressive spring force + - date resolved: **2023-07-12 16:05**\ , date raised: 2023-07-12 + * Version 1.6.184: resolved Issue 1644: Minimize (extension) + - description: processing.Minimize: improve printout of current error of objective function=loss; only print every 1 second + - date resolved: **2023-07-12 09:29**\ , date raised: 2023-07-12 + * Version 1.6.183: :textred:`resolved BUG 1643` : Minimize + - description: processing.Minimize function has an internal bug, such that it does not work with initialGuess=[] + - date resolved: **2023-07-12 09:29**\ , date raised: 2023-07-12 + * Version 1.6.182: :textred:`resolved BUG 1642` : SolutionViewer + - description: record image not working with visualizationSettings useMultiThreadedRendering=True + - date resolved: **2023-07-11 17:58**\ , date raised: 2023-07-11 + * Version 1.6.181: resolved Issue 1641: SolutionViewer (fix) + - description: github issue#51: graphicsDataUserFunction in SolutionViewer not called; add call to graphicsData user functions in redraw image loop + - date resolved: **2023-07-11 17:16**\ , date raised: 2023-07-11 + * Version 1.6.180: resolved Issue 1638: GeneticOptimization (extension) + - description: add argument parameterFunctionData to GeneticOptimization; same as in ParameterVariation, paramterFunctionData allows to pass additional data to the objective function + - date resolved: **2023-07-09 09:15**\ , date raised: 2023-07-09 + * Version 1.6.179: resolved Issue 1637: add ChatGPT update information (extension) + - description: create Python model Examples/chatGPTupdate.py which includes information that is used by ChatGPT4 to improve abilities to create simple models fully automatic + - date resolved: **2023-06-30 15:01**\ , date raised: 2023-06-30 + * Version 1.6.178: resolved Issue 1636: CreateMassPoint (change) + - description: change args referenceCoordinates to referencePosition, initialCoordinates to initialDisplacement, and initialVelocities to initialVelocity to be consistent with CreateRigidBody (but different from MassPoint itself) + - date resolved: **2023-06-30 14:09**\ , date raised: 2023-06-30 + * Version 1.6.177: resolved Issue 1635: SmartRound2String (extension) + - description: add function to basic utilities to enable simple printing of numbers with few digits, including comma dot and not eliminating small numbers, e.g., 1e-5 stays 1e-5 + - date resolved: **2023-06-30 09:22**\ , date raised: 2023-06-30 + * Version 1.6.176: resolved Issue 1634: create directories (extension) + - description: add automatic creation of directories to FEM SaveToFile, plotting and ParameterVariation + - date resolved: **2023-06-29 10:29**\ , date raised: 2023-06-29 + * Version 1.6.175: :textred:`resolved BUG 1633` : GetInterpolatedSignalValue + - description: timeArray needs to be replaced with timeArrayNew in case of 2D input array + - date resolved: **2023-06-28 21:15**\ , date raised: 2023-06-28 + * Version 1.6.174: resolved Issue 1632: PlotFFT (fix) + - description: matplotlib >= 1.7 complains about ax.grid(b=...) as parameter b has been replaced by visible + - date resolved: **2023-06-27 14:15**\ , date raised: 2023-06-27 + * Version 1.6.173: resolved Issue 1626: mutable args itemInterface (fix) + - description: also copy dictionaries, mainly for visualization (flat level, but this should be sufficient) + - date resolved: **2023-06-21 10:40**\ , date raised: 2023-06-21 + * Version 1.6.172: resolved Issue 1627: mutable default args (change) + - description: complete changes and adaptations for default args in Python functions and item interface; note individual adaptations for lists, vectors, matrices and special lists of lists or matrix containers; for itemInterface, anyway all data is copied into C++; for more information see issues 1536, 1540, 1612, 1624, 1625, 1626 + - date resolved: **2023-06-21 10:15**\ , date raised: 2023-06-21 + * Version 1.6.171: resolved Issue 1625: change to default arg None (change) + - description: change default args for Vector2DList, Vector3DList, Vector6DList, Matrix3DList, to None; ArrayNodeIndex, ArrayMarkerIndex, ArraySensorIndex obtain copy method and are copied now; avoid problem of mutable default args + - date resolved: **2023-06-21 00:26**\ , date raised: 2023-06-20 + * Version 1.6.170: resolved Issue 1624: MatrixContainer (change) + - description: change default values for matrix container to None; avoid problem of mutable default args + - date resolved: **2023-06-20 23:39**\ , date raised: 2023-06-20 + * Version 1.6.169: resolved Issue 1540: mutable args itemInterface (check) + - description: copy lists in itemInterface in order to avoid change of default args by user n=NodePoint();n.referenceCoordinates[0]=42;n1=NodePoint() + - **notes:** simple vectors, matrices and lists are copied with np.array(...) while complex matrix and list of array types are now initialized with None + - date resolved: **2023-06-20 22:13**\ , date raised: 2023-04-28 + * Version 1.6.168: resolved Issue 1620: docu MainSystemExtensions (docu) + - description: reorder MainSystemExtensions with separate section for Create functions and one section for remaining functions + - date resolved: **2023-06-19 22:14**\ , date raised: 2023-06-13 + * Version 1.6.167: :textred:`resolved BUG 1622` : mouse click + - description: fix crash on linux if left / right mouse click on render window (related to OpenGL select window) + - **notes:** occurs on WSL with WSLg; using 'export LIBGL_ALWAYS_SOFTWARE=1' will resolve the problem; put this line into your .bashrc + - date resolved: **2023-06-19 22:11**\ , date raised: 2023-06-19 + * Version 1.6.166: :textred:`resolved BUG 1621` : LinearSolverType + - description: fix crash on linux in function SetLinearSolverType + - date resolved: **2023-06-19 20:27**\ , date raised: 2023-06-19 + * Version 1.6.165: resolved Issue 1623: MouseSelectOpenGL (extension) + - description: add optional debbuging output + - date resolved: **2023-06-19 19:56**\ , date raised: 2023-06-19 * Version 1.6.164: resolved Issue 1267: matrix inverse (extension) - description: add pivot threshold to options, may improve redundant constraints problems - **notes:** only available for EigenDense with ignoreSingularJacobian and EXUdense linear solvers @@ -4690,6 +4777,22 @@ Version 0.1 Open issues *********** + * **open issue 1631:** velocityOffset + - description: add to CartesianSpringDamper, RigidBodySpringDamper + - date raised: 2023-06-26 + + * **open issue 1630:** exudyn module + - description: consider settings instead of putting all variables globally into module + - date raised: 2023-06-23 + + * **open issue 1629:** GetSystemState + - description: extend behavior for returning a dictionary with all data incl. accelerations and possibly alg. accelerations for generalized-alpha solver; check also option to link coords, as in issue 1504 + - date raised: 2023-06-23 + + * **open issue 1628:** pickle MainSystem + - description: consider a pickle method for certain objects; add consistent info in description; MainSystem, SimulationSettings, VisualizationSettings + - date raised: 2023-06-23 + * **open issue 1614:** static members - description: LinearSolver GeneralMatrixEXUdense::FactorizeNew has static ResizableMatrix m, which should be turned into class members; add reset method to free memory at solver finalization - date raised: 2023-06-11 @@ -4714,10 +4817,6 @@ Open issues - description: fully add Jacobian functionality for ODE1 loads and add test for ODE1 loads or recycle one - date raised: 2023-05-01 - * **open issue 1540:** mutable args itemInterface - - description: copy lists in itemInterfacein order to avoid change of default args by user n=NodePoint();n.referenceCoordinates[0]=42;n1=NodePoint() - - date raised: 2023-04-28 - * **open issue 1529:** solver - description: solver functions GetSystemJacobian() and GetSystemMassMatrix() need to be extended with arg sparseTriplets=False; if True, it will return CSR sparse triplets, useful for large matrices, e.g. in eigenvalue computation in linearized system - date raised: 2023-04-26 @@ -5163,7 +5262,7 @@ Open issues - date raised: 2021-06-28 * **open issue 0657:** Delete item - - description: add functionality to delete items, adding specific features to re-index nodes in objects/markers, etc. if a node, object or marker is deleted + - description: add functionality to delete items, adding specific features to re-index nodes in objects/markers, etc. if a node, object or marker is deleted; add MaxItemNumber() function to systemData which returns unique name for items even after deletion - date raised: 2021-05-01 * **open issue 0648:** solver tutorial @@ -5378,6 +5477,10 @@ Open issues Known bugs ********** + * :textred:`open BUG 1639:` SolveDynamic FFRF + - description: repeated call to mbs.SolveDynamic gives divergence; attributed to FFRFreducedOrder model; workaround uses repeated build of model before calling solver again; may be related to FFRF or MarkerSuperElement-internal variables + - date raised: 2023-07-10 + * :textred:`open BUG 1085:` GeneralContact - description: generalContactFrictionTests.py gives considerably different results after t=0.05 seconds between Windows and linux compiled version; may be caused by some initialization problems (bugs...); needs further tests - date raised: 2022-05-11 diff --git a/docs/howTo/WSL.txt b/docs/howTo/WSL.txt index f6b4104d..a869ec93 100644 --- a/docs/howTo/WSL.txt +++ b/docs/howTo/WSL.txt @@ -133,17 +133,12 @@ wsl --shutdown => now conda works! conda create -n venvP36 python=3.6 scipy matplotlib -y -conda create -n venvP37 python=3.7 scipy matplotlib tqdm -y -conda create -n venvP38 python=3.8 scipy matplotlib tqdm -y -conda create -n venvP39 python=3.9 scipy matplotlib tqdm -y -conda create -n venvP310 python=3.10 scipy matplotlib tqdm -y -#not yet available: conda create -n venvP311 python=3.11 scipy matplotlib tqdm -y -python 3.11 workaround (graphics does not work with wsl - even if it works with venvP39 !): -conda create -n venvP311 -conda install -c conda-forge python=3.11 -y -conda install tqdm -y -conda install -c conda-forge numpy -y -conda install -c conda-forge matplotlib -y +conda create -n venvP37 python=3.7 scipy matplotlib psutil tqdm -y +conda create -n venvP38 python=3.8 scipy matplotlib psutil tqdm -y +conda create -n venvP39 python=3.9 scipy matplotlib psutil tqdm -y +conda create -n venvP310 python=3.10 scipy matplotlib psutil tqdm -y +conda create -n venvP311 python=3.11 scipy matplotlib psutil tqdm -y + #install windows terminal https://docs.microsoft.com/en-us/windows/terminal/get-started #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ diff --git a/docs/howTo/ubuntuPythonSetup.txt b/docs/howTo/ubuntuPythonSetup.txt index a04c2686..740cf07c 100644 --- a/docs/howTo/ubuntuPythonSetup.txt +++ b/docs/howTo/ubuntuPythonSetup.txt @@ -47,8 +47,11 @@ sudo apt install gcc-7 g++-7 gcc-8 g++-8 gcc-9 g++-9 ==> question: how to activate gcc-8 or 9 for setuptools: import os -os.environ["CC"] = "gcc-8" #use gcc-8.4 on linux -os.environ["CXX"] = "gcc-8" +os.environ["CC"] = "gcc-7" #use gcc-8.4 on linux +os.environ["CXX"] = "gcc-7" +or select (g++ could also be g++-8 or similar): +export CC=/usr/bin/g++ + #or follow these hints to switch between different gcc versions (UBUNTU20.04?): https://linuxconfig.org/how-to-switch-between-multiple-gcc-and-g-compiler-versions-on-ubuntu-20-04-lts-focal-fossa diff --git a/docs/theDoc/MainSystemCreateExt.tex b/docs/theDoc/MainSystemCreateExt.tex new file mode 100644 index 00000000..65313885 --- /dev/null +++ b/docs/theDoc/MainSystemCreateExt.tex @@ -0,0 +1,643 @@ +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L118}{CreateMassPoint}{}}}\label{sec:mainsystemextensions:CreateMassPoint} +({\it name}= '', {\it referencePosition}= [0.,0.,0.], {\it initialDisplacement}= [0.,0.,0.], {\it initialVelocity}= [0.,0.,0.], {\it physicsMass}= 0, {\it gravity}= [0.,0.,0.], {\it graphicsDataList}= [], {\it drawSize}= -1, {\it color}= [-1.,-1.,-1.,-1.], {\it show}= True, {\it create2D}= False, {\it returnDict}= False) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]helper function to create 2D or 3D mass point object and node, using arguments as in NodePoint and MassPoint +\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateMassPoint. +\end{itemize} +\item[--] +{\bf input}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]{\it name}: name string for object, node is 'Node:'+name +\item[]{\it referencePosition}: reference coordinates for point node (always a 3D vector, no matter if 2D or 3D mass) +\item[]{\it initialDisplacement}: initial displacements for point node (always a 3D vector, no matter if 2D or 3D mass) +\item[]{\it initialVelocity}: initial velocities for point node (always a 3D vector, no matter if 2D or 3D mass) +\item[]{\it physicsMass}: mass of mass point +\item[]{\it gravity}: gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) +\item[]{\it graphicsDataList}: list of GraphicsData for optional mass visualization +\item[]{\it drawSize}: general drawing size of node +\item[]{\it color}: color of node +\item[]{\it show}: True: if graphicsData list is empty, node is shown, otherwise body is shown; otherwise, nothing is shown +\item[]{\it create2D}: if False, create NodePoint2D and MassPoint2D +\item[]{\it returnDict}: if False, returns object index; if True, returns dict of all information on created object and node +\end{itemize} +\item[--] +{\bf output}: Union[dict, ObjectIndex]; returns mass point object index or dict with all data on request (if returnDict=True) +\item[--] +{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0=mbs.CreateMassPoint(referencePosition = [0,0,0], + initialVelocity = [2,5,0], + physicsMass = 1, gravity = [0,-9.81,0], + drawSize = 0.5, color=color4blue) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) +\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} +% + +% +\noindent For examples on CreateMassPoint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/springDamperTutorialNew.py}{\texttt{springDamperTutorialNew.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) +\ei + +% +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L247}{CreateRigidBody}{}}}\label{sec:mainsystemextensions:CreateRigidBody} +({\it name}= '', {\it referencePosition}= [0.,0.,0.], {\it referenceRotationMatrix}= np.eye(3), {\it initialVelocity}= [0.,0.,0.], {\it initialAngularVelocity}= [0.,0.,0.], {\it initialDisplacement}= None, {\it initialRotationMatrix}= None, {\it inertia}= None, {\it gravity}= [0.,0.,0.], {\it nodeType}= exudyn.NodeType.RotationEulerParameters, {\it graphicsDataList}= [], {\it drawSize}= -1, {\it color}= [-1.,-1.,-1.,-1.], {\it show}= True, {\it create2D}= False, {\it returnDict}= False) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]helper function to create 3D (or 2D) rigid body object and node; all quantities are global (angular velocity, etc.) +\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateRigidBody. +\end{itemize} +\item[--] +{\bf input}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]{\it name}: name string for object, node is 'Node:'+name +\item[]{\it referencePosition}: reference position vector for rigid body node (always a 3D vector, no matter if 2D or 3D body) +\item[]{\it referenceRotationMatrix}: reference rotation matrix for rigid body node (always 3D matrix, no matter if 2D or 3D body) +\item[]{\it initialVelocity}: initial translational velocity vector for node (always a 3D vector, no matter if 2D or 3D body) +\item[]{\it initialAngularVelocity}: initial angular velocity vector for node (always a 3D vector, no matter if 2D or 3D body) +\item[]{\it initialDisplacement}: initial translational displacement vector for node (always a 3D vector, no matter if 2D or 3D body); these displacements are deviations from reference position, e.g. for a finite element node [None: unused] +\item[]{\it initialRotationMatrix}: initial rotation provided as matrix (always a 3D matrix, no matter if 2D or 3D body); this rotation is superimposed to reference rotation [None: unused] +\item[]{\it inertia}: an instance of class RigidBodyInertia, see rigidBodyUtilities; may also be from derived class (InertiaCuboid, InertiaMassPoint, InertiaCylinder, ...) +\item[]{\it gravity}: gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) +\item[]{\it graphicsDataList}: list of GraphicsData for rigid body visualization; use graphicsDataUtilities function GraphicsData...(...) +\item[]{\it drawSize}: general drawing size of node +\item[]{\it color}: color of node +\item[]{\it show}: True: if graphicsData list is empty, node is shown, otherwise body is shown; False: nothing is shown +\item[]{\it create2D}: if False, create NodePoint2D and MassPoint2D +\item[]{\it returnDict}: if False, returns object index; if True, returns dict of all information on created object and node +\end{itemize} +\item[--] +{\bf output}: Union[dict, ObjectIndex]; returns rigid body object index (or dict with 'nodeNumber', 'objectNumber' and possibly 'loadNumber' and 'markerBodyMass' if returnDict=True) +\item[--] +{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [1,0,0], + initialVelocity = [2,5,0], + initialAngularVelocity = [5,0.5,0.7], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4red)]) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) +\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} +% + +% +\noindent For examples on CreateRigidBody see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addPrismaticJoint.py}{\texttt{addPrismaticJoint.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addRevoluteJoint.py}{\texttt{addRevoluteJoint.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/graphicsDataExample.py}{\texttt{graphicsDataExample.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigidBodyTutorial3.py}{\texttt{rigidBodyTutorial3.py}} (Ex), + ... +, +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/bricardMechanism.py}{\texttt{bricardMechanism.py}} (TM), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/computeODE2AEeigenvaluesTest.py}{\texttt{computeODE2AEeigenvaluesTest.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/driveTrainTest.py}{\texttt{driveTrainTest.py}} (TM), + ... + +\ei + +% +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L469}{CreateSpringDamper}{}}}\label{sec:mainsystemextensions:CreateSpringDamper} +({\it name}= '', {\it bodyOrNodeList}= [None, None], {\it localPosition0}= [0.,0.,0.], {\it localPosition1}= [0.,0.,0.], {\it referenceLength}= None, {\it stiffness}= 0., {\it damping}= 0., {\it force}= 0., {\it velocityOffset}= 0., {\it show}= True, {\it drawSize}= -1, {\it color}= color4default) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]helper function to create SpringDamper connector, using arguments from ObjectConnectorSpringDamper; similar interface as CreateDistanceConstraint(...) +\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateSpringDamper. +\end{itemize} +\item[--] +{\bf input}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]{\it name}: name string for connector; markers get Marker0:name and Marker1:name +\item[]{\it bodyOrNodeList}: a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types +\item[]{\it localPosition0}: local position (as 3D list or numpy array) on body0, if not a node number +\item[]{\it localPosition1}: local position (as 3D list or numpy array) on body1, if not a node number +\item[]{\it referenceLength}: if None, length is computed from reference position of bodies or nodes; if not None, this scalar reference length is used for spring +\item[]{\it stiffness}: scalar stiffness coefficient +\item[]{\it damping}: scalar damping coefficient +\item[]{\it force}: scalar additional force applied +\item[]{\it velocityOffset}: scalar offset: if referenceLength is changed over time, the velocityOffset may be changed accordingly to emulate a reference motion +\item[]{\it show}: if True, connector visualization is drawn +\item[]{\it drawSize}: general drawing size of connector +\item[]{\it color}: color of connector +\end{itemize} +\item[--] +{\bf output}: ObjectIndex; returns index of newly created object +\item[--] +{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2,5,0], + physicsMass = 1, gravity = [0,-9.81,0], + drawSize = 0.5, color=color4blue) + oGround = mbs.AddObject(ObjectGround()) + #add vertical spring + oSD = mbs.CreateSpringDamper(bodyOrNodeList=[oGround, b0], + localPosition0=[2,1,0], + localPosition1=[0,0,0], + stiffness=1e4, damping=1e2, + drawSize=0.2) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + SC.visualizationSettings.nodes.drawNodesAsPoint=False + mbs.SolveDynamic(simulationSettings = simulationSettings) +\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} +% + +% +\noindent For examples on CreateSpringDamper see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/springDamperTutorialNew.py}{\texttt{springDamperTutorialNew.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) +\ei + +% +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L605}{CreateCartesianSpringDamper}{}}}\label{sec:mainsystemextensions:CreateCartesianSpringDamper} +({\it name}= '', {\it bodyOrNodeList}= [None, None], {\it localPosition0}= [0.,0.,0.], {\it localPosition1}= [0.,0.,0.], {\it stiffness}= [0.,0.,0.], {\it damping}= [0.,0.,0.], {\it offset}= [0.,0.,0.], {\it show}= True, {\it drawSize}= -1, {\it color}= color4default) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]helper function to create CartesianSpringDamper connector, using arguments from ObjectConnectorCartesianSpringDamper +\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateCartesianSpringDamper. +\end{itemize} +\item[--] +{\bf input}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]{\it name}: name string for connector; markers get Marker0:name and Marker1:name +\item[]{\it bodyOrNodeList}: a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types +\item[]{\it localPosition0}: local position (as 3D list or numpy array) on body0, if not a node number +\item[]{\it localPosition1}: local position (as 3D list or numpy array) on body1, if not a node number +\item[]{\it stiffness}: stiffness coefficients (as 3D list or numpy array) +\item[]{\it damping}: damping coefficients (as 3D list or numpy array) +\item[]{\it offset}: offset vector (as 3D list or numpy array) +\item[]{\it show}: if True, connector visualization is drawn +\item[]{\it drawSize}: general drawing size of connector +\item[]{\it color}: color of connector +\end{itemize} +\item[--] +{\bf output}: ObjectIndex; returns index of newly created object +\item[--] +{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateMassPoint(referencePosition = [7,0,0], + physicsMass = 1, gravity = [0,-9.81,0], + drawSize = 0.5, color=color4blue) + oGround = mbs.AddObject(ObjectGround()) + oSD = mbs.CreateCartesianSpringDamper(bodyOrNodeList=[oGround, b0], + localPosition0=[7.5,1,0], + localPosition1=[0,0,0], + stiffness=[200,2000,0], damping=[2,20,0], + drawSize=0.2) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + SC.visualizationSettings.nodes.drawNodesAsPoint=False + mbs.SolveDynamic(simulationSettings = simulationSettings) +\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} +% + +% +\noindent For examples on CreateCartesianSpringDamper see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/computeODE2AEeigenvaluesTest.py}{\texttt{computeODE2AEeigenvaluesTest.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) +\ei + +% +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L693}{CreateRigidBodySpringDamper}{}}}\label{sec:mainsystemextensions:CreateRigidBodySpringDamper} +({\it name}= '', {\it bodyOrNodeList}= [None, None], {\it localPosition0}= [0.,0.,0.], {\it localPosition1}= [0.,0.,0.], {\it stiffness}= np.zeros((6,6)), {\it damping}= np.zeros((6,6)), {\it offset}= [0.,0.,0.,0.,0.,0.], {\it rotationMatrixJoint}= np.eye(3), {\it useGlobalFrame}= True, {\it show}= True, {\it drawSize}= -1, {\it color}= color4default) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]helper function to create RigidBodySpringDamper connector, using arguments from ObjectConnectorRigidBodySpringDamper +\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateRigidBodySpringDamper. +\end{itemize} +\item[--] +{\bf input}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]{\it name}: name string for connector; markers get Marker0:name and Marker1:name +\item[]{\it bodyOrNodeList}: a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types +\item[]{\it localPosition0}: local position (as 3D list or numpy array) on body0, if not a node number +\item[]{\it localPosition1}: local position (as 3D list or numpy array) on body1, if not a node number +\item[]{\it stiffness}: stiffness coefficients (as 6D matrix or numpy array) +\item[]{\it damping}: damping coefficients (as 6D matrix or numpy array) +\item[]{\it offset}: offset vector (as 6D list or numpy array) +\item[]{\it rotationMatrixJoint}: additional rotation matrix; in case useGlobalFrame=False, it transforms body0/node0 local frame to joint frame; if useGlobalFrame=True, it transforms global frame to joint frame +\item[]{\it useGlobalFrame}: if False, the rotationMatrixJoint is defined in the local coordinate system of body0 +\item[]{\it show}: if True, connector visualization is drawn +\item[]{\it drawSize}: general drawing size of connector +\item[]{\it color}: color of connector +\end{itemize} +\item[--] +{\bf output}: ObjectIndex; returns index of newly created object +\item[--] +{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] + #TODO +\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} +% + +% +\noindent For examples on CreateRigidBodySpringDamper see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/bricardMechanism.py}{\texttt{bricardMechanism.py}} (TM) +\ei + +% +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L837}{CreateRevoluteJoint}{}}}\label{sec:mainsystemextensions:CreateRevoluteJoint} +({\it name}= '', {\it bodyNumbers}= [None, None], {\it position}= [], {\it axis}= [], {\it useGlobalFrame}= True, {\it show}= True, {\it axisRadius}= 0.1, {\it axisLength}= 0.4, {\it color}= color4default) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]Create revolute joint between two bodies; definition of joint position and axis in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers, markerRotation and other quantities are automatically computed +\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateRevoluteJoint. +\end{itemize} +\item[--] +{\bf input}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]{\it name}: name string for joint; markers get Marker0:name and Marker1:name +\item[]{\it bodyNumbers}: a list of object numbers for body0 and body1; must be rigid body or ground object +\item[]{\it position}: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 +\item[]{\it axis}: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global rotation axis of the joint in reference configuration; else: local axis in body0 +\item[]{\it useGlobalFrame}: if False, the point and axis vectors are defined in the local coordinate system of body0 +\item[]{\it show}: if True, connector visualization is drawn +\item[]{\it axisRadius}: radius of axis for connector graphical representation +\item[]{\it axisLength}: length of axis for connector graphical representation +\item[]{\it color}: color of connector +\end{itemize} +\item[--] +{\bf output}: [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +\item[--] +{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [3,0,0], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4steelblue)]) + oGround = mbs.AddObject(ObjectGround()) + mbs.CreateRevoluteJoint(bodyNumbers=[oGround, b0], position=[2.5,0,0], axis=[0,0,1], + useGlobalFrame=True, axisRadius=0.02, axisLength=0.14) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) +\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} +% + +% +\noindent For examples on CreateRevoluteJoint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addRevoluteJoint.py}{\texttt{addRevoluteJoint.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigidBodyTutorial3.py}{\texttt{rigidBodyTutorial3.py}} (Ex), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/solutionViewerTest.py}{\texttt{solutionViewerTest.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/bricardMechanism.py}{\texttt{bricardMechanism.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/perf3DRigidBodies.py}{\texttt{perf3DRigidBodies.py}} (TM) +\ei + +% +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L935}{CreatePrismaticJoint}{}}}\label{sec:mainsystemextensions:CreatePrismaticJoint} +({\it name}= '', {\it bodyNumbers}= [None, None], {\it position}= [], {\it axis}= [], {\it useGlobalFrame}= True, {\it show}= True, {\it axisRadius}= 0.1, {\it axisLength}= 0.4, {\it color}= color4default) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]Create prismatic joint between two bodies; definition of joint position and axis in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers, markerRotation and other quantities are automatically computed +\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreatePrismaticJoint. +\end{itemize} +\item[--] +{\bf input}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]{\it name}: name string for joint; markers get Marker0:name and Marker1:name +\item[]{\it bodyNumbers}: a list of object numbers for body0 and body1; must be rigid body or ground object +\item[]{\it position}: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 +\item[]{\it axis}: a 3D vector as list or np.array containing the global translation axis of the joint in reference configuration +\item[]{\it useGlobalFrame}: if False, the point and axis vectors are defined in the local coordinate system of body0 +\item[]{\it show}: if True, connector visualization is drawn +\item[]{\it axisRadius}: radius of axis for connector graphical representation +\item[]{\it axisLength}: length of axis for connector graphical representation +\item[]{\it color}: color of connector +\end{itemize} +\item[--] +{\bf output}: [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +\item[--] +{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [4,0,0], + initialVelocity = [0,4,0], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4steelblue)]) + oGround = mbs.AddObject(ObjectGround()) + mbs.CreatePrismaticJoint(bodyNumbers=[oGround, b0], position=[3.5,0,0], axis=[0,1,0], + useGlobalFrame=True, axisRadius=0.02, axisLength=1) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) +\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} +% + +% +\noindent For examples on CreatePrismaticJoint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addPrismaticJoint.py}{\texttt{addPrismaticJoint.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) +\ei + +% +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L1025}{CreateSphericalJoint}{}}}\label{sec:mainsystemextensions:CreateSphericalJoint} +({\it name}= '', {\it bodyNumbers}= [None, None], {\it position}= [], {\it constrainedAxes}= [1,1,1], {\it useGlobalFrame}= True, {\it show}= True, {\it jointRadius}= 0.1, {\it color}= color4default) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]Create spherical joint between two bodies; definition of joint position in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers are automatically computed +\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateSphericalJoint. +\end{itemize} +\item[--] +{\bf input}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]{\it name}: name string for joint; markers get Marker0:name and Marker1:name +\item[]{\it bodyNumbers}: a list of object numbers for body0 and body1; must be mass point, rigid body or ground object +\item[]{\it position}: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 +\item[]{\it constrainedAxes}: flags, which determines which (global) translation axes are constrained; each entry may only be 0 (=free) axis or 1 (=constrained axis) +\item[]{\it useGlobalFrame}: if False, the point and axis vectors are defined in the local coordinate system of body0 +\item[]{\it show}: if True, connector visualization is drawn +\item[]{\it jointRadius}: radius of sphere for connector graphical representation +\item[]{\it color}: color of connector +\end{itemize} +\item[--] +{\bf output}: [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +\item[--] +{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [5,0,0], + initialAngularVelocity = [5,0,0], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4orange)]) + oGround = mbs.AddObject(ObjectGround()) + mbs.CreateSphericalJoint(bodyNumbers=[oGround, b0], position=[5.5,0,0], + useGlobalFrame=True, jointRadius=0.06) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) +\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} +% + +% +\noindent For examples on CreateSphericalJoint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/driveTrainTest.py}{\texttt{driveTrainTest.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) +\ei + +% +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L1108}{CreateGenericJoint}{}}}\label{sec:mainsystemextensions:CreateGenericJoint} +({\it name}= '', {\it bodyNumbers}= [None, None], {\it position}= [], {\it rotationMatrixAxes}= np.eye(3), {\it constrainedAxes}= [1,1,1, 1,1,1], {\it useGlobalFrame}= True, {\it show}= True, {\it axesRadius}= 0.1, {\it axesLength}= 0.4, {\it color}= color4default) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]Create generic joint between two bodies; definition of joint position (position) and axes (rotationMatrixAxes) in global coordinates (useGlobalFrame=True) or in local coordinates of body0 (useGlobalFrame=False), where rotationMatrixAxes is an additional rotation to body0; all markers, markerRotation and other quantities are automatically computed +\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateGenericJoint. +\end{itemize} +\item[--] +{\bf input}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]{\it name}: name string for joint; markers get Marker0:name and Marker1:name +\item[]{\it bodyNumber0}: a object number for body0, must be rigid body or ground object +\item[]{\it bodyNumber1}: a object number for body1, must be rigid body or ground object +\item[]{\it position}: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 +\item[]{\it rotationMatrixAxes}: rotation matrix which defines orientation of constrainedAxes; if useGlobalFrame, this rotation matrix is global, else the rotation matrix is post-multiplied with the rotation of body0, identical with rotationMarker0 in the joint +\item[]{\it constrainedAxes}: flag, which determines which translation (0,1,2) and rotation (3,4,5) axes are constrained; each entry may only be 0 (=free) axis or 1 (=constrained axis); ALL constrained Axes are defined relative to reference rotation of body0 times rotation0 +\item[]{\it useGlobalFrame}: if False, the position is defined in the local coordinate system of body0, otherwise it is defined in global coordinates +\item[]{\it show}: if True, connector visualization is drawn +\item[]{\it axesRadius}: radius of axes for connector graphical representation +\item[]{\it axesLength}: length of axes for connector graphical representation +\item[]{\it color}: color of connector +\end{itemize} +\item[--] +{\bf output}: [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +\item[--] +{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [6,0,0], + initialAngularVelocity = [0,8,0], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4orange)]) + oGround = mbs.AddObject(ObjectGround()) + mbs.CreateGenericJoint(bodyNumbers=[oGround, b0], position=[5.5,0,0], + constrainedAxes=[1,1,1, 1,0,0], + rotationMatrixAxes=RotationMatrixX(0.125*pi), #tilt axes + useGlobalFrame=True, axesRadius=0.02, axesLength=0.2) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) +\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} +% + +% +\noindent For examples on CreateGenericJoint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/bricardMechanism.py}{\texttt{bricardMechanism.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/computeODE2AEeigenvaluesTest.py}{\texttt{computeODE2AEeigenvaluesTest.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/driveTrainTest.py}{\texttt{driveTrainTest.py}} (TM), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/rigidBodyCOMtest.py}{\texttt{rigidBodyCOMtest.py}} (TM) +\ei + +% +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L1211}{CreateDistanceConstraint}{}}}\label{sec:mainsystemextensions:CreateDistanceConstraint} +({\it name}= '', {\it bodyOrNodeList}= [None, None], {\it localPosition0}= [0.,0.,0.], {\it localPosition1}= [0.,0.,0.], {\it distance}= None, {\it show}= True, {\it drawSize}= -1., {\it color}= color4default) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]Create distance joint between two bodies; definition of joint positions in local coordinates of bodies or nodes; if distance=None, it is computed automatically from reference length; all markers are automatically computed +\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateDistanceConstraint. +\end{itemize} +\item[--] +{\bf input}: \vspace{-6pt} +\begin{itemize}[leftmargin=1.2cm] +\setlength{\itemindent}{-0.7cm} +\item[]{\it name}: name string for joint; markers get Marker0:name and Marker1:name +\item[]{\it bodyOrNodeList}: a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types +\item[]{\it localPosition0}: local position (as 3D list or numpy array) on body0, if not a node number +\item[]{\it localPosition1}: local position (as 3D list or numpy array) on body1, if not a node number +\item[]{\it distance}: if None, distance is computed from reference position of bodies or nodes; if not None, this distance (which must be always larger than zero) is prescribed between the two positions +\item[]{\it show}: if True, connector visualization is drawn +\item[]{\it drawSize}: general drawing size of node +\item[]{\it color}: color of connector +\end{itemize} +\item[--] +{\bf output}: [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +\item[--] +{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [6,0,0], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4orange)]) + m1 = mbs.CreateMassPoint(referencePosition=[5.5,-1,0], + physicsMass=1, drawSize = 0.2) + n1 = mbs.GetObject(m1)['nodeNumber'] + oGround = mbs.AddObject(ObjectGround()) + mbs.CreateDistanceConstraint(bodyOrNodeList=[oGround, b0], + localPosition0 = [6.5,1,0], + localPosition1 = [0.5,0,0], + distance=None, #automatically computed + drawSize=0.06) + mbs.CreateDistanceConstraint(bodyOrNodeList=[b0, n1], + localPosition0 = [-0.5,0,0], + localPosition1 = [0.,0.,0.], #must be [0,0,0] for Node + distance=None, #automatically computed + drawSize=0.06) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) +\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} +% + +% +\noindent For examples on CreateDistanceConstraint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) +\ei + +% diff --git a/docs/theDoc/MainSystemExt.tex b/docs/theDoc/MainSystemExt.tex index 9ddf0b04..4d661a64 100644 --- a/docs/theDoc/MainSystemExt.tex +++ b/docs/theDoc/MainSystemExt.tex @@ -56,644 +56,7 @@ % \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L118}{CreateMassPoint}{}}}\label{sec:mainsystemextensions:CreateMassPoint} -({\it name}= '', {\it referenceCoordinates}= [0.,0.,0.], {\it initialCoordinates}= [0.,0.,0.], {\it initialVelocities}= [0.,0.,0.], {\it physicsMass}= 0, {\it gravity}= [0.,0.,0.], {\it graphicsDataList}= [], {\it drawSize}= -1, {\it color}= [-1.,-1.,-1.,-1.], {\it show}= True, {\it create2D}= False, {\it returnDict}= False) -\end{flushleft} -\setlength{\itemindent}{0.7cm} -\begin{itemize}[leftmargin=0.7cm] -\item[--] -{\bf function description}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]helper function to create 2D or 3D mass point object and node, using arguments as in NodePoint and MassPoint -\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateMassPoint. -\end{itemize} -\item[--] -{\bf input}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]{\it name}: name string for object, node is 'Node:'+name -\item[]{\it referenceCoordinates}: reference coordinates for point node (always a 3D vector, no matter if 2D or 3D mass) -\item[]{\it initialCoordinates}: initial displacements for point node (always a 3D vector, no matter if 2D or 3D mass) -\item[]{\it initialVelocities}: initial velocities for point node (always a 3D vector, no matter if 2D or 3D mass) -\item[]{\it physicsMass}: mass of mass point -\item[]{\it gravity}: gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) -\item[]{\it graphicsDataList}: list of GraphicsData for optional mass visualization -\item[]{\it drawSize}: general drawing size of node -\item[]{\it color}: color of node -\item[]{\it show}: True: if graphicsData list is empty, node is shown, otherwise body is shown; otherwise, nothing is shown -\item[]{\it create2D}: if False, create NodePoint2D and MassPoint2D -\item[]{\it returnDict}: if False, returns object index; if True, returns dict of all information on created object and node -\end{itemize} -\item[--] -{\bf output}: Union[dict, ObjectIndex]; returns mass point object index or dict with all data on request (if returnDict=True) -\item[--] -{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0=mbs.CreateMassPoint(referenceCoordinates = [0,0,0], - initialVelocities = [2,5,0], - physicsMass = 1, gravity = [0,-9.81,0], - drawSize = 0.5, color=color4blue) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) -\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} -% - -% -\noindent For examples on CreateMassPoint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: -\bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/springDamperTutorialNew.py}{\texttt{springDamperTutorialNew.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) -\ei - -% -\begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L247}{CreateRigidBody}{}}}\label{sec:mainsystemextensions:CreateRigidBody} -({\it name}= '', {\it referencePosition}= [0.,0.,0.], {\it referenceRotationMatrix}= np.eye(3), {\it initialVelocity}= [0.,0.,0.], {\it initialAngularVelocity}= [0.,0.,0.], {\it initialDisplacement}= None, {\it initialRotationMatrix}= None, {\it inertia}= None, {\it gravity}= [0.,0.,0.], {\it nodeType}= exudyn.NodeType.RotationEulerParameters, {\it graphicsDataList}= [], {\it drawSize}= -1, {\it color}= [-1.,-1.,-1.,-1.], {\it show}= True, {\it create2D}= False, {\it returnDict}= False) -\end{flushleft} -\setlength{\itemindent}{0.7cm} -\begin{itemize}[leftmargin=0.7cm] -\item[--] -{\bf function description}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]helper function to create 3D (or 2D) rigid body object and node; all quantities are global (angular velocity, etc.) -\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateRigidBody. -\end{itemize} -\item[--] -{\bf input}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]{\it name}: name string for object, node is 'Node:'+name -\item[]{\it referencePosition}: reference position vector for rigid body node (always a 3D vector, no matter if 2D or 3D body) -\item[]{\it referenceRotationMatrix}: reference rotation matrix for rigid body node (always 3D matrix, no matter if 2D or 3D body) -\item[]{\it initialVelocity}: initial translational velocity vector for node (always a 3D vector, no matter if 2D or 3D body) -\item[]{\it initialAngularVelocity}: initial angular velocity vector for node (always a 3D vector, no matter if 2D or 3D body) -\item[]{\it initialDisplacement}: initial translational displacement vector for node (always a 3D vector, no matter if 2D or 3D body); these displacements are deviations from reference position, e.g. for a finite element node [None: unused] -\item[]{\it initialRotationMatrix}: initial rotation provided as matrix (always a 3D matrix, no matter if 2D or 3D body); this rotation is superimposed to reference rotation [None: unused] -\item[]{\it inertia}: an instance of class RigidBodyInertia, see rigidBodyUtilities; may also be from derived class (InertiaCuboid, InertiaMassPoint, InertiaCylinder, ...) -\item[]{\it gravity}: gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) -\item[]{\it graphicsDataList}: list of GraphicsData for rigid body visualization; use graphicsDataUtilities function GraphicsData...(...) -\item[]{\it drawSize}: general drawing size of node -\item[]{\it color}: color of node -\item[]{\it show}: True: if graphicsData list is empty, node is shown, otherwise body is shown; False: nothing is shown -\item[]{\it create2D}: if False, create NodePoint2D and MassPoint2D -\item[]{\it returnDict}: if False, returns object index; if True, returns dict of all information on created object and node -\end{itemize} -\item[--] -{\bf output}: Union[dict, ObjectIndex]; returns rigid body object index (or dict with 'nodeNumber', 'objectNumber' and possibly 'loadNumber' and 'markerBodyMass' if returnDict=True) -\item[--] -{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [1,0,0], - initialVelocity = [2,5,0], - initialAngularVelocity = [5,0.5,0.7], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4red)]) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) -\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} -% - -% -\noindent For examples on CreateRigidBody see Relevant Examples (Ex) and TestModels (TM) with weblink to github: -\bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addPrismaticJoint.py}{\texttt{addPrismaticJoint.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addRevoluteJoint.py}{\texttt{addRevoluteJoint.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/graphicsDataExample.py}{\texttt{graphicsDataExample.py}} (Ex), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigidBodyTutorial3.py}{\texttt{rigidBodyTutorial3.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigidBodyTutorial3withMarkers.py}{\texttt{rigidBodyTutorial3withMarkers.py}} (Ex), - ... -, -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/bricardMechanism.py}{\texttt{bricardMechanism.py}} (TM), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/computeODE2AEeigenvaluesTest.py}{\texttt{computeODE2AEeigenvaluesTest.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/driveTrainTest.py}{\texttt{driveTrainTest.py}} (TM), - ... - -\ei - -% -\begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L469}{CreateSpringDamper}{}}}\label{sec:mainsystemextensions:CreateSpringDamper} -({\it name}= '', {\it bodyOrNodeList}= [None, None], {\it localPosition0}= [0.,0.,0.], {\it localPosition1}= [0.,0.,0.], {\it referenceLength}= None, {\it stiffness}= 0., {\it damping}= 0., {\it force}= 0., {\it velocityOffset}= 0., {\it show}= True, {\it drawSize}= -1, {\it color}= color4default) -\end{flushleft} -\setlength{\itemindent}{0.7cm} -\begin{itemize}[leftmargin=0.7cm] -\item[--] -{\bf function description}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]helper function to create SpringDamper connector, using arguments from ObjectConnectorSpringDamper; similar interface as CreateDistanceConstraint(...) -\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateSpringDamper. -\end{itemize} -\item[--] -{\bf input}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]{\it name}: name string for connector; markers get Marker0:name and Marker1:name -\item[]{\it bodyOrNodeList}: a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types -\item[]{\it localPosition0}: local position (as 3D list or numpy array) on body0, if not a node number -\item[]{\it localPosition1}: local position (as 3D list or numpy array) on body1, if not a node number -\item[]{\it referenceLength}: if None, length is computed from reference position of bodies or nodes; if not None, this scalar reference length is used for spring -\item[]{\it stiffness}: scalar stiffness coefficient -\item[]{\it damping}: scalar damping coefficient -\item[]{\it force}: scalar additional force applied -\item[]{\it velocityOffset}: scalar offset: if referenceLength is changed over time, the velocityOffset may be changed accordingly to emulate a reference motion -\item[]{\it show}: if True, connector visualization is drawn -\item[]{\it drawSize}: general drawing size of connector -\item[]{\it color}: color of connector -\end{itemize} -\item[--] -{\bf output}: ObjectIndex; returns index of newly created object -\item[--] -{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2,5,0], - physicsMass = 1, gravity = [0,-9.81,0], - drawSize = 0.5, color=color4blue) - oGround = mbs.AddObject(ObjectGround()) - #add vertical spring - oSD = mbs.CreateSpringDamper(bodyOrNodeList=[oGround, b0], - localPosition0=[2,1,0], - localPosition1=[0,0,0], - stiffness=1e4, damping=1e2, - drawSize=0.2) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - SC.visualizationSettings.nodes.drawNodesAsPoint=False - mbs.SolveDynamic(simulationSettings = simulationSettings) -\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} -% - -% -\noindent For examples on CreateSpringDamper see Relevant Examples (Ex) and TestModels (TM) with weblink to github: -\bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/springDamperTutorialNew.py}{\texttt{springDamperTutorialNew.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) -\ei - -% -\begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L605}{CreateCartesianSpringDamper}{}}}\label{sec:mainsystemextensions:CreateCartesianSpringDamper} -({\it name}= '', {\it bodyOrNodeList}= [None, None], {\it localPosition0}= [0.,0.,0.], {\it localPosition1}= [0.,0.,0.], {\it stiffness}= [0.,0.,0.], {\it damping}= [0.,0.,0.], {\it offset}= [0.,0.,0.], {\it show}= True, {\it drawSize}= -1, {\it color}= color4default) -\end{flushleft} -\setlength{\itemindent}{0.7cm} -\begin{itemize}[leftmargin=0.7cm] -\item[--] -{\bf function description}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]helper function to create CartesianSpringDamper connector, using arguments from ObjectConnectorCartesianSpringDamper -\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateCartesianSpringDamper. -\end{itemize} -\item[--] -{\bf input}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]{\it name}: name string for connector; markers get Marker0:name and Marker1:name -\item[]{\it bodyOrNodeList}: a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types -\item[]{\it localPosition0}: local position (as 3D list or numpy array) on body0, if not a node number -\item[]{\it localPosition1}: local position (as 3D list or numpy array) on body1, if not a node number -\item[]{\it stiffness}: stiffness coefficients (as 3D list or numpy array) -\item[]{\it damping}: damping coefficients (as 3D list or numpy array) -\item[]{\it offset}: offset vector (as 3D list or numpy array) -\item[]{\it show}: if True, connector visualization is drawn -\item[]{\it drawSize}: general drawing size of connector -\item[]{\it color}: color of connector -\end{itemize} -\item[--] -{\bf output}: ObjectIndex; returns index of newly created object -\item[--] -{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateMassPoint(referenceCoordinates = [7,0,0], - physicsMass = 1, gravity = [0,-9.81,0], - drawSize = 0.5, color=color4blue) - oGround = mbs.AddObject(ObjectGround()) - oSD = mbs.CreateCartesianSpringDamper(bodyOrNodeList=[oGround, b0], - localPosition0=[7.5,1,0], - localPosition1=[0,0,0], - stiffness=[200,2000,0], damping=[2,20,0], - drawSize=0.2) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - SC.visualizationSettings.nodes.drawNodesAsPoint=False - mbs.SolveDynamic(simulationSettings = simulationSettings) -\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} -% - -% -\noindent For examples on CreateCartesianSpringDamper see Relevant Examples (Ex) and TestModels (TM) with weblink to github: -\bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/computeODE2AEeigenvaluesTest.py}{\texttt{computeODE2AEeigenvaluesTest.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) -\ei - -% -\begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L693}{CreateRigidBodySpringDamper}{}}}\label{sec:mainsystemextensions:CreateRigidBodySpringDamper} -({\it name}= '', {\it bodyOrNodeList}= [None, None], {\it localPosition0}= [0.,0.,0.], {\it localPosition1}= [0.,0.,0.], {\it stiffness}= np.zeros((6,6)), {\it damping}= np.zeros((6,6)), {\it offset}= [0.,0.,0.,0.,0.,0.], {\it rotationMatrixJoint}= np.eye(3), {\it useGlobalFrame}= True, {\it show}= True, {\it drawSize}= -1, {\it color}= color4default) -\end{flushleft} -\setlength{\itemindent}{0.7cm} -\begin{itemize}[leftmargin=0.7cm] -\item[--] -{\bf function description}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]helper function to create RigidBodySpringDamper connector, using arguments from ObjectConnectorRigidBodySpringDamper -\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateRigidBodySpringDamper. -\end{itemize} -\item[--] -{\bf input}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]{\it name}: name string for connector; markers get Marker0:name and Marker1:name -\item[]{\it bodyOrNodeList}: a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types -\item[]{\it localPosition0}: local position (as 3D list or numpy array) on body0, if not a node number -\item[]{\it localPosition1}: local position (as 3D list or numpy array) on body1, if not a node number -\item[]{\it stiffness}: stiffness coefficients (as 6D matrix or numpy array) -\item[]{\it damping}: damping coefficients (as 6D matrix or numpy array) -\item[]{\it offset}: offset vector (as 6D list or numpy array) -\item[]{\it rotationMatrixJoint}: additional rotation matrix; in case useGlobalFrame=False, it transforms body0/node0 local frame to joint frame; if useGlobalFrame=True, it transforms global frame to joint frame -\item[]{\it useGlobalFrame}: if False, the rotationMatrixJoint is defined in the local coordinate system of body0 -\item[]{\it show}: if True, connector visualization is drawn -\item[]{\it drawSize}: general drawing size of connector -\item[]{\it color}: color of connector -\end{itemize} -\item[--] -{\bf output}: ObjectIndex; returns index of newly created object -\item[--] -{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] - #TODO -\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} -% - -% -\noindent For examples on CreateRigidBodySpringDamper see Relevant Examples (Ex) and TestModels (TM) with weblink to github: -\bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/bricardMechanism.py}{\texttt{bricardMechanism.py}} (TM) -\ei - -% -\begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L837}{CreateRevoluteJoint}{}}}\label{sec:mainsystemextensions:CreateRevoluteJoint} -({\it name}= '', {\it bodyNumbers}= [None, None], {\it position}= [], {\it axis}= [], {\it useGlobalFrame}= True, {\it show}= True, {\it axisRadius}= 0.1, {\it axisLength}= 0.4, {\it color}= color4default) -\end{flushleft} -\setlength{\itemindent}{0.7cm} -\begin{itemize}[leftmargin=0.7cm] -\item[--] -{\bf function description}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]Create revolute joint between two bodies; definition of joint position and axis in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers, markerRotation and other quantities are automatically computed -\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateRevoluteJoint. -\end{itemize} -\item[--] -{\bf input}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]{\it name}: name string for joint; markers get Marker0:name and Marker1:name -\item[]{\it bodyNumbers}: a list of object numbers for body0 and body1; must be rigid body or ground object -\item[]{\it position}: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 -\item[]{\it axis}: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global rotation axis of the joint in reference configuration; else: local axis in body0 -\item[]{\it useGlobalFrame}: if False, the point and axis vectors are defined in the local coordinate system of body0 -\item[]{\it show}: if True, connector visualization is drawn -\item[]{\it axisRadius}: radius of axis for connector graphical representation -\item[]{\it axisLength}: length of axis for connector graphical representation -\item[]{\it color}: color of connector -\end{itemize} -\item[--] -{\bf output}: [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint -\item[--] -{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [3,0,0], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4steelblue)]) - oGround = mbs.AddObject(ObjectGround()) - mbs.CreateRevoluteJoint(bodyNumbers=[oGround, b0], position=[2.5,0,0], axis=[0,0,1], - useGlobalFrame=True, axisRadius=0.02, axisLength=0.14) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) -\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} -% - -% -\noindent For examples on CreateRevoluteJoint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: -\bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addRevoluteJoint.py}{\texttt{addRevoluteJoint.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigidBodyTutorial3.py}{\texttt{rigidBodyTutorial3.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/solutionViewerTest.py}{\texttt{solutionViewerTest.py}} (Ex), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/bricardMechanism.py}{\texttt{bricardMechanism.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/perf3DRigidBodies.py}{\texttt{perf3DRigidBodies.py}} (TM) -\ei - -% -\begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L935}{CreatePrismaticJoint}{}}}\label{sec:mainsystemextensions:CreatePrismaticJoint} -({\it name}= '', {\it bodyNumbers}= [None, None], {\it position}= [], {\it axis}= [], {\it useGlobalFrame}= True, {\it show}= True, {\it axisRadius}= 0.1, {\it axisLength}= 0.4, {\it color}= color4default) -\end{flushleft} -\setlength{\itemindent}{0.7cm} -\begin{itemize}[leftmargin=0.7cm] -\item[--] -{\bf function description}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]Create prismatic joint between two bodies; definition of joint position and axis in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers, markerRotation and other quantities are automatically computed -\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreatePrismaticJoint. -\end{itemize} -\item[--] -{\bf input}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]{\it name}: name string for joint; markers get Marker0:name and Marker1:name -\item[]{\it bodyNumbers}: a list of object numbers for body0 and body1; must be rigid body or ground object -\item[]{\it position}: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 -\item[]{\it axis}: a 3D vector as list or np.array containing the global translation axis of the joint in reference configuration -\item[]{\it useGlobalFrame}: if False, the point and axis vectors are defined in the local coordinate system of body0 -\item[]{\it show}: if True, connector visualization is drawn -\item[]{\it axisRadius}: radius of axis for connector graphical representation -\item[]{\it axisLength}: length of axis for connector graphical representation -\item[]{\it color}: color of connector -\end{itemize} -\item[--] -{\bf output}: [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint -\item[--] -{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [4,0,0], - initialVelocity = [0,4,0], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4steelblue)]) - oGround = mbs.AddObject(ObjectGround()) - mbs.CreatePrismaticJoint(bodyNumbers=[oGround, b0], position=[3.5,0,0], axis=[0,1,0], - useGlobalFrame=True, axisRadius=0.02, axisLength=1) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) -\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} -% - -% -\noindent For examples on CreatePrismaticJoint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: -\bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addPrismaticJoint.py}{\texttt{addPrismaticJoint.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) -\ei - -% -\begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L1025}{CreateSphericalJoint}{}}}\label{sec:mainsystemextensions:CreateSphericalJoint} -({\it name}= '', {\it bodyNumbers}= [None, None], {\it position}= [], {\it constrainedAxes}= [1,1,1], {\it useGlobalFrame}= True, {\it show}= True, {\it jointRadius}= 0.1, {\it color}= color4default) -\end{flushleft} -\setlength{\itemindent}{0.7cm} -\begin{itemize}[leftmargin=0.7cm] -\item[--] -{\bf function description}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]Create spherical joint between two bodies; definition of joint position in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers are automatically computed -\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateSphericalJoint. -\end{itemize} -\item[--] -{\bf input}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]{\it name}: name string for joint; markers get Marker0:name and Marker1:name -\item[]{\it bodyNumbers}: a list of object numbers for body0 and body1; must be mass point, rigid body or ground object -\item[]{\it position}: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 -\item[]{\it constrainedAxes}: flags, which determines which (global) translation axes are constrained; each entry may only be 0 (=free) axis or 1 (=constrained axis) -\item[]{\it useGlobalFrame}: if False, the point and axis vectors are defined in the local coordinate system of body0 -\item[]{\it show}: if True, connector visualization is drawn -\item[]{\it jointRadius}: radius of sphere for connector graphical representation -\item[]{\it color}: color of connector -\end{itemize} -\item[--] -{\bf output}: [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint -\item[--] -{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [5,0,0], - initialAngularVelocity = [5,0,0], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4orange)]) - oGround = mbs.AddObject(ObjectGround()) - mbs.CreateSphericalJoint(bodyNumbers=[oGround, b0], position=[5.5,0,0], - useGlobalFrame=True, jointRadius=0.06) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) -\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} -% - -% -\noindent For examples on CreateSphericalJoint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: -\bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/driveTrainTest.py}{\texttt{driveTrainTest.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) -\ei - -% -\begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L1108}{CreateGenericJoint}{}}}\label{sec:mainsystemextensions:CreateGenericJoint} -({\it name}= '', {\it bodyNumbers}= [None, None], {\it position}= [], {\it rotationMatrixAxes}= np.eye(3), {\it constrainedAxes}= [1,1,1, 1,1,1], {\it useGlobalFrame}= True, {\it show}= True, {\it axesRadius}= 0.1, {\it axesLength}= 0.4, {\it color}= color4default) -\end{flushleft} -\setlength{\itemindent}{0.7cm} -\begin{itemize}[leftmargin=0.7cm] -\item[--] -{\bf function description}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]Create generic joint between two bodies; definition of joint position (position) and axes (rotationMatrixAxes) in global coordinates (useGlobalFrame=True) or in local coordinates of body0 (useGlobalFrame=False), where rotationMatrixAxes is an additional rotation to body0; all markers, markerRotation and other quantities are automatically computed -\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateGenericJoint. -\end{itemize} -\item[--] -{\bf input}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]{\it name}: name string for joint; markers get Marker0:name and Marker1:name -\item[]{\it bodyNumber0}: a object number for body0, must be rigid body or ground object -\item[]{\it bodyNumber1}: a object number for body1, must be rigid body or ground object -\item[]{\it position}: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 -\item[]{\it rotationMatrixAxes}: rotation matrix which defines orientation of constrainedAxes; if useGlobalFrame, this rotation matrix is global, else the rotation matrix is post-multiplied with the rotation of body0, identical with rotationMarker0 in the joint -\item[]{\it constrainedAxes}: flag, which determines which translation (0,1,2) and rotation (3,4,5) axes are constrained; each entry may only be 0 (=free) axis or 1 (=constrained axis); ALL constrained Axes are defined relative to reference rotation of body0 times rotation0 -\item[]{\it useGlobalFrame}: if False, the position is defined in the local coordinate system of body0, otherwise it is defined in global coordinates -\item[]{\it show}: if True, connector visualization is drawn -\item[]{\it axesRadius}: radius of axes for connector graphical representation -\item[]{\it axesLength}: length of axes for connector graphical representation -\item[]{\it color}: color of connector -\end{itemize} -\item[--] -{\bf output}: [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint -\item[--] -{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [6,0,0], - initialAngularVelocity = [0,8,0], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4orange)]) - oGround = mbs.AddObject(ObjectGround()) - mbs.CreateGenericJoint(bodyNumbers=[oGround, b0], position=[5.5,0,0], - constrainedAxes=[1,1,1, 1,0,0], - rotationMatrixAxes=RotationMatrixX(0.125*pi), #tilt axes - useGlobalFrame=True, axesRadius=0.02, axesLength=0.2) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) -\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} -% - -% -\noindent For examples on CreateGenericJoint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: -\bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/bricardMechanism.py}{\texttt{bricardMechanism.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/computeODE2AEeigenvaluesTest.py}{\texttt{computeODE2AEeigenvaluesTest.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/driveTrainTest.py}{\texttt{driveTrainTest.py}} (TM), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/rigidBodyCOMtest.py}{\texttt{rigidBodyCOMtest.py}} (TM) -\ei - -% -\begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/mainSystemExtensions.py\#L1211}{CreateDistanceConstraint}{}}}\label{sec:mainsystemextensions:CreateDistanceConstraint} -({\it name}= '', {\it bodyOrNodeList}= [None, None], {\it localPosition0}= [0.,0.,0.], {\it localPosition1}= [0.,0.,0.], {\it distance}= None, {\it show}= True, {\it drawSize}= -1., {\it color}= color4default) -\end{flushleft} -\setlength{\itemindent}{0.7cm} -\begin{itemize}[leftmargin=0.7cm] -\item[--] -{\bf function description}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]Create distance joint between two bodies; definition of joint positions in local coordinates of bodies or nodes; if distance=None, it is computed automatically from reference length; all markers are automatically computed -\item[]- NOTE that this function is added to MainSystem via Python function MainSystemCreateDistanceConstraint. -\end{itemize} -\item[--] -{\bf input}: \vspace{-6pt} -\begin{itemize}[leftmargin=1.2cm] -\setlength{\itemindent}{-0.7cm} -\item[]{\it name}: name string for joint; markers get Marker0:name and Marker1:name -\item[]{\it bodyOrNodeList}: a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types -\item[]{\it localPosition0}: local position (as 3D list or numpy array) on body0, if not a node number -\item[]{\it localPosition1}: local position (as 3D list or numpy array) on body1, if not a node number -\item[]{\it distance}: if None, distance is computed from reference position of bodies or nodes; if not None, this distance (which must be always larger than zero) is prescribed between the two positions -\item[]{\it show}: if True, connector visualization is drawn -\item[]{\it drawSize}: general drawing size of node -\item[]{\it color}: color of connector -\end{itemize} -\item[--] -{\bf output}: [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint -\item[--] -{\bf example}: \vspace{-12pt}\ei\begin{lstlisting}[language=Python, xleftmargin=36pt] - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [6,0,0], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4orange)]) - m1 = mbs.CreateMassPoint(referenceCoordinates=[5.5,-1,0], - physicsMass=1, drawSize = 0.2) - n1 = mbs.GetObject(m1)['nodeNumber'] - oGround = mbs.AddObject(ObjectGround()) - mbs.CreateDistanceConstraint(bodyOrNodeList=[oGround, b0], - localPosition0 = [6.5,1,0], - localPosition1 = [0.5,0,0], - distance=None, #automatically computed - drawSize=0.06) - mbs.CreateDistanceConstraint(bodyOrNodeList=[b0, n1], - localPosition0 = [-0.5,0,0], - localPosition1 = [0.,0.,0.], #must be [0,0,0] for Node - distance=None, #automatically computed - drawSize=0.06) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) -\end{lstlisting}\vspace{-24pt}\bi\item[]\vspace{-24pt}\vspace{12pt}\end{itemize} -% - -% -\noindent For examples on CreateDistanceConstraint see Relevant Examples (Ex) and TestModels (TM) with weblink to github: -\bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/mainSystemExtensionsTests.py}{\texttt{mainSystemExtensionsTests.py}} (TM) -\ei - -% -\begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L227}{PlotSensor}{}}}\label{sec:mainsystemextensions:PlotSensor} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L230}{PlotSensor}{}}}\label{sec:mainsystemextensions:PlotSensor} ({\it sensorNumbers}= [], {\it components}= 0, {\it xLabel}= 'time (s)', {\it yLabel}= None, {\it labels}= [], {\it colorCodeOffset}= 0, {\it newFigure}= True, {\it closeAll}= False, {\it componentsX}= [], {\it title}= '', {\it figureName}= '', {\it fontSize}= 16, {\it colors}= [], {\it lineStyles}= [], {\it lineWidths}= [], {\it markerStyles}= [], {\it markerSizes}= [], {\it markerDensity}= 0.08, {\it rangeX}= [], {\it rangeY}= [], {\it majorTicksX}= 10, {\it majorTicksY}= 10, {\it offsets}= [], {\it factors}= [], {\it subPlot}= [], {\it sizeInches}= [6.4,4.8], {\it fileName}= '', {\it useXYZcomponents}= True, {\it **kwargs}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -744,6 +107,8 @@ \item[]{\it [*kwargs]}: \item[]{\it minorTicksXon}: if True, turn minor ticks for x-axis on \item[]{\it minorTicksYon}: if True, turn minor ticks for y-axis on +\item[]{\it logScaleX}: use log scale for x-axis +\item[]{\it logScaleY}: use log scale for y-axis \item[]{\it fileCommentChar}: if exists, defines the comment character in files (\#, %, ...) \item[]{\it fileDelimiterChar}: if exists, defines the character indicating the columns for data (',', ' ', ';', ...) \end{itemize} @@ -964,8 +329,8 @@ SC = exu.SystemContainer() mbs = SC.AddSystem() # - b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2*0,5,0], + b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2*0,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) # @@ -1033,8 +398,8 @@ SC = exu.SystemContainer() mbs = SC.AddSystem() # - b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2*0,5,0], + b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2*0,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) # diff --git a/docs/theDoc/abbreviations.tex b/docs/theDoc/abbreviations.tex index bf67eb34..cd097f7b 100644 --- a/docs/theDoc/abbreviations.tex +++ b/docs/theDoc/abbreviations.tex @@ -24,5 +24,5 @@ \acro{Rot}{rotation} \acro{Rxyz}{rotation parameterization: consecutive rotations around x, y and z-axis (Tait-Bryan)} \acro{STL}{STereoLithography} -\acro{T66}{Pl"ucker transformation} +\acro{T66}{Pl\"ucker transformation} \acro{trig}{triangle (in graphics)} diff --git a/docs/theDoc/bibliographyDoc.bib b/docs/theDoc/bibliographyDoc.bib index 020e0c32..b67d41db 100644 --- a/docs/theDoc/bibliographyDoc.bib +++ b/docs/theDoc/bibliographyDoc.bib @@ -859,3 +859,14 @@ @misc{Exudyn2023 year = {2023}, } +@misc{ManzlRL2023, + doi = {doi.org/10.21203/rs.3.rs-3066420/v1}, + howpublished = {preprint, Research Square, \url{https://www.researchsquare.com/article/rs-3066420/v1}}, + author = {Manzl, Peter and Rogov, Oleg and Gerstmayr, Johannes and Mikkola, Aki and Orzechowski, Grzegorz}, + title = {Reliability Evaluation of Reinforcement Learning Methods for Mechanical Systems with Increasing Complexity}, + publisher = {Research Square}, + year = {2023}, +} + + + diff --git a/docs/theDoc/buildDate.tex b/docs/theDoc/buildDate.tex index d03cbc43..87a5c0d8 100644 --- a/docs/theDoc/buildDate.tex +++ b/docs/theDoc/buildDate.tex @@ -1 +1 @@ -build date and time=2023-06-12 14:55 \ No newline at end of file +build date and time=2023-07-19 18:00 \ No newline at end of file diff --git a/docs/theDoc/gettingStarted.tex b/docs/theDoc/gettingStarted.tex index 9232cfc1..79cbe70c 100644 --- a/docs/theDoc/gettingStarted.tex +++ b/docs/theDoc/gettingStarted.tex @@ -105,17 +105,18 @@ There are several journal papers of the developers which were using \codeName\ (list may be incomplete): \bi - \item A. Zw{\"o}lfer, J. Gerstmayr. A concise nodal-based derivation of the floating frame of reference formulation for displacement-based solid finite elements, Journal of Multibody System Dynamics, Vol. 49(3), pp. 291 -- 313, 2020. \ignoreRST{\cite{ZwoelferGerstmayr2020}} - \item S. Holzinger, J. Sch{\"o}berl, J. Gerstmayr. The equations of motion for a rigid body using non-redundant unified local velocity coordinates. Multibody System Dynamics, Vol. 48, pp. 283 -- 309, 2020. \ignoreRST{\cite{HolzingerSchoeberl2020}} - \item S. Holzinger, J. Gerstmayr. Time integration of rigid bodies modelled with three rotation parameters, Multibody System Dynamics, Vol. 53(5), 2021. \ignoreRST{\cite{Holzinger2021}} - \item A. Zw{\"o}lfer, J. Gerstmayr. The nodal-based floating frame of reference formulation with modal reduction. Acta Mechanica, Vol. 232, pp. 835--851 (2021). \ignoreRST{\cite{ZwoelferGerstmayr2021}} - \item M. Pieber, K. Ntarladima, R. Winkler, J. Gerstmayr. A Hybrid ALE Formulation for the Investigation of the Stability of Pipes Conveying Fluid and Axially Moving Beams, ASME Journal of Computational and Nonlinear Dynamics, 2022. \ignoreRST{\cite{PieberNtarladima2022}} - \item S. Holzinger, M. Schieferle, C. Gutmann, M. Hofer, J. Gerstmayr. Modeling and Parameter Identification for a Flexible Rotor with Impacts. Journal of Computational and Nonlinear Dynamics, 2022. \ignoreRST{\cite{HolzingerSchieferle2022}} - \item R. Neurauter, J. Gerstmayr. A novel motion reconstruction method for inertial sensors with constraints, Multibody System Dynamics, 2022. \cite{NeurauterGerstmayr2023} \item J. Gerstmayr. Exudyn -- A C++ based Python package for flexible multibody systems. Preprint, Research Square, 2023. \ignoreRST{\cite{ Exudyn2023}} \url{https://doi.org/10.21203/rs.3.rs-2693700/v1} + \item P. Manzl, O. Rogov, J. Gerstmayr, A. Mikkola, G. Orzechowski. Reliability Evaluation of Reinforcement Learning Methods for Mechanical Systems with Increasing Complexity. Preprint, Research Square, 2023. \ignoreRST{\cite{ManzlRL2023}} \url{https://doi.org/10.21203/rs.3.rs-3066420/v1} \item S. Holzinger, M. Arnold, J. Gerstmayr. Evaluation and Implementation of Lie Group Integration Methods for Rigid Multibody Systems. Preprint, Research Square, 2023. \ignoreRST{\cite{HolzingerArnoldGerst2023}} \url{https://doi.org/10.21203/rs.3.rs-2715112/v1} \item M. Sereinig, P. Manzl, and J. Gerstmayr. Task Dependent Comfort Zone, a Base Placement Strategy for Autonomous Mobile Manipulators using Manipulability Measures, Robotics and Autonomous Systems, submitted. \cite{Sereinig2023comfortZone} + \item R. Neurauter, J. Gerstmayr. A novel motion reconstruction method for inertial sensors with constraints, Multibody System Dynamics, 2022. \cite{NeurauterGerstmayr2023} + \item M. Pieber, K. Ntarladima, R. Winkler, J. Gerstmayr. A Hybrid ALE Formulation for the Investigation of the Stability of Pipes Conveying Fluid and Axially Moving Beams, ASME Journal of Computational and Nonlinear Dynamics, 2022. \ignoreRST{\cite{PieberNtarladima2022}} + \item S. Holzinger, M. Schieferle, C. Gutmann, M. Hofer, J. Gerstmayr. Modeling and Parameter Identification for a Flexible Rotor with Impacts. Journal of Computational and Nonlinear Dynamics, 2022. \ignoreRST{\cite{HolzingerSchieferle2022}} + \item S. Holzinger, J. Gerstmayr. Time integration of rigid bodies modelled with three rotation parameters, Multibody System Dynamics, Vol. 53(5), 2021. \ignoreRST{\cite{Holzinger2021}} + \item A. Zw{\"o}lfer, J. Gerstmayr. The nodal-based floating frame of reference formulation with modal reduction. Acta Mechanica, Vol. 232, pp. 835--851 (2021). \ignoreRST{\cite{ZwoelferGerstmayr2021}} + \item A. Zw{\"o}lfer, J. Gerstmayr. A concise nodal-based derivation of the floating frame of reference formulation for displacement-based solid finite elements, Journal of Multibody System Dynamics, Vol. 49(3), pp. 291 -- 313, 2020. \ignoreRST{\cite{ZwoelferGerstmayr2020}} + \item S. Holzinger, J. Sch{\"o}berl, J. Gerstmayr. The equations of motion for a rigid body using non-redundant unified local velocity coordinates. Multibody System Dynamics, Vol. 48, pp. 283 -- 309, 2020. \ignoreRST{\cite{HolzingerSchoeberl2020}} \ei \mysubsubsection{Developers of \codeName\ and thanks} @@ -159,7 +160,7 @@ So far (2021-07), we tested \bi \item \mybold{Anaconda 2021-11, 64bit, Python 3.9}\footnote{older Anaconda3 versions can be downloaded via the repository archive \texttt{https://repo.anaconda.com/archive/}} - \item Currently, we work with Python 3.6 - Python 3.10 \mybold{conda environments} on Windows, Linux and MacOS (3.8-3.10). + \item Currently, we work with Python 3.6 - Python 3.11 \mybold{conda environments} on Windows, Linux and MacOS (3.8-3.10). \item \mybold{Spyder 5.1.5} (with Python 3.9.7, 64bit) and \mybold{Spyder 4.1.3} (with Python 3.7.7, 64bit), which is included in the Anaconda installation\footnote{Note that it is important that Spyder, Python and \codeName\ are \mybold{either} 32bit \mybold{or} 64bit and are compiled up to the same minor version, i.e., 3.7.x. There will be a strange .DLL error, if you mix up 32/64bit. It is possible to install both, Anaconda 32bit and Anaconda 64bit -- then you should follow the recommendations of paths as suggested by Anaconda installer.}; Spyder works with all virtual environments \ei Many alternative options exist: @@ -187,7 +188,7 @@ You can install most of these packages using \texttt{pip install numpy} (Windows) or \texttt{pip3 install numpy} (Linux). NOTE: as there is only \texttt{numpy} needed (but not for all sub-packages) and \texttt{numpy} supports many variants, we do not add a particular requirement for installation of depending packages. It is not necessary to install \texttt{scipy} as long as you are not using features of \texttt{scipy}. Same reason for \texttt{tkinter} and \texttt{matplotlib}. -For interaction (right-mouse-click, some key-board commands) you need the Python module \texttt{tkinter}. This is included in regular Anaconda distributions (recommended, see below), but on UBUNTU you need to type alike (do not forget the '3', otherwise it installs for Python2 ...): +For interaction (right-mouse-click, some key-board commands) you need the Python module \texttt{tkinter}. This is included in regular Anaconda distributions (recommended, see below), but on Ubuntu you need to type alike (do not forget the '3', otherwise it installs for Python2 ...): \bi \item[] \texttt{sudo apt-get install python3-tk} \ei @@ -199,52 +200,67 @@ \bi \item \exuUrl{https://pypi.org/project/exudyn}{https://pypi.org/project/exudyn} \ei -As with most other packages, in the regular case (if your binary has been pre-built) you just need to do\footnote{If the index of pypi is not updated, it may help to use \texttt{pip install -i https://pypi.org/project/ exudyn} } +As with most other packages, in the regular case (if your binary has been pre-built) you just need to do \bi \item[] \texttt{pip install exudyn} \ei -On Linux (currently only pre-built for UBUNTU, but should work on many other linux platforms), {\bf update pip to at least 20.3} and use +On Ubuntu/Linux, make sure that pip is installed and up-to-date ({\bf update pip to at least 20.3}; otherwise the manylinux wheels will not be accepted!): +\bi + \item[] \texttt{sudo apt install python3-pip} + \item[] \texttt{python3 -m pip install --upgrade} +\ei +Depending on installation the command may read \texttt{pip3} or \texttt{pip}: \bi \item[] \texttt{pip3 install exudyn} \ei -For pre-releases (use with care!), add '$--$pre' flag: +For pre-releases (use with care!), add \texttt{-{}-pre} flag: \bi - \item[] \texttt{pip install exudyn $--$pre} + \item[] \texttt{pip install exudyn -{}-pre -U} +\ei +The \texttt{-U} (identical to \texttt{--upgrade}) flag ensures that the current installed version is also updated in case of a change of the micro version (e.g., from version 1.6.119 to version 1.6.164), otherwise, it will only update if you switch to a newer minor version. + +In some cases (e.g. for AppleM1 or special Linux versions), your pre-built binary will not work due to some incompatibilities. Then you need to build from source as described in the 'Build and install' sections, \refSection{sec:install:installinstructions:buildwindows}. + +\mysubsubsubsection{Troubleshooting pip install} +Pip install may fail, if your linux version does not support the current manylinux version. +This is known for CentOS or simlilar systems which usually support manylinux2014. In this case, you have to build \codeName\ from source, see \refSection{sec:install:installinstructions:buildubuntu}. + +Sometimes, you install exudyn, but when running python, the \texttt{import exudyn} fails. +In case of several environments, check where your installation goes. To guarantee that the pip install goes to the python call, use: +\bi + \item[] \texttt{python -m pip install exudyn} +\ei +which ensures that the used python is calling its associated pip module. + +If the PyPi index is not updated, it may help to use +\bi + \item[] \texttt{pip install -i https://pypi.org/project/ exudyn} \ei -In some cases (e.g. for AppleM1), your pre-built binary will not work due to some incompatibilities. Then you need to build from source as described in the 'Build and install' sections, \refSection{sec:install:installinstructions:buildwindows}. -% -%%+++++++++++++++++++++++++++++++++++++ -%\mysubsubsection{DEPRECATED: Install with Windows MSI installer} -%A simple way to install \codeName\ on Windows 10 (and maybe also Windows 7) is to use \texttt{.msi} installers in the \texttt{main/dist} directory\footnote{It works better \mybold{if you installed only one Python version} and if you installed Anaconda with the option \mybold{'Register Anaconda as my default Python 3.x'} or similar; in other cases you may to specify some installation directories, etc.}: -%\bi -%\item NOTE (2022-03-18): \texttt{.msi} installers are now only available for selected Python versions; however, wheels can be downloaded directly from \exuUrl{https://pypi.org/project/exudyn}{https://pypi.org/project/exudyn}, see below -%\item For the 64bits Python 3.7 version, double click on (version may differ):\ignoreRST{\\} \texttt{exudyn-1.0.248.win-amd64-py3.7.msi} -%\item Follow the instructions of the installer -%\item If Python / Anaconda is not found by the installer, provide the 'Python directory' as the installation directory of Anaconda3, which usually is installed in:\\ -%\texttt{C:$\backslash$ProgramData$\backslash$Anaconda3} -%\ei %+++++++++++++++++++++++++++++++++++++ -\mysubsubsectionlabel{Install from specific Wheel (UBUNTU and Windows)}{sec:install:installinstructions:wheel} +\mysubsubsectionlabel{Install from specific Wheel (Ubuntu and Windows)}{sec:install:installinstructions:wheel} A way to install the Python package \codeName\ is to use the so-called 'wheels' (file ending \texttt{.whl}). +NOTE that this approach usually is not required; just use the pip installer of the previous section! + +\noindent \mybold{Ubuntu}:\vspace{6pt}\\ Wheels can be downloaded directly from \exuUrl{https://pypi.org/project/exudyn/\#files}{https://pypi.org/project/exudyn/\#files}, for many Python versions and architectures. \vspace{6pt}\\ -For UBUNTU18.04 (which by default uses Python 3.6) this may read (version number 1.0.20 may be different): +For Ubuntu 18.04 (which by default uses Python 3.6) this may read (version number 1.0.20 may be different): \bi \item \texttt{Python 3.6, 64bit}: pip3 install dist$\backslash$exudyn-1.0.20-cp36-cp36-linux\_x86\_64.whl \ei -For UBUNTU20.04 (which by default uses Python 3.8) this may read (version number 1.0.20 may be different): +For Ubuntu 20.04 (which by default uses Python 3.8) this may read (version number 1.0.20 may be different): \bi \item \texttt{Python 3.8, 64bit}: pip3 install dist$\backslash$exudyn-1.0.20-cp38-cp38-linux\_x86\_64.whl \ei NOTE that your installation may have environments with different Python versions, so install that \codeName\ version appropriately! -If the wheel installation does not work on UBUNTU, it is highly recommended to build \codeName\ for your specific system as given in \refSection{sec:install:installinstructions:buildubuntu}. +If the wheel installation does not work on Ubuntu, it is highly recommended to build \codeName\ for your specific system as given in \refSection{sec:install:installinstructions:buildubuntu}. \noindent \mybold{Windows}:\vspace{6pt}\\ First, open an Anaconda prompt: \bi \item EITHER calling: START->Anaconda->... OR go to anaconda/Scripts folder and call activate.bat - \item You can check your Python version then, by running \texttt{python}\footnote{\texttt{python3} under UBUNTU 18.04}, the output reads like: + \item You can check your Python version then, by running \texttt{python}\footnote{\texttt{python3} under Ubuntu 18.04}, the output reads like: \bi \item[] \texttt{Python 3.6.5 $|$Anaconda, Inc.$|$ (default, Mar 29 2018, 13:32:41) $[$MSC v.1900 64 bit (AMD64)$]$ on win32} \item[] ... @@ -369,9 +385,9 @@ %++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -\mysubsubsectionlabel{Build and install \codeName\ under UBUNTU?}{sec:install:installinstructions:buildubuntu} +\mysubsubsectionlabel{Build and install \codeName\ under Ubuntu?}{sec:install:installinstructions:buildubuntu} % -Having a new UBUNTU 18.04 standard installation (e.g. using a VM virtual box environment), the following steps need to be done (Python \mybold{3.6} is already installed on UBUNTU18.04, otherwise use \texttt{sudo apt install python3})\footnote{see also the youtube video: \exuUrl{https://www.youtube.com/playlist?list=PLZduTa9mdcmOh5KVUqatD9GzVg\_jtl6fx}{https://www.youtube.com/playlist?list=PLZduTa9mdcmOh5KVUqatD9GzVg\_jtl6fx}}: +Having a new Ubuntu 18.04 standard installation (e.g. using a VM virtual box environment), the following steps need to be done (Python \mybold{3.6} is already installed on Ubuntu 18.04, otherwise use \texttt{sudo apt install python3})\footnote{see also the youtube video: \exuUrl{https://www.youtube.com/playlist?list=PLZduTa9mdcmOh5KVUqatD9GzVg\_jtl6fx}{https://www.youtube.com/playlist?list=PLZduTa9mdcmOh5KVUqatD9GzVg\_jtl6fx}}: \noindent First update ... \plainlststyle @@ -380,7 +396,7 @@ \end{lstlisting} \noindent -Install necessary Python libraries and pip3; \texttt{matplotlib} and\texttt{scipy} are not required for installation but used in \codeName\ examples: +Install necessary Python libraries and pip3; \texttt{matplotlib} and \texttt{scipy} are not required for installation but used in \codeName\ examples: \begin{lstlisting} sudo dpkg --configure -a sudo apt install python3-pip @@ -394,12 +410,22 @@ pip3 install pybind11 \end{lstlisting} +\noindent To have dialogs enabled, you need to install \texttt{Tk}/\texttt{tkinter} (may be already installed in your case). +\texttt{Tk} is installed on Ubuntu via apt-get and should then be available in Python: +\begin{lstlisting} + sudo apt-get install python3-tk +\end{lstlisting} + \noindent -If graphics is used (\texttt{\#define USE\_GLFW\_GRAPHICS} in \texttt{BasicDefinitions.h}), you must install the according GLFW and OpenGL libs: +If graphics is used (\texttt{\#define USE\_GLFW\_GRAPHICS} in \texttt{BasicDefinitions.h}), you must install the according GLFW libs: +\begin{lstlisting} + sudo apt-get install libglfw3 libglfw3-dev +\end{lstlisting} + +In some cases, it may be required to install OpenGL and some of the following libraries: \begin{lstlisting} sudo apt-get install freeglut3 freeglut3-dev sudo apt-get install mesa-common-dev - sudo apt-get install libglfw3 libglfw3-dev sudo apt-get install libx11-dev xorg-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev \end{lstlisting} @@ -415,7 +441,7 @@ \item[] \texttt{python3 pythonDev/Examples/rigid3Dexample.py} \ei -\noindent You can also create a UBUNTU wheel which can be easily installed on the same machine (x64), same operating system (UBUNTU18.04) and with same Python version (e.g., 3.6): +\noindent You can also create a Ubuntu wheel which can be easily installed on the same machine (x64), same operating system (Ubuntu 18.04) and with same Python version (e.g., 3.6): \bi \item[] \texttt{sudo pip3 install wheel} \item[] \texttt{sudo python3 setup.py bdist\_wheel --parallel} @@ -423,12 +449,13 @@ \noindent \mybold{Exudyn under Ubuntu / WSL}: \bi - \item Note that \codeName\ also nicely works under WSL (Windows subsystem for linux; tested for Ubuntu18.04) and an according xserver (VcXsrv). - \item Just set the display variable in your .bashrc file accordingly and you can enjoy the OpenGL windows and settings. + \item Note that \codeName\ also nicely works under WSL (Windows subsystem for linux; tested for Ubuntu 18.04) and an according xserver (VcXsrv). + \item In case of old WSL2, just set the display variable in your .bashrc file accordingly and you can enjoy the OpenGL windows and settings. \item It shall be noted that WSL + xserver works better than on MacOS, even for tkinter, multitasking, etc.! So, if you have troubles with your Mac, use a virtual machine with ubuntu and a xserver, that may do better + \item In case of WSLg (since 2021), only the software-OpenGL works; therefore, you have to set (possibly in .bashrc file): \texttt{export LIBGL\_ALWAYS\_SOFTWARE=0} \ei -\noindent \mybold{Exudyn under Raspberry Pi 4b}: +\noindent \mybold{Exudyn under RaspberryPi 4b}: \bi \item Exudyn also compiles under RaspberryPi 4b, Ubuntu Mate 20.04, Python 3.8; current version should compile out of the box using \texttt{python3 setup.py install} command. \item Performance is quite ok and it is even capable to use all cores (but you should add a fan!) @@ -438,7 +465,7 @@ \noindent \mybold{KNOWN issues for linux builds}: \bi \item Using \mybold{WSL2} (Windows subsystem for linux), there occur some conflicts during build because of incompatible windows and linux file systems and builds will not be copied to the dist folder; workaround: go to explorer, right click on 'build' directory and set all rights for authenticated user to 'full access' - \item \mybold{compiler (gcc,g++) conflicts}: It seems that \codeName works well on UBUNTU18.04 with the original \texttt{Python 3.6.9} and \texttt{gcc-7.5.0} version as well as with UBUNTU20.04 with \texttt{Python 3.8.5} and \texttt{gcc-9.3.0}. Upgrading \texttt{gcc} on a linux system with Python 3.6 to, e.g., \texttt{gcc-8.2} showed us a linker error when loading the \codeName\ module in Python -- there are some common restriction using \texttt{gcc} versions different from those with which the Python version has been built. Starting \texttt{python} or \texttt{python3} on your linux machine shows you the \texttt{gcc} version it had been build with. Check your current \texttt{gcc} version with: \texttt{gcc --version} + \item \mybold{compiler (gcc,g++) conflicts}: It seems that \codeName works well on Ubuntu 18.04 with the original \texttt{Python 3.6.9} and \texttt{gcc-7.5.0} version as well as with Ubuntu 20.04 with \texttt{Python 3.8.5} and \texttt{gcc-9.3.0}. Upgrading \texttt{gcc} on a Linux system with Python 3.6 to, e.g., \texttt{gcc-8.2} showed us a linker error when loading the \codeName\ module in Python -- there are some common restriction using \texttt{gcc} versions different from those with which the Python version has been built. Starting \texttt{python} or \texttt{python3} on your linux machine shows you the \texttt{gcc} version it had been build with. Check your current \texttt{gcc} version with: \texttt{gcc --version} \ei %++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -448,7 +475,7 @@ \bi \item[] \texttt{pip uninstall exudyn} \ei -\noindent To uninstall under UBUNTU, run: +\noindent To uninstall under Ubuntu, run: \bi \item[] \texttt{sudo pip3 uninstall exudyn} \ei @@ -475,7 +502,7 @@ \item link it to your own code \item NOTE: on Linux systems, you mostly need to replace '$/$' with '$\backslash$' \ei - \item Linux, etc.: not fully supported yet; however, all external libraries are Linux-compatible and thus should run with minimum adaptation efforts. + \item Linux, etc.: Use the build methods described above; Visual Studio Code may allow native Python and C++ debugging; switching to other build mechanisms (CMakeLists or scikit-build-core). \ei % %++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -657,7 +684,7 @@ \end{lstlisting} % % -\item Typical Python \mybold{import error} message on Linux / UBUNTU if Python modules are missing: +\item Typical Python \mybold{import error} message on Linux / Ubuntu if Python modules are missing: \plainlststyle \begin{lstlisting} Python WARNING [file '/home/johannes/.local/lib/python3.6/site-packages/exudyn/solver.py', line 236]: diff --git a/docs/theDoc/interfaces.tex b/docs/theDoc/interfaces.tex index aac8883c..fb3809da 100644 --- a/docs/theDoc/interfaces.tex +++ b/docs/theDoc/interfaces.tex @@ -48,7 +48,7 @@ %++++++++++++++++++++++++++++++++++++++ -\mysubsection{Simulation settings} +\mysubsectionlabel{Simulation settings}{sec:SimulationSettingsMain} This section includes hierarchical structures for simulation settings, e.g., time integration, static solver, Newton iteration and solution file export. %+++++++++++++++++++++++++++++++++++ @@ -312,7 +312,7 @@ \hline \bf Name & \bf type / function return type & \bf size & \bf default value / function args & \bf description \\ \hline ignoreSingularJacobian & bool & & False & [ONLY implemented for dense, Eigen matrix mode] False: standard way, fails if jacobian is singular; True: use Eigen's FullPivLU (thus only works with LinearSolverType.EigenDense) which handles over- and underdetermined systems; can often resolve redundant constraints, but MAY ALSO LEAD TO ERRONEOUS RESULTS!\\ \hline - pivotThreshold & PReal & & 0 & [ONLY available for EXUdense and EigenDense (FullPivot) solver] threshold for dense linear solver, can be used to detect close to singular solutions, setting this to, e.g., 1e-12; solver then reports on equations that are causing close to singularity\\ \hline + pivotThreshold & UReal & & 0 & [ONLY available for EXUdense and EigenDense (FullPivot) solver] threshold for dense linear solver, can be used to detect close to singular solutions, setting this to, e.g., 1e-12; solver then reports on equations that are causing close to singularity\\ \hline reuseAnalyzedPattern & bool & & False & [ONLY available for sparse matrices] True: the Eigen SparseLU solver offers the possibility to reuse an analyzed pattern of a previous factorization; this may reduce total factorization time by a factor of 2 or 3, depending on the matrix type; however, if the matrix patterns heavily change between computations, this may even slow down performance; this flag is set for SparseMatrices in InitializeSolverData(...) and should be handled with care!\\ \hline showCausingItems & bool & & True & False: no output, if solver fails; True: if redundant equations appear, they are resolved such that according solution variables are set to zero; in case of redundant constraints, this may help, but it may lead to erroneous behaviour; for static problems, this may suppress static motion or resolve problems in case of instabilities, but should in general be considered with care!\\ \hline \end{longtable} @@ -373,7 +373,7 @@ %++++++++++++++++++++++++++++++++++++++ -\mysubsection{Visualization settings} +\mysubsectionlabel{Visualization settings}{sec:VisualizationSettingsMain} This section includes hierarchical structures for visualization settings, e.g., drawing of nodes, bodies, connectors, loads and markers and furthermore openGL, window and save image options. For further information, see \refSection{sec:overview:basics:visualizationsettings}. %+++++++++++++++++++++++++++++++++++ @@ -625,6 +625,40 @@ \end{center} +%+++++++++++++++++++++++++++++++++++ + +\mysubsubsubsection{VSettingsSensorTraces} +\label{sec:VSettingsSensorTraces} +Visualization settings for traces of sensors. Note that a large number of time points (influenced by simulationSettings.solutionSettings.sensorsWritePeriod) may lead to slow graphics. + +\noindent VSettingsSensorTraces has the following items: +%reference manual TABLE +\begin{center} + \footnotesize + \begin{longtable}{| p{4.2cm} | p{2.5cm} | p{0.3cm} | p{3.0cm} | p{6cm} |} + \hline + \bf Name & \bf type / function return type & \bf size & \bf default value / function args & \bf description \\ \hline + lineWidth & UFloat & & 2. & line width for traces\\ \hline + listOfPositionSensors & ArrayIndex & -1 & [] & list of position sensors which can be shown as trace inside render window if sensors have storeInternal=True; if this list is empty and showPositionTrace=True, then all available sensors are shown\\ \hline + listOfTriadSensors & ArrayIndex & -1 & [] & list of sensors of with OutputVariableType RotationMatrix; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showTriads=True; the triad is drawn at the related position\\ \hline + listOfVectorSensors & ArrayIndex & -1 & [] & list of sensors with 3D vector quantities; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showVectors=True; the vector quantity is drawn relative to the related position\\ \hline + positionsShowEvery & PInt & & 1 & integer value i; out of available sensor data, show every i-th position\\ \hline + sensorsMbsNumber & Index & & 0 & number of main system which is used to for sensor lists; if only 1 mbs is in the SystemContainer, use 0; if there are several mbs, it needs to specify the number\\ \hline + showCurrent & bool & & True & show current trace position (and especially vector quantity) related to current visualization state; this only works in solution viewer if sensor values are stored at time grid points of the solution file (up to a precision of 1e-10) and may therefore be temporarily unavailable\\ \hline + showFuture & bool & & False & show trace future to current visualization state if already computed (e.g. in SolutionViewer)\\ \hline + showPast & bool & & True & show trace previous to current visualization state\\ \hline + showPositionTrace & bool & & False & show position trace of all position sensors if listOfPositionSensors=[] or of specified sensors; sensors need to activate storeInternal=True\\ \hline + showTriads & bool & & False & if True, show basis vectors from rotation matrices provided by sensors\\ \hline + showVectors & bool & & False & if True, show vector quantities according to description in showPositionTrace\\ \hline + traceColors & ArrayFloat & -1 & [0.2,0.2,0.2,1., 0.8,0.2,0.2,1., 0.2,0.8,0.2,1., 0.2,0.2,0.8,1., 0.2,0.8,0.8,1., 0.8,0.2,0.8,1., 0.8,0.4,0.1,1.] & \tabnewline RGBA float values for traces in one array; using 6x4 values gives different colors for 6 traces; in case of triads, the 0/1/2-axes are drawn in red, green, and blue\\ \hline + triadSize & float & & 0.1 & length of triad axes if shown\\ \hline + triadsShowEvery & PInt & & 1 & integer value i; out of available sensor data, show every i-th triad\\ \hline + vectorScaling & float & & 0.01 & scaling of vector quantities; if, e.g., loads, this factor has to be adjusted significantly\\ \hline + vectorsShowEvery & PInt & & 1 & integer value i; out of available sensor data, show every i-th vector\\ \hline + \end{longtable} + \end{center} + + %+++++++++++++++++++++++++++++++++++ \mysubsubsubsection{VSettingsSensors} @@ -638,6 +672,7 @@ \begin{longtable}{| p{4.2cm} | p{2.5cm} | p{0.3cm} | p{3.0cm} | p{6cm} |} \hline \bf Name & \bf type / function return type & \bf size & \bf default value / function args & \bf description \\ \hline + traces & VSettingsSensorTraces & & & settings for showing (position) sensor traces and vector plots in the render window\\ \hline defaultColor & Float4 & 4 & [0.6,0.6,0.1,1.] & \tabnewline default cRGB color for sensors; 4th value is alpha-transparency\\ \hline defaultSize & float & & -1. & global sensor size; if -1.f, sensor size is relative to maxSceneSize\\ \hline drawSimplified & bool & & True & draw sensors with simplified symbols\\ \hline diff --git a/docs/theDoc/introduction.tex b/docs/theDoc/introduction.tex index ee7c1680..3644c602 100644 --- a/docs/theDoc/introduction.tex +++ b/docs/theDoc/introduction.tex @@ -365,7 +365,7 @@ % \mysubsubsectionlabel{Simulation settings}{sec:overview:basics:simulationsettings} -The simulation settings consists of a couple of substructures, e.g., for \texttt{solutionSettings}, \texttt{staticSolver}, \texttt{timeIntegration} as well as a couple of general options -- for details see \refSection{sec:SolutionSettings} and \refSection{sec:SimulationSettings}. +The simulation settings consists of a couple of substructures, e.g., for \texttt{solutionSettings}, \texttt{staticSolver}, \texttt{timeIntegration} as well as a couple of general options -- for details see \refSection{sec:SolutionSettings} and \refSection{sec:SimulationSettingsMain}. Simulation settings are needed for every solver. They contain solver-specific parameters (e.g., the way how load steps are applied), information on how solution files are written, and very specific control parameters, e.g., for the Newton solver. @@ -415,19 +415,25 @@ Furthermore, you can use sensors to record particular information, e.g., the displacement of a body's local position, forces or joint data. For viewing sensor results, use the \texttt{PlotSensor} function of the \texttt{exudyn.plot} tool, see the rigid body and joints tutorial. +Finally, the render window allows to show traces (trajectories) of position sensors, sensor vector quantities (e.g., velocity vectors), +or triads given by rotation matrices. For further information, see the \texttt{sensors.traces} structure of \texttt{VisualizationSettings}, \refSection{sec:VSettingsSensorTraces}. \mysubsubsectionlabel{Renderer and 3D graphics}{sec:overview:basics:renderer} A 3D renderer is attached to the simulation. Visualization is started with \texttt{exu.StartRenderer()}, see the examples and tutorials. -For closing, press key 'Q' or Escape or close the window. -\mybold{Note}: -\bi - \item After \texttt{visualizationSettings.window.reallyQuitTimeLimit} seconds a 'do you really want to quit' dialog opens for safety on pressing 'Q'; if no tkinter is available, you just have to press 'Q' twice. For closing the window, you need to click a second time on the close button of the window after \texttt{reallyQuitTimeLimit} seconds (usually 900 seconds). -\ei +In order to show your model in the render window, you have to provide 3D graphics data to the bodies. Flexible bodies (e.g., FFRF-like) can visualize their meshes. Further items (nodes, markers, ...) can be visualized with default settings, however, often you have to turn on drawing or enlarge default sizes to make items visible. Item number can also be shown. +Finally, since version 1.6.188, sensor traces (trajectories) can be shown in the render window, see the \texttt{VisualizationSettings} in \refSection{sec:VisualizationSettingsMain}. + The renderer uses an OpenGL window of a library called GLFW, which is platform-independent. The renderer is set up in a minimalistic way, just to ensure that you can check that the modeling is correct. -There is no way to contruct models inside the renderer. -Note: Try to avoid huge number of triangles in STL files or by creating large number of complex objects, such as spheres or cylinders. +\noindent \mybold{Note}: +\bi + \item For closing the render window, press key 'Q' or Escape or just close the window. + \item There is no way to contruct models inside the renderer (no 'GUI'). + \item Try to avoid huge number of triangles in STL files or by creating large number of complex objects, such as spheres or cylinders. + \item After \texttt{visualizationSettings.window.reallyQuitTimeLimit} seconds a 'do you really want to quit' dialog opens for safety on pressing 'Q'; if no tkinter is available, you just have to press 'Q' twice. For closing the window, you need to click a second time on the close button of the window after \texttt{reallyQuitTimeLimit} seconds (usually 900 seconds). +\ei + \noindent There are some main features in the renderer, using keyboard and mouse, for details see \refSection{sec:graphicsVisualization}: \bi \item press key H to show help in renderer @@ -443,21 +449,27 @@ \item for further keys, see \refSection{sec:GUI:sec:keyboardInput} or press H in renderer \ei % -Depending on your model (size, place, ...), you may need to adjust the following visualization and \texttt{openGL} parameters in \texttt{visualizationSettings}: +Depending on your model (size, place, ...), you may need to adjust the following visualization and \texttt{openGL} parameters in \texttt{visualizationSettings}, see \refSection{sec:VisualizationSettingsMain}: \bi \item change window size \item light and light position \item shadow (turned off by using 0; turned on by using, e.g., a value of 0.3) and shadow polygon offset; shadow slows down graphics performance by a factor of 2-3, depending on your graphics card \item visibility of nodes, markers, etc. in according bodies, nodes, markers, ..., \texttt{visualizationSettings} \item move camera with a selected marker: adjust \texttt{trackMarker} in \texttt{visualizationSettings.interactive} - \item ... (see e.g. \refSection{sec:VSettingsGeneral}) +\ei +\mybold{NOTE}: changing \texttt{visualizationSettings} is not thread-safe, as it allows direct access to the C++ variables. +In most cases, this is not problematic, e.g., turning on/off some view parameters my just lead to some short-time artifacts if +they are changed during redraw. However, more advanced quantities (e.g., \texttt{trackMarker } or changing strings) may lead to problems, +which is why it is strongly recommended to: +\bi + \item set all \texttt{visualizationSettings} \mybold{before start of renderer} \ei \mysubsubsectionlabel{Visualization settings dialog}{sec:overview:basics:visualizationsettings} % Visualization settings are used for user interaction with the model. E.g., the nodes, markers, loads, etc., can be visualized for every model. There are default values, e.g., for the size of nodes, which may be inappropriate for your model. Therefore, you can adjust those parameters. In some cases, huge models require simpler graphics representation, in order not to slow down performance -- e.g., the number of faces to represent a cylinder should be small if there are 10000s of cylinders drawn. Even computation performance can be slowed down, if visualization takes lots of CPU power. However, visualization is performed in a separate thread, which usually does not influence the computation exhaustively. -Details on visualization settings and its substructures are provided in \refSection{sec:VSettingsGeneral} -- \refSection{sec:VisualizationSettings}. These settings may also be edited by pressing 'V' in the active render window (does not work, if there is no active render loop using, e.g., \texttt{SC.WaitForRenderEngineStopFlag()} or +Details on visualization settings and its substructures are provided in \refSection{sec:VisualizationSettingsMain}. These settings may also be edited by pressing 'V' in the active render window (does not work, if there is no active render loop using, e.g., \texttt{SC.WaitForRenderEngineStopFlag()} or \texttt{mbs.WaitForUserToContinue()} ). The visualization settings dialog is shown exemplarily in \fig{fig_visualizationSettings}. Note that this dialog is automatically created and uses Python's \texttt{tkinter}, which is lightweight, but not very well suited if display scalings are large (e.g., on high resolution laptop screens). If working with Spyder, it is recommended to restart Spyder, if display scaling is changed, in order to adjust scaling not only for Spyder but also for \codeName\ . @@ -525,7 +537,7 @@ \mysubsubsectionlabel{Execute Command and Help}{sec:overview:basics:commandAndHelp} % In addition to the Visualization settings dialog, a simple help window opens upon pressing key 'H'. -It is also possible to execute single Python commands during simulation by pressing 'X', which opens a simple dialog, saying 'Single command (press return to execute'. +It is also possible to execute single Python commands during simulation by pressing 'X', which opens a dialog, saying 'Exudyn Command Window'. Note that the dialog may appear behind the visualization window! This dialog may be very helpful in long running computations or in case that you may evaluate variables for debugging. The Python commands are evaluated in the global python scope, meaning that \texttt{mbs} or other variables of your scripts are available. @@ -545,20 +557,20 @@ \noindent You can also do quite fancy things during simulation, e.g., to deactivate joints (of course this may result in strange behavior): \pythonstyle\begin{lstlisting} -n=mbs.systemData.NumberOfObjects() -for i in range(n): - d = mbs.GetObject(i) - #if 'Joint' in d['objectType']: - if 'activeConnector' in d: - mbs.SetObjectParameter(i, 'activeConnector', False) + n=mbs.systemData.NumberOfObjects() + for i in range(n): + d = mbs.GetObject(i) + #if 'Joint' in d['objectType']: + if 'activeConnector' in d: + mbs.SetObjectParameter(i, 'activeConnector', False) \end{lstlisting} Note that you could also change \texttt{visualizationSettings} in this way, but the Visualization settings dialog is much more convenient. Changing \texttt{simulationSettings} is dangerous and must be treated with care. Some parameters, such as \texttt{simulationSettings.timeIntegration.endTime} are copied into the internal solver's \text{mbs.sys['dynamicSolver'].it} structure. -% -Thus, changing \texttt{simulationSettings.timeIntegration.endTime} has no effect. + +Thus, changing \texttt{simulationSettings.timeIntegration.endTime} has no effect during simulation. As a rule of thumb, all variables that are not stored inside the solvers structures may be adjusted by the \texttt{simulationSettings} passed to the solver (which are then not copied internally); see the C++ code for details. However, behavior may change in future and unexpected behavior or and changing \texttt{simulationSettings} will likely cause crashes if you do not know exactly the behavior, e.g., changing output format from text to binary ... ! Specifically, \texttt{newton} and \texttt{discontinuous} settings cannot be changed on the fly as they are copied internally. @@ -827,8 +839,7 @@ \noindent However, there are many \mybold{ways to speed up \codeName\ in general}: \bi \item for models with more than 50 coordinates, switching to sparse solvers might greatly improve speed: \texttt{simulationSettings.linearSolverType = exu.LinearSolverType.EigenSparse} - \item when preferring dense direct solvers, switching to Eigen's PartialPivLU solver might greatly improve speed: \texttt{simulationSettings.linearSolverType = exu.LinearSolverType.EigenDense}; - however, the flag \texttt{simulationSettings.linearSolverSettings.ignoreSingularJacobian=True} will switch to the much slower (but more robust) Eigen's FullPivLU + \item when preferring dense direct solvers, switching to Eigen's PartialPivLU solver might greatly improve speed: \texttt{simulationSettings.linearSolverType = exu.LinearSolverType.EigenDense}; however, the flag \texttt{simulationSettings.linearSolverSettings.ignoreSingularJacobian=True} will switch to the much slower (but more robust) Eigen's FullPivLU \item try to avoid Python functions or try to speed up Python functions \item instead of user functions in objects or loads (computed in every iteration), some problems would also work if these parameters are only updated in \texttt{mbs.SetPreStepUserFunction(...)} \item Python user functions can be speed up using the Python numba package, using \texttt{@jit} in front of functions (for more options, see \exuUrl{https://numba.pydata.org/numba-doc/dev/user/index.html}{https://numba.pydata.org/numba-doc/dev/user/index.html}); Example given in \texttt{Examples/springDamperUserFunctionNumbaJIT.py} showing speedups of factor 4; more complicated Python functions may see speedups of 10 - 50 diff --git a/docs/theDoc/itemDefinition.tex b/docs/theDoc/itemDefinition.tex index 20aeec6d..3ed057a6 100644 --- a/docs/theDoc/itemDefinition.tex +++ b/docs/theDoc/itemDefinition.tex @@ -341,12 +341,12 @@ \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigidRotor3DFWBW.py}{\texttt{rigidRotor3DFWBW.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigidRotor3Dnutation.py}{\texttt{rigidRotor3Dnutation.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigidRotor3Drunup.py}{\texttt{rigidRotor3Drunup.py}} (Examples/) +\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rr.py}{\texttt{rr.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/bicycleIftommBenchmark.py}{\texttt{bicycleIftommBenchmark.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/craneReevingSystem.py}{\texttt{craneReevingSystem.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/fourBarMechanism3D.py}{\texttt{fourBarMechanism3D.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/gyroStability.py}{\texttt{gyroStability.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/humanRobotInteraction.py}{\texttt{humanRobotInteraction.py}} (Examples/) -\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/leggedRobot.py}{\texttt{leggedRobot.py}} (Examples/) \item ... \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/explicitLieGroupIntegratorPythonTest.py}{\texttt{explicitLieGroupIntegratorPythonTest.py}} (TestModels/) @@ -1540,7 +1540,7 @@ sims=exu.SimulationSettings() sims.timeIntegration.numberOfSteps = 10000000 #many steps to see graphics exu.StartRenderer() #perform zoom all (press 'a' several times) after startup to see the sphere - exu.SolveDynamic(mbs, sims) + mbs.SolveDynamic(sims) exu.StopRenderer() \end{lstlisting} %%RSTCOMPATIBLE @@ -1673,7 +1673,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] @@ -1812,7 +1812,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] @@ -1960,7 +1960,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result, get current mass position at local position [0,0,0] exudynTestGlobals.testResult = mbs.GetObjectOutputBody(mass, exu.OutputVariableType.Position, [0,0,0])[0] @@ -2101,7 +2101,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result, get current rotor z-rotation at local position [0,0,0] exudynTestGlobals.testResult = mbs.GetObjectOutputBody(rotor, exu.OutputVariableType.Rotation, [0,0,0]) @@ -2350,6 +2350,7 @@ \bi \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigid3Dexample.py}{\texttt{rigid3Dexample.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigidBodyIMUtest.py}{\texttt{rigidBodyIMUtest.py}} (Examples/) +\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rr.py}{\texttt{rr.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/bicycleIftommBenchmark.py}{\texttt{bicycleIftommBenchmark.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/craneReevingSystem.py}{\texttt{craneReevingSystem.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/fourBarMechanism3D.py}{\texttt{fourBarMechanism3D.py}} (Examples/) @@ -2359,7 +2360,6 @@ \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/mouseInteractionExample.py}{\texttt{mouseInteractionExample.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/multiMbsTest.py}{\texttt{multiMbsTest.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/openVRengine.py}{\texttt{openVRengine.py}} (Examples/) -\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/particleClusters.py}{\texttt{particleClusters.py}} (Examples/) \item ... \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/explicitLieGroupIntegratorPythonTest.py}{\texttt{explicitLieGroupIntegratorPythonTest.py}} (TestModels/) @@ -2514,7 +2514,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] @@ -2810,7 +2810,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) + mbs.SolveDynamic(solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass1, exu.OutputVariableType.Position)[0] @@ -3009,7 +3009,7 @@ which denotes the transformation from joint coordinate (scalar) to rotations and translations. We can compute the local joint angular velocity $\tomega_i$ and translational velocity $\wv_i$, as a 6D vector $\vv^J_i$, from \be - \vv^J_i = \vp{\tomega_i}{\wv_i} = \tPhi_i \, q_i + \vv^J_i = \vp{\tomega_i}{\wv_i} = \tPhi_i \, \dot q_i \ee % The joint coordinates, which can be rotational or translational, are stored in the vector @@ -3210,7 +3210,7 @@ simulationSettings = exu.SimulationSettings() #takes currently set values or default values simulationSettings.timeIntegration.numberOfSteps = 1000 #gives very accurate results - exu.SolveDynamic(mbs, simulationSettings , solverType=exu.DynamicSolverType.RK67) #highly accurate! + mbs.SolveDynamic(simulationSettings , solverType=exu.DynamicSolverType.RK67) #highly accurate! #check final value of angle: q0 = mbs.GetNodeOutput(nGeneric, exu.OutputVariableType.Coordinates) @@ -4286,7 +4286,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveStatic(mbs) + mbs.SolveStatic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(lastNode, exu.OutputVariableType.Displacement)[0] @@ -5111,7 +5111,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Rotation)[2] @@ -6385,7 +6385,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] @@ -6619,7 +6619,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Displacement)[1] @@ -6631,6 +6631,7 @@ \bi \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/mouseInteractionExample.py}{\texttt{mouseInteractionExample.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigid3Dexample.py}{\texttt{rigid3Dexample.py}} (Examples/) +\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rr.py}{\texttt{rr.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/sliderCrank3DwithANCFbeltDrive2.py}{\texttt{sliderCrank3DwithANCFbeltDrive2.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ANCFcontactCircle.py}{\texttt{ANCFcontactCircle.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ANCFcontactCircle2.py}{\texttt{ANCFcontactCircle2.py}} (Examples/) @@ -6640,7 +6641,6 @@ \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/lavalRotor2Dtest.py}{\texttt{lavalRotor2Dtest.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/NGsolvePistonEngine.py}{\texttt{NGsolvePistonEngine.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/NGsolvePostProcessingStresses.py}{\texttt{NGsolvePostProcessingStresses.py}} (Examples/) -\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/objectFFRFreducedOrderNetgen.py}{\texttt{objectFFRFreducedOrderNetgen.py}} (Examples/) \item ... \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/scissorPrismaticRevolute2D.py}{\texttt{scissorPrismaticRevolute2D.py}} (TestModels/) @@ -6864,7 +6864,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Displacement)[1] @@ -6874,6 +6874,7 @@ % \noindent For examples on ObjectConnectorRigidBodySpringDamper see Relevant Examples and TestModels with weblink: \bi +\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ROSExampleMassPoint.py}{\texttt{ROSExampleMassPoint.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/stiffFlyballGovernor2.py}{\texttt{stiffFlyballGovernor2.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/connectorRigidBodySpringDamperTest.py}{\texttt{connectorRigidBodySpringDamperTest.py}} (TestModels/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/rotatingTableTest.py}{\texttt{rotatingTableTest.py}} (TestModels/) @@ -7055,7 +7056,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Displacement)[0] @@ -7234,7 +7235,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Rotation)[2] @@ -7244,6 +7245,7 @@ % \noindent For examples on ObjectConnectorTorsionalSpringDamper see Relevant Examples and TestModels with weblink: \bi +\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ROSExampleTurtle.py}{\texttt{ROSExampleTurtle.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/serialRobotInteractiveLimits.py}{\texttt{serialRobotInteractiveLimits.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/serialRobotKinematicTree.py}{\texttt{serialRobotKinematicTree.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/serialRobotTSD.py}{\texttt{serialRobotTSD.py}} (Examples/) @@ -7417,7 +7419,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, @@ -7879,7 +7881,7 @@ mbs.Assemble() sims = exu.SimulationSettings() sims.timeIntegration.endTime = tEnd - exu.SolveDynamic(mbs, sims, solverType=exu.DynamicSolverType.RK67) + mbs.SolveDynamic(sims, solverType=exu.DynamicSolverType.RK67) #check result at default integration time #expect y=x after one period of orbiting (got: 100000.00000000479) @@ -8128,7 +8130,7 @@ \mysubsubsection{ObjectConnectorReevingSystemSprings} \label{sec:item:ObjectConnectorReevingSystemSprings} -A rD reeving system defined by a list of torque-free and friction-free sheaves or points that are connected with one rope (modelled as massless spring). The force is assumed to be constant all over the rope. The sheaves or connection points are defined by $nr$ rigid body markers $[m_0, \, m_1, \, \ldots, \, m_{nr-1}]$. At both ends of the rope there may be a prescribed motion coupled to a coordinate marker each, given by $m_{c0}$ and $m_{c1}$ . +A rD reeving system defined by a list of torque-free and friction-free sheaves or points that are connected with one rope (modelled as massless spring). NOTE that the spring can undergo tension AND compression (in order to avoid compression, use a PreStepUserFunction to turn off stiffness and damping in this case!). The force is assumed to be constant all over the rope. The sheaves or connection points are defined by $nr$ rigid body markers $[m_0, \, m_1, \, \ldots, \, m_{nr-1}]$. At both ends of the rope there may be a prescribed motion coupled to a coordinate marker each, given by $m_{c0}$ and $m_{c1}$ . \vspace{12pt}\\ \noindent \mybold{Additional information for ObjectConnectorReevingSystemSprings}: @@ -8155,6 +8157,7 @@ dampingPerLength & UReal & & 0. & axial damping per length [SI:N/(m/s)/m] of rope; the effective damping coefficient of the reeving system is computed as $DA/L$ in which $L$ is the current length of the rope\\ \hline dampingTorsional & UReal & & 0. & torsional damping [SI:Nms] between sheaves; this effect can damp rotations around the rope axis, pairwise between sheaves; this parameter is experimental\\ \hline dampingShear & UReal & & 0. & damping of shear motion [SI:Ns] between sheaves; this effect can damp motion perpendicular to the rope between each pair of sheaves; this parameter is experimental\\ \hline + regularizationForce & Real & & 0.1 & small regularization force [SI:N] in order to avoid large compressive forces; this regularization force can either be $<0$ (using a linear tension/compression spring model) or $>0$, which restricts forces in the rope to be always $\ge -F_{reg}$. Note that smaller forces lead to problems in implicit integrators and smaller time steps. For explicit integrators, this force can be chosen close to zero.\\ \hline referenceLength & Real & & 0. & reference length for computation of roped force\\ \hline sheavesAxes & Vector3DList & & [] & list of local vectors axes of sheaves; vectors refer to rigid body markers given in list of markerNumbers; first and last axes are ignored, as they represent the attachment of the rope ends\\ \hline sheavesRadii & Vector & & [] & radius for each sheave, related to list of markerNumbers and list of sheaveAxes; first and last radii must always be zero.\\ \hline @@ -8186,6 +8189,7 @@ \rowTable{dampingPerLength}{$DA$}{} \rowTable{dampingTorsional}{$DT$}{} \rowTable{dampingShear}{$DS$}{} +\rowTable{regularizationForce}{$F_{reg}$}{} \rowTable{referenceLength}{$L_{ref}$}{} \rowTable{sheavesAxes}{$\lv_a = [\LU{m0}{\av_0},\, \LU{m1}{\av_1},\, \ldots ] in [\Rcal^{3}, ...]$}{} \rowTable{sheavesRadii}{$\lv_r = [r_0,\, r_1,\, \ldots]\tp \in \Rcal^{n}$}{} @@ -8312,10 +8316,21 @@ \dot L_0 = f_0 \cdot \dot q_{m_{c0}} + f_1 \cdot \dot q_{m_{c1}}, \quad \ee while we set $L_0 = L_{ref}$ and $\dot L_0=0$ otherwise. - The force in the reeving system (assumed to be constant all over the rope) reads + The linear force in the reeving system (assumed to be constant all over the rope) is computed as + \be + F_{lin} = (L-L_{0}) \frac{EA}{L_0} + (\dot L - \dot L_0)\frac{DA}{L_0} + \ee + The rope force is computed from \be - F = (L-L_{0}) \frac{EA}{L_0} + (\dot L - \dot L_0)\frac{DA}{L_0} + F = \begin{cases} F_{lin} \quad \mathrm{if} \quad F_{lin} > 0 \\ + F_{reg} \cdot \mathrm{tanh}(F_{lin}/F_{reg})\quad \mathrm{else} + \end{cases} \ee + Which allows small compressive forces $F_{reg}$. + In case that $F_{reg} < 0$, compressive forces are not regularized (linear spring). + The case $F_{reg} = 0$ will be used in future only in combination with a data node, + which allows switching similar as in friction and contact elements. + Note that in case of $L_0=0$, the term $\frac{1}{L_0}$ is replaced by $1000$. However, this case must be avoided by the user by choosing appropriate parameters for the system. @@ -9516,7 +9531,7 @@ sims=exu.SimulationSettings() sims.timeIntegration.generalizedAlpha.spectralRadius=0.7 - exu.SolveDynamic(mbs, sims) + mbs.SolveDynamic(sims) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Position)[0] @@ -9735,7 +9750,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Displacement)[0] @@ -10152,7 +10167,7 @@ sims=exu.SimulationSettings() solverType = exu.DynamicSolverType.RK44 - exu.SolveDynamic(mbs, solverType=solverType, simulationSettings=sims) + mbs.SolveDynamic(solverType=solverType, simulationSettings=sims) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nODE1, exu.OutputVariableType.Coordinates)[0] @@ -10378,7 +10393,7 @@ \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/beltDriveReevingSystem.py}{\texttt{beltDriveReevingSystem.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/beltDrivesComparison.py}{\texttt{beltDrivesComparison.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/bicycleIftommBenchmark.py}{\texttt{bicycleIftommBenchmark.py}} (Examples/) -\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/CMSexampleCourse.py}{\texttt{CMSexampleCourse.py}} (Examples/) +\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Examples/) \item ... \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/abaqusImportTest.py}{\texttt{abaqusImportTest.py}} (TestModels/) @@ -10856,7 +10871,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) + mbs.SolveDynamic(solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass1, exu.OutputVariableType.Position)[0] @@ -11508,6 +11523,7 @@ \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addRevoluteJoint.py}{\texttt{addRevoluteJoint.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/interactiveTutorial.py}{\texttt{interactiveTutorial.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/pendulumVerify.py}{\texttt{pendulumVerify.py}} (Examples/) +\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ROSExampleMassPoint.py}{\texttt{ROSExampleMassPoint.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/solutionViewerTest.py}{\texttt{solutionViewerTest.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/SpringDamperMassUserFunction.py}{\texttt{SpringDamperMassUserFunction.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/springDamperTutorialNew.py}{\texttt{springDamperTutorialNew.py}} (Examples/) @@ -11515,7 +11531,6 @@ \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ANCFcantileverTestDyn.py}{\texttt{ANCFcantileverTestDyn.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ANCFcontactCircle.py}{\texttt{ANCFcontactCircle.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ANCFcontactCircle2.py}{\texttt{ANCFcontactCircle2.py}} (Examples/) -\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ANCFmovingRigidbody.py}{\texttt{ANCFmovingRigidbody.py}} (Examples/) \item ... \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/perf3DRigidBodies.py}{\texttt{perf3DRigidBodies.py}} (TestModels/) @@ -11707,7 +11722,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[2] @@ -12181,6 +12196,7 @@ % \noindent For examples on SensorKinematicTree see Relevant Examples and TestModels with weblink: \bi +\item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/serialRobotInverseKinematics.py}{\texttt{serialRobotInverseKinematics.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/serialRobotKinematicTreeDigging.py}{\texttt{serialRobotKinematicTreeDigging.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/stiffFlyballGovernorKT.py}{\texttt{stiffFlyballGovernorKT.py}} (Examples/) \item \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/kinematicTreeAndMBStest.py}{\texttt{kinematicTreeAndMBStest.py}} (TestModels/) @@ -12399,7 +12415,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() if False: from exudyn.plot import PlotSensor diff --git a/docs/theDoc/manual_interfaces.tex b/docs/theDoc/manual_interfaces.tex index 0c5121e4..ed0bf78c 100644 --- a/docs/theDoc/manual_interfaces.tex +++ b/docs/theDoc/manual_interfaces.tex @@ -359,9 +359,9 @@ \end{center} %++++++++++++++++++++ -\mysubsubsection{MainSystem Python extensions} -\label{sec:mainsystem:pythonExtensions} -This section represents [experimental] extensions to MainSystem, which are direct calls to Python functions, such as PlotSensor or SolveDynamic; these extensions allow a more intuitive interaction with the MainSystem class, see the following example. For activation, import \texttt{exudyn.mainSystemExtensions} or \texttt{exudyn.utilities} +\mysubsubsection{MainSystem extensions (create)} +\label{sec:mainsystem:pythonExtensionsCreate} +This section represents extensions to MainSystem, which are direct calls to Python functions; the 'create' extensions to simplify the creation of multibody systems, such as CreateMassPoint(...); these extensions allow a more intuitive interaction with the MainSystem class, see the following example. For activation, import \texttt{exudyn.mainSystemExtensions} or \texttt{exudyn.utilities} \pythonstyle \begin{lstlisting}[language=Python, firstnumber=1] @@ -374,16 +374,33 @@ # #create rigid body b1=mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, sideLengths=[0.1,0.1,1]), - referencePosition = [1,0,0], - gravity = [0,0,-9.81]) + referencePosition = [1,0,0], + gravity = [0,0,-9.81]) +\end{lstlisting} + +\input{MainSystemCreateExt.tex} + + +%++++++++++++++++++++ +\mysubsubsection{MainSystem extensions (general)} +\label{sec:mainsystem:pythonExtensions} +This section represents general extensions to MainSystem, which are direct calls to Python functions, such as PlotSensor or SolveDynamic; these extensions allow a more intuitive interaction with the MainSystem class, see the following example. For activation, import \texttt{exudyn.mainSystemExtensions} or \texttt{exudyn.utilities} + +\pythonstyle +\begin{lstlisting}[language=Python, firstnumber=1] + +#this example sketches the usage +#for complete examples see Examples/ or TestModels/ folders +#create some multibody system (mbs) first: +# ... +# +#compute system degree of freedom: +mbs.ComputeSystemDegreeOfFreedom(verbose=True) # -mbs.Assemble() #call solver function directly from mbs: -mbs.ComputeSystemDegreeOfFreedom() -simulationSettings = exu.SimulationSettings() -mbs.SolveDynamic(simulationSettings) +mbs.SolveDynamic(exu.SimulationSettings()) # -#plot sensor sBody0 directly from mbs: +#plot sensor directly from mbs: mbs.PlotSensor(...) \end{lstlisting} @@ -1039,6 +1056,8 @@ len(data) & return length of the Vector3DList, using len(data) where data is the Vector3DList\\ \hline data[index]= ... & set list item 'index' with data, write: data[index] = ...\\ \hline ... = data[index] & get copy of list item with 'index' as vector\\ \hline + \_\_copy\_\_() & copy method to be used for copy.copy(...); in fact does already deep copy\\ \hline + \_\_deepcopy\_\_() & deepcopy method to be used for copy.copy(...)\\ \hline \_\_repr\_\_() & return the string representation of the Vector3DList data, e.g.: print(data)\\ \hline \end{longtable} \end{center} @@ -1065,6 +1084,8 @@ len(data) & return length of the Vector2DList, using len(data) where data is the Vector2DList\\ \hline data[index]= ... & set list item 'index' with data, write: data[index] = ...\\ \hline ... = data[index] & get copy of list item with 'index' as vector\\ \hline + \_\_copy\_\_() & copy method to be used for copy.copy(...); in fact does already deep copy\\ \hline + \_\_deepcopy\_\_() & deepcopy method to be used for copy.copy(...)\\ \hline \_\_repr\_\_() & return the string representation of the Vector2DList data, e.g.: print(data)\\ \hline \end{longtable} \end{center} @@ -1088,6 +1109,8 @@ len(data) & return length of the Vector6DList, using len(data) where data is the Vector6DList\\ \hline data[index]= ... & set list item 'index' with data, write: data[index] = ...\\ \hline ... = data[index] & get copy of list item with 'index' as vector\\ \hline + \_\_copy\_\_() & copy method to be used for copy.copy(...); in fact does already deep copy\\ \hline + \_\_deepcopy\_\_() & deepcopy method to be used for copy.copy(...)\\ \hline \_\_repr\_\_() & return the string representation of the Vector6DList data, e.g.: print(data)\\ \hline \end{longtable} \end{center} diff --git a/docs/theDoc/pythonUtilitiesDescription.tex b/docs/theDoc/pythonUtilitiesDescription.tex index f5d007a7..1dcbe396 100644 --- a/docs/theDoc/pythonUtilitiesDescription.tex +++ b/docs/theDoc/pythonUtilitiesDescription.tex @@ -233,7 +233,18 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L90}{DiagonalMatrix}{}}}\label{sec:basicUtilities:DiagonalMatrix} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L84}{SmartRound2String}{}}}\label{sec:basicUtilities:SmartRound2String} +({\it x}, {\it prec}= 3) +\end{flushleft} +\setlength{\itemindent}{0.7cm} +\begin{itemize}[leftmargin=0.7cm] +\item[--] +{\bf function description}: round to max number of digits; may give more digits if this is shorter; using in general the format() with '.g' option, but keeping decimal point and using exponent where necessary +\vspace{12pt}\end{itemize} +% +\noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ +\begin{flushleft} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L99}{DiagonalMatrix}{}}}\label{sec:basicUtilities:DiagonalMatrix} ({\it rowsColumns}, {\it value}= 1) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -253,7 +264,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L104}{NormL2}{}}}\label{sec:basicUtilities:NormL2} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L113}{NormL2}{}}}\label{sec:basicUtilities:NormL2} ({\it vector}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -284,7 +295,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L113}{VSum}{}}}\label{sec:basicUtilities:VSum} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L122}{VSum}{}}}\label{sec:basicUtilities:VSum} ({\it vector}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -314,7 +325,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L122}{VAdd}{}}}\label{sec:basicUtilities:VAdd} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L131}{VAdd}{}}}\label{sec:basicUtilities:VAdd} ({\it v0}, {\it v1}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -345,7 +356,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L133}{VSub}{}}}\label{sec:basicUtilities:VSub} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L142}{VSub}{}}}\label{sec:basicUtilities:VSub} ({\it v0}, {\it v1}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -371,7 +382,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L144}{VMult}{}}}\label{sec:basicUtilities:VMult} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L153}{VMult}{}}}\label{sec:basicUtilities:VMult} ({\it v0}, {\it v1}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -386,7 +397,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L154}{ScalarMult}{}}}\label{sec:basicUtilities:ScalarMult} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L163}{ScalarMult}{}}}\label{sec:basicUtilities:ScalarMult} ({\it scalar}, {\it v}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -410,7 +421,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L163}{Normalize}{}}}\label{sec:basicUtilities:Normalize} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L172}{Normalize}{}}}\label{sec:basicUtilities:Normalize} ({\it v}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -435,7 +446,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L179}{Vec2Tilde}{}}}\label{sec:basicUtilities:Vec2Tilde} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L188}{Vec2Tilde}{}}}\label{sec:basicUtilities:Vec2Tilde} ({\it v}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -462,7 +473,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L186}{Tilde2Vec}{}}}\label{sec:basicUtilities:Tilde2Vec} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L195}{Tilde2Vec}{}}}\label{sec:basicUtilities:Tilde2Vec} ({\it m}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -477,7 +488,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L213}{GaussIntegrate}{}}}\label{sec:basicUtilities:GaussIntegrate} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L222}{GaussIntegrate}{}}}\label{sec:basicUtilities:GaussIntegrate} ({\it functionOfX}, {\it integrationOrder}, {\it a}, {\it b}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -499,7 +510,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L249}{LobattoIntegrate}{}}}\label{sec:basicUtilities:LobattoIntegrate} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/basicUtilities.py\#L258}{LobattoIntegrate}{}}}\label{sec:basicUtilities:LobattoIntegrate} ({\it functionOfX}, {\it integrationOrder}, {\it a}, {\it b}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -756,7 +767,7 @@ \item[]Notes: internal CSR matrix storage format contains 3 float numbers per row: [row, column, value], can be converted to scipy csr sparse matrices with function CSRtoScipySparseCSR(...) \ei \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L40}{CompressedRowSparseToDenseMatrix}{}}}\label{sec:FEM:CompressedRowSparseToDenseMatrix} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L43}{CompressedRowSparseToDenseMatrix}{}}}\label{sec:FEM:CompressedRowSparseToDenseMatrix} ({\it sparseData}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -771,7 +782,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L49}{MapSparseMatrixIndices}{}}}\label{sec:FEM:MapSparseMatrixIndices} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L52}{MapSparseMatrixIndices}{}}}\label{sec:FEM:MapSparseMatrixIndices} ({\it matrix}, {\it sorting}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -782,7 +793,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L57}{VectorDiadicUnitMatrix3D}{}}}\label{sec:FEM:VectorDiadicUnitMatrix3D} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L60}{VectorDiadicUnitMatrix3D}{}}}\label{sec:FEM:VectorDiadicUnitMatrix3D} ({\it v}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -793,7 +804,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L64}{CyclicCompareReversed}{}}}\label{sec:FEM:CyclicCompareReversed} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L67}{CyclicCompareReversed}{}}}\label{sec:FEM:CyclicCompareReversed} ({\it list1}, {\it list2}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -804,7 +815,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L73}{AddEntryToCompressedRowSparseArray}{}}}\label{sec:FEM:AddEntryToCompressedRowSparseArray} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L76}{AddEntryToCompressedRowSparseArray}{}}}\label{sec:FEM:AddEntryToCompressedRowSparseArray} ({\it sparseData}, {\it row}, {\it column}, {\it value}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -820,7 +831,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L91}{CSRtoRowsAndColumns}{}}}\label{sec:FEM:CSRtoRowsAndColumns} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L94}{CSRtoRowsAndColumns}{}}}\label{sec:FEM:CSRtoRowsAndColumns} ({\it sparseMatrixCSR}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -831,7 +842,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L97}{CSRtoScipySparseCSR}{}}}\label{sec:FEM:CSRtoScipySparseCSR} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L100}{CSRtoScipySparseCSR}{}}}\label{sec:FEM:CSRtoScipySparseCSR} ({\it sparseMatrixCSR}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -850,7 +861,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L105}{ScipySparseCSRtoCSR}{}}}\label{sec:FEM:ScipySparseCSRtoCSR} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L108}{ScipySparseCSRtoCSR}{}}}\label{sec:FEM:ScipySparseCSRtoCSR} ({\it scipyCSR}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -861,7 +872,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L113}{ResortIndicesOfCSRmatrix}{}}}\label{sec:FEM:ResortIndicesOfCSRmatrix} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L116}{ResortIndicesOfCSRmatrix}{}}}\label{sec:FEM:ResortIndicesOfCSRmatrix} ({\it mXXYYZZ}, {\it numberOfRows}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -877,7 +888,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L131}{ResortIndicesOfNGvector}{}}}\label{sec:FEM:ResortIndicesOfNGvector} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L134}{ResortIndicesOfNGvector}{}}}\label{sec:FEM:ResortIndicesOfNGvector} ({\it vXXYYZZ}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -888,7 +899,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L151}{ResortIndicesExudyn2NGvector}{}}}\label{sec:FEM:ResortIndicesExudyn2NGvector} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L154}{ResortIndicesExudyn2NGvector}{}}}\label{sec:FEM:ResortIndicesExudyn2NGvector} ({\it vXYZXYZ}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -899,7 +910,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L288}{ConvertHexToTrigs}{}}}\label{sec:FEM:ConvertHexToTrigs} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L291}{ConvertHexToTrigs}{}}}\label{sec:FEM:ConvertHexToTrigs} ({\it nodeNumbers}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -919,7 +930,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L299}{ConvertTetToTrigs}{}}}\label{sec:FEM:ConvertTetToTrigs} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L302}{ConvertTetToTrigs}{}}}\label{sec:FEM:ConvertTetToTrigs} ({\it nodeNumbers}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -932,7 +943,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L311}{ConvertDenseToCompressedRowMatrix}{}}}\label{sec:FEM:ConvertDenseToCompressedRowMatrix} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L314}{ConvertDenseToCompressedRowMatrix}{}}}\label{sec:FEM:ConvertDenseToCompressedRowMatrix} ({\it denseMatrix}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -943,7 +954,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L359}{ReadMatrixFromAnsysMMF}{}}}\label{sec:FEM:ReadMatrixFromAnsysMMF} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L362}{ReadMatrixFromAnsysMMF}{}}}\label{sec:FEM:ReadMatrixFromAnsysMMF} ({\it fileName}, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -991,7 +1002,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L400}{ReadMatrixDOFmappingVectorFromAnsysTxt}{}}}\label{sec:FEM:ReadMatrixDOFmappingVectorFromAnsysTxt} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L403}{ReadMatrixDOFmappingVectorFromAnsysTxt}{}}}\label{sec:FEM:ReadMatrixDOFmappingVectorFromAnsysTxt} ({\it fileName}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1008,7 +1019,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L456}{ReadNodalCoordinatesFromAnsysTxt}{}}}\label{sec:FEM:ReadNodalCoordinatesFromAnsysTxt} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L459}{ReadNodalCoordinatesFromAnsysTxt}{}}}\label{sec:FEM:ReadNodalCoordinatesFromAnsysTxt} ({\it fileName}, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1039,7 +1050,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L535}{ReadElementsFromAnsysTxt}{}}}\label{sec:FEM:ReadElementsFromAnsysTxt} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L538}{ReadElementsFromAnsysTxt}{}}}\label{sec:FEM:ReadElementsFromAnsysTxt} ({\it fileName}, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1070,7 +1081,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L958}{CMSObjectComputeNorm}{}}}\label{sec:FEM:CMSObjectComputeNorm} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L961}{CMSObjectComputeNorm}{}}}\label{sec:FEM:CMSObjectComputeNorm} ({\it mbs}, {\it objectNumber}, {\it outputVariableType}, {\it norm}= 'max', {\it nodeNumberList}= []) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1111,7 +1122,7 @@ \vspace{24pt}\end{itemize} % \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L642}{Strain2Stress}{}}}\label{sec:FEM:KirchhoffMaterial(MaterialBaseClass):Strain2Stress} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L645}{Strain2Stress}{}}}\label{sec:FEM:KirchhoffMaterial(MaterialBaseClass):Strain2Stress} ({\it self}, {\it strain}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1121,7 +1132,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L653}{StrainVector2StressVector}{}}}\label{sec:FEM:KirchhoffMaterial(MaterialBaseClass):StrainVector2StressVector} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L656}{StrainVector2StressVector}{}}}\label{sec:FEM:KirchhoffMaterial(MaterialBaseClass):StrainVector2StressVector} ({\it self}, {\it strainVector}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1131,7 +1142,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L657}{StrainVector2StressVector2D}{}}}\label{sec:FEM:KirchhoffMaterial(MaterialBaseClass):StrainVector2StressVector2D} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L660}{StrainVector2StressVector2D}{}}}\label{sec:FEM:KirchhoffMaterial(MaterialBaseClass):StrainVector2StressVector2D} ({\it self}, {\it strainVector2D}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1141,7 +1152,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L666}{LameParameters}{}}}\label{sec:FEM:KirchhoffMaterial(MaterialBaseClass):LameParameters} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L669}{LameParameters}{}}}\label{sec:FEM:KirchhoffMaterial(MaterialBaseClass):LameParameters} ({\it self}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1175,7 +1186,7 @@ this class holds all data for ObjectFFRF user functions \vspace{3pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L749}{\_\_init\_\_}{}}}\label{sec:FEM:ObjectFFRFinterface:__init__} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L752}{\_\_init\_\_}{}}}\label{sec:FEM:ObjectFFRFinterface:__init__} ({\it self}, {\it femInterface}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1191,7 +1202,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L794}{AddObjectFFRF}{}}}\label{sec:FEM:ObjectFFRFinterface:AddObjectFFRF} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L797}{AddObjectFFRF}{}}}\label{sec:FEM:ObjectFFRFinterface:AddObjectFFRF} ({\it self}, {\it exu}, {\it mbs}, {\it positionRef}= [0,0,0], {\it eulerParametersRef}= [1,0,0,0], {\it initialVelocity}= [0,0,0], {\it initialAngularVelocity}= [0,0,0], {\it gravity}= [0,0,0], {\it constrainRigidBodyMotion}= True, {\it massProportionalDamping}= 0, {\it stiffnessProportionalDamping}= 0, {\it color}= [0.1,0.9,0.1,1.]) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1215,7 +1226,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L873}{UFforce}{}}}\label{sec:FEM:ObjectFFRFinterface:UFforce} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L876}{UFforce}{}}}\label{sec:FEM:ObjectFFRFinterface:UFforce} ({\it self}, {\it exu}, {\it mbs}, {\it t}, {\it q}, {\it q\_t}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1225,7 +1236,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L919}{UFmassGenericODE2}{}}}\label{sec:FEM:ObjectFFRFinterface:UFmassGenericODE2} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L922}{UFmassGenericODE2}{}}}\label{sec:FEM:ObjectFFRFinterface:UFmassGenericODE2} ({\it self}, {\it exu}, {\it mbs}, {\it t}, {\it q}, {\it q\_t}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1246,7 +1257,7 @@ this class holds all data for ObjectFFRFreducedOrder user functions \vspace{3pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1030}{\_\_init\_\_}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:__init__} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1033}{\_\_init\_\_}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:__init__} ({\it self}, {\it femInterface}= None, {\it rigidBodyNodeType}= 'NodeType.RotationEulerParameters', {\it roundMassMatrix}= 1e-13, {\it roundStiffnessMatrix}= 1e-13) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1269,7 +1280,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1105}{SaveToFile}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:SaveToFile} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1108}{SaveToFile}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:SaveToFile} ({\it self}, {\it fileName}, {\it fileVersion}= 1) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1286,7 +1297,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1147}{LoadFromFile}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:LoadFromFile} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1156}{LoadFromFile}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:LoadFromFile} ({\it self}, {\it fileName}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1303,7 +1314,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1217}{AddObjectFFRFreducedOrderWithUserFunctions}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:AddObjectFFRFreducedOrderWithUserFunctions} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1226}{AddObjectFFRFreducedOrderWithUserFunctions}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:AddObjectFFRFreducedOrderWithUserFunctions} ({\it self}, {\it exu}, {\it mbs}, {\it positionRef}= [0,0,0], {\it initialVelocity}= [0,0,0], {\it rotationMatrixRef}= [], {\it initialAngularVelocity}= [0,0,0], {\it gravity}= [0,0,0], {\it UFforce}= 0, {\it UFmassMatrix}= 0, {\it massProportionalDamping}= 0, {\it stiffnessProportionalDamping}= 0, {\it color}= [0.1,0.9,0.1,1.], {\it eulerParametersRef}= []) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1337,7 +1348,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1370}{UFmassFFRFreducedOrder}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:UFmassFFRFreducedOrder} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1379}{UFmassFFRFreducedOrder}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:UFmassFFRFreducedOrder} ({\it self}, {\it exu}, {\it mbs}, {\it t}, {\it qReduced}, {\it qReduced\_t}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1347,7 +1358,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1421}{UFforceFFRFreducedOrder}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:UFforceFFRFreducedOrder} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1430}{UFforceFFRFreducedOrder}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:UFforceFFRFreducedOrder} ({\it self}, {\it exu}, {\it mbs}, {\it t}, {\it qReduced}, {\it qReduced\_t}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1357,7 +1368,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1504}{AddObjectFFRFreducedOrder}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:AddObjectFFRFreducedOrder} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1513}{AddObjectFFRFreducedOrder}{}}}\label{sec:FEM:ObjectFFRFreducedOrderInterface:AddObjectFFRFreducedOrder} ({\it self}, {\it mbs}, {\it positionRef}= [0,0,0], {\it initialVelocity}= [0,0,0], {\it rotationMatrixRef}= [], {\it initialAngularVelocity}= [0,0,0], {\it massProportionalDamping}= 0, {\it stiffnessProportionalDamping}= 0, {\it gravity}= [0,0,0], {\it color}= [0.1,0.9,0.1,1.]) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1412,7 +1423,7 @@ export to EXUDYN objects \vspace{3pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1555}{\_\_init\_\_}{}}}\label{sec:FEM:FEMinterface:__init__} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1564}{\_\_init\_\_}{}}}\label{sec:FEM:FEMinterface:__init__} ({\it self}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1435,7 +1446,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1580}{SaveToFile}{}}}\label{sec:FEM:FEMinterface:SaveToFile} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1589}{SaveToFile}{}}}\label{sec:FEM:FEMinterface:SaveToFile} ({\it self}, {\it fileName}, {\it fileVersion}= 13) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1452,7 +1463,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1610}{LoadFromFile}{}}}\label{sec:FEM:FEMinterface:LoadFromFile} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1625}{LoadFromFile}{}}}\label{sec:FEM:FEMinterface:LoadFromFile} ({\it self}, {\it fileName}, {\it forceVersion}= None) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1474,7 +1485,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1662}{ImportFromAbaqusInputFile}{}}}\label{sec:FEM:FEMinterface:ImportFromAbaqusInputFile} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1677}{ImportFromAbaqusInputFile}{}}}\label{sec:FEM:FEMinterface:ImportFromAbaqusInputFile} ({\it self}, {\it fileName}, {\it typeName}= 'Part', {\it name}= 'Part-1', {\it verbose}= False, {\it createSurfaceTrigs}= True, {\it surfaceTrigsAll}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1503,7 +1514,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1831}{ReadMassMatrixFromAbaqus}{}}}\label{sec:FEM:FEMinterface:ReadMassMatrixFromAbaqus} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1846}{ReadMassMatrixFromAbaqus}{}}}\label{sec:FEM:FEMinterface:ReadMassMatrixFromAbaqus} ({\it self}, {\it fileName}, {\it type}= 'SparseRowColumnValue') \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1521,7 +1532,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1837}{ReadStiffnessMatrixFromAbaqus}{}}}\label{sec:FEM:FEMinterface:ReadStiffnessMatrixFromAbaqus} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1852}{ReadStiffnessMatrixFromAbaqus}{}}}\label{sec:FEM:FEMinterface:ReadStiffnessMatrixFromAbaqus} ({\it self}, {\it fileName}, {\it type}= 'SparseRowColumnValue') \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1531,7 +1542,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1862}{ImportMeshFromNGsolve}{}}}\label{sec:FEM:FEMinterface:ImportMeshFromNGsolve} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L1877}{ImportMeshFromNGsolve}{}}}\label{sec:FEM:FEMinterface:ImportMeshFromNGsolve} ({\it self}, {\it mesh}, {\it density}, {\it youngsModulus}, {\it poissonsRatio}, {\it verbose}= False, {\it computeEigenmodes}= False, {\it meshOrder}= 1, {\it **kwargs}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1554,7 +1565,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2047}{ComputeEigenmodesNGsolve}{}}}\label{sec:FEM:FEMinterface:ComputeEigenmodesNGsolve} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2062}{ComputeEigenmodesNGsolve}{}}}\label{sec:FEM:FEMinterface:ComputeEigenmodesNGsolve} ({\it self}, {\it bfM}, {\it bfK}, {\it nModes}, {\it maxEigensolveIterations}= 40, {\it excludeRigidBodyModes}= 0, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1574,7 +1585,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2089}{ComputeHurtyCraigBamptonModesNGsolve}{}}}\label{sec:FEM:FEMinterface:ComputeHurtyCraigBamptonModesNGsolve} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2104}{ComputeHurtyCraigBamptonModesNGsolve}{}}}\label{sec:FEM:FEMinterface:ComputeHurtyCraigBamptonModesNGsolve} ({\it self}, {\it bfM}, {\it bfK}, {\it boundaryNodesList}, {\it nEigenModes}, {\it maxEigensolveIterations}= 40, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1596,7 +1607,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2230}{ComputePostProcessingModesNGsolve}{}}}\label{sec:FEM:FEMinterface:ComputePostProcessingModesNGsolve} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2245}{ComputePostProcessingModesNGsolve}{}}}\label{sec:FEM:FEMinterface:ComputePostProcessingModesNGsolve} ({\it self}, {\it fes}, {\it material}= 0, {\it outputVariableType}= 'OutputVariableType.StressLocal', {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1616,7 +1627,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2305}{GetMassMatrix}{}}}\label{sec:FEM:FEMinterface:GetMassMatrix} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2320}{GetMassMatrix}{}}}\label{sec:FEM:FEMinterface:GetMassMatrix} ({\it self}, {\it sparse}= True) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1626,7 +1637,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2312}{GetStiffnessMatrix}{}}}\label{sec:FEM:FEMinterface:GetStiffnessMatrix} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2327}{GetStiffnessMatrix}{}}}\label{sec:FEM:FEMinterface:GetStiffnessMatrix} ({\it self}, {\it sparse}= True) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1636,7 +1647,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2319}{NumberOfNodes}{}}}\label{sec:FEM:FEMinterface:NumberOfNodes} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2334}{NumberOfNodes}{}}}\label{sec:FEM:FEMinterface:NumberOfNodes} ({\it self}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1646,7 +1657,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2331}{GetNodePositionsAsArray}{}}}\label{sec:FEM:FEMinterface:GetNodePositionsAsArray} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2346}{GetNodePositionsAsArray}{}}}\label{sec:FEM:FEMinterface:GetNodePositionsAsArray} ({\it self}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1661,7 +1672,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2339}{GetNodePositionsMean}{}}}\label{sec:FEM:FEMinterface:GetNodePositionsMean} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2354}{GetNodePositionsMean}{}}}\label{sec:FEM:FEMinterface:GetNodePositionsMean} ({\it self}, {\it nodeNumberList}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1671,7 +1682,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2346}{NumberOfCoordinates}{}}}\label{sec:FEM:FEMinterface:NumberOfCoordinates} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2361}{NumberOfCoordinates}{}}}\label{sec:FEM:FEMinterface:NumberOfCoordinates} ({\it self}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1681,7 +1692,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2354}{GetNodeAtPoint}{}}}\label{sec:FEM:FEMinterface:GetNodeAtPoint} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2369}{GetNodeAtPoint}{}}}\label{sec:FEM:FEMinterface:GetNodeAtPoint} ({\it self}, {\it point}, {\it tolerance}= 1e-5, {\it raiseException}= True) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1696,7 +1707,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2370}{GetNodesInPlane}{}}}\label{sec:FEM:FEMinterface:GetNodesInPlane} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2385}{GetNodesInPlane}{}}}\label{sec:FEM:FEMinterface:GetNodesInPlane} ({\it self}, {\it point}, {\it normal}, {\it tolerance}= 1e-5) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1711,7 +1722,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2386}{GetNodesInCube}{}}}\label{sec:FEM:FEMinterface:GetNodesInCube} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2401}{GetNodesInCube}{}}}\label{sec:FEM:FEMinterface:GetNodesInCube} ({\it self}, {\it pMin}, {\it pMax}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1724,7 +1735,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2401}{GetNodesOnLine}{}}}\label{sec:FEM:FEMinterface:GetNodesOnLine} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2416}{GetNodesOnLine}{}}}\label{sec:FEM:FEMinterface:GetNodesOnLine} ({\it self}, {\it p1}, {\it p2}, {\it tolerance}= 1e-5) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1734,7 +1745,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2407}{GetNodesOnCylinder}{}}}\label{sec:FEM:FEMinterface:GetNodesOnCylinder} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2422}{GetNodesOnCylinder}{}}}\label{sec:FEM:FEMinterface:GetNodesOnCylinder} ({\it self}, {\it p1}, {\it p2}, {\it radius}, {\it tolerance}= 1e-5) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1750,7 +1761,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2435}{GetNodesOnCircle}{}}}\label{sec:FEM:FEMinterface:GetNodesOnCircle} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2450}{GetNodesOnCircle}{}}}\label{sec:FEM:FEMinterface:GetNodesOnCircle} ({\it self}, {\it point}, {\it normal}, {\it r}, {\it tolerance}= 1e-5) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1766,7 +1777,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2455}{GetNodeWeightsFromSurfaceAreas}{}}}\label{sec:FEM:FEMinterface:GetNodeWeightsFromSurfaceAreas} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2470}{GetNodeWeightsFromSurfaceAreas}{}}}\label{sec:FEM:FEMinterface:GetNodeWeightsFromSurfaceAreas} ({\it self}, {\it nodeList}, {\it normalizeWeights}= True) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1788,7 +1799,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2507}{GetSurfaceTriangles}{}}}\label{sec:FEM:FEMinterface:GetSurfaceTriangles} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2522}{GetSurfaceTriangles}{}}}\label{sec:FEM:FEMinterface:GetSurfaceTriangles} ({\it self}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1798,7 +1809,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2517}{VolumeToSurfaceElements}{}}}\label{sec:FEM:FEMinterface:VolumeToSurfaceElements} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2532}{VolumeToSurfaceElements}{}}}\label{sec:FEM:FEMinterface:VolumeToSurfaceElements} ({\it self}, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1814,7 +1825,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2646}{GetGyroscopicMatrix}{}}}\label{sec:FEM:FEMinterface:GetGyroscopicMatrix} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2661}{GetGyroscopicMatrix}{}}}\label{sec:FEM:FEMinterface:GetGyroscopicMatrix} ({\it self}, {\it rotationAxis}= 2, {\it sparse}= True) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1824,7 +1835,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2675}{ScaleMassMatrix}{}}}\label{sec:FEM:FEMinterface:ScaleMassMatrix} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2690}{ScaleMassMatrix}{}}}\label{sec:FEM:FEMinterface:ScaleMassMatrix} ({\it self}, {\it factor}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1834,7 +1845,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2679}{ScaleStiffnessMatrix}{}}}\label{sec:FEM:FEMinterface:ScaleStiffnessMatrix} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2694}{ScaleStiffnessMatrix}{}}}\label{sec:FEM:FEMinterface:ScaleStiffnessMatrix} ({\it self}, {\it factor}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1844,7 +1855,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2685}{AddElasticSupportAtNode}{}}}\label{sec:FEM:FEMinterface:AddElasticSupportAtNode} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2700}{AddElasticSupportAtNode}{}}}\label{sec:FEM:FEMinterface:AddElasticSupportAtNode} ({\it self}, {\it nodeNumber}, {\it springStiffness}= [1e8,1e8,1e8]) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1859,7 +1870,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2701}{AddNodeMass}{}}}\label{sec:FEM:FEMinterface:AddNodeMass} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2716}{AddNodeMass}{}}}\label{sec:FEM:FEMinterface:AddNodeMass} ({\it self}, {\it nodeNumber}, {\it addedMass}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1869,7 +1880,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2721}{CreateLinearFEMObjectGenericODE2}{}}}\label{sec:FEM:FEMinterface:CreateLinearFEMObjectGenericODE2} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2736}{CreateLinearFEMObjectGenericODE2}{}}}\label{sec:FEM:FEMinterface:CreateLinearFEMObjectGenericODE2} ({\it self}, {\it mbs}, {\it color}= [0.9,0.4,0.4,1.]) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1881,7 +1892,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2764}{CreateNonlinearFEMObjectGenericODE2NGsolve}{}}}\label{sec:FEM:FEMinterface:CreateNonlinearFEMObjectGenericODE2NGsolve} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2779}{CreateNonlinearFEMObjectGenericODE2NGsolve}{}}}\label{sec:FEM:FEMinterface:CreateNonlinearFEMObjectGenericODE2NGsolve} ({\it self}, {\it mbs}, {\it mesh}, {\it density}, {\it youngsModulus}, {\it poissonsRatio}, {\it meshOrder}= 1, {\it color}= [0.9,0.4,0.4,1.]) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1912,7 +1923,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2870}{ComputeEigenmodes}{}}}\label{sec:FEM:FEMinterface:ComputeEigenmodes} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2885}{ComputeEigenmodes}{}}}\label{sec:FEM:FEMinterface:ComputeEigenmodes} ({\it self}, {\it nModes}, {\it excludeRigidBodyModes}= 0, {\it useSparseSolver}= True) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1931,7 +1942,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2914}{ComputeEigenModesWithBoundaryNodes}{}}}\label{sec:FEM:FEMinterface:ComputeEigenModesWithBoundaryNodes} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2929}{ComputeEigenModesWithBoundaryNodes}{}}}\label{sec:FEM:FEMinterface:ComputeEigenModesWithBoundaryNodes} ({\it self}, {\it boundaryNodes}, {\it nEigenModes}, {\it useSparseSolver}= True) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1949,7 +1960,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L2999}{ComputeHurtyCraigBamptonModes}{}}}\label{sec:FEM:FEMinterface:ComputeHurtyCraigBamptonModes} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3014}{ComputeHurtyCraigBamptonModes}{}}}\label{sec:FEM:FEMinterface:ComputeHurtyCraigBamptonModes} ({\it self}, {\it boundaryNodesList}, {\it nEigenModes}, {\it useSparseSolver}= True, {\it computationMode}= HCBstaticModeSelection.RBE2, {\it boundaryNodesWeights}= [], {\it excludeRigidBodyMotion}= True, {\it RBE3secondMomentOfAreaWeighting}= True, {\it verboseMode}= False, {\it timerTreshold}= 20000) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1974,7 +1985,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3407}{GetEigenFrequenciesHz}{}}}\label{sec:FEM:FEMinterface:GetEigenFrequenciesHz} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3422}{GetEigenFrequenciesHz}{}}}\label{sec:FEM:FEMinterface:GetEigenFrequenciesHz} ({\it self}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -1984,7 +1995,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3467}{ComputePostProcessingModes}{}}}\label{sec:FEM:FEMinterface:ComputePostProcessingModes} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3482}{ComputePostProcessingModes}{}}}\label{sec:FEM:FEMinterface:ComputePostProcessingModes} ({\it self}, {\it material}= 0, {\it outputVariableType}= 'OutputVariableType.StressLocal', {\it numberOfThreads}= 1) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -2003,7 +2014,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3585}{ComputeCampbellDiagram}{}}}\label{sec:FEM:FEMinterface:ComputeCampbellDiagram} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3600}{ComputeCampbellDiagram}{}}}\label{sec:FEM:FEMinterface:ComputeCampbellDiagram} ({\it self}, {\it terminalFrequency}, {\it nEigenfrequencies}= 10, {\it frequencySteps}= 25, {\it rotationAxis}= 2, {\it plotDiagram}= False, {\it verbose}= False, {\it useCorotationalFrame}= False, {\it useSparseSolver}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -2039,7 +2050,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3770}{CheckConsistency}{}}}\label{sec:FEM:FEMinterface:CheckConsistency} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3785}{CheckConsistency}{}}}\label{sec:FEM:FEMinterface:CheckConsistency} ({\it self}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -2049,7 +2060,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3794}{ReadMassMatrixFromAnsys}{}}}\label{sec:FEM:FEMinterface:ReadMassMatrixFromAnsys} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3809}{ReadMassMatrixFromAnsys}{}}}\label{sec:FEM:FEMinterface:ReadMassMatrixFromAnsys} ({\it self}, {\it fileName}, {\it dofMappingVectorFile}, {\it sparse}= True, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -2059,7 +2070,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3808}{ReadStiffnessMatrixFromAnsys}{}}}\label{sec:FEM:FEMinterface:ReadStiffnessMatrixFromAnsys} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3823}{ReadStiffnessMatrixFromAnsys}{}}}\label{sec:FEM:FEMinterface:ReadStiffnessMatrixFromAnsys} ({\it self}, {\it fileName}, {\it dofMappingVectorFile}, {\it sparse}= True, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -2069,7 +2080,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3822}{ReadNodalCoordinatesFromAnsys}{}}}\label{sec:FEM:FEMinterface:ReadNodalCoordinatesFromAnsys} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3837}{ReadNodalCoordinatesFromAnsys}{}}}\label{sec:FEM:FEMinterface:ReadNodalCoordinatesFromAnsys} ({\it self}, {\it fileName}, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -2079,7 +2090,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3827}{ReadElementsFromAnsys}{}}}\label{sec:FEM:FEMinterface:ReadElementsFromAnsys} +\noindent \textcolor{steelblue}{def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/FEM.py\#L3842}{ReadElementsFromAnsys}{}}}\label{sec:FEM:FEMinterface:ReadElementsFromAnsys} ({\it self}, {\it fileName}, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -2495,8 +2506,9 @@ \bi \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/NGsolveCraigBampton.py}{\texttt{NGsolveCraigBampton.py}} (Ex), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rigid3Dexample.py}{\texttt{rigid3Dexample.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/genericJointUserFunctionTest.py}{\texttt{genericJointUserFunctionTest.py}} (TM), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/rigidBodyCOMtest.py}{\texttt{rigidBodyCOMtest.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/rr.py}{\texttt{rr.py}} (Ex), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/genericJointUserFunctionTest.py}{\texttt{genericJointUserFunctionTest.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/rigidBodyCOMtest.py}{\texttt{rigidBodyCOMtest.py}} (TM), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/sphericalJointTest.py}{\texttt{sphericalJointTest.py}} (TM) \ei @@ -2575,7 +2587,7 @@ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addRevoluteJoint.py}{\texttt{addRevoluteJoint.py}} (Ex), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/beltDrivesComparison.py}{\texttt{beltDrivesComparison.py}} (Ex), \\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/bicycleIftommBenchmark.py}{\texttt{bicycleIftommBenchmark.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/craneReevingSystem.py}{\texttt{craneReevingSystem.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), ... , \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/bricardMechanism.py}{\texttt{bricardMechanism.py}} (TM), @@ -2640,10 +2652,10 @@ \noindent For examples on GraphicsDataSphere see Relevant Examples (Ex) and TestModels (TM) with weblink to github: \bi \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/bicycleIftommBenchmark.py}{\texttt{bicycleIftommBenchmark.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/graphicsDataExample.py}{\texttt{graphicsDataExample.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/humanRobotInteraction.py}{\texttt{humanRobotInteraction.py}} (Ex), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/lugreFrictionTest.py}{\texttt{lugreFrictionTest.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/nMassOscillatorEigenmodes.py}{\texttt{nMassOscillatorEigenmodes.py}} (Ex), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/humanRobotInteraction.py}{\texttt{humanRobotInteraction.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/lugreFrictionTest.py}{\texttt{lugreFrictionTest.py}} (Ex), ... , \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/connectorGravityTest.py}{\texttt{connectorGravityTest.py}} (TM), @@ -2808,6 +2820,7 @@ \noindent For examples on GraphicsDataFromSTLfile see Relevant Examples (Ex) and TestModels (TM) with weblink to github: \bi \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/humanRobotInteraction.py}{\texttt{humanRobotInteraction.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ROSExampleTurtle.py}{\texttt{ROSExampleTurtle.py}} (Ex), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/stlFileImport.py}{\texttt{stlFileImport.py}} (Ex) \ei @@ -3137,10 +3150,10 @@ \noindent For examples on GraphicsDataCheckerBoard see Relevant Examples (Ex) and TestModels (TM) with weblink to github: \bi \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/bicycleIftommBenchmark.py}{\texttt{bicycleIftommBenchmark.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/craneReevingSystem.py}{\texttt{craneReevingSystem.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/finiteSegmentMethod.py}{\texttt{finiteSegmentMethod.py}} (Ex), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/flexiblePendulumANCF.py}{\texttt{flexiblePendulumANCF.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/graphicsDataExample.py}{\texttt{graphicsDataExample.py}} (Ex), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/finiteSegmentMethod.py}{\texttt{finiteSegmentMethod.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/flexiblePendulumANCF.py}{\texttt{flexiblePendulumANCF.py}} (Ex), ... , \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/ANCFoutputTest.py}{\texttt{ANCFoutputTest.py}} (TM), @@ -3311,7 +3324,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/GUI.py\#L640}{EditDictionaryWithTypeInfo}{}}}\label{sec:GUI:EditDictionaryWithTypeInfo} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/GUI.py\#L642}{EditDictionaryWithTypeInfo}{}}}\label{sec:GUI:EditDictionaryWithTypeInfo} ({\it settingsStructure}, {\it exu}= None, {\it dictionaryName}= 'edit') \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4637,7 +4650,7 @@ \item[]Notes: For a list of plot colors useful for matplotlib, see also advancedUtilities.PlotLineCode(...) \ei \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L55}{ParseOutputFileHeader}{}}}\label{sec:plot:ParseOutputFileHeader} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L56}{ParseOutputFileHeader}{}}}\label{sec:plot:ParseOutputFileHeader} ({\it lines}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4650,7 +4663,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L153}{PlotSensorDefaults}{}}}\label{sec:plot:PlotSensorDefaults} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L154}{PlotSensorDefaults}{}}}\label{sec:plot:PlotSensorDefaults} () \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4678,7 +4691,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L227}{PlotSensor}{}}}({\it mbs}, {\it sensorNumbers}= [], {\it components}= 0, {\it xLabel}= 'time (s)', {\it yLabel}= None, {\it labels}= [], {\it colorCodeOffset}= 0, {\it newFigure}= True, {\it closeAll}= False, {\it componentsX}= [], {\it title}= '', {\it figureName}= '', {\it fontSize}= 16, {\it colors}= [], {\it lineStyles}= [], {\it lineWidths}= [], {\it markerStyles}= [], {\it markerSizes}= [], {\it markerDensity}= 0.08, {\it rangeX}= [], {\it rangeY}= [], {\it majorTicksX}= 10, {\it majorTicksY}= 10, {\it offsets}= [], {\it factors}= [], {\it subPlot}= [], {\it sizeInches}= [6.4,4.8], {\it fileName}= '', {\it useXYZcomponents}= True, {\it **kwargs}) +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L230}{PlotSensor}{}}}({\it mbs}, {\it sensorNumbers}= [], {\it components}= 0, {\it xLabel}= 'time (s)', {\it yLabel}= None, {\it labels}= [], {\it colorCodeOffset}= 0, {\it newFigure}= True, {\it closeAll}= False, {\it componentsX}= [], {\it title}= '', {\it figureName}= '', {\it fontSize}= 16, {\it colors}= [], {\it lineStyles}= [], {\it lineWidths}= [], {\it markerStyles}= [], {\it markerSizes}= [], {\it markerDensity}= 0.08, {\it rangeX}= [], {\it rangeY}= [], {\it majorTicksX}= 10, {\it majorTicksY}= 10, {\it offsets}= [], {\it factors}= [], {\it subPlot}= [], {\it sizeInches}= [6.4,4.8], {\it fileName}= '', {\it useXYZcomponents}= True, {\it **kwargs}) \end{flushleft} \bi \item \mybold{NOTE}: this function is directly available in MainSystem (mbs); it should be directly called as mbs.PlotSensor(...). For description of the interface, see the MainSystem Python extensions, \refSection{sec:mainsystemextensions:PlotSensor}. @@ -4686,7 +4699,7 @@ \ei \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L677}{PlotFFT}{}}}\label{sec:plot:PlotFFT} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L685}{PlotFFT}{}}}\label{sec:plot:PlotFFT} ({\it frequency}, {\it data}, {\it xLabel}= 'frequency', {\it yLabel}= 'magnitude', {\it label}= '', {\it freqStart}= 0, {\it freqEnd}= -1, {\it logScaleX}= True, {\it logScaleY}= True, {\it majorGrid}= True, {\it minorGrid}= True) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4712,10 +4725,17 @@ \item[--] {\bf output}: creates plot and returns plot (plt) handle \vspace{12pt}\end{itemize} +% +% +\noindent For examples on PlotFFT see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/nMassOscillatorEigenmodes.py}{\texttt{nMassOscillatorEigenmodes.py}} (Ex) +\ei + % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L727}{FileStripSpaces}{}}}\label{sec:plot:FileStripSpaces} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L735}{FileStripSpaces}{}}}\label{sec:plot:FileStripSpaces} ({\it filename}, {\it outputFilename}, {\it fileCommentChar}= '', {\it removeDoubleChars}= '') \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4737,7 +4757,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L754}{DataArrayFromSensorList}{}}}\label{sec:plot:DataArrayFromSensorList} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L762}{DataArrayFromSensorList}{}}}\label{sec:plot:DataArrayFromSensorList} ({\it mbs}, {\it sensorNumbers}, {\it positionList}= [], {\it time}= '') \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4767,7 +4787,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L781}{LoadImage}{}}}\label{sec:plot:LoadImage} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L789}{LoadImage}{}}}\label{sec:plot:LoadImage} ({\it fileName}, {\it trianglesAsLines}= True, {\it verbose}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4790,7 +4810,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L854}{PlotImage}{}}}\label{sec:plot:PlotImage} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/plot.py\#L862}{PlotImage}{}}}\label{sec:plot:PlotImage} ({\it imageData}, {\it HT}= np.eye(4), {\it axesEqual}= True, {\it plot3D}= False, {\it lineWidths}= 1, {\it lineStyles}= '-', {\it triangleEdgeColors}= 'black', {\it triangleEdgeWidths}= 0.5, {\it removeAxes}= True, {\it orthogonalProjection}= True, {\it title}= '', {\it figureName}= '', {\it fileName}= '', {\it fontSize}= 16, {\it closeAll}= False, {\it azim}= 0., {\it elev}= 0.) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4839,7 +4859,7 @@ \item[]Notes: Parallel processing, which requires multiprocessing library, can lead to considerable speedup (measured speedup factor > 50 on 80 core machine). The progess bar during multiprocessing requires the library tqdm. \ei \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L26}{GetVersionPlatformString}{}}}\label{sec:processing:GetVersionPlatformString} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L27}{GetVersionPlatformString}{}}}\label{sec:processing:GetVersionPlatformString} () \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4857,7 +4877,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L144}{ProcessParameterList}{}}}\label{sec:processing:ProcessParameterList} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L162}{ProcessParameterList}{}}}\label{sec:processing:ProcessParameterList} ({\it parameterFunction}, {\it parameterList}, {\it useMultiProcessing}, {\it clusterHostNames}= [], {\it **kwargs}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4899,7 +4919,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L374}{ParameterVariation}{}}}\label{sec:processing:ParameterVariation} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L392}{ParameterVariation}{}}}\label{sec:processing:ParameterVariation} ({\it parameterFunction}, {\it parameters}, {\it useLogSpace}= False, {\it debugMode}= False, {\it addComputationIndex}= False, {\it useMultiProcessing}= False, {\it showProgress}= True, {\it parameterFunctionData}= {}, {\it clusterHostNames}= [], {\it numberOfThreads}= None, {\it resultsFile}= '', {\it **kwargs}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -4957,8 +4977,8 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L524}{GeneticOptimization}{}}}\label{sec:processing:GeneticOptimization} -({\it objectiveFunction}, {\it parameters}, {\it populationSize}= 100, {\it numberOfGenerations}= 10, {\it elitistRatio}= 0.1, {\it crossoverProbability}= 0.25, {\it crossoverAmount}= 0.5, {\it rangeReductionFactor}= 0.7, {\it distanceFactor}= 0.1, {\it childDistribution}= "uniform", {\it distanceFactorGenerations}= -1, {\it debugMode}= False, {\it addComputationIndex}= False, {\it useMultiProcessing}= False, {\it showProgress}= True, {\it clusterHostNames}= [], {\it **kwargs}) +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L543}{GeneticOptimization}{}}}\label{sec:processing:GeneticOptimization} +({\it objectiveFunction}, {\it parameters}, {\it populationSize}= 100, {\it numberOfGenerations}= 10, {\it elitistRatio}= 0.1, {\it crossoverProbability}= 0.25, {\it crossoverAmount}= 0.5, {\it rangeReductionFactor}= 0.7, {\it distanceFactor}= 0.1, {\it childDistribution}= "uniform", {\it distanceFactorGenerations}= -1, {\it debugMode}= False, {\it addComputationIndex}= False, {\it useMultiProcessing}= False, {\it showProgress}= True, {\it clusterHostNames}= [], {\it parameterFunctionData}= {}, {\it **kwargs}) \end{flushleft} \setlength{\itemindent}{0.7cm} \begin{itemize}[leftmargin=0.7cm] @@ -4980,6 +5000,7 @@ \item[]{\it distanceFactor}: children only survive at a certain relative distance of the current range; must be small enough (< 0.5) to allow individuals to survive; ignored if distanceFactor=0; as a rule of thumb, the distanceFactor should be zero in case that there is only one significant minimum, but if there are many local minima, the distanceFactor should be used to search at several different local minima \item[]{\it childDistribution}: string with name of distribution for producing childs: "normal" (Gaussian, with sigma defining range), "uniform" (exactly in range of childs) \item[]{\it distanceFactorGenerations}: number of generations (populations) at which the distance factor is active; the distance factor is used to find several local minima; finally, convergence is speed up without the distance factor +\item[]{\it parameterFunctionData}: dictionary containing additional data passed to the objectiveFunction inside the parameters with dict key 'functionData'; use this e.g. for passing solver parameters or other settings \item[]{\it randomizerInitialization}: initialize randomizer at beginning of optimization in order to get reproducible results, provide any integer in the range between 0 and 2**32 - 1 (default: no initialization) \item[]{\it debugMode}: if True, additional print out is done \item[]{\it addComputationIndex}: if True, key 'computationIndex' is added to every parameterDict in the call to parameterFunction(), which allows to generate independent output files for every parameter, etc. @@ -5015,13 +5036,13 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L888}{Minimize}{}}}\label{sec:processing:Minimize} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L904}{Minimize}{}}}\label{sec:processing:Minimize} ({\it objectiveFunction}, {\it parameters}, {\it initialGuess}= [], {\it method}= 'Nelder-Mead', {\it tol}= 1e-4, {\it options}= {}, {\it enforceBounds}= True, {\it debugMode}= False, {\it showProgress}= True, {\it addComputationIndex}= False, {\it storeFunctionValues}= True, {\it **kwargs}) \end{flushleft} \setlength{\itemindent}{0.7cm} \begin{itemize}[leftmargin=0.7cm] \item[--] -{\bf function description}: Compute minimum of given objectiveFunction. This function is based on scipy.optimize.minimize() and it provides the same interface as GeneticOptimization(). +{\bf function description}: Compute minimum of given objectiveFunction. This function is based on scipy.optimize.minimize() and it provides the same interface as GeneticOptimization(). Note that in special cases, you should copy this function and adapt to your needs. \item[--] {\bf input}: \vspace{-6pt} \begin{itemize}[leftmargin=1.2cm] @@ -5031,19 +5052,15 @@ \item[]{\it storeFunctionValues}: if True, objectiveFunction values are computed (additional costs!) and stored in every iteration into valueList \item[]{\it initialGuess}: initial guess. Array of real elements of size (n,), where 'n' is the number of independent variables. If not provided by the user, initialGuess is computed from bounds provided in parameterDict. \item[]{\it method}: solver that should be used, e.g. 'Nelder-Mead', 'Powell', 'CG' etc. A list of available solvers can be found in the documentation of scipy.optimize.minimize(). -\item[]{\it tol}: tolerance for termination. When tol is specified, the selected minimization algorithm sets some relevant solver-specific tolerance(s) equal to tol. For detailed control, use solver-specific options using the 'options' variable. +\item[]{\it tol}: tolerance for termination. When tol is specified, the selected minimization algorithm sets some relevant solver-specific tolerance(s) equal to tol (but this is usually not the tolerance for loss or parameters1). For detailed control, use solver-specific options using the 'options' variable. \item[]{\it options}: dictionary of solver options. Can be used to set absolute and relative error tolerances. Detailed information can be found in the documentation of scipy.optimize.minimize(). \item[]{\it enforceBounds}: if True, ensures that only parameters within the bounds specified in ParameterDict are used for minimization; this may help to avoid, e.g., negative values, but may lead to non-convergence \item[]{\it verbose}: prints solver information into console, e.g. number of iterations 'nit', number of funcion evaluations 'nfev', status etc. -\item[]{\it showProgress}: if True, shows for every iteration objective function value, number of current iteration, time needed for current iteration, maximum number of iterations until solver option 'maxiter' is reached. +\item[]{\it showProgress}: if True, shows for every iteration objective function value, current iteration number, time needed for current iteration, maximum number of iterations and loss (current value of objective function) \item[]{\it addComputationIndex}: if True, key 'computationIndex' is added for consistency reasons with GeneticOptimizaiton to every parameterDict in the call to parameterFunction(); however, the value is always 0, because no multi threading is used in Minimize(...) \item[]{\it resultsFile}: if provided, the results are stored columnwise into the given file and written after every generation; use resultsMonitor.py to track results in realtime \item[]{\it useScipyBounds}: if True, use scipy.optimize.minimize() option 'bounds' to apply bounds on variable specified in ParameterDict. Note, this option is only used by some specific methods of scipy.optimize.minimize()! method='Nelder-Mead' ignores this option for example! if False, option 'enforceBounds' will be set to False! \item[]{\it args}: extra arguments passed to the objective function and its derivatives (fun, jac and hess functions). -\item[]{\it jac}: method for computing the gradient vector. -\item[]{\it hess}: method for computing the Hessian matrix. -\item[]{\it hessp}: hessian of objective function times an arbitrary vector p. -\item[]{\it constraints}: constraints definition (only for COBYLA, SLSQP and trust-constr). \end{itemize} \item[--] {\bf output}: returns [optimumParameter, optimumValue, parameterList, valueList], containing the optimum parameter set 'optimumParameter', optimum value 'optimumValue', the whole list of parameters parameterList with according objective values 'valueList' @@ -5063,7 +5080,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L1087}{ComputeSensitivities}{}}}\label{sec:processing:ComputeSensitivities} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L1106}{ComputeSensitivities}{}}}\label{sec:processing:ComputeSensitivities} ({\it parameterFunction}, {\it parameters}, {\it scaledByReference}= False, {\it debugMode}= False, {\it addComputationIndex}= False, {\it useMultiProcessing}= False, {\it showProgress}= True, {\it parameterFunctionData}= dict(), {\it **kwargs}) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -5108,7 +5125,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L1197}{PlotOptimizationResults2D}{}}}\label{sec:processing:PlotOptimizationResults2D} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L1216}{PlotOptimizationResults2D}{}}}\label{sec:processing:PlotOptimizationResults2D} ({\it parameterList}, {\it valueList}, {\it xLogScale}= False, {\it yLogScale}= False) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -5140,7 +5157,7 @@ % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} -\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L1253}{PlotSensitivityResults}{}}}\label{sec:processing:PlotSensitivityResults} +\noindent {def {\bf \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/exudyn/processing.py\#L1272}{PlotSensitivityResults}{}}}\label{sec:processing:PlotSensitivityResults} ({\it valRef}, {\it valuesSorted}, {\it sensitivity}, {\it fVar}= None, {\it strYAxis}= None) \end{flushleft} \setlength{\itemindent}{0.7cm} @@ -5425,9 +5442,10 @@ % \noindent For examples on RotationVector2RotationMatrix see Relevant Examples (Ex) and TestModels (TM) with weblink to github: \bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/stiffFlyballGovernor2.py}{\texttt{stiffFlyballGovernor2.py}} (Ex), + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/stiffFlyballGovernor2.py}{\texttt{stiffFlyballGovernor2.py}} (Ex), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/explicitLieGroupMBSTest.py}{\texttt{explicitLieGroupMBSTest.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/stiffFlyballGovernor.py}{\texttt{stiffFlyballGovernor.py}} (TM) +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/stiffFlyballGovernor.py}{\texttt{stiffFlyballGovernor.py}} (TM) \ei % @@ -6606,9 +6624,9 @@ \bi \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addPrismaticJoint.py}{\texttt{addPrismaticJoint.py}} (Ex), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/addRevoluteJoint.py}{\texttt{addRevoluteJoint.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/craneReevingSystem.py}{\texttt{craneReevingSystem.py}} (Ex), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/fourBarMechanism3D.py}{\texttt{fourBarMechanism3D.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/kinematicTreeAndMBS.py}{\texttt{kinematicTreeAndMBS.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/chatGPTupdate.py}{\texttt{chatGPTupdate.py}} (Ex), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/craneReevingSystem.py}{\texttt{craneReevingSystem.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/fourBarMechanism3D.py}{\texttt{fourBarMechanism3D.py}} (Ex), ... , \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/bricardMechanism.py}{\texttt{bricardMechanism.py}} (TM), @@ -6677,9 +6695,12 @@ \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/graphicsDataExample.py}{\texttt{graphicsDataExample.py}} (Ex), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/particleClusters.py}{\texttt{particleClusters.py}} (Ex), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/particlesSilo.py}{\texttt{particlesSilo.py}} (Ex), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/tippeTop.py}{\texttt{tippeTop.py}} (Ex), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/ROSExampleMassPoint.py}{\texttt{ROSExampleMassPoint.py}} (Ex), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/tippeTop.py}{\texttt{tippeTop.py}} (Ex), + ... +, \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/distanceSensor.py}{\texttt{distanceSensor.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/generalContactFrictionTests.py}{\texttt{generalContactFrictionTests.py}} (TM) +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/generalContactFrictionTests.py}{\texttt{generalContactFrictionTests.py}} (TM) \ei % @@ -8229,14 +8250,14 @@ % \noindent For examples on MassMatrix see Relevant Examples (Ex) and TestModels (TM) with weblink to github: \bi - \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/nMassOscillatorEigenmodes.py}{\texttt{nMassOscillatorEigenmodes.py}} (Ex), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/shapeOptimization.py}{\texttt{shapeOptimization.py}} (Ex), + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/shapeOptimization.py}{\texttt{shapeOptimization.py}} (Ex), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/solverFunctionsTestEigenvalues.py}{\texttt{solverFunctionsTestEigenvalues.py}} (Ex), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/ACFtest.py}{\texttt{ACFtest.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/manualExplicitIntegrator.py}{\texttt{manualExplicitIntegrator.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/ACFtest.py}{\texttt{ACFtest.py}} (TM), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/manualExplicitIntegrator.py}{\texttt{manualExplicitIntegrator.py}} (TM), \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/objectFFRFreducedOrderAccelerations.py}{\texttt{objectFFRFreducedOrderAccelerations.py}} (TM), -\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/objectFFRFreducedOrderShowModes.py}{\texttt{objectFFRFreducedOrderShowModes.py}} (TM), -\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/objectFFRFreducedOrderStressModesTest.py}{\texttt{objectFFRFreducedOrderStressModesTest.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/objectFFRFreducedOrderShowModes.py}{\texttt{objectFFRFreducedOrderShowModes.py}} (TM), +\\ \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/objectFFRFreducedOrderStressModesTest.py}{\texttt{objectFFRFreducedOrderStressModesTest.py}} (TM), +\exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/TestModels/objectFFRFreducedOrderTest.py}{\texttt{objectFFRFreducedOrderTest.py}} (TM), ... \ei @@ -8458,6 +8479,13 @@ \item[--] {\bf date}: 02.04.2020 \vspace{12pt}\end{itemize} +% +% +\noindent For examples on ComputeFFT see Relevant Examples (Ex) and TestModels (TM) with weblink to github: +\bi + \item \footnotesize \exuUrl{https://github.com/jgerstmayr/EXUDYN/blob/master/main/pythonDev/Examples/nMassOscillatorEigenmodes.py}{\texttt{nMassOscillatorEigenmodes.py}} (Ex) +\ei + % \noindent\rule{8cm}{0.75pt}\vspace{1pt} \\ \begin{flushleft} diff --git a/docs/theDoc/theDoc.pdf b/docs/theDoc/theDoc.pdf index 589eab14780f9a4da5875d325e32bc4edd4730f9..e708a2d081a9c56255509723882f1f721d75c475 100644 GIT binary patch delta 1668368 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

n>Pywduff({%E>Bgj3Oo;gs@n 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%0Djj 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 )6%Q{Ybt4jo{-x2F`Y>$J9lk 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

fbJmNrKFw=#_nQqu z*XF$l<%9YxcVg8(Ek;$$FJ50~rxGbuyv2TGEy^cR_LpsMXRmAEEE=`QUl<#VAu(@w zvHw zplV7m`Od}3@n)H7@B)+iQ`Dd6KnxE5So8m{TLZz5%!Z|g0|hQbBroL#yO7?3fB3M# z`RMyu5`|Pj5cqM9JAZaRj9t!{rAcs|#chkk$Mv#F((C2%e7amOenX9l#l)6q+#-yl z1|4g(UX2-xb(;7$f?Mlz_#dka09)M1CvoF*%i4q58xd(&P`e)A6Gnt|21=sP$~1P= z69-&$wpsG{bi55-pAUfQU5}ua6OP}!BD(8djav8qUp|y};3PLiCJ#e1Fkg6fSJIA7 zdrQl!BosU-gp5zg{eks#jVhD-z*&vVaf+)LG1`ec@lqC7gX_ep3oGP&Z_^i_79i^${ik_q5zBmvY&k2a^04rq)f0)R{?B z0)oU8m28~Qt2X*-=Lzqm!gb2ZBH3~|yt`WaSymYJbT2Dpj6r3XpT5%Ej&x<#D_wa@ zg)KFJ3LITx{c;}Q+(E8S!7lBVDb%$tI+ z(!*#z5{pjbqGqD`)(Y~gEF&yHn)4}H?eyVbP5E1I-~oex-LR8#GewK-%pyyO$X=O_ z{KxMWAma*kp_V-{m%ep%eV$3scvy=VA7F=#rHxNrd26%Je{x;zWr9_hKQ^bmM2RLqd>LGb&U!0Qh!6b1;#y|QJM z_Yj$c`l>GzDAgMgQi`Ir4jX3h%J^gmQIc>d7Pvg1<5aLaGlOpIZg_ z-4jmabWpNH;Y#)+PQzh%_4rD~vriPcoTbhksRo|u0O6^C#0m3mwO_?)CI)%9lMIcD zxcsqkc!qJ{0Cls_zdmTsg+gqjUSG|>$C*1jTi5IK2qs7(AhU{6!VD(&M)8+NiEb8^ zMWD9T$t^ArIoe=k85we~-Xv;`+1#44olN@F)F9;~-UVUIWv(S5?dm0q=X0LY53rx- zoYY380amZQzMPI92@4UN&7a#I_LM4oahBY|;=qL{jzk&Y<{@~x{&uyzRikzinb47NJFX(!c$pivX)G51%UAA7C#Exlh8l<7aD!C|bA}en={XQJmnBLt z%aFf?-vm}fVd#Jt@}FD8gr2wDw~b!H~+4@L%(KHXpLSOF!+gq!A&Qnw!Rx0gf}O>@MN!mU{Ix)mbf zOw~cH$MfhjMH|NtSuG$c+Xa<}xcm(G6|usJ3iaskB>R*&B=Y3%oRCMWb0V5~MLthV zh_3QBy0o9LajBPowsasj++lFxnQN7DLJcUDY!%)@XTsna5n8^#FFm3bKy<>|R1YT|;ZQuS`9eRTRkKB=%Gte4SUrglsNS;WgAge9 zspsl)l@Rgd(+iwHC1T^!FnL(lqCdbj!Cw1g2k44VgfP+2uxjyJ!{@{lh4+r)xlU>GVB%*r=da=UpNqa@FJYkb?|av_2(M0vo$WUi zZ>lw{%A=j=sjSuW@_(EdNXbV5a_d!(Qm6sieC9%wp$9@GB~XGh*GuCK$vuIuItU0R z8Qe-A8-x=)*1q{TD?V=hVQvr^&qzNXN+kLeds;$rgMrfQtV-0{K;f^H+|ROBX$9?F zT%j&VMIg;r)78if?@;(th>_4e6`fO+edxKAh4XpFIqbr!SgK6;Qy+aHUE62l?Z&Jk zONM!KiUq=zfZz^O2Z|tJ9ymB)Jf&aIp6`NM6?TLh@ot!bEU&qZt=g$^N{9jLp9fgE z)ubik%!!8*;b6{Cw|s-)^I-GFm*5l0Bx`#&Z(qCN7f80n3ZFh7?-!fX&4I=nd7_R` zLbOzJm0B54tQVaB{O_g+gGBlNMcZ44Mb)?8;&gX+O6L$WAl)sXgn)o_NJ=9xv~8R>Ty zDtRY)7`CIe3T}H0uod&cbMh#Vj9|?07uNEK*#ZHFC`53dNsD_i1RB8HW75v$H!wlh zrKanrv2)W-=Ek<~OX)MV>?rX_*DXB_S4%D1RTFV<^SuyFbLwhQiqWUJG8tcyGQOE2 zjah#k(a2E(u#GL*7+r~d3==VXk5^uq|?#PFe2_B zN3UMAS2Mgs$r)C%p@B9oyHM0S`6x}*dWhY};v-RT4W~0?^Zn?OtnR4`;!esaGw|L zD``sMJDL6YCG8rUFFiAv?G}wTBr0O>S8gpf9P;>sPX~83yrA*Lii>bRlrLHNtbKFy zS!9`G%&25?66)VfcXV#G4NmJCc5F-y!P671Z9_(C{bq4u69t*+wP&uhMfa(VIvj9^ z>IVX;S))G)bfhUO+K+q)`ZNNBY;T7KY2{{QB>P*=?%Ka!yU@tNIv*Rad`j7PIiH6d zfxhbD_Glezj}2;8wQSgMA6JC;>lbUm9g2vL&&1G=UKr-b8nI1&HcNPoAT$zMZgIbQ zD|F7FxM9NegF;+t%cUT^O;fBydieaF&BGKk7D-(WA_TrtQ%EN z4Q(g*4t}zU-s97x()Y&-|PFt?m=Rfcf{y zal=kRA@Vr?L;M1s`$CXE^l+yr9|p{Cm5&~_{uUxZ3@u}A%58EJAfk| z41btM>(`Ndkb3C;AF#jwY3BKFN{@e~dts3&08#CyLx>7{TByqj9eJ*jxcC{r{iy2Y zlb+@j!eK<7qSw_HDi*M9)&ZT@ac*$o^xwX_ISc&|Ig1RKHc3uN}HJ>b1 z8SbtIbS&%Xh!5z&iDGwqsNxHu+9+mvT+$V{ayt9>^J*D62hfblU`OrKsL~5o5`v@_ zHV+qNM3cZ=n9w^n@9K(*3}Jg_5@zN068maY2fMS6o{L}J%~>&b>s#~B|Ju(~qVp9D z^SKgwrNu7gEW=lQ=bJo|Hl?gcF8*ohl+?hyzCF37!P{!ePWTnIsdTTVL~%ug@Z!^m zPW5aPgN5WY!3HQF9!NjES2=K<&UwPA2haLfoIO-n)vl?cpNsO=a3=Z7`{nV@({uiV zl~v|;-PO-VR#q^$+mw^)_~FWyNOP>-Fekwzo!j6xkL+%zwvdZnOC-M`}NM0jPm}Mkqy`r*(9t<{|^Z&Au?9;6k4Td z=DHdY(gj&mMDN0v5;vsGtK1hqohT!t(psF zO?}LAT*k!@_3*zfGBccohgX(9Ts}GrWqQZ4*R=n!hP>9(zS_4T{TsgH>E>od(j*}o z-*eL5E@DMat*y_=s-`?#{ErBD9Mhb)WQDiakas@58DhXrBDdUTO3JWrcJ3%m^m(PS zxRcRQql9s`LgAqC>Iha=*EajHi27=(X!oPV>Z=%cM5tRB6kL6@6Z5UF%!S~#jDwFw zqsuScHVgA-IHvCkE54q$U6!3-$@?_+3cwPS+=PmQ!$NkeoD})Fk+jn=GU1~jj2YpS z&+H0i#Wq}m0_@dvU;P;@jF$8zw?4~b`yt$;NF9hBoQ?c)w@4U&HKk65Bx{OC2QRnP zN%VudVG{ajwg3{*Cw9)bx|@;0h~0Yv$7)J%To*s}%tPLd$~#KUURTBfNq(znSb|;} zgnlKr%HXJVGBaxV${ zRuiO?XRTEF#0BISH{;&deezN{qkCmAi*lhQ;4@!RBFrTB$xs$$_fAlZaql?3aZ;hn zBo5_{vFKdg@^+DmpMj-k=FgmY`bxMu(L%LapOB5o4i~sfpW>mainvpykW4BWJTGBy zzH#W3ZR4aSUt;MaPt%{0L2TeLM9NA|^80m?yu|)*k0OooZ89XBGvDSxpVak}I=fcf ziHIJ+&t=;k@(Q5d7h8Qr`sfj$_UewjV7mxj%%v@Eu8OqENkU2j-Kpm-7{0i>rce3J zs;M78B_nA^D}*FQ)L=e{3)I!em$|B#2N{BjkUsrPCp*7#DFoHy*5mbHCqoT@OVTq- z%Gav1@OXtyisGg>#`h+;Iz-zam+7W@bjr-HVjD@GSjcSjCceY`h18xq zc4}x`k7(STJA_aYp4%XR>%G^)}kiPYeIkELTK*#CHX<)vw*-rHu zu~i(~05?ir?=&%4vNZUB$%gik+160<00|RB!kAGUgM*3&OZEWmQh> zA70bKQ~ijYNX;SJT$oJ+io^H>pr9hNBQYEO6De}WsMf~T#@At9g`*W2DrHg7FPV*! zQBnsyoytzacrjWvCWG*l6hupl8~sEf)L2Eu?8SR2PW$`)lizO?fxMncY$&*ZdwISrmZ{;X%hPLTi%2O zdu`8Vr+oLDlx%l%@b`{@Sx#6P@oxVhRXt}H2v1eSt0fILUt96FrKBmm5_tM!4(^e{ z9Ne9lvF|rnHa4%*t#gEEvDefLH*TSVwtIdI{{ZRZR@S-iXpObW_`!Zp)S*vuYd)4l zQarsY`Y~9;B)}LHPhPwc_iNPAxv)12gkk!ej)%4v>GWC&3#IWh1E#Z+oi%gv(pe9g zo&pYKheF%2!%dNbxz|s8a(qDyGR<{5ZhXND@h=KA`VQPlJZb8O6h2*|T?MWz{-T%u za2o4LjU3NE>7iit7f2$@9J$*v>(vigGBu@PCLdSmODf4zpgyc*cs+(NKW%3s< zwgTOxn#Z~V@)mc?B~+O7+2VmJ=jF8Hn-O4q9`Z^y!cyArj=xZ27A6b-K;P8lKhPI; zLj0T%0Z={Qn-g*aP!h-+|2=K@k6{C>dP9;3HW>zyfbm*`(eQy$IKWUI1c)Ub%o-p7 z9ZQcQ{(B^j1W_2Uu6Ke#sQ*mE0qWiw0>G9EkQs!4)c=1Iz6cMd@7^-RK)lo+l>oUR z5QurY+!5$YkX)nTkJRDg!qe2#wm)speX6^|GG1W&aeGXk z%u9GqlG`?p@AjhKf4X*!`K+!O-FaroX0LH>rX4%X88JU+N8|~AN+JiR=jHLsg!`#6 zr0;`$W#rSbj-_9Bn{Mnkedaxr0#KyFoz5A+Wh%}1{ca@P`mYtblB39EBSQwon?s!` zeOw6K#;`6@-psoSo96u9R_@rAy*%p!Z_PTvXf%4eFGQEk4D(i_L6d>nbqs5t@~jPN z5%czSXphBcRLNm0(mkAEeBPn$b8i*q$(*4D9KIU%nz~TN&WSiYY#OI$x=>^StRu5G zZ^p;pt_BTuhzm>k=kM{9eBg2q9Z=sAB$<^qr>lr-S5nkMw8%L%y}zm#*D1GDey-Hn z&3lN>kr05d!)kW#o=wkG3Z14a=dDriEkcQqJ-^=TH(b%Bk;35(Nu9;*rkSB0TqXJ7y_d8S0`3U_~v9W$4-e}hVGwp>4FaB;vy zcS~Srme_aK5c$a5Hrps~Xm9{sG)k(oG+GI)W4{$yUH14#%^;TyzMe%aF%BtOaieZy zM;@^js!%WrYtwzppaM%nGwA3TNzrtxZpi|BkC5_s$Ut%61D&+q2Z4yMox5~lsEhtt z1O6hGUmKs%F8-{^+At;iz^i!U7s4`ITGuCIv66D*A%7j)GO9RX3{8iLZhA+ka(GdaG%u^2J~Mf?KO{%@y%U$g}oN zAPL?betMMK#?8N5L#EGa)1wiQsOaT!b%lxu=Q_MA7FBOB&o{-|iTu8(cW$#&4mO3S znFp^dQePe%6-EjPnnU%qYGZud<=6jA~l~USuK5TQus2h`BS_z448qRBoy(K^%RL^EjgjNjy|VoS&LZ zco>Z$@B_tID4ml>iGGKP@Xd*Qlhp6+2_}~F<6uKgGH7uZ zk%~0tfn-O=GcZA?SW~>?~3?=sm6tO-60wjNIc;QwITYD z1#CPy)xNI;A4lMJv1&JCbT7YPre$}k%`iYmj$wTIQI(HAkyMmRks)lftEpIwi9z`} zMvPVjUMdVQ8-_a?pMc|zV;Xq&D<=G#O^h53vj#qf0ea>6jocme^&HXr=R&`J6|6}8 z%9Z$5#zx24CDF7PKPxGmQfNemxXeH%!IkpiP5PQ-Nz~Y>ha{SiY_9n+vpH|mtqDPR zd||nDOYWP));n2$IO>!Swb4Uth4_i_K7p=$OZ`a$kD#~D>@$StWVH9!KR)f6 zO}?yJosWQ4rZLc=44iF=tVmd+sK(Vu-VWz~RsFmdwVh=pRyGwj;=CN!3#>*)o(9r-1oweFi`>~fYrrP)Xj602kF)zHv-~j>g z?bK&8l?`xm7@)EsGd04D7N2oc)tVj501G(Z^wB=3xV~r6U>}OhvrI0okHS0hujpCo z@SK>6*yx;033#Y7vl(vO!V>ugd*SIt1bz${p7c7;>_?ntmz}edW(;V9hn^k6Ie44a z`wJ5hmaaCczE-Pywop=I_$)1I`u(msJM)xNTu<6E63@j?8DL0_a97 zl}#CkP_3!qN?B{iG%0+L%_tk@r>(*^hRkm2%S|#OjWFRgsxZUgzy%KaN5iRaH${t& zTl2|hm;z%5J?E>?9LkNTOi%4b=aEE4*R&bm8o3LWCmM9n_|B6wX}`_?)?|jRaPfiKS%iFnG!KY8%mFC2nSz{f2J49$T6yH*IF5RfA;2oRqQd~Pt_j~aBa+5(6;6$m24 zEyxd{69BATA8LUBC~h#2PW4Z1br|FktcF-j43_&s01Y2-9|Nuk*v10mar^+2DhTUJ z1&m-HydMxjykJ;r;om?PfWTCO?6BQLKvx`Xt|$Q;ujEHj{6FDT|65Qz4Bz1)WE9Z$ z!k!Yt=&GJ_0NMv28(!!^`(Uk}QqGA5*WRhL%_|aK`z8I6(W3Snr`Nf1{X2kQR{TK7 z;J5Z6flkgo(-RkbVt0PFkJ3ZhfZ6Wp(u3=B@8@ru z3XbvHhIiUt#>ItU+Fqi%?)}}iD!PXZUFsSr4$7|r71Q&AH@3`3Ob$MpQ5uHLgzMMe zB*`ZTjHJKkOvt>^t6?j*50r7wedp+_D^BFOMl<&;MK>iRc}q2z9)z%aXXM~vZ>HG6 z_4KD(%~MQRs5KPc^04pv10oisdot!2;?&g%0i^a7K{ER)4%$ghU=K%QyA;w ztoy;V{G!!Xc4ZlYZ_<_IupGYXCCbabulNCN0Xu$h!PDUys;k_8-o!k z7^VGFtQ>`b?=j?=!8lTOHD%7roznvp%61UQFCZ&PUmkZ}()sMg?w1CKLFYtL^EnL= zO;p|aQQ~uMXp86l#ZSs}$+aKyQxGpjERJ`Shy_YAgrOF8cJC)jVJX&>cEm-7P3=?A z{jrbKg8nkG76v1SU}ZK=_%b#yKZ2e73PIfjL&Y-P7e@@E# z#na3mYgj}to3;`Z&@P4Qw_PH)U1s5|oHyinupp7`D>oEwHD|lLi{l?CU_qoxsKb*# z3CLU+?~BF`)sJ=m95X+!CJZWoD9tEAX`Iq;CN15gi;kI=pJIxBR4!A%`dMt#s|=ou zD8km%$g#NQ+_;5*HYk#d$I<7Da^=zN*oCuPd#F=P{_@E$p)1LP$Qn}BG*FO@L0Ycs z6PMhz+ouK>3SaWA8z9X$)lJO>jESzZ#6(tkT7(17+LZid7AdJ9HTeYgxi* zsGq=}O08Q-eaVUlB^E{l5(R%o7ArZ*k$q`Z_{JU7s+?~A#IFk<>BSUk`-^vJUy^bo z-}s@W>Ix|7knL0-z4JLJR$Tt*u4EtF1727GyGlrves%oV z?rjPN)`gaBx@Uj7NV<~R_g+xqj5GAB=O*hK*}+-}O&9sZu&sXa7cRsv1#zlDiL4k( zSZ8i&GClWW!PXB?Mm=RKQwP$k`8-% zG&`ejU{90vbhLH^EGj_pozG#aDwRiJ zpkR}*WR9y&3Y&C(lm2D);OF^PSK>+K%{*R9lFVk}&%0&x9wF`~efV&*kSw?Gmht*0 zcUqkkX{@JDZnger*-fu{&U4X684U)E1W`CFZ>T+Z(}`P1vNFA8k_^h!pe#u>sVXA; z5JG-%OwudoK?%K$A5IIGc59a8kdr6u&L*{$QZg(v-_M)Lch}mbrSNydoxxq~m?C3c zWrgM4~AZ@cL=;Bb?Rs| zZ?UT>cl(Ji#F;!*WjeI2W(RXQn;LrP$XJ-&p+fa&?xCeRYn157dTL_BJy%(nMCqk< z?>>i&{_qXtA(?+8#t_8U{>%0`*w+Q0_?&S6?Y}2{eX0LbINw z%%Co&DWn(7=_(kf=7w`GZnUOz~Lhz_Y+f@=3g-}ECZ4OO}GAHV?#TiDhKMnK%PA^)CgfV9{CC}7k%0pXs$8yWE;~L zI$l#OY2>UifCFLGSVJ}IdVH0!a?N}B!&!p6bvIk2bG$9H*yX&lQ!3|B)$L7K3N8Xp z_z7K2uEEKV*wYIFsB$m&&<&%h_}NdR7}(k6v(Falhnxei#NL$jwFt)E-xFR|;}7CC zLR><4xbP$4E1>Uwk!9}n{z=cUp7SwVz6)(u;M`Fy~TX84kE*C>t55aYJmku$*SnOx#r4E1`~uLDnrZ%1W5t)bbKHndlZQ9>a`24EoIFCT2Jj^F*aY843toC(t}gHZp@_JqI! z@G;q8`sI*6(e=PG-$@c70q_xkWX^!&g5LYTZ6<)yC;WhiEHI(fAVUlTWGescvH$Pc zDg5v3sy`%t{=1z50z?P~y1)ivM}=TgvbyZB^j1DhXo091JyIv;Jio7#elbjGA$wko z-zq`0li-nwbUZu!f{vdr>2nPR8+J`c{w!717o=}ie-bI|v&OWygsJ-&uNby^CKuyJ zE8&w0G#khvGclNGW@9A0tNswRGLmgHx4#&|IkWw?h1R&0;3Je?Nio5RZa3D?O?cNv z^i_0oCX}Bn=?4Ys=he$k+RJNeHrzQMon>>J!IrORveRl)kKcFpUEJdt-|qUzoxP`H zQwa!2deoUwe3M;c=Y%ysdaJrtZI0bTVT=YdQtEN3So}gn zBG2MFPWm{wR_~hQvqS6PObF4?tuCU`s`X%yJEQB#vu z7|hkWIg*(AC~*By*Bak*TgkzrXcxoMEo9YraN$>Lt#`SEQu+Q~1)seQ_AN<6^l2z@ zZ36~WRn-dj!-qyEe!5HXCz}~8S1Qgp>|I^U7G0877iw)<7Dva+8Jp`0_7Ed~Pu8n~ zW*)a6_`P+4esfNZZTGfYd`YB;#&jUJn9`8aRX zdW)x^@*Fjuo+0AvM9zY|fEqd~=4VavWurTfRCC!J+Rt<;vIw#+jrg*nWa}7AKV=A{ zbrh#$GVSTHB*DbPqHKhzK^pzIM%5d&f#JbhcT`P6W9UWKtDJLPuPqrp${ZV%x;)bp zp`2r5`0o`Zk*~=EnQWvtIDb+iXSj5U4hUB(wMg@?XL#U2S+e+0_P$y9PReOYjp4>^~x21M6b>m^YAz*G-c&73~+Peiy& zz%_q;)B9TJ{RNe(GwU+$2cO6fu}Xa72|}4I>G?>#kJY@B^er6rKbLJ2wFv|zW%$M$ zd873gu(OEZjpxseq;2Wkw+tty*&$Sz=e8lVo=WcTm+rnKt3|w&m`P6eNsw8hW`b6a z+#ANX;QSoD(lhe89{6~_MXwVRO-Pzqr~%!<(pOHoFCDd+(ZPgaS4VLt>j`-8k}@~t zk4u{u%pOT)=%i>6$H{+v+j@T+;vKSTnCDEh1Hf;>^W@7D5N>G6HUN zF*;@#I5V2@e`SixfS^#at1L(%*Q$o6XCA z)kwQ~bn>Qg-h(_<+~M4mFmy6l{Be+wQt07UkevXAYp9eVi&&uYZeiI*lJ+eW_OqMP zhVo~yS*LnreG)5Z_~?@H8Ew+$s++y!Y8HX~hs~kYX@l{O$Dea`xWhKA0$dkZg8d!T zu!?9cbZ$6nvx(YVugurFM+r_-BcrrM5cPWTTCZhiW0^wWdlP9XrXj4lKi_>{T@wU*o%g$$I0BAS*+Q zPL0gmagc*Dkr_!JW@!UA0hddTx+$85+qjfxg`1^ETIFYkmNnPt(=!sq!nlOBNFed9 z%>zR!;ko3?Iu1Hc$-5hTmgdLN1&0IAmrOZh%CO1~s))$HEU1Z*gT|${pfX~JlpRz< zYm|Dv?3zhQ@P2H}l48ZqxYI7mVkI8sEZ$ljyZCLCLb9<=D~4^~@FP&2Rz}1!J%T`) z9=f+qD_JK_GzzxjA^Z15C4TJAemK7ns7wTqvwN)8pGl*OU``-bJaQ3`Q*SSzuf|1o zRDqM|7S5@m(%2qHcP`NtfYM3Ajelcmbi{Jd;#qu(d}({G&tp70^s`C_X4K3!7Ui3$ z^em>Q61K*OsoL&3dy{cn3f9$NI7L+U27Np4vFW%CkdhYdrp4~X4fl{64Q2yJx;Bpm z_|74vmOFhO2>tXX4o`vBErbUtVqJla73)^n!6fZvFgma4aH#lAIaITpgltm@)B;c4 z?5QH#@xw`kjFk7-nZ7Qo!!CEbxAud6OOD(!xKLj4`Da~G$Wi#7y1N8svzQ^*p!>H7 zlERze8AA2EV0JR@xd3t^Z}!eWjHTF+vKswRaDhrqYT(pW3I1aLAl$lr6({ZBQP8wT zF&zf;P|0PgQB3QFk{Zv|Qmml)b=fPE4n*qtiX}*8awEp`uCin-9zSDPj(>wVN#}vX z8#}R*kVB`Qfcu(X&V=U@0ko+q?c|q!qltLds#xk$h4(mq!|;D>NdZ^_UxNO7Y=#6P z^t%uL``C;Sj6Mm%gZH1isIb5S2oshdMCh*sB%oc#CjsVI^m1x4#9$EMdk;*9KMZ^W zgX(l(z6WFx;H>TjgZ9bsz?3Qh$g*Y#K_~jFke?sGED#`1{hz|$G?#c4P)HjFK_mM6 zl7B|k|0#6;BRJ%$1~zm3<76=igu#Gc(?h%_a5KP!I*?!l3uxhX|1*_7-vE(=z3k>k z!WR;JAf|u_A_2fDO5kC6QsO*+Mtlf?Xrc$>F2D%&AsygBg(wKqY~lv8K;xv)34s82 zfRFnhGzJX917kd05`Uqwwx++4lTdOE4jb&rgb)x258S*G9w8#IE|^I_7xBXZdUYMu z2ce?Ee<#)c!;|XYlf?fccKlyVsBFgpd}dUpj|vZh9hs7Gz%HX8*wB|Q*F?P}VjtD? zb309I)T&_usJ%L-_I3lwTg+dKJNSKM6O5f(Z15j3yp?%vDRky*ZtY4r@pTh@`OMeD z`SkW}l3Wyl40a^914EJ0pj)A~auUJ-XLFQ#Ef^}8jwWaJL^w+WWa28YK7KDvoHfgs z@>!U5BzH(&mo%r|JrF8Em`%WVmr#56`5Qioru4e5f?&x-bB;uyv;JkY8Qc0xBDYtq zRVn3e8TWb(XJzmAEb2XBf^uho(O$m?Mlwl(rOexG`cgH%fzvu?ZO zj8^Jh?DiX*oj+7Z6LZh0?e|#BJf5h_p(Nn|?=;O1blG6Yn^Q<%?u?9H*-8^qyK;Xc z^Q-*ah%EC)rNK)_9L0s#l$%6ax=vXvDg;+t$L6Y8+J4Rrnl=WW9AH5y!B>NFW|X;M zmR9qpA>+TeeS=wM< zD7yP-6NeTl*B`9vgO?Q_MCN`*e7GHg+U^C2=D*E0rwkRx+0gZqME*K(qAR*h+27uq z;FxvW$$(fxJzJs;X)?4i$lmoZd)g@a!x=d_$?n@9d(&JcZ#~MBpe?#&s3k~efYGy$uMaC{ghuwslcI0?MkQR^NDW6 z{3;NbT65gxuAOqwilQ#zp6y6x&6kf;n1vWah7xp!LC64xX<_ z1_MvE7wXveJ)x=J4IOBxR{9)iGZFCsevh{TAD59a02C*Lo(h;H-tu=}Wf(AIy~ zXMI=uDtW!rXfum3dKIVG{K?y#@4Hc4s;h4|yE{WtOLKxYrP&w=PhJcCsu@k$ox1*z zTKA^LfK`f&^li1lvu-X8G0bIEiolTo79PyyO+%OPIEG&60{T~_1{xD=lV8*iw*pmcf#^ zs3@GA{V_PCpi2>dodm@U$EfN@=8KD$wED;4(D&|eG<0OGhGAO2p|8wglaZ7NxqYgerADVw{Q;;H=wB281~j`rWT5*E*Sp)2Ifc!(I95zG^0 zyDMDv`41+Zlc9R$D)~TEclOM5?T2ZP@iAq4Cb14vYfV3K_heBwV2!EqK#j@JLxdp=LIZn~0@%WUbOdDx z`GIFZ5B*;N!VMJig9W%BTJ!HZUf8=;u0 z;FYX22rBX4=kN;w0}{Z9#eX@69!4_&5eJ+^(FlM|J}`h+Ko6-s!0a*z0$5j8LZV

g*H#|g}9^AwW{scw(nNX8MB8cate446~-H*#Ja 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%0AQydgi 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 vStcS}yIr6U_z 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]e|JJ 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

Q6BE=7gd>P?AWl+6 zjG#v^DTCIZ95AkcD8g_gWcNK;=1)-%pfYz)f?XF6;O&Rez<>)(#1#dgGudr}QT%}O z0~p~j2Z_wCZbuU1d<0iz&jBG>86G}cKS(%;&X|LbLX<(_@YyA{VYTbe2E5$}A=(n- zi%|LrRX#|&0*ndPg21VCK=xf1gF^Te(#Qs8R*<+7ABRB1O(i~ z??Bd-;I}}U#BjQI9PMweE8lE{!CekDnQs-2n4h-07xok zkTa_03)qbs3_$LL^+AyMORy%#VRAVO?A3GaK*q8qBl+Kwu)(lQHuY(12D1_Kq!6bK z?XKDZ_}jw!0ibDE)PHpM^s(>e*`BCZ$-K*UqvXvTH` zK7eS{r0x`$Ldh&(ajz%`QQIM$Nf(fy3nc>jIwNT4_79M$uI`Bg28&uBGB>Czyl?qXRYvN zeE&xYP8(2Rd|E)`4>aNHf@aD?S%eSTDG$!czpOWy7Yyv;5Jv0JPB|>w1Fvp5>0L$$ z?JkJUMu8PfDFmN8ezYVY38}KMa7|e|LYEA3oB^nU0q{8k{?Py2(*=l=V*Gnk`X{PD z@^I<_1xW?WGLwY{WhXwpf|us19B|YbiYSj#|DsIkZE_9Gmye$4L)!dgVvnnx}u7^hw-0` z0kD0bpA4S3YqgO=<6waFAhnxS3|0?AY7`**fP=K81Y|h}KFwr!NOI^VnHm|iKCUDL z8OZu*Xd>z_#2TzVeZ#;VbAT$G|M2!TxJ5v?Hn#d(YG%@HC z)h}s)D3$_ntivBH5HY`PNF1D)QkZNA&^c-(JH+W|BnYJngC06Mf{34W)bJo2!PkN1 zE8zaVQ)4PUbpgWuAFMri zt_Sex&O5Hh2+gx2cLBeGgQA%mc!)tzsY4Fa(===(nIpBNEpg?6c>aU450z@+!(HZLi^w6 z`9I&qgRd9*V+(T<@YG@n=+Qw!aTZ_)-$dfonBgJ6fGCq+lrgUsofO8NdGOVO9Pc6j znC7Ek&rr(f2|@lxku=!S(hxl*=y2sxBsEN!QzC_F4=43fkODPXpav3W!!#R)iF3OI z9TgHd>+cd~RG?;gm-q`NgxHZ_62Aj(cZLc~-I;yzZ%^qWcCcyDO<-I$L@2UnatVCrC?HjRQ5I$GnOr#7Y*joW@9y!ZR)(^p;T;P0c) zV1y!a7bJ@56Q3yhsfWdH%u~?-? zpT`s$8mIIbn0mh{A%UwkaMb}(^FXfk+foFmB@2f_hVvbEI2`KfS6>zwuo{f}W$IqD zqh;qOsuS%umkZB4+=F_yQ-`dx2xA@BEXhC*%6JBsv3{`?o?55Md4c+XbE2-`1GN`dOXIaMxB=eXaF z?f4hNZLaXt-q(G1WF9ALE9Bk%%;j3cK!?}CgJ6^8H6g?M{PdVum67O|$S)Jt8D&}* z8IO;gO8u%ild2TU=EGy-{queL4twG#lTY!huv*;)c#DcDQ zhv$M;!G*CvIy1p^yYsS!?*sqR`r?)A;rxENG{W3Lj;|hDs;iY^Bp|8n>HS|SQa?)X z1!G?qDf;%@(W!Jv{VZ9*g>+6{*%$A;tN1T5l=+vSXhq5Etfq61l_n26)!QyjhkVSF zAR3|w9=Rm_7yT#mx{F7Szg}eRK>b+EHL_&mU#C-Ah_#(qdZuYVZTYdX(;=X!fGaJry2a-SzBEx z3)d8#tLR1fMNW_Bz3hFw>i^2SEw|aledt1zEPFwFWajrYW+Iwt|6GG0Pi>@X8nyoC z5%xEHKa%9+=|giQ#s@v_Txv>)oXFXl+p zN$H!mU84>&@&zaTA5vjs1MI{nOtn=`t1d2D@bx8`ad>_St zKclzhmR#mQ$LJ)-`B$6$7W+|4ZHWg?9?!33K5RFoU4L=1dy`Gb_ev($U4C1>`Ug5W zV#Qx(OYBuF&e(=@D85WHaa(-(7{_Hz#oRrdZBy#e5?Qf?CvVHsx#oq1Flu*-b2mo0 zmARv;U2d481bszWx_yILh3+ZlXPrIuu7dq?h?{DZ3u#V^)Tj4}MO#SAH&$&G$?vrY zlNaeb={Mp$L@ruKzb}?a`owKlo2_Y$=nG;A4zTIR?e?VuX zFd=d|4jAI0j0Z9x+wDcba=l-`V=^q%e28C7|{V;-6PSEj*(po=z8|S z91Iqi8)zV7cJKwWvH+a}_XAf~7{USV*ZvLRc&&p3NDAPL`TvWgu&@OEN4w_La3I-8 zASO$|Sojnx(g79`<1c;iV-HY50mOf>h=g`lN8v9|fwYPsnh2t9b=j3`q%k4) z4)z{&2)!QCnDFEf{#hh&hMlGmfK1K;8N>O#I1Thf8-#wzJPY<1n#9%tK6r%&~HQg_3)&aZH%L)ndAR20D{+ajg|6Tw*IN*Jz6H4#{ONLG>Ux`3^ z5@S`>u$m!tv2g#A_x%V>KLy>|s3yY90FE>WbkhH@@W53M;l?si zNLs+pufW$8m}?PBq!0}dF%P{r($EGrz{;R3k&M_NdSOMlzVZK{WIM>>{mY#1^K^&a zpgnONjdX{8Tm$c>-8LyfO_UYV2_MV7=7T-bivX7fsm6&}lng3><$+%+Y-!+*Jp|fUe;|9S2;->8i*wPr`lS2V$zzG3%24u*34PugWoTQO}Y(0>qI5Hrvf|m!< z5@NapI`T_IoGhE!R0^W@M4Cbta1kc6AC7g)EqnCn9Lx@FlOo$mmQ6Y`4yz@VgD&{NwvnFA5659px&pO1(=Y46bL z9b(Bb$>R1DCcs;zqz!nh@ZAG%TI6LSf*Lv>WFQVYZ5%kYICm6ja1?+51}9&V{MQA< zcxi(L#01Ja^p&1o1YhZaWMfIl-5*&FZ9N5t1yF(rLe>GuS}L@}_~&Z{<^NI?f+RY? zVn{)*fnegWBIJzz$e{OMdw6e~!nz9pA3QkjL$mqkEbNE-LdWw$4;N^UXwmru8zlu$ z&zML3Kge#rwJ(Tdu6xlw#hs+T@?<9G;oD+;a;2~heeajl-hRh2k`ZC=BYp^{HD^vBOF7GKn9`c;SGU+rF8-7N4-nVmgD_F-=4({RhX3(ub- zeBJ8kYQ@+M?l_$i7~A~$U8^v>@fZC~w?utXB|@nUnqPWu>D0w>ZrU7U$P*ol$3% zV0(wcr4tZ|>Y7c?@nLOGpP7gem}2%r^ClW)kkhAYLq2!l_l>~=3P@9waaNnHurLD+l`~IpTAcq;(R_D zIM%X_3pyrcV%<9)SD?(NNR`SL&VR~1S@)vfd^epZpFlQ}L1kU?tugn#vg0Plk;FITeyKSW8RS|#B(N3sFrHMpuF%LPnKLK)x=(ZB z_iKrmtEMi#ieVHBQ^Mn92;-$iQw@(g@=nZ@X)lmb1* zoL_$p+|{PJBA-}_bDrRb$(bEGt!3_`%9-*4lG-FuthabRwlA_-zDT9ER-0CC&vrbs z#LHD^?1K2p^rL6sW$(907TT0HTAdRzpQ>kXwQS0!(%6Ou+1*QZOhP176PI5pJ4OyI%pu3|_{8G-5)Ka3GN`GV~EIZ%|S4G;b zW&`mwp%om1M}0YX>Wt#o|ic$pyeLodl^Y~2%Neau|sBUli@5GMv zTqHZ@qgWZbOoit7bQ#f8b9g&Q;^t2+*To5Lt#U`kFU$X%>Hs zLasm8ToBlr8S4DJVhK{IIaRquIMw*p*Rvs_7;2nF)ktJ2Rs6lY->X4_|Tv-xz zX;eVGVzDPDd`^)+p`j3EvhFZ+diJbwB#A3`+_$yTz6)xaN$VMeeC|E!L^G8Oo6A3> z*n1tw&Y)Zhy<~s9=YU!>opd?cQeMuE8lhgYIcyHHP2l8nM#SiPrVNlpkzP}mNyL9> z*&*YFccOOl_>Yg5P|q979avB2;g-xi9XsMJp2m6lYBa>XDeX}en{?DIce9`H)U!5^ zWzQUQ-|!5itd^3H&!^sYo!sq+iXy1ak zh79W>n;y1=Q}DZ*dEXGyNz_XFiMLqK{W*%fp_?c@cy;he_-K7~{{>W-?7PIRn^9l- zew=@V$~0vc|7zy2HTOuU1TJ9{_7soF@o+8&n3}5n1{S3dZW^DDV|IDeK zib*v)^(W2*3Pi`QCwykAQ@#07Iyyjj2Hz`qx_e72qFMeX<6Vafd`}} zf4hI%c18O0UuA7KbGDl2l)juY>BqlOQZEo`l3H~(Jl+t+MjFZ2FL+MtTK;CVyft({m934RyS{iWR^y>_(OsHR}+4KXQtiXCjO z$~Bn```Bu?X&>BFLPe_PlH_Bb2ii>624CQ^w`+X7{l5D_D(X9_hWFHj`iw{lV`xbh=|AoPa zqP&7yERi|X71V_;GiMbU*+=8fvNP7}%Mng-cQ41iPRm{PO&^VS#r@brW3gy1trE|j zPlGZ`jY%w;`n-DSNS{dZB6%*8qREHGOHMiG${jjxwt7pXgFP*US_fy;gIT>%xFM9?x{11jp=Bz1^~! zwKDt4huhBt5ELlB6s!gI%@YCnqk+_ofn1FFaYKch4J1EGIb5i*vT$XsA=fyjdtc+Q z9}I9}OC<@J;I3KVH$;c9So~agRcHMzxTv@L1?uyMWE5*{sysq4?JtuxelDBx)?-8p z^+7VUy#t&&v2+WFmVDo;zwE?GYMT9M4A?Avm*?2>a@*BV^I<{r8k9V$n$k}ss1uFq zl^Bu=8mr{y8awpQm-bO4JmiZ@u~_4j?5H|s`{HT&5G$Di*YK(k`=s=u_45SQZJmVo zy+qFmH{8@a%jU6_+aH(B)DU3zS8eEE_Y;K@M!UB@d0b0L5KhI{rWfrV_2sn?S)T}! zA=F_+sh|79EXwU=cFBo_WZc->dP0mrMI+l0R3d_Mt6X_3$=DOhzu02=IMZ7NG<8?i ze)*SMGJR-`Ov5%>4zbbVGHF|7yr6|mg+~$+{WgV?d`ehG=*cLF?nL}txtEUoMS=%Q zjc3-Y2*d9R^4jsuJF@VHOH>ZdeNF%LH1w7AZT>qO@*J5ezE|>}r@V5V^?j0DBy&;d zq{X;@fKhpPoM(sz_Knf1(?v1;9wDU)A_>lNr>d1V6#BTseaA^tcNn~$IG`mmAnNZB zQllj@5b}9iT^DV7fo-0Adt&n6A(0iN52sK@^Z#&Qc+FWL%7N_2z$gMIgf8m@f)zT2 z@}{#UBUIV}BpRKizx3yvr9X0sB^C~5eETxj3#rk1VMSW;GRTFb=%-_= z&YRM3Rz2$t-*6n=+8XZ6Wp})js@;BsGdiDXlfLBV*E?B_Q&vro;bcpI|$t}5|M=crB3WHM;H@NcN5{T+E% zSzlEZ*CqMWsj?*aQ|+42h+&>mkY+bIvFD0^{O zeLKg@-G=gNMOEac*vXey+}&v(=;R$`4OCCydG0c0B}PK&>wkoZUcp5pIgi3bCYhPm zonH2igXbG;M$~%q{5PyM>vX39?B)k!v^W#plAE`M^~CuJDa>q!6I0@ya_&YYrZp#q z2s0Bad{(tdoQhn(jb$IoY!rZ(f^y6w3*^2Ipg|@HO&hjj%r zy2%fFM$g$heVM=Lw_d!%lb;y5&lpFpkn-Bi7QClxqP+zH-Wk6M?wfC~>i%i@ZipwIg=)`jVn7XO|rcj25^_A?@ ztH?*rebTC)o5p5}U4vK!gR%a>j_Mv=Ods3g}`?qHIGwnC))esu(L> z8g6bI^)EaU@%EK_9|3p!s&F$MKkmv`kSH-SZgR@>?d{;D$yBi)1u~H(i}K>VoO(wJ5jlRA^?6HYEw5>A z9?{E~;h6TbycTyq=5C^U4N4%F*Rc8lJ(m9iu9c#Oe8W#?rWS7ZK0hP(^s*%jO^i?Z z+8YOR)yFcgp@3>HFNDASs724TO;}CUtieZ88?r{CxoHu1jn_-G#H`hvx6J7E(#puY zk64^hzj=M7@!{aGj)5dSSA`mH_x$NttRdI*F;7M4#tOJlNE8b*yzOe@FyzO+SZdDZ9bnfCUxDmFdV ze+@6Xjw(Yp8?>hFB@v~!Kk%SRjgQB>ACWefO2;1p@vz$o@v3lxa{Qx2eP@rnoOrP! z?o!yjJ@X!sA#$q%S1zC;V*HEY`mcgz@9vSi5{0Q9dM-yF@P>WidU~#SaA@p)(8H5r zEA$@ca?iXP6?5~P)@us$S~P#V{jRxwGAoCCv_F*aN}}{dEq?w`10m}-7O1rAR}<~H z7IXWjELCE9B#)^3DK{goF1ML?8pq6%N}uwY_;ER*y2NI(*i-3^H!oTLq!;&K=7(Pq z$s~z89)+VW_R3lD&*>cb3frZ)_?2e+;_y)?T`JUCN^Cei&94jI?&nAdnZ?oQi2VM{ z#=c>b3HR%b2##--7bOUcmY#Q_vf}UKsxC<$nV}7n6WE-M9UOS^ni1|7I%*rJu`d;p+PYmRbiMmn zY%5Zdb@KGcz1N{FPuTif*I98IQT^4fE!*kCc{a6J)h1se>%vE-ioc%|VHhb_dq#gT-;~esnK9*7%ke1sP?{hmJBRrid?eHR==nK9ef8p3NskFRZZjXD#`MYf&zUwi~skYjW zt$az`zD=` z#OjTr?q>dWd8@p6Ou4$j-$L%D!E{#yKTQrbkwd9)Eni^B&(a4qKNFEgBNQ0|CASCCQ${%dqM7Jckxo0Y>S^4%TSNfqaQf0{h^8)u9xXS46!YS_8e ztwuSX7d}s?#OQ?_*UdaatFAkSHI8>8q$JF$mX9&JqL0iBrkKhH~-cN5R+i|5j+uhMH_G7w4 z(V#~E^T9wE{i@G6#gMsU5>iw8EYCOW{u{RWq)m^vzv?;qWDq{QbfKp7?Ae9^TjydH zg41IC?UBLfEo6UDmXM1^h8nq!*OPan7HcI8jnBB?j*`YpXK829lx`}t+xHTFt=|f2 z3#pd%AL4hPTJ@H6OS7`FzC1J`Hn%;-?@sx4+(lTCXZ4)Fr*mFR$>V3y^)^I8RYgqSQ%XH=01{RkFQ3FTok$l>a{kS* z5DS!|#}px+iL^HA*t$n7BVYDYv9A_tk)#z2w-AJLZ_89POc=$DDhW+^8@IE*_S(~1 znb@IPey=P(iA)o^%$?d+Rn8NAbv$aV^FiX-FV`f9aANW5qWpAX@Ub&I*ro+|6BB*; zcWUso&xNd)Di6Z{G$0U>?w_L9yIpy8funYM*R<6e}#vMgI3=q%|;3qy( zSN?@egqf@KQ9-s8N-OF}Ifdm<4#J&WiV$FU`Ssz~r#F*j|A(}5eG1ZBT|ebk?LzJpE6Rrb%BP(o6VV?Dr-Kx3gd#lG3WtIUg>{j-9SG)_ z)oJ7S(8cf?hE}!l!w4sY1My%Xv6mjXnV>Wjt3B7(p5}GW!V4rtM%r?ooUgi80*@M? z`Bq7eVyU{y7NYK#(M$$9J2~FB_8*X`jJpU$;Q)VD?iP&037_2MAx%gs{Rb4BdO# z6yB1p5kgPm-@0+{lPeD*m5w(Jzc+n3^7|1OX1Z>t3`43v-tH>>R2q39u3!$M*O$vc@5naL2vvNV!Y&>_f&p zANn`e)i7uNVE^(YQB9tpd*$a?K~F8jQv*;Kfz+M=1cV|uyL?HE?P7-Sa>79tcl+)| zJ0}sr92pPWYskYm9`n1?nqx$$BgPMO8KtT+MB}A_1$=4KcXj!W+!#Z?L=poEdh6GKoD42bC2KVrCfq=|2r)u`SS2%SnMhrdXo zLTL+X5r*fDUViuP(lR;{r@N7__Tg?5OdN)let_(aovth(`W|2D_yfByUj&bzS=(cH z4K$aC!_snf)fDbHOXc>Ur!_9agg?5wN}Byrj?f(YNCsY}unCCzpeKIOP1DGsV+`ct z#dKu6hqTV2Ga%jYOg;bPhLNH2GN>o5ei3my3Gr^u^42>hkN5|6QIUt;kH@QdJFll< z5_L|f27A8Gwx&KmIu{#sc5D&ja(h*I5TY?XcPjVU{c;o&56D8xD{IfMRm$DyT{ z9wNyI5ivg)+q)uoXyveXdDZ0TAr>d#IRN*l%UNTPEPo48?0a?OGbjz&P>SDLjcu440>eGs0Ia&WxCT=^0^yCUuQu+`~QQmioJ;FXm-nHWdG;NX+Xw?R0(m>L(HjLQd{EcV6g#WGh{ z51ZGTmS1(ZDzzEbteB%D`!1R9m;oHP$>u2U&`|} z#$LPsg5~ICiW$u0k>MUfdqpj$N2Lgcbm$FMrQX3AB~AN#A12?(VO5C|;P~wR)p}zQ zufF9`%E`Fa{LKV&@WbSkmwK`H6%0RV-5u#*f)j8oe$Z9r+P`x?xs>xSn=K4 zO5^E>Ms(B0_Hz)-f^1NkyQL-xL-@EiHiUa;FC#y_b$C6&&_>z^4_&eYAD5!#u6=oj zerbtWgavN>kw~`9w{z)mOGWWzvu{*;WIWq<_Jq9x7rnRDuktKyba;7^P&g4<%SWVj zWtE6MsGWxLBM(YV-e8J|6)eGTa5I!7nOEJlKNkn;ha3qFrt`u?`&5PaVbdr9adyw0 zOQ}Ve-9G24&k%63EL!qmqX?ZvmN4iT=c*B;y;A7S%;GiZqkVwceT|`4!dxm!%aLUIA*Jn5UpYy#!~NX8 zn3z>h46f9--Os?i++#FOzsGSyWgmhuJtStC=?bOnZxzMm_Bir=SxQa`Q*>S#Ju2dM2V7@S(dskKDCnUskgghdiP$*+I z$tM3@24CAY$-JTMx?2ZU=gntw_YI@u{L$bKOy_bgRmv3RfWxjs0ZsD?c)K@xtIwNx zDig@D;8w@?${_C^4oyAHOIg_p^V!xMNXRP+K4cu(%svG6itL#B!tU{@E$o;KQQUWm z1bDdtrV1&Ph9?Xir*M& zHOYfsPX;7heg96AwcRvaHeqkc;D^E_M5|qB-fs$P;j1=QMDsbiNgCg2iv7%MJqSmd zZvXvG&VgA7*IS}ML08za)I`Xhoz>9{ez6CxJ36hyox^fur_9HKiQWu!UgAP<#t`5*r0;7;X#R ze_aBZAJobL`KW~8dcobXKTaWnm;s>V(vTSFs05b}e1??d{*mqT*L?bapHTSMWcxQQ z`FCQ_@BFBr***aCI5^v$HBmX{rQ6c@2eJQArTP=IXm2s;NQo}PS?`fQe}Zpkf!eIS)U->w zKCZ8?p#wy3tt0uPcTe{h4RPIRp1R^orK?myg({pm;>hl&Y2)ek2{*yKcMlTYHsX3$ zP3E%}!5S~tW(o~ZXReKmc15j54c%m z1u|H4YO3~6LX3-D3s%Cj)rft!Vvn1-i4xG5Ln#IkD#EGL7<$FfoHk$6&qxt>voxNT zv8x!&trNDQrq3d6iD$$*T^+z&_2SjA2YCA=+>TRL^0|_~GkLGtSJ*Wj(LCm1m615A`7Sp{x3$M~+1U*uUFGldt9C!^_8Yhwr0_F{N zjTMsoCdK?0;j8-_L3h*BNVfwvLF#|g4$50hZiUmpE4*n|lvyhCLh^wrt) z^&`k~)SI_>ko;Fn;zDGcq_M0iH}!ut@D-M^LXeWJ#Dp^Y`Q-(NJq z+Y#6yayHsRg7dpe$o zednz0hj7|Nv3zU_RNU+^LQ+}CKK_mBc^j+DuxO@j5 z)s7tV)7@qDZv>mK&jW)?@%#{vm*)*PR=n4~Qm$B+i(&=9(O0R$&;lMrsgakzZs`m$ zWWXztjGpTtm)*arn+n3k)}b8kfA~4dTw*?0?vkA%s#C7=;r)xcAlwQmdXL_ih3C*s zduB=T;3(1BMQ${+-O$YZvz(Nz>-EWU2@p76vn zd6#pOvYTO_lYtrbH+1pn=xAxa*TjLW(YSgN9gAU27tBvoKJ_)BSbb0O(pWIGm|L7L zBuWm2@I^0S!LVSIBW_dF#!ohqUp$_qR`8JwKkvcXuOt5=kvV3UF~;zU=FliDE;raH zeYI5HRyFJ6I3tqQ8P&{@%6g2F&mCv&tRgXcov_dMIWSLi*5`$T$Kc^%A}|RkI3yf&PZ|mkr!i zbaF5FFkHS`X8@$#46ec$DRXH9@#&vBu%ARPe=21WYtiay86;Wuv7&nFAB*UHN3Jkg z^$;%jxrFFt%(OW6J4xJk!5IVQL?>zwXrVtQg!a(q++Z8sG=s;RXRAd-*2h5(+0%KK z{b^CBErRTxFKM%V$8;*^4mm47qhmGD8SZyDI?O2*d2W0u){Gxqf;4WMsT6@-=Q}D<427%FR=*XRTD!jt<-#Vd2wG_Kr7O^W0ozpWa=kkY(e| zqy8reDm52xh*`eosvoB;p+6b| zC39);;~HYjXGfNMLlEjR!dDf3>q9*p5vv(qp%6MNM(x)o1_cj1j$G(JVCtG`FuM^t zunTeo=sJxbo0YF4L3*S6>}|>o-SO&cMyO;ItQ7Z-0EaW|pncJB^<~~odn4|cXvIvO zip&FNvAPU-IutDrnV0?{mS}k>kECWzu5jJ>7lD@$OhPbqVh|l2OwPVlBM|tvUa<&> zw7P{E6aHuJ_>YP#K%$ekuTasr^_gp&gx$Ws!I~NF zdrppSwBq8l+}a>#M?^sQXE`=ESOpGl|E#YEPw?ID2vm>ef&2ylbqS2EUgE2Y18Qa9 zoKdn&*#^*h4;C70Mk?Tgd5D~ZNVk^(7Rr>R5rhQ+tqNr-AUd8C8&EA*u0{|BYpJ6Y zhyjWUWkCdCkjhe_TnU6OgV$7zQosPHE0yUHgoOZ^N@XhqVPU{AU4<5?+6SkfAPbci zIIdLgBK)Nb`OktM0RTQ1oe+r5RiOZGs+31TMVH(8-cDD$A_J>lx17G(wm z06&C};>`&b9~Hka7bq}IDzB_ON7A7|7Hd3EQSeXBJy828d`1xLnDy?3{KiX zJ#T(NP&yKD5ho)AEdSL8)QA+|6Q<<{bti=YUK(zYw6mm)L;b7r<&UfJ-s)KjfG}r} z6Pln(!Y%-ko&WMb{%Ft7$HfcY6)*Vr4m27O1HqHZxMV+lia(lxaB2atj<1AGl>z}A zv6-Cc>i+=3{+VU;XQ}dEIY)o`8owO~z$F!z3>gBBP0)R5M&|&F1Hi`yX82Qt&sdfN zW^5R>2qEy@FUBz?XGXwan z@}iVUo(-A5<{UfIBaXQ5$)b3Aho>tmEMV{b3$LE?oT>5ch4X;= z?fr_w;{54OMcZf9y&K)8#h-6Bjb+=TwV8>bp@9(w^inPX*#^qlOjUA>-@Pm8l-So% ze3npxjP;cYM$I&hX5~qtHS&~GHc zbAH98*=OJ-#3cq;815*?t~GUjC{$}quZ*z8Fl5KqLNAFQ zmg<;DUnL>6oro_TWEJ!3#K|+PnSVk?c~)-VGB(loB-of|AiSoKZ6X6pchSKfhL}oU zWLrFr5Fjz1J@dt`6&Yo`xOM(mkD5NHGZ-21KxKK;)o>tW$x;jU15b4TL?5HQLoOwe zOWMY9Uu=%$r&Sqrn-#WJHy4{Z%N6{Yq+i^cn>I4w0uZ(XU> zV-v$$Tkc45+7vx-0F^hDc{Ne~t<>Mz=vJc$t zNEB8mPFW`=UgjqvzE^s7Q41>@m3aShMZWOBVTvf>?u>22^|Hj%#!CD{gkm0q&vcbj zDcY77yNjNrJP9VfxUNB+kdIg-H6o8{Q$FQ=yU73MYqKMM_v|9zJ)$N@tDlk6)kaor z{|WCiz8<_~3$CO$Dqn4(`AQ;N@@C1eADTs8vf4I1=~<=!x(vmgBHL4jtx+3_H=v*uzaRv@c0zceQ*-mtq!oU3`EvmiJQTk6PRm&%(N=5pFD z7!3V5B|(*()!-Uc6>jf%onk%e4v#tgVI6|eE1e$ehIM^SRkF@_w9Wn%4@cRVFFrR< zDdm0P^OO|Qg6gCnHu-BdFc{kzg`f?HZav-d!e(z~#eL>eM2{n#5Zfp%^UWD~zqg<& zQ&ZsV^YFc4VrQ-vi4nCrr|_|)5C#L^27v%`U&)q04U54ni}S90bHTKj++`W(`46^( ziPP``UIf*odd!cNquwRA#pA`g@C@?Xe6xQlCpx&iy`TwcADb}>gYgKR&0R^M8DK;VDC^u)+GkjuB0mqvR2%_dIfjzZqVm zfE7uD@BM`Lg;ABr$v&{Lx&UVxIO_P9OaHc|% zL&L&MU1_~mD|Z33Dfn=E{-eO=%IL|n^Tcrn^Sqv_5Xy~Bu|)@CpV{DpZW*Yen&jy?o#t{8qwfAWEXz<6paYewiUhd9H|IsX(L@@yEiHEQ(p9@RhZm zm5j$Ia_Eb);bKf|M8$VdDbPmg#NLCa!|OEOz4yuu$nNGlMbpqy@6Zchb5QRxXsbeh z$2|FPTMYliGB5&mEj+Zk*5Ow@GDCJ==OM-{tov0tc2q|x(jT*zuFy=*^?)~dK8ei1 zf{n?|r-8fdBJouCBUhJ_@4Y8|=(}6f)h<0E`Pj7+2lH}xNCi_`i~cy~k|ayDFHEFr z0vMfNqzQG1bI-7PlC)zvn|DfNS6+<1ry&tcHCuG-@XYWhC&`=&z%jWBZ|fO$$~jYejZYGbt2uhMia?#k5kIS zyXpEbun3Pq`O0^=^2M+^B81pCFE*$asz*%Ly-f{P5DY(6`oR~3XR3^rJO99+4rTDWe%DNM zjJCQSK2JLjE4ZSI0{qD6uWa*#7F{Fs;v7Sgv{ov*BU+$yeivy=qeya`$DB4|tVF=zAyWODO`@xWglU?FV2Helg%I4sDG)i zp&4a$gs^pM=W=tt?W(ep{k1cxKzk_u3_L>#EKbYnJf|b84|__l<+0RmYZa^O3uY}> zV-=yUw>Mq%<~5KlgSUWGoocVrwcN}PF;6EV*20a}z8vo5@~wK+loS`^XiqEXiEI?5hW<)XnSrLc5D6^Ol62i;*6yeG{oAua-TI-iE>I z8+jv=*QSJ}L&>A*F=84fazaJs^Iy6$io@*FL@Xp=DfUvpJpcOmpw|Kri53%g3IELz=vrZ;r&uQ^-);x`9rp;RVB+o zt?7B1@kI`JAt+L0N7orZKOz(mXP64=`m>ztjV&Y@f09zP` z?3nr|{);jn)cKF2>F;+W@AP$;N}5(Eq8Y*G@x$Y}&L)MSKc-PimDP=wGky5&UOR0J zBemySGRZFvr*WryOWzMB8N`5P9>8!^AgK$%!)@IO4lj4sy;Iok|w^tjjt5( za<25pVg^Yq3l`iCr5qe3^jreTS*h`?z{K{X(6xP-NAlkgv(=nO8d4A zb@J`z!c@WmR!mW9$LMY&Q|49jBGV-kV+8hV23h~}^A$|2^jD2_Q?@UyBW^rS2K@byJ zU-vqX?t-~I>{?vFL;jpV@SDktGF%{sdf9V>0DXQXQ^buk@G)%Ll?S2C*#V<&`{S!O z+Y`VQn>&zFvFB;!9@n^+7o;1#840CuS9DV5Dqg+b&~1&M^nt0rpCF!jTQ*cD(LEIW zgMOp`lbgG#l2Nk2fr!d>B=IP#IGGYT`1q8YHLBaq8^iz338V0WrFPAX500!X|<^lmF3&iLoAUjJ12cZ3;Oqg&Ay5Snn zO;G@zQ!EiG&~XKYQ9$azPf;SU%$*Bd&H}H*#|04rUXuLtlZ2pK{+CY+GC1J**??ti zC@$qs@AVgEtix{Xzfa22ps}(Q!)e!JULqzyM#O+HP5Cv?G z10^Q=g)#r>tMdx;aoy5$Ap#;?e1Lf`sC}D(10^E)M-x5)elSeHODhP00H*yaB)}}# z03h&?B0vz!v!T2m+D{l!pA4TB>>X#_&|r6cZ-J@NV^05Pq^TpJ;MiHND%x-LH#FS-~k@- zEeB$uLr&u##LmC`_y5V&|8IT!+tAFvFaiHu8w4X{cpALK2)sOi%ZM~PtWsaaX%T`4 zt_|+8B0dS;=|GUEn8|L>!WGza@Wc&oZ?m)NN+5cCwIk-;`O4lwGhJ+*W4)B;@G(`WH=k^r|-P3SVg>vqIsaAv3mS?JSLUr>%K_BS($bekS^!9^vP@ zi5kiNO5ASlji~!VMxVcw!zgt6XpQ90nQEn#A_|!Y<;=5)jI=)1Kp!%`c%^JH@sy{* z%g3|j`4Y0+-A%H{hJcaqz>1DbpXwB4cu04GJOcldVJJld$@oV5943Yhl2#jIhdfU< zaeFLT#pGQ{AG+MYuBcEmCZy+)MfHBF*x`0=)u#-lSRWhO#AKAsreTS$j*P-~#8k*6 z(lpMkoAJrEy(KwR`uJUO_eVc$d8pW7G#1Z%0rDQ4bO^|y(|OerJRp*)?!TU|e@~*2 ztpaDl(4^w-so_&}`AI`_dqAIQURKtoJro6lPA4d-r}m3M?4x7z-4VG&VTuos>8h=Q zW!|gWD@p5b+x1_upAEuh-5pmloqf(>Hud}y*AuwDA(r%bbLlI4K8E^oqmZJ9MKx6l zYaSP5aUnjnmSw>X$N?O!IazC(wU5Fw{g?Fk_>CS@WT}Yc@3cPG&m>WC*>_PB32Q5< zU?GRqq#zSG%bu+wz9)<)>7TYMS5tPHp?fS*(e+g7n#BaJz4kfm0Rg8>2;mfjt5!mM z^vFdSo(hQ}f_*Fo+d9m5!vsitv>cQokQ8c_WRN&_{v6k!i%iENkHq#okIl#QeY91w z{e_y|xT8(|;)5m=%KURK$Cs+EbLxWF^m)OD5w;4YqdqD3*g|;L^E>i;FdVu!6I-%* z4{P#{jY7Y#i@rFA^^OVZ-2{_3rHdL+5`9$FI&aoJ@av?TG#L#_*J$@M%WEc#cq$ZS5H z%T7G@F}~RwvcR)oRUG2@v5kQ-2KhqMrq&EYu}p>b68SUYKU*E>W{AB_&$Y2tU2CcOd&m- z{m@)keAO%{cV3^K@kKkh`MIqjZ|3rY)&9{EweK&EPuxc@k0iDEAMU>N70Y8`cGhb` z=t)$?drQs~r+@@Q%p;p

Q{Qe)J-R_JdETMgA8A2hs7!DFC~Py{@Zt$ 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

  • UjvE(b${u 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

    RSS~W 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

    uF2j|X)YA}2BHKW)^M8lhGw*+1- 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 b`Q3---#`5F{)iPgPQc*k^z`9}$D{uM$;m-t delta 1646832 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 z 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

    Nt$?!-R#QK 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 z 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%0Dml3cC5*fu&MydA9`3yEPq`riuy7nfhadv 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�k* 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

    RMTxM{gL5i%#(1_K~2Q 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�s}HR7%SA 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ȵ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

    QYHu^C_kR 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 diff --git a/docs/theDoc/trackerlog.tex b/docs/theDoc/trackerlog.tex index cddef70f..95818476 100644 --- a/docs/theDoc/trackerlog.tex +++ b/docs/theDoc/trackerlog.tex @@ -9,15 +9,196 @@ \noindent General information on current version: \bi \small - \item Exudyn version = 1.6.164.dev1, - \item last change = 2023-06-12, - \item Number of issues = 1620, - \item Number of resolved issues = 1444 (164 in current version), + \item Exudyn version = 1.7.0, + \item last change = 2023-07-19, + \item Number of issues = 1650, + \item Number of resolved issues = 1470 (0 in current version), \ei \mysubsection{Resolved issues and resolved bugs} \par \noindent The following list contains the issues which have been {\bf RESOLVED} in the according version: \bi \setlength\itemsep{-4pt} \scriptsize + \item[] {\bf Version 1.7.0}: resolved Issue 1649: {\bf release} +(release) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: switch to new release 1.7} + \item date resolved: {\bf 2023-07-19 16:07}, +date raised: 2023-07-19 + \ei + \item[] {\bf Version 1.6.189}: resolved Issue 1648: {\bf ReevingSystemSprings} +(fix) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: adjust test example for treating compression forces} + \item date resolved: {\bf 2023-07-17 12:10}, +date raised: 2023-07-17 + \ei + \item[] {\bf Version 1.6.188}: resolved Issue 1647: {\bf sensorTraces} +(extension) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: add vectors and triads to position traces; show current vector or triad and add some further options for visualization, see visualizationSettings sensors.traces} + \item {\bf notes: added triads and vectors, showing traces of motion at sensor points} + \item date resolved: {\bf 2023-07-14 18:34}, +date raised: 2023-07-14 + \ei + \item[] {\bf Version 1.6.187}: resolved Issue 1640: {\bf visualization} +(extension) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: show trace of sensor positions (incl. frames) in render window; settings and list of sensors provided in visualizationSettings.sensors.traces with list of sensors, positionTrace, listOfPositionSensors=[] (empty means all position sensors, listOfVectorSensors=[] which can provide according vector quantities for positions; showVectors, vectorScaling=0.001, showPast=True, showFuture=False, showCurrent=True, lineWidth=2} + \item date resolved: {\bf 2023-07-14 11:20}, +date raised: 2023-07-11 + \ei + \item[] {\bf Version 1.6.186}: resolved Issue 1646: {\bf ArrayFloat} +(extension) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: C++ add type} + \item date resolved: {\bf 2023-07-13 16:27}, +date raised: 2023-07-13 + \ei + \item[] {\bf Version 1.6.185}: resolved Issue 1645: {\bf ReevingSystemSprings} +(extension) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: add way to remove compression forces in rope} + \item {\bf notes: added parameter regularizationForce with tanh regularization for avoidance of compressive spring force} + \item date resolved: {\bf 2023-07-12 16:05}, +date raised: 2023-07-12 + \ei + \item[] {\bf Version 1.6.184}: resolved Issue 1644: {\bf Minimize} +(extension) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: processing.Minimize: improve printout of current error of objective function=loss; only print every 1 second} + \item date resolved: {\bf 2023-07-12 09:29}, +date raised: 2023-07-12 + \ei + \item[] {\bf Version 1.6.183}: {\bf \color{warningRed} resolved BUG 1643}: {\bf Minimize} +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: processing.Minimize function has an internal bug, such that it does not work with initialGuess=[]} + \item date resolved: {\bf 2023-07-12 09:29}, +date raised: 2023-07-12 + \ei + \item[] {\bf Version 1.6.182}: {\bf \color{warningRed} resolved BUG 1642}: {\bf SolutionViewer} +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: record image not working with visualizationSettings useMultiThreadedRendering=True} + \item date resolved: {\bf 2023-07-11 17:58}, +date raised: 2023-07-11 + \ei + \item[] {\bf Version 1.6.181}: resolved Issue 1641: {\bf SolutionViewer} +(fix) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: github issue\#51: graphicsDataUserFunction in SolutionViewer not called; add call to graphicsData user functions in redraw image loop} + \item date resolved: {\bf 2023-07-11 17:16}, +date raised: 2023-07-11 + \ei + \item[] {\bf Version 1.6.180}: resolved Issue 1638: {\bf GeneticOptimization} +(extension) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: add argument parameterFunctionData to GeneticOptimization; same as in ParameterVariation, paramterFunctionData allows to pass additional data to the objective function} + \item date resolved: {\bf 2023-07-09 09:15}, +date raised: 2023-07-09 + \ei + \item[] {\bf Version 1.6.179}: resolved Issue 1637: {\bf add ChatGPT update information} +(extension) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: create Python model Examples/chatGPTupdate.py which includes information that is used by ChatGPT4 to improve abilities to create simple models fully automatic} + \item date resolved: {\bf 2023-06-30 15:01}, +date raised: 2023-06-30 + \ei + \item[] {\bf Version 1.6.178}: resolved Issue 1636: {\bf CreateMassPoint} +(change) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: change args referenceCoordinates to referencePosition, initialCoordinates to initialDisplacement, and initialVelocities to initialVelocity to be consistent with CreateRigidBody (but different from MassPoint itself)} + \item date resolved: {\bf 2023-06-30 14:09}, +date raised: 2023-06-30 + \ei + \item[] {\bf Version 1.6.177}: resolved Issue 1635: {\bf SmartRound2String} +(extension) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: add function to basic utilities to enable simple printing of numbers with few digits, including comma dot and not eliminating small numbers, e.g., 1e-5 stays 1e-5} + \item date resolved: {\bf 2023-06-30 09:22}, +date raised: 2023-06-30 + \ei + \item[] {\bf Version 1.6.176}: resolved Issue 1634: {\bf create directories} +(extension) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: add automatic creation of directories to FEM SaveToFile, plotting and ParameterVariation} + \item date resolved: {\bf 2023-06-29 10:29}, +date raised: 2023-06-29 + \ei + \item[] {\bf Version 1.6.175}: {\bf \color{warningRed} resolved BUG 1633}: {\bf GetInterpolatedSignalValue} +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: timeArray needs to be replaced with timeArrayNew in case of 2D input array} + \item date resolved: {\bf 2023-06-28 21:15}, +date raised: 2023-06-28 + \ei + \item[] {\bf Version 1.6.174}: resolved Issue 1632: {\bf PlotFFT} +(fix) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: matplotlib >= 1.7 complains about ax.grid(b=...) as parameter b has been replaced by visible} + \item date resolved: {\bf 2023-06-27 14:15}, +date raised: 2023-06-27 + \ei + \item[] {\bf Version 1.6.173}: resolved Issue 1626: {\bf mutable args itemInterface} +(fix) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: also copy dictionaries, mainly for visualization (flat level, but this should be sufficient)} + \item date resolved: {\bf 2023-06-21 10:40}, +date raised: 2023-06-21 + \ei + \item[] {\bf Version 1.6.172}: resolved Issue 1627: {\bf mutable default args} +(change) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: complete changes and adaptations for default args in Python functions and item interface; note individual adaptations for lists, vectors, matrices and special lists of lists or matrix containers; for itemInterface, anyway all data is copied into C++; for more information see issues 1536, 1540, 1612, 1624, 1625, 1626} + \item date resolved: {\bf 2023-06-21 10:15}, +date raised: 2023-06-21 + \ei + \item[] {\bf Version 1.6.171}: resolved Issue 1625: {\bf change to default arg None} +(change) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: change default args for Vector2DList, Vector3DList, Vector6DList, Matrix3DList, to None; ArrayNodeIndex, ArrayMarkerIndex, ArraySensorIndex obtain copy method and are copied now; avoid problem of mutable default args} + \item date resolved: {\bf 2023-06-21 00:26}, +date raised: 2023-06-20 + \ei + \item[] {\bf Version 1.6.170}: resolved Issue 1624: {\bf MatrixContainer} +(change) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: change default values for matrix container to None; avoid problem of mutable default args} + \item date resolved: {\bf 2023-06-20 23:39}, +date raised: 2023-06-20 + \ei + \item[] {\bf Version 1.6.169}: resolved Issue 1540: {\bf mutable args itemInterface} +(check) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: copy lists in itemInterface in order to avoid change of default args by user n=NodePoint();n.referenceCoordinates[0]=42;n1=NodePoint()} + \item {\bf notes: simple vectors, matrices and lists are copied with np.array(...) while complex matrix and list of array types are now initialized with None} + \item date resolved: {\bf 2023-06-20 22:13}, +date raised: 2023-04-28 + \ei + \item[] {\bf Version 1.6.168}: resolved Issue 1620: {\bf docu MainSystemExtensions} +(docu) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: reorder MainSystemExtensions with separate section for Create functions and one section for remaining functions} + \item date resolved: {\bf 2023-06-19 22:14}, +date raised: 2023-06-13 + \ei + \item[] {\bf Version 1.6.167}: {\bf \color{warningRed} resolved BUG 1622}: {\bf mouse click} +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: fix crash on linux if left / right mouse click on render window (related to OpenGL select window)} + \item {\bf notes: occurs on WSL with WSLg; using 'export LIBGL\_ALWAYS\_SOFTWARE=1' will resolve the problem; put this line into your .bashrc} + \item date resolved: {\bf 2023-06-19 22:11}, +date raised: 2023-06-19 + \ei + \item[] {\bf Version 1.6.166}: {\bf \color{warningRed} resolved BUG 1621}: {\bf LinearSolverType} +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: fix crash on linux in function SetLinearSolverType} + \item date resolved: {\bf 2023-06-19 20:27}, +date raised: 2023-06-19 + \ei + \item[] {\bf Version 1.6.165}: resolved Issue 1623: {\bf MouseSelectOpenGL} +(extension) +\vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} + \item {description: add optional debbuging output} + \item date resolved: {\bf 2023-06-19 19:56}, +date raised: 2023-06-19 + \ei \item[] {\bf Version 1.6.164}: resolved Issue 1267: {\bf matrix inverse} (extension) \vspace{-6pt} \begin{itemize} \setlength\itemsep{-1pt} @@ -7684,6 +7865,11 @@ \ei \mysubsection{Known open bugs} \bi \footnotesize + \item open {\bf BUG 1639}: {\bf SolveDynamic FFRF} + \begin{itemize} \setlength\itemsep{-1pt} + \item {description: repeated call to mbs.SolveDynamic gives divergence; attributed to FFRFreducedOrder model; workaround uses repeated build of model before calling solver again; may be related to FFRF or MarkerSuperElement-internal variables} + \item date raised: 2023-07-10 + \ei \item open {\bf BUG 1085}: {\bf GeneralContact} \begin{itemize} \setlength\itemsep{-1pt} \item {description: generalContactFrictionTests.py gives considerably different results after t=0.05 seconds between Windows and linux compiled version; may be caused by some initialization problems (bugs...); needs further tests} diff --git a/docs/theDoc/tutorial.tex b/docs/theDoc/tutorial.tex index a9b17673..04702763 100644 --- a/docs/theDoc/tutorial.tex +++ b/docs/theDoc/tutorial.tex @@ -476,8 +476,7 @@ \end{lstlisting} \noindent Sometimes it is hard to understand the degree of freedom for the constrained system. Furthermore, we may have added -- by error -- -redundant constraints, which are not solvable or at least cause solver problems. Both can be checked with the command -\texttt{}: +redundant constraints, which are not solvable or at least cause solver problems. Both can be checked with the command: \pythonstyle\begin{lstlisting} mbs.ComputeSystemDegreeOfFreedom(verbose=True) #print out DOF and further information \end{lstlisting} @@ -542,7 +541,7 @@ With \texttt{solutionWritePeriod} you can adjust the frequency which is used to store the solution of the whole model, which may lead to very large files and may slow down simulation, but is used in the \texttt{SolutionViewer()} to reload the solution after simulation. -\noindent In order to improve visualization, there are hundreds of options, see Visualization settings in \refSection{sec:VSettingsGeneral}, some of them used here: +\noindent In order to improve visualization, there are hundreds of options, see Visualization settings in \refSection{sec:VisualizationSettingsMain}, some of them used here: \pythonstyle\begin{lstlisting} SC.visualizationSettings.window.renderWindowSize = [1600,1200] SC.visualizationSettings.openGL.multiSampling = 4 #improved OpenGL rendering diff --git a/docs/theDoc/version.tex b/docs/theDoc/version.tex index 946b2483..851107ff 100644 --- a/docs/theDoc/version.tex +++ b/docs/theDoc/version.tex @@ -1,3 +1,3 @@ % version info automatically generated by tracker; generated by Johannes Gerstmayr -% last modified = 2023-06-12 -Exudyn version = 1.6.164.dev1 (Gillespie) +% last modified = 2023-07-19 +Exudyn version = 1.7.0 (Hall) diff --git a/main/pythonDev/Examples/ROSExampleMassPoint.py b/main/pythonDev/Examples/ROSExampleMassPoint.py new file mode 100644 index 00000000..002aa929 --- /dev/null +++ b/main/pythonDev/Examples/ROSExampleMassPoint.py @@ -0,0 +1,212 @@ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# This is an EXUDYN python example how to use ROS and EXUDYN +# +# Details: This example shows how to communicate between an exudyn simulation +# and ROS publisher and subscriber from bash +# To make use of this example, you need to +# install ROS (ROS1 noetic) including rospy (see rosInterface.py) +# prerequisits to use: +# use a bash terminal to start the roscore with: +# roscore +# send force command to add load to the mass point form bash file with: +# rostopic pub -r 100 /cmd_wrench geometry_msgs/WrenchStamped "..." +# Author: Martin Sereinig, Peter Manzl +# Date: 2023-05-31 (created) +# +# Copyright:This file is part of Exudyn. Exudyn is free software. +# You can redistribute it and/or modify it under the terms of the Exudyn license. +# See 'LICENSE.txt' for more details. +# +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +import numpy as np +import exudyn as exu +from exudyn.utilities import * + +# import needed ROS modules and messages +import rospy +from geometry_msgs.msg import WrenchStamped, Twist +from std_msgs.msg import String + +# import new exudyn ROS interface class +import rosInterface as exuROS + +# here build inherited class and using within a simple exudyn simulation of one mass spring-damper +class MyExudynROSInterface(exuROS.ROSInterface): + def __init__(self): + # use initialisation of super class + # this initialize a rosnode with name + super().__init__(name='exuROSexample3Dmass') + # initialization of all standard publisher done by super class + # self.exuPosePublisher + # self.exuStringPublisher + # self.exuSystemstatePublisher + # self.exuTimePublisher + # self.exuTwistPublisher + + # use standard publisher functions form super class! + # self.PublishPoseUpdate + # self.PublishTwistUpdate + # self.PublishSystemStateUpdate + + # initialize all subscriber + # suitable callback function is auto generated by superclass (using lambda function) + # twist subscriber: cmd_vel + twistSubsrciberBase = '' + twistSubsrciberTopic = 'cmd_vel' # topic to subscribe + self.cmd_vel = Twist() # data type of topic, must be named: self.twistSubscriberTopic + self.myTwistSubscriber = self.InitSubscriber(twistSubsrciberBase,twistSubsrciberTopic,Twist) + + # wrench subscriber: cmd_wrench + twistSubsrciberBase = '' + twistSubsrciberTopic = 'cmd_wrench' # topic to subscribe + self.cmd_wrench = WrenchStamped() # data type of topic, must be named: self.twistSubscriberTopic + self.myWrenchSubscriber = self.InitSubscriber(twistSubsrciberBase,twistSubsrciberTopic,WrenchStamped) + + # string subsriber: my_string + stringSubsrciberBase = '' + stringSubsrciberTopic = 'my_string' # topic to subscribe + self.my_string = String() # data type of topic, must be named: self.twistSubscriberTopic + self.myStringSubscriber = self.InitSubscriber(stringSubsrciberBase,stringSubsrciberTopic,String) + + # string subsriber: /exudyn/SimpleString + stringSubsrciberBase2 = 'exudyn/' # namespace of topic + stringSubsrciberTopic2 = 'SimpleString' # topic to subscribe + self.SimpleString = String() # data type of topic, must be named: self.twistSubscriberTopic + self.myStringSubscriber = self.InitSubscriber(stringSubsrciberBase2,stringSubsrciberTopic2,String) + + +# test main function +def main(): + + # build exudyn model + SC = exu.SystemContainer() + mbs = SC.AddSystem() + tRes = 0.001 # step size in s + tEnd = 1e5 # simulation time in s + # mass and dimension of sphere + mass = 6 + r = 0.03 + background = GraphicsDataCheckerBoard(point=[-0.5,0,0], + normal=[1, 0, 0], + color=[0.7]*3+[1], + alternatingColor=[0.8]*3+[1]) + + graphicsSphere = GraphicsDataSphere(point=[0,0,0], + radius=r, + color=(1,0,0,1), + nTiles=64) + + origin = [0, 0, 0] + bGround = mbs.AddObject(ObjectGround(referencePosition=origin, + visualization=VObjectGround(graphicsData=[background]))) + + inertiaSphere = InertiaSphere(mass=mass,radius=r) + + # user interaction point + [nUIP, bUIP]=AddRigidBody(mainSys = mbs, + inertia = inertiaSphere, + nodeType = str(exu.NodeType.RotationEulerParameters), + position = [origin[0], origin[1], origin[2]], + rotationMatrix = np.eye(3), + angularVelocity = np.zeros(3), + velocity= [0,0,0], + gravity = [0, 0, 0], + graphicsDataList = [graphicsSphere]) + + # create markers: + mGround = mbs.AddMarker(MarkerBodyRigid(bodyNumber=bGround, localPosition=[0, 0, 0.])) + mUIP = mbs.AddMarker(MarkerBodyRigid(bodyNumber=bUIP)) + mUIPLoad = mbs.AddLoad(LoadForceVector(markerNumber = mUIP,loadVector =[0,0,0])) + + k = 100 + oSpringDamper = mbs.AddObject(RigidBodySpringDamper(markerNumbers=[mGround, mUIP], + stiffness=np.eye(6)*k, + damping=np.eye(6)*k*5e-2, + visualization={'show': False, 'drawSize': -1, 'color': [-1]*4})) + + + # sensor for position of endpoint of pendulum + sensorPos = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Position)) + sensorOri = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Rotation)) + sensorVelt = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Velocity)) + sensorVelr = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.AngularVelocity)) + + # store sensor value of each step in mbs variable, so that is accessible from user function + mbs.variables['pos'] = sensorPos + mbs.variables['ori'] = sensorOri + mbs.variables['velt'] = sensorVelt + mbs.variables['velr'] = sensorVelr + + # initialize ROS interface from own subclass + myROSInterface = MyExudynROSInterface() + + print('rosversion: ' + str(myROSInterface.myROSversionEnvInt)) + rospy.logdebug('node running and publishing') + + # exudyn PreStepUserFunction + def PreStepUserFunction(mbs, t): + # send position data to ROS + myROSInterface.PublishPoseUpdate(mbs,t) + # send velocity data to ROS + myROSInterface.PublishTwistUpdate(mbs,t) + # send system state data to ROS + myROSInterface.PublishSystemStateUpdate(mbs,t) + + # get string data from ROS /my_string topic, please use: rostopic pub -r 100 /my_string geometry_msgs/WrenchStamped "..." + someMessage = myROSInterface.my_string.data + if someMessage != '' : + print('mystringdata',someMessage) + + # get wrench data from ROS /cmd_wrench topic, please use: rostopic pub -r 100 /cmd_wrench geometry_msgs/WrenchStamped "..." + rosForces = myROSInterface.cmd_wrench.wrench.force + rosTorques = myROSInterface.cmd_wrench.wrench.torque + print('forces from ROS:', rosForces) + print('torques from ROS : ', rosTorques) + + # demo set force to certain value received from ROS /cmd_wrench + newForce = [rosForces.x, rosForces.y, rosForces.z] + mbs.SetLoadParameter(mUIPLoad,'loadVector',newForce) + + return True + + mbs.SetPreStepUserFunction(PreStepUserFunction) + # assemble multi body system with all previous specified properties and components + mbs.Assemble() + # set simulation settings + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.endTime = tEnd + simulationSettings.timeIntegration.numberOfSteps = int(tEnd/tRes) + simulationSettings.timeIntegration.newton.relativeTolerance = 1e-8*100 + simulationSettings.timeIntegration.newton.absoluteTolerance = 1e-10 + simulationSettings.timeIntegration.verboseMode = 1 # if 0 no output; higher --> more output information about solver + simulationSettings.timeIntegration.newton.useModifiedNewton = False + simulationSettings.timeIntegration.newton.numericalDifferentiation.minimumCoordinateSize = 1 + simulationSettings.timeIntegration.generalizedAlpha.spectralRadius = 0.5 + simulationSettings.timeIntegration.generalizedAlpha.computeInitialAccelerations = False + simulationSettings.timeIntegration.simulateInRealtime = True # crucial for operating with robot + simulationSettings.displayStatistics = True + simulationSettings.solutionSettings.solutionInformation = "3D Spring Damper" + simulationSettings.solutionSettings.writeSolutionToFile = False + viewMatrix = np.eye(3) @ RotationMatrixZ(np.pi/2)@ RotationMatrixX(np.pi/2) + SC.visualizationSettings.general.autoFitScene = False + # set up parameter for usage in WSL2 (Ubuntu 20.04) on Windows 10 + SC.visualizationSettings.window.startupTimeout = 5000 + SC.visualizationSettings.interactive.selectionLeftMouse=False + SC.visualizationSettings.interactive.selectionRightMouse=False + + exu.StartRenderer(True) + exu.SolveDynamic(mbs, simulationSettings) + + return True + +# __main__ function for testing the interface +if __name__ == "__main__": + try: + main() + except rospy.ROSInterruptException: + pass + diff --git a/main/pythonDev/Examples/ROSExampleTurtle.py b/main/pythonDev/Examples/ROSExampleTurtle.py new file mode 100644 index 00000000..20d76c65 --- /dev/null +++ b/main/pythonDev/Examples/ROSExampleTurtle.py @@ -0,0 +1,310 @@ +#!/usr/bin/env python3 +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# This is an EXUDYN python example how to use ROS and EXUDYN +# +# Details: This example shows how to communicate between an exudyn simulation +# and ROS +# To make use of this example, you need to +# install ROS (ROS1 noetic) including rospy (see exudynROSInterface.py) +# prerequisite to use: +# use a bash terminal to start the roscore with: +# roscore +# you can also use the ROS turtlesim_node to subsrcibe the Twist massage from exudyn +# use a bash terminal to start the turtlesim node with: +# rosrun turtlesim turtlesim_node turtle1/cmd_vel:=exudyn/Twist +# start example with argument -pub, to use it with external publisher: +# python3 ROSexampleTurtle.py -pub +# start example with argument -noTrack, to not track the turtle: +# python3 ROSexampleTurtle.py -noTrack +# for even more ROS functionality create a ROS package (e.q. myExudynInterface) in a catkin workspace, +# copy files ROSExampleTurtle.py, Turtle.stl and ROSExampleBringup.launch file in corresponding folders within the package +# for more functionality see also: ROSExampleMassPoint.py, ROSExampleBringup.launch, ROSExampleControlVelocity.py +# Author: Martin Sereinig, Peter Manzl +# Date: 2023-05-31 (created) +# +# Copyright:This file is part of Exudyn. Exudyn is free software. +# You can redistribute it and/or modify it under the terms of the Exudyn license. +# See 'LICENSE.txt' for more details. +# +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +import numpy as np +import sys +import exudyn as exu +from exudyn.utilities import * + +# import needed ROS modules and messages +import rospy +from geometry_msgs.msg import Twist +from std_msgs.msg import String + +# import new exudyn ROS interface class +import rosInterface as exuROS + +# here build inherited class and using within a simple exudyn simulation of one mass spring-damper +class MyExudynROSInterface(exuROS.ROSInterface): + def __init__(self): + # use initialisation of super class + # this initialize a rosnode with name + super().__init__(name='ROSexampleTurtle') + # initialization of all standard publisher done by super class + # self.exuPosePublisher + # self.exuStringPublisher + # self.exuSystemstatePublisher + # self.exuTimePublisher + # self.exuTwistPublisher + + # use standard publisher functions form super class! + # self.PublishPoseUpdate + # self.PublishTwistUpdate + # self.PublishSystemStateUpdate + + # initialize all subscriber + # suitable callback function is auto generated by superclass (using lambda function) + # twist subscriber: cmd_vel + twistSubsrciberBase = '' + twistSubsrciberTopic = 'cmd_vel' # topic to subscribe + self.cmd_vel = Twist() # data type of topic, must be named: self.twistSubscriberTopic + self.myTwistSubscriber = self.InitSubscriber(twistSubsrciberBase,twistSubsrciberTopic,Twist) + # string subsriber: my_string + stringSubsrciberBase = '' + stringSubsrciberTopic = 'my_string' # topic to subscribe + self.my_string = String() # data type of topic, must be named: self.twistSubscriberTopic + self.myStringSubscriber = self.InitSubscriber(stringSubsrciberBase,stringSubsrciberTopic,String) + + +def main(): + + #function to check if argument is in sys.argv with try/except + def argumentInSysArgv(index): + try: + sys.argv[index] + except IndexError: + return '' + else: + return sys.argv[index] + + # turtle moves in circle and is tracked by default (no arguments) + hearToPublisher = False + saveTrack = True + # parse command line arguments for multiple arguments: + # -pub: use external publisher + # -noTrack: do not track turtle + if len(sys.argv) > 1: + for arguments in range(len(sys.argv)): + if argumentInSysArgv(arguments) == '-pub': + hearToPublisher = True + print('Wait for external ROS publisher on /cmd_vel for turtle to move') + if argumentInSysArgv(arguments) == '-noTrack': + saveTrack = False + print('Turtle is not tracked') + + # build exudyn model + SC = exu.SystemContainer() + mbs = SC.AddSystem() + tRes = 0.001 # step size in s + tEnd = 1e5 # simulation time in s + # density and dimension of box + boxdensity = 1e-5 + boxLength = [0.5, 0.25, 0.1] + + background = GraphicsDataCheckerBoard(point=[0,0,0], + normal=[0, 0, 1], + color=[0.7]*3+[0.5], + alternatingColor=[0.8]*3+[1], + nTiles=10, + size=10) + + graphicsCube = GraphicsDataOrthoCubePoint(centerPoint = [0,0,0], + size = boxLength, + color = [1,0.,0.,1.], + addNormals = False, + addEdges = False, + edgeColor = color4black, + addFaces = True) + inertiaCube = InertiaCuboid(density= boxdensity, sideLengths = boxLength) + + + origin = [0, 0, 0] + bGround = mbs.AddObject(ObjectGround(referencePosition=origin, + visualization=VObjectGround(graphicsData=[background]))) + + # graphics userfunction definieren: + if saveTrack: + def graphicsTrajUF(mbs, itemNumber): + t = mbs.systemData.GetTime(exu.ConfigurationType.Visualization) + # position of turtle stored by sensor in mbs.variables['pos'] + pOld = mbs.GetSensorStoredData(mbs.variables['pos']) + try: + iCurr = np.min([np.argmin(abs(pOld[:,0] - t)), len(pOld[:,0])-1]) + pOld = pOld[:iCurr, :] + except: + pass + + if len(pOld) > 2: + trajData = np.matrix.flatten(pOld[:,1:]).tolist() + + for i in range(int(len(trajData)/3)): + trajData[2+3*i] += 0.115 # draw it on top of the robot + graphicsTraj = {'type':'Line', 'data': trajData, 'color':color4blue} + else: + graphicsTraj = [] + return [graphicsTraj] + # add object ground with graphics user function to add turtle track + oTrack = mbs.AddObject(ObjectGround(visualization =VObjectGround(graphicsData=[], graphicsDataUserFunction = graphicsTrajUF))) + + graphicsTurtleList = [] + try: + try: + path2stl = rospy.get_param('/ROSExampleTurtle/stlFilePath') # node_name/argsname + except: + path2stl = '' + print('stl file path: ', path2stl) + turtleRot = RotationMatrixZ(-np.pi/2) + stlGrafics = GraphicsDataFromSTLfile(path2stl+'Turtle.stl',color=[1,0,0,1],scale=0.25,pOff=[0.35,0,0], Aoff=turtleRot) + graphicsTurtleList += [stlGrafics] + except: + print('stl not found, maybe wrong directory, use box instead') + graphicsTurtleList += [graphicsCube] + + # user interaction point + [nUIP, bUIP]=AddRigidBody(mainSys = mbs, + inertia = inertiaCube, + nodeType = str(exu.NodeType.RotationEulerParameters), + position = [origin[0], origin[1], origin[2]], + rotationMatrix = np.eye(3), + angularVelocity = np.array([0,0,0]), + velocity= [0,0,0], + gravity = [0, 0, 0], + graphicsDataList = graphicsTurtleList) + + + # create markers: + mGround = mbs.AddMarker(MarkerBodyRigid(bodyNumber=bGround, localPosition=[0.0, 0.0, 0.0])) + mUIP = mbs.AddMarker(MarkerBodyRigid(bodyNumber=bUIP)) + + dampingHelper = 1e-4 + # create userfunction for TorsionalSpringDamper + def UFtorque(mbs,t,itemNumber,r,av,k,d,offset): + return (av-offset)*d + # create TorsionalSpringDamper object + oTSD = mbs.AddObject(TorsionalSpringDamper(markerNumbers = [mGround,mUIP], + damping = dampingHelper, + offset = 0, + springTorqueUserFunction = UFtorque)) + # create userfunction for CartesianSpringDamper + def UFforce(mbs, t,itemNumber, u, v, k, d, offset): + return [(v[0]-offset[0])*d[0], (v[1]-offset[1])*d[1], (v[2]-offset[2])*d[2]] + # create CartesianSpringDamper object + + oCSD = mbs.AddObject(CartesianSpringDamper(markerNumbers = [mGround, mUIP], + damping = [dampingHelper,dampingHelper,dampingHelper], + offset = [0,0,0], + springForceUserFunction = UFforce, + visualization=VObjectConnectorCartesianSpringDamper(show=False))) + + sensorPos = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Position,storeInternal=True)) + sensorOri = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Rotation)) + sensorVelt = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.Velocity)) + sensorVelr = mbs.AddSensor(SensorBody(bodyNumber=bUIP, + outputVariableType=exu.OutputVariableType.AngularVelocity)) + + # store sensor value of each step in mbs variable, so that is accessible from user function + mbs.variables['pos'] = sensorPos # just needed if sensor is used for sensor information + mbs.variables['ori'] = sensorOri # just needed if sensor is used for sensor information + mbs.variables['velt'] = sensorVelt # just needed if sensor is used for sensor information + mbs.variables['velr'] = sensorVelr # just needed if sensor is used for sensor information + mbs.variables['hearToPublisher'] = hearToPublisher # needed to use with and without external publisher + mbs.variables['nodeNumber'] = nUIP # just needed if nodeNumber is used for sensor information + + # initialize ROS interface from own subclass + myROSInterface = MyExudynROSInterface() + + print('rosversion: ' + str(myROSInterface.myROSversionEnvInt)) + rospy.logdebug('node running and publishing') + + # exudyn PreStepUserFunction + def PreStepUserFunction(mbs, t): + + # get velocity data from ROS /cmd_vel topic, please use: rostopic pub -r 100 /cmd_vel geometry_msgs/Twist "..." + rosLinearVelo = myROSInterface.cmd_vel.linear + rosAngularVelo = myROSInterface.cmd_vel.angular + + # EXAMPLE to get position and orientation from exudyn turtle via sensor + turtlePosition = mbs.GetSensorValues(mbs.variables['pos']) + turtleOrientation = mbs.GetSensorValues(mbs.variables['ori'])[2] + turtleOrientationMatrix = RotationMatrixZ(turtleOrientation) + + + # set velocities to exudyn turtle simulation + if mbs.variables['hearToPublisher'] ==True: + # exudyn turtle hears on publisher + desiredLinearVelocity = turtleOrientationMatrix @ [rosLinearVelo.x, rosLinearVelo.y, rosLinearVelo.z] + desiredAngularVelocity = [rosAngularVelo.x, rosAngularVelo.y, rosAngularVelo.z] + else: + # exudyn turtle moves in a circle + desiredLinearVelocity = turtleOrientationMatrix @ [1, 0, 0] + desiredAngularVelocity = [0, 0, 1] + + mbs.SetObjectParameter(oCSD, 'offset', desiredLinearVelocity) + mbs.SetObjectParameter(oTSD, 'offset', desiredAngularVelocity[2]) + + # send velocity data to ROS + myROSInterface.PublishTwistUpdate(mbs,t) + # send position data to ROS + myROSInterface.PublishPoseUpdate(mbs,t) + # send system state data to ROS + myROSInterface.PublishSystemStateUpdate(mbs,t) + + return True + + + + + + mbs.SetPreStepUserFunction(PreStepUserFunction) + # assemble multi body system with all previous specified properties and components + mbs.Assemble() + # set simulation settings + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.endTime = tEnd + simulationSettings.timeIntegration.numberOfSteps = int(tEnd/tRes) + simulationSettings.timeIntegration.newton.relativeTolerance = 1e-8*100 + simulationSettings.timeIntegration.newton.absoluteTolerance = 1e-10 + simulationSettings.timeIntegration.verboseMode = 1 # if 0 no output; higher --> more output information about solver + simulationSettings.timeIntegration.newton.useModifiedNewton = False + simulationSettings.timeIntegration.newton.numericalDifferentiation.minimumCoordinateSize = 1 + simulationSettings.timeIntegration.generalizedAlpha.spectralRadius = 0.5 + simulationSettings.timeIntegration.generalizedAlpha.computeInitialAccelerations = False + + simulationSettings.timeIntegration.simulateInRealtime = True # crucial for operating with robot + simulationSettings.displayStatistics = True + simulationSettings.solutionSettings.solutionInformation = "Exudyn-ROS turtle" + + simulationSettings.solutionSettings.writeSolutionToFile = False + SC.visualizationSettings.general.autoFitScene = True + # set up parameter for usage in WSL2 (Ubuntu 20.04) on Windows 10 + SC.visualizationSettings.interactive.trackMarker = mUIP + SC.visualizationSettings.window.startupTimeout = 8000 + SC.visualizationSettings.openGL.initialZoom = 0.2 + SC.visualizationSettings.openGL.initialMaxSceneSize= 0.7 + SC.visualizationSettings.interactive.selectionLeftMouse=False + SC.visualizationSettings.interactive.selectionRightMouse=False + + + exu.StartRenderer(True) + exu.SolveDynamic(mbs, simulationSettings) + + return True + +# create a function + +# __main__ function +if __name__ == "__main__": + try: + main() + except rospy.ROSInterruptException: + pass + diff --git a/main/pythonDev/Examples/chatGPTupdate.py b/main/pythonDev/Examples/chatGPTupdate.py new file mode 100644 index 00000000..fc092198 --- /dev/null +++ b/main/pythonDev/Examples/chatGPTupdate.py @@ -0,0 +1,170 @@ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# This is an Exudyn file +# +# Details: this file serves as a list of examples that shall be used by +# ChatGPT to update information on its internal knowledge of Exudyn +# dating to 2021; the examples use the mainSystemExtensions +# which are heavily simplifying usage of point masses and rigid bodies +# Version: V1 +# +# Author: Johannes Gerstmayr +# Date: 2023-06-30 +# +# Copyright:This file is part of Exudyn. Exudyn is free software. You can redistribute it and/or modify it under the terms of the Exudyn license. See 'LICENSE.txt' for more details. +# +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +#copy the text below here into a ChatGPT input window: + +#Use the following information as an update of the internal data of the Python multibody code Exudyn. +#See the following examples to create multibody systems in Exudyn. +#NOTE: mbs.Create...(...) calls several functions in the background to create nodes, objects, markers and loads in Exudyn. +#all quantities are giving as 3D lists [x,y,z] for positions, velocities, .... +#rotations are usually given as rotation matrix (numpy array); +#RotationVector2RotationMatrix([rotX, rotY, rotZ]) computes a rotation around the global x,y,z rotation axis + +#%%++++++++++++++++++++++++++++++++++++++++++++++++++++ +#create rigid bodies and mass points with distance constraint and joints +import exudyn as exu +from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities +import numpy as np +SC = exu.SystemContainer() +mbs = SC.AddSystem() #create a MainSystem 'mbs' to work with + +#draw orthonormal cube in local frame where it is added to; +#cube is added to reference point of object, usually the center of mass (COM): +graphicsCube = GraphicsDataOrthoCubePoint(centerPoint = [0,0,0], + size=[1,0.1,0.1], color=color4orange) + +#create inertia (mass, COM, inertia tensor) to be used in rigid body: +inertiaCube = InertiaCuboid(density=5000, sideLengths=[1,0.1,0.1]) + +#create simple rigid body +#note that graphics is always attached to reference point of body, which is by default the COM +b0 = mbs.CreateRigidBody(inertia = inertiaCube, + referencePosition = [0.5,0,0], #reference position x/y/z of COM + referenceRotationMatrix=RotationVector2RotationMatrix([0,0,pi*0.5]), + initialAngularVelocity=[2,0,0], + initialVelocity=[0,4,0], + gravity = [0,-9.81,0], + graphicsDataList = [graphicsCube]) + +#add an additional load to rigid body at left end; this always requires markers; +#for torques use Torque(...) instead of Force(...) +markerBody0 = mbs.AddMarker(MarkerBodyRigid(bodyNumber=b0, localPosition=[-0.5,0,0])) +mbs.AddLoad(Force(markerNumber=markerBody0, + loadVector=[10,0,0])) #load is 10N in x-direction + +#create a simple mass point at [1,-1,0] with initial velocity +m1 = mbs.CreateMassPoint(referencePosition=[1,-1,0], + initialVelocity = [2,5,0], #initial velocities for mass point + physicsMass=1, drawSize = 0.2) +#we can obtain the node number from the mass point: +n1 = mbs.GetObject(m1)['nodeNumber'] + +#add a ground object: +#graphics data for sphere: +gGround0 = GraphicsDataSphere(point=[3,1,0], radius = 0.1, color=color4red, nTiles=16) +#graphics for checkerboard background: +gGround1 = GraphicsDataCheckerBoard(point=[3,0,-2], normal=[0,0,1], size=10) +oGround = mbs.AddObject(ObjectGround(visualization=VObjectGround(graphicsData=[gGround0,gGround1]))) + +#create a rigid distance between bodies (using local position) or between nodes +mbs.CreateDistanceConstraint(bodyOrNodeList=[oGround, b0], + localPosition0 = [ 0. ,0,0], + localPosition1 = [-0.5,0,0], + distance=None, #automatically computed + drawSize=0.06) + +#distance constraint between body b0 and mass m1 +mbs.CreateDistanceConstraint(bodyOrNodeList=[b0, m1], + localPosition0 = [0.5,0,0], + localPosition1 = [0.,0.,0.], #must be [0,0,0] for Node + distance=None, #automatically computed + drawSize=0.06) + +#add further rigid body, which will be connected with joints +b1 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, sideLengths=[1,0.1,0.1]), + referencePosition = [2.5,0,0], #reference position x/y/z + gravity = [0,-9.81,0], + graphicsDataList = [graphicsCube]) + +b2 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, sideLengths=[1,0.1,0.1]), + referencePosition = [3.5,0,0], #reference position x/y/z + gravity = [0,-9.81,0], + graphicsDataList = [graphicsCube]) + +#create revolute joint with following args: + # name: name string for joint; markers get Marker0:name and Marker1:name + # bodyNumbers: a list of object numbers for body0 and body1; must be rigid body or ground object + # position: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 + # axis: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global rotation axis of the joint in reference configuration; else: local axis in body0 + # useGlobalFrame: if False, the point and axis vectors are defined in the local coordinate system of body0 + # show: if True, connector visualization is drawn + # axisRadius: radius of axis for connector graphical representation + # axisLength: length of axis for connector graphical representation + # color: color of connector +#returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +mbs.CreateRevoluteJoint(bodyNumbers=[b1, b2], position=[3,0,0], axis=[0,0,1], #rotation along global z-axis + useGlobalFrame=True, axisRadius=0.02, axisLength=0.14) + + +#create prismatic joint with following args: + # name: name string for joint; markers get Marker0:name and Marker1:name + # bodyNumbers: a list of object numbers for body0 and body1; must be rigid body or ground object + # position: a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 + # axis: a 3D vector as list or np.array containing the global translation axis of the joint in reference configuration + # useGlobalFrame: if False, the point and axis vectors are defined in the local coordinate system of body0 + # show: if True, connector visualization is drawn + # axisRadius: radius of axis for connector graphical representation + # axisLength: length of axis for connector graphical representation + # color: color of connector +#returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +mbs.CreatePrismaticJoint(bodyNumbers=[oGround, b1], position=[2,0,0], axis=[1,0,0], #can move in global x-direction + useGlobalFrame=True, axisRadius=0.02, axisLength=1) + +# #instead of the prismatic joint, we could add another revolute joint to b1 to get a double-pendulum: +# mbs.CreateRevoluteJoint(bodyNumbers=[oGround, b1], position=[2,0,0], axis=[0,0,1], +# useGlobalFrame=True, axisRadius=0.02, axisLength=0.14) + + +#create simple mass point, connected with ground +m2 = mbs.CreateMassPoint(referencePosition = [7,2,0], + physicsMass = 10, gravity = [0,-9.81,0], + drawSize = 0.5, color=color4blue) + +#create spring damper between bodies (using local position) or between nodes +#spring-damper may not have size 0; spring reference length is computed from reference configuration +oSD = mbs.CreateSpringDamper(bodyOrNodeList=[oGround, m2], + localPosition0=[6,0,0], + localPosition1=[0,0,0], + stiffness=1e3, damping=1e1, + drawSize=0.2) + +#alternatively, we can use a CartesianSpringDamper; has spring and damper coefficients as list of x/y/z components +#it has no reference length and acts on the coordinates of both objects: +oCSD = mbs.CreateCartesianSpringDamper(bodyOrNodeList=[oGround, m2], + localPosition0=[7,2,0], + localPosition1=[0,0,0], + stiffness=[20,0,1e4], #stiffness in x/y/z direction + damping=[0.1,0,10], + drawSize=0.2) + +#prepare mbs for simulation: +mbs.Assemble() +#some simulation parameters: +simulationSettings = exu.SimulationSettings() #takes currently set values or default values +simulationSettings.timeIntegration.numberOfSteps = 1000 +simulationSettings.timeIntegration.endTime = 5 + +#for redundant constraints, the following two settings: +simulationSettings.linearSolverSettings.ignoreSingularJacobian=True +simulationSettings.linearSolverType = exu.LinearSolverType.EigenDense + +mbs.SolveDynamic(simulationSettings = simulationSettings, + solverType=exu.DynamicSolverType.GeneralizedAlpha) +SC.visualizationSettings.nodes.drawNodesAsPoint=False #draw nodes as spheres; better graphics for nodes + +#visualize results: +mbs.SolutionViewer() + diff --git a/main/pythonDev/Examples/craneReevingSystem.py b/main/pythonDev/Examples/craneReevingSystem.py index 0a401ec4..b9e5c6ac 100644 --- a/main/pythonDev/Examples/craneReevingSystem.py +++ b/main/pythonDev/Examples/craneReevingSystem.py @@ -291,7 +291,11 @@ class ExudynTestGlobals: visualization=VReevingSystemSprings(ropeRadius=rRope, color=color4dodgerblue))) - +#show trace of hook +sPosTCP = mbs.AddSensor(SensorNode(nodeNumber=nHook, storeInternal=True, + outputVariableType=exu.OutputVariableType.Position)) +sRotTCP = mbs.AddSensor(SensorNode(nodeNumber=nHook, storeInternal=True, + outputVariableType=exu.OutputVariableType.RotationMatrix)) #%% +++++++++++++++++++++++++++++++ # #add sensors @@ -339,7 +343,7 @@ def PreStepUserFunction(mbs, t): simulationSettings.solutionSettings.writeSolutionToFile= True #set False for CPU performance measurement simulationSettings.solutionSettings.solutionWritePeriod= 0.2 simulationSettings.solutionSettings.coordinatesSolutionFileName = solutionFile -simulationSettings.solutionSettings.sensorsWritePeriod = 0.01 +simulationSettings.solutionSettings.sensorsWritePeriod = 0.02 # simulationSettings.timeIntegration.simulateInRealtime=True # simulationSettings.timeIntegration.realtimeFactor=5 SC.visualizationSettings.general.graphicsUpdateInterval = 0.01 @@ -350,6 +354,18 @@ def PreStepUserFunction(mbs, t): simulationSettings.timeIntegration.newton.useModifiedNewton = True +if True: + #traces: + SC.visualizationSettings.sensors.traces.listOfPositionSensors = [sPosTCP] + SC.visualizationSettings.sensors.traces.listOfTriadSensors =[sRotTCP] + SC.visualizationSettings.sensors.traces.showPositionTrace=True + SC.visualizationSettings.sensors.traces.showTriads=True + SC.visualizationSettings.sensors.traces.triadSize=2 + SC.visualizationSettings.sensors.traces.showVectors=False + SC.visualizationSettings.sensors.traces.showFuture=False + SC.visualizationSettings.sensors.traces.triadsShowEvery=5 + + SC.visualizationSettings.nodes.show = True SC.visualizationSettings.nodes.drawNodesAsPoint = False SC.visualizationSettings.nodes.showBasis = True diff --git a/main/pythonDev/Examples/minimizeExample.py b/main/pythonDev/Examples/minimizeExample.py index c63cd947..b8b47969 100644 --- a/main/pythonDev/Examples/minimizeExample.py +++ b/main/pythonDev/Examples/minimizeExample.py @@ -161,14 +161,15 @@ def ParameterFunction(parameterSet): #val2 = ParameterFunction({, 'computationIndex':0, 'plot':''}) # compute reference solution if True: + #the following settings give approx. 6 digits accuraet results after 167 iterations start_time = time.time() [pOpt, vOpt, pList, values] = Minimize(objectiveFunction = ParameterFunction, parameters = {'mass':(1,10), 'spring':(100,10000), 'force':(1,250)}, #parameters provide search range showProgress=True, debugMode=False, addComputationIndex = True, - #tol = 1e-12, - #options={'maxiter':109}, + tol = 1e-1, #this is a internal parameter, not directly coupled loss + options={'maxiter':200}, resultsFile='solution/test.txt' ) print("--- %s seconds ---" % (time.time() - start_time)) diff --git a/main/pythonDev/Examples/nMassOscillatorEigenmodes.py b/main/pythonDev/Examples/nMassOscillatorEigenmodes.py index 3bf3ff31..2bf3f0f8 100644 --- a/main/pythonDev/Examples/nMassOscillatorEigenmodes.py +++ b/main/pythonDev/Examples/nMassOscillatorEigenmodes.py @@ -153,7 +153,7 @@ simulationSettings.timeIntegration.generalizedAlpha.spectralRadius = 1 simulationSettings.solutionSettings.writeSolutionToFile = False simulationSettings.solutionSettings.solutionWritePeriod = 0.1 #data not used -simulationSettings.solutionSettings.sensorsWritePeriod = 0.1 #data not used +simulationSettings.solutionSettings.sensorsWritePeriod = 0.01 #data not used simulationSettings.solutionSettings.solutionInformation = 'n-mass-oscillatior' simulationSettings.timeIntegration.verboseMode = 0 #turn off, because of lots of output @@ -163,180 +163,22 @@ #simulationSettings.timeIntegration.simulateInRealtime = True simulationSettings.displayComputationTime = True -#simulationSettings.parallel.numberOfThreads = 2 -#SC.visualizationSettings.general.autoFitScene = True #otherwise, renderState not accepted for zoom +#plot FFT if False: - exu.StartRenderer() - mbs.WaitForUserToContinue() + #%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + #exu.StartRenderer() + #mbs.WaitForUserToContinue() mbs.SolveDynamic(simulationSettings=simulationSettings) - exu.StopRenderer() #safely close rendering window! - - -# if True: -# import exudyn -# useSparseSolver = False -# numberOfEigenvalues = 0 -# constrainedCoordinates=[] -# convert2Frequencies = False -# useAbsoluteValues = True -# ignoreAlgebraicEquations=False -# singularValuesTolerance=1e-12 - -# try: -# from scipy.linalg import eigh, svd #eigh for symmetric matrices, positive definite; eig for standard eigen value problems -# from scipy.sparse.linalg import eigsh #eigh for symmetric matrices, positive definite -# from scipy.sparse import csr_matrix -# except: -# raise ValueError('ComputeODE2Eigenvalues: missing scipy package; install with: pip install scipy') - -# #use static solver, as it does not include factors from time integration (and no velocity derivatives) in the jacobian -# staticSolver = exudyn.MainSolverStatic() - -# #initialize solver with initial values -# staticSolver.InitializeSolver(mbs, simulationSettings) - -# nODE2 = staticSolver.GetODE2size() -# nODE1 = staticSolver.GetODE1size() -# nAE = staticSolver.GetAEsize() -# if nODE1 != 0: -# print('ComputeODE2Eigenvalues: not implemented for ODE1 coordinates; results may be wrong and solver may fail') - -# staticSolver.ComputeMassMatrix(mbs) -# Mode2 = staticSolver.GetSystemMassMatrix() - -# #compute ODE2 part of jacobian ==> stored internally in solver -# staticSolver.ComputeJacobianODE2RHS(mbs,scalarFactor_ODE2=-1, -# scalarFactor_ODE2_t=0, -# scalarFactor_ODE1=0) #could be 1 to include ODE1 part -# if nAE != 0: -# #compute AE part of jacobian if needed for constraint projection -# staticSolver.ComputeJacobianAE(mbs, scalarFactor_ODE2=1., scalarFactor_ODE2_t=0., -# scalarFactor_ODE1=0., #could be 1 to include ODE1 part -# velocityLevel=False) - -# jacobian = staticSolver.GetSystemJacobian() #read out stored jacobian; includes ODE2, ODE1 and nAE part - -# staticSolver.FinalizeSolver(mbs, simulationSettings) #close files, etc. - -# #obtain ODE2 part from jacobian == stiffness matrix -# Kode2 = jacobian[0:nODE2,0:nODE2] - -# remappingIndices = np.arange(nODE2) #maps new coordinates to original (full) ones -# if constrainedCoordinates != []: -# Mode2 = np.delete(np.delete(Mode2, constrainedCoordinates, 0), constrainedCoordinates, 1) -# Kode2 = np.delete(np.delete(Kode2, constrainedCoordinates, 0), constrainedCoordinates, 1) -# remappingIndices = np.delete(remappingIndices, constrainedCoordinates) - -# if nAE != 0 and not ignoreAlgebraicEquations and constrainedCoordinates != []: -# raise ValueError('ComputeODE2Eigenvalues: in case of algebraic equations, either ignoreAlgebraicEquations=True or constrainedCoordinates=[]') - -# if constrainedCoordinates != [] or nAE == 0: -# if not useSparseSolver: -# [eigenValuesUnsorted, eigenVectors] = eigh(Kode2, Mode2) #this gives omega^2 ... squared eigen frequencies (rad/s) -# if useAbsoluteValues: -# sortIndices = np.argsort(abs(eigenValuesUnsorted)) #get resorting index -# eigenValues = np.sort(a=abs(eigenValuesUnsorted)) #eigh returns unsorted eigenvalues... -# else: -# sortIndices = np.argsort(eigenValuesUnsorted) #get resorting index -# eigenValues = np.sort(a=eigenValuesUnsorted) #eigh returns unsorted eigenvalues... -# if numberOfEigenvalues > 0: -# eigenValues = eigenValues[0:numberOfEigenvalues] -# eigenVectors = eigenVectors[:,sortIndices[0:numberOfEigenvalues]] #eigenvectors are given in columns! -# else: -# if numberOfEigenvalues == 0: #compute all eigenvalues -# numberOfEigenvalues = nODE2 - -# Kcsr = csr_matrix(Kode2) -# Mcsr = csr_matrix(Mode2) - -# #use "LM" (largest magnitude), but shift-inverted mode with sigma=0, to find the zero-eigenvalues: -# #see https://docs.scipy.org/doc/scipy/reference/tutorial/arpack.html -# [eigenValues, eigenVectors] = eigsh(A=Kcsr, k=numberOfEigenvalues, M=Mcsr, -# which='LM', sigma=0, mode='normal') - -# #sort eigenvalues -# if useAbsoluteValues: -# sortIndices = np.argsort(abs(eigenValues)) #get resorting index -# eigenValues = np.sort(a=abs(eigenValues)) -# else: -# sortIndices = np.argsort(eigenValues) #get resorting index -# eigenValues = np.sort(a=eigenValues) -# eigenVectors = eigenVectors[:,sortIndices] #eigenvectors are given in columns! - -# eigenVectorsNew = np.zeros((nODE2,numberOfEigenvalues)) -# if constrainedCoordinates != []: -# # print('remap=', remappingIndices) -# for i in range(numberOfEigenvalues): -# eigenVectorsNew[remappingIndices,i] = eigenVectors[:,i] -# eigenVectors = eigenVectorsNew -# else: -# #%%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -# #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -# #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - -# if useSparseSolver: -# raise ValueError('ComputeODE2Eigenvalues: in case of algebraic equations and ignoreAlgebraicEquations=False, useSparseSolver must be False') -# #use SVD to project equations into nullspace -# #constraint jacobian: -# C = jacobian[0:nODE2,nODE2+nODE1:] - -# #compute SVD; D includes singular values -# [U,D,V] = svd(C) - -# nnz = (abs(D) > singularValuesTolerance).sum() #size of constraints, often number of cols of C - -# nullspace = U[:,nnz:].T #U[nnz:] -# Knullspace = nullspace@Kode2@nullspace.T -# Mnullspace = nullspace@Mode2@nullspace.T - -# # print('nODE2=',nODE2) -# # print('nAE=',nAE) -# # print('nnz=',nnz) -# # print('C=',C.shape) -# # print('U=',U.shape) -# # print('sing.val.=',D.round(5)) -# # print('Knullspace=',Knullspace.round(5)) -# # print('Mnullspace=',Mnullspace.round(5)) -# # print('nullspace=',nullspace.round(3)) - -# [eigenValuesUnsorted, eigenVectorsReduced] = eigh(Knullspace,Mnullspace) -# if useAbsoluteValues: -# sortIndices = np.argsort(abs(eigenValuesUnsorted)) #get resorting index -# eigenValues = np.sort(a=abs(eigenValuesUnsorted)) #eigh returns unsorted eigenvalues... -# else: -# sortIndices = np.argsort(eigenValuesUnsorted) #get resorting index -# eigenValues = np.sort(a=eigenValuesUnsorted) #eigh returns unsorted eigenvalues... - -# if numberOfEigenvalues > 0: -# eigenValues = eigenValues[0:numberOfEigenvalues] -# sortIndices = sortIndices[0:numberOfEigenvalues] -# eigenVectorsReduced = eigenVectorsReduced[:,sortIndices] #eigenvectors are given in columns! - -# eigenVectors = nullspace.T @ eigenVectorsReduced - - -# #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -# #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - - - - - - - - - - - - - - - - - + #exu.StopRenderer() #safely close rendering window! + from exudyn.signalProcessing import ComputeFFT + from exudyn.plot import PlotFFT + data = mbs.GetSensorStoredData(sensPosN) + [freq, amp, phase] = ComputeFFT(data[:,0], data[:,1]) + PlotFFT(freq, amp) +#%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ if True: from exudyn.interactive import AnimateModes [values, systemEigenVectors] = mbs.ComputeODE2Eigenvalues() diff --git a/main/pythonDev/Examples/serialRobotInverseKinematics.py b/main/pythonDev/Examples/serialRobotInverseKinematics.py index 36ccb4a8..0e838ce2 100644 --- a/main/pythonDev/Examples/serialRobotInverseKinematics.py +++ b/main/pythonDev/Examples/serialRobotInverseKinematics.py @@ -23,6 +23,7 @@ import numpy as np +exu.RequireVersion('1.6.31') # exuVersion = np.array(exu.__version__.split('.')[:3], dtype=int) exuVersion = exu.__version__.split('.')[:3] exuVersion = exuVersion[0] + exuVersion[1] + exuVersion[2] @@ -34,7 +35,7 @@ #%% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #motion planning: jointSpaceInterpolation = False #false interpolates TCP position in work space/Cartesian coordinates -motionCase = 1 # case 1 and 2 move in different planes +motionCase = 2 # case 1 and 2 move in different planes #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -154,6 +155,14 @@ sJoints = mbs.AddSensor(SensorNode(nodeNumber=robotDict['nodeGeneric'], storeInternal=True, outputVariableType=exu.OutputVariableType.Coordinates)) +sPosTCP = mbs.AddSensor(SensorKinematicTree(objectNumber=oKT, linkNumber=5, localPosition=HT2translation(HTtool), + storeInternal=True, + outputVariableType=exu.OutputVariableType.Position)) + +sRotTCP = mbs.AddSensor(SensorKinematicTree(objectNumber=oKT, linkNumber=5, localPosition=HT2translation(HTtool), + storeInternal=True, + outputVariableType=exu.OutputVariableType.RotationMatrix)) + #user function which is called only once per step, speeds up simulation drastically def PreStepUF(mbs, t): if not jointSpaceInterpolation: @@ -203,6 +212,15 @@ def PreStepUF(mbs, t): SC.visualizationSettings.openGL.shadow=0.3 SC.visualizationSettings.openGL.perspective=0.5 +#traces: +SC.visualizationSettings.sensors.traces.listOfPositionSensors = [sPosTCP] +SC.visualizationSettings.sensors.traces.listOfTriadSensors =[sRotTCP] +SC.visualizationSettings.sensors.traces.showPositionTrace=True +SC.visualizationSettings.sensors.traces.showTriads=True +SC.visualizationSettings.sensors.traces.showVectors=False +SC.visualizationSettings.sensors.traces.showFuture=False +SC.visualizationSettings.sensors.traces.triadsShowEvery=5 + #%% tEnd = 5 # endtime of the simulation h = 0.002 #500 steps take 0.16 seconds, 0.3ms / step (83% Python + inverse kinematics) diff --git a/main/pythonDev/Examples/shapeOptimization.py b/main/pythonDev/Examples/shapeOptimization.py index f5542c84..4c26c440 100644 --- a/main/pythonDev/Examples/shapeOptimization.py +++ b/main/pythonDev/Examples/shapeOptimization.py @@ -200,9 +200,9 @@ class P: pass #create emtpy structure for parameters; simplifies way to update p # sys.exit() #do not show values larger than -120 to have nicer plots ... - return min(-100,-fMin) #maximize eigenfrequency => minimize ... + return 140 + min(-100,-fMin) #maximize eigenfrequency => minimize ... except: - return -99 + return 140-99 @@ -225,26 +225,38 @@ class P: pass #create emtpy structure for parameters; simplifies way to update p x2Range = (6*rMax, 7*rMax) - # [pOpt, vOpt, pList, values] = Minimize( - [pOpt, vOpt, pList, values] = GeneticOptimization( - objectiveFunction = ParameterFunction, - parameters = {'r0':rRange, 'r1':rRange, 'r2':rRange, - 'x0':x0Range, 'x1':x1Range, 'x2':x2Range, }, #parameters provide search range - numberOfGenerations = 10, - populationSize = 100, - elitistRatio = 0.1, - # crossoverProbability = 0, #makes no sense! - rangeReductionFactor = 0.7, - randomizerInitialization=0, #for reproducible results - #distanceFactor = 0.1, - distanceFactor = 0., - debugMode=False, - useMultiProcessing=True, #may be problematic for test - numberOfThreads = 20, - addComputationIndex=True, - showProgress=True, - resultsFile = 'solution/shapeOptimization.txt', - ) + if False: + #this option does not work here, as it would require the ParameterFunction to restrict the ranges to feasible values + [pOpt, vOpt, pList, values] = Minimize( + objectiveFunction = ParameterFunction, + parameters = {'r0':rRange, 'r1':rRange, 'r2':rRange, + 'x0':x0Range, 'x1':x1Range, 'x2':x2Range, }, #parameters provide search range + showProgress=True, + enforceBounds=True, + addComputationIndex = True, + options={'maxiter':100}, + resultsFile='solution/shapeOptimization.txt' + ) + else: + [pOpt, vOpt, pList, values] = GeneticOptimization( + objectiveFunction = ParameterFunction, + parameters = {'r0':rRange, 'r1':rRange, 'r2':rRange, + 'x0':x0Range, 'x1':x1Range, 'x2':x2Range, }, #parameters provide search range + numberOfGenerations = 10, + populationSize = 100, + elitistRatio = 0.1, + # crossoverProbability = 0, #makes no sense! + rangeReductionFactor = 0.7, + randomizerInitialization=0, #for reproducible results + #distanceFactor = 0.1, + distanceFactor = 0., + debugMode=False, + useMultiProcessing=True, #may be problematic for test + numberOfThreads = 20, + addComputationIndex=True, + showProgress=True, + resultsFile = 'solution/shapeOptimization.txt', + ) exu.Print("--- %s seconds ---" % (time.time() - start_time)) diff --git a/main/pythonDev/Examples/springDamperTutorialNew.py b/main/pythonDev/Examples/springDamperTutorialNew.py index 1b56e981..67296028 100644 --- a/main/pythonDev/Examples/springDamperTutorialNew.py +++ b/main/pythonDev/Examples/springDamperTutorialNew.py @@ -34,10 +34,10 @@ print('resonance frequency = '+str(np.sqrt(spring/mass))) print('static displacement = '+str(x0)) -oMass = mbs.CreateMassPoint(referenceCoordinates=[L,0,0], - initialCoordinates = [u0,0,0], - initialVelocities= [v0,0,0], - physicsMass=mass) #force created via gravity +oMass = mbs.CreateMassPoint(referencePosition=[L,0,0], + initialDisplacement = [u0,0,0], + initialVelocity= [v0,0,0], + physicsMass=mass) #force created via gravity oGround = mbs.AddObject(ObjectGround()) diff --git a/main/pythonDev/TestModels/MiniExamples/LoadMassProportional.py b/main/pythonDev/TestModels/MiniExamples/LoadMassProportional.py index c3f66943..e0620d1a 100644 --- a/main/pythonDev/TestModels/MiniExamples/LoadMassProportional.py +++ b/main/pythonDev/TestModels/MiniExamples/LoadMassProportional.py @@ -27,7 +27,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[2] diff --git a/main/pythonDev/TestModels/MiniExamples/MarkerSuperElementPosition.py b/main/pythonDev/TestModels/MiniExamples/MarkerSuperElementPosition.py index 2c3b7d23..f81a4957 100644 --- a/main/pythonDev/TestModels/MiniExamples/MarkerSuperElementPosition.py +++ b/main/pythonDev/TestModels/MiniExamples/MarkerSuperElementPosition.py @@ -50,7 +50,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) + mbs.SolveDynamic(solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass1, exu.OutputVariableType.Position)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectANCFCable2D.py b/main/pythonDev/TestModels/MiniExamples/ObjectANCFCable2D.py index a40af023..44a7925b 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectANCFCable2D.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectANCFCable2D.py @@ -39,7 +39,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveStatic(mbs) + mbs.SolveStatic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(lastNode, exu.OutputVariableType.Displacement)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCartesianSpringDamper.py b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCartesianSpringDamper.py index a7db9913..3c50ea3a 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCartesianSpringDamper.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCartesianSpringDamper.py @@ -34,7 +34,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Displacement)[1] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCoordinate.py b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCoordinate.py index 03e3f5fc..4f34f249 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCoordinate.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCoordinate.py @@ -35,7 +35,7 @@ def OffsetUF(mbs, t, itemNumber, lOffset): #gives 0.05 at t=1 #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Displacement)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCoordinateSpringDamper.py b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCoordinateSpringDamper.py index 7bd29477..4b2462b4 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCoordinateSpringDamper.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorCoordinateSpringDamper.py @@ -39,7 +39,7 @@ def springForce(mbs, t, itemNumber, u, v, k, d, offset): #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorDistance.py b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorDistance.py index b792f993..a1017b4e 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorDistance.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorDistance.py @@ -35,7 +35,7 @@ sims=exu.SimulationSettings() sims.timeIntegration.generalizedAlpha.spectralRadius=0.7 - exu.SolveDynamic(mbs, sims) + mbs.SolveDynamic(sims) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Position)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorGravity.py b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorGravity.py index 5f5ce36e..1138c2e4 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorGravity.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorGravity.py @@ -42,7 +42,7 @@ mbs.Assemble() sims = exu.SimulationSettings() sims.timeIntegration.endTime = tEnd - exu.SolveDynamic(mbs, sims, solverType=exu.DynamicSolverType.RK67) + mbs.SolveDynamic(sims, solverType=exu.DynamicSolverType.RK67) #check result at default integration time #expect y=x after one period of orbiting (got: 100000.00000000479) diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorLinearSpringDamper.py b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorLinearSpringDamper.py index f3bfd904..52267d87 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorLinearSpringDamper.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorLinearSpringDamper.py @@ -38,7 +38,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Displacement)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorRigidBodySpringDamper.py b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorRigidBodySpringDamper.py index f45fe76e..9f4248ce 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorRigidBodySpringDamper.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorRigidBodySpringDamper.py @@ -36,7 +36,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Displacement)[1] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorSpringDamper.py b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorSpringDamper.py index 5c45a2f5..bed0cfd2 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorSpringDamper.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorSpringDamper.py @@ -33,7 +33,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorTorsionalSpringDamper.py b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorTorsionalSpringDamper.py index 2da7b14a..e6e31b5c 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectConnectorTorsionalSpringDamper.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectConnectorTorsionalSpringDamper.py @@ -38,7 +38,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Rotation)[2] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectGenericODE1.py b/main/pythonDev/TestModels/MiniExamples/ObjectGenericODE1.py index 8b72fe80..ce699667 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectGenericODE1.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectGenericODE1.py @@ -40,7 +40,7 @@ sims=exu.SimulationSettings() solverType = exu.DynamicSolverType.RK44 - exu.SolveDynamic(mbs, solverType=solverType, simulationSettings=sims) + mbs.SolveDynamic(solverType=solverType, simulationSettings=sims) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nODE1, exu.OutputVariableType.Coordinates)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectGenericODE2.py b/main/pythonDev/TestModels/MiniExamples/ObjectGenericODE2.py index 5ed21b56..11f4e25c 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectGenericODE2.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectGenericODE2.py @@ -47,7 +47,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) + mbs.SolveDynamic(solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass1, exu.OutputVariableType.Position)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectJointRevoluteZ.py b/main/pythonDev/TestModels/MiniExamples/ObjectJointRevoluteZ.py index afdc3694..935876c9 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectJointRevoluteZ.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectJointRevoluteZ.py @@ -35,7 +35,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Rotation)[2] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectKinematicTree.py b/main/pythonDev/TestModels/MiniExamples/ObjectKinematicTree.py index 89b7b036..c6ee705e 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectKinematicTree.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectKinematicTree.py @@ -45,7 +45,7 @@ simulationSettings = exu.SimulationSettings() #takes currently set values or default values simulationSettings.timeIntegration.numberOfSteps = 1000 #gives very accurate results - exu.SolveDynamic(mbs, simulationSettings , solverType=exu.DynamicSolverType.RK67) #highly accurate! + mbs.SolveDynamic(simulationSettings , solverType=exu.DynamicSolverType.RK67) #highly accurate! #check final value of angle: q0 = mbs.GetNodeOutput(nGeneric, exu.OutputVariableType.Coordinates) diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectMass1D.py b/main/pythonDev/TestModels/MiniExamples/ObjectMass1D.py index ad72d627..73049e3f 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectMass1D.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectMass1D.py @@ -27,7 +27,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result, get current mass position at local position [0,0,0] exudynTestGlobals.testResult = mbs.GetObjectOutputBody(mass, exu.OutputVariableType.Position, [0,0,0])[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectMassPoint.py b/main/pythonDev/TestModels/MiniExamples/ObjectMassPoint.py index 39266286..277ea192 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectMassPoint.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectMassPoint.py @@ -27,7 +27,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectMassPoint2D.py b/main/pythonDev/TestModels/MiniExamples/ObjectMassPoint2D.py index 26411685..af42fe51 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectMassPoint2D.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectMassPoint2D.py @@ -27,7 +27,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectRigidBody2D.py b/main/pythonDev/TestModels/MiniExamples/ObjectRigidBody2D.py index 02b9882e..6ff6c003 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectRigidBody2D.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectRigidBody2D.py @@ -27,7 +27,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] diff --git a/main/pythonDev/TestModels/MiniExamples/ObjectRotationalMass1D.py b/main/pythonDev/TestModels/MiniExamples/ObjectRotationalMass1D.py index 50247ebc..35ea3eea 100644 --- a/main/pythonDev/TestModels/MiniExamples/ObjectRotationalMass1D.py +++ b/main/pythonDev/TestModels/MiniExamples/ObjectRotationalMass1D.py @@ -27,7 +27,7 @@ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result, get current rotor z-rotation at local position [0,0,0] exudynTestGlobals.testResult = mbs.GetObjectOutputBody(rotor, exu.OutputVariableType.Rotation, [0,0,0]) diff --git a/main/pythonDev/TestModels/mainSystemExtensionsTests.py b/main/pythonDev/TestModels/mainSystemExtensionsTests.py index c8a25588..a115528e 100644 --- a/main/pythonDev/TestModels/mainSystemExtensionsTests.py +++ b/main/pythonDev/TestModels/mainSystemExtensionsTests.py @@ -38,8 +38,8 @@ class ExudynTestGlobals: SC = exu.SystemContainer() mbs = SC.AddSystem() -b0=mbs.CreateMassPoint(referenceCoordinates = [0,0,0], - initialVelocities = [2,5,0], +b0=mbs.CreateMassPoint(referencePosition = [0,0,0], + initialVelocity = [2,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) @@ -90,8 +90,8 @@ class ExudynTestGlobals: SC = exu.SystemContainer() mbs = SC.AddSystem() -b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2,5,0], +b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) @@ -124,7 +124,7 @@ class ExudynTestGlobals: SC = exu.SystemContainer() mbs = SC.AddSystem() -b0 = mbs.CreateMassPoint(referenceCoordinates = [7,0,0], +b0 = mbs.CreateMassPoint(referencePosition = [7,0,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) @@ -281,8 +281,8 @@ class ExudynTestGlobals: SC = exu.SystemContainer() mbs = SC.AddSystem() -b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2*0,5,0], +b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2*0,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) @@ -366,7 +366,7 @@ class ExudynTestGlobals: gravity = [0,-9.81,0], graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], color=color4orange)]) -m1 = mbs.CreateMassPoint(referenceCoordinates=[5.5,-1,0], +m1 = mbs.CreateMassPoint(referencePosition=[5.5,-1,0], physicsMass=1, drawSize = 0.2) n1 = mbs.GetObject(m1)['nodeNumber'] diff --git a/main/pythonDev/TestModels/reevingSystemSpringsTest.py b/main/pythonDev/TestModels/reevingSystemSpringsTest.py index 04717ca1..6d9a3fcc 100644 --- a/main/pythonDev/TestModels/reevingSystemSpringsTest.py +++ b/main/pythonDev/TestModels/reevingSystemSpringsTest.py @@ -89,7 +89,8 @@ class ExudynTestGlobals: if i != 0: Lref += NormL2(np.array(pos)-pLast) if i > 0 and i < len(posList)-1: - Lref += r*pi + #note that in this test example, Lref is slightly too long, leading to negative spring forces (compression) if not treated nonlinearly with default settings in ReevingSystemSprings + Lref += r*pi #0.8*r*pi would always lead to tension #mR = mbs.AddMarker(MarkerBodyRigid(bodyNumber=bR, localPosition=[0,-r,0])) #mbs.AddLoad(Force(markerNumber=mR, loadVector=[0,-inertiaRoll.mass*9.81,0])) @@ -122,9 +123,11 @@ class ExudynTestGlobals: stiffness = 1e5 #stiffness per length damping = 0.5*stiffness #dampiung per length oRS=mbs.AddObject(ReevingSystemSprings(markerNumbers=markerList, hasCoordinateMarkers=False, - stiffnessPerLength=stiffness, dampingPerLength=damping, referenceLength = Lref, + stiffnessPerLength=stiffness, dampingPerLength=damping, + referenceLength = Lref, dampingTorsional = 0.01*damping, dampingShear = 0.1*damping, sheavesAxes=sheavesAxes, sheavesRadii=sheavesRadii, + #regularizationForce = -1, #purely linear system visualization=VReevingSystemSprings(ropeRadius=0.05, color=color4dodgerblue))) #%%++++++++++++++++++++++++++++++++++++++++++++++++ @@ -138,6 +141,8 @@ class ExudynTestGlobals: outputVariableType=exu.OutputVariableType.Distance)) sLength_t= mbs.AddSensor(SensorObject(objectNumber=oRS, storeInternal=True, outputVariableType=exu.OutputVariableType.VelocityLocal)) + sForce= mbs.AddSensor(SensorObject(objectNumber=oRS, storeInternal=True, + outputVariableType=exu.OutputVariableType.ForceLocal)) #%%++++++++++++++++++++++++++++++++++++++++++++++++ #simulate: @@ -190,6 +195,7 @@ class ExudynTestGlobals: mbs.PlotSensor(sOmega1, components=[0,1,2], labels=['omega X','omega Y','omega Z']) mbs.PlotSensor(sLength, components=[0], labels=['length']) mbs.PlotSensor(sLength_t, components=[0], labels=['vel']) + mbs.PlotSensor(sForce, components=[0], labels=['force']) diff --git a/main/pythonDev/TestModels/runTestSuiteRefSol.py b/main/pythonDev/TestModels/runTestSuiteRefSol.py index 2b59e8ee..4eb993da 100644 --- a/main/pythonDev/TestModels/runTestSuiteRefSol.py +++ b/main/pythonDev/TestModels/runTestSuiteRefSol.py @@ -65,7 +65,7 @@ def TestExamplesReferenceSolution(): 'pendulumFriction.py':0.39999998776982304, 'plotSensorTest.py':1, 'postNewtonStepContactTest.py':0.057286638346409235, - 'reevingSystemSpringsTest.py':2.213190117855691, + 'reevingSystemSpringsTest.py':2.2155575717433007, #new 2023-07-17 (old solution contained compression forces: 2.213190117855691), 'revoluteJointprismaticJointTest.py':1.2538806799249342, #new 2022-07-11 (CState Parallel); #changed to some analytic Connector jacobians (CartSpringDamper), implicit solver (modified Newton restart, etc.); before 2022-01-18: 1.2538806799243265, 'rigidBodyAsUserFunctionTest.py':8.950865271552148, 'rigidBodyCOMtest.py':3.409431467726291, diff --git a/main/pythonDev/exudyn/FEM.py b/main/pythonDev/exudyn/FEM.py index cdaec041..a6de367b 100644 --- a/main/pythonDev/exudyn/FEM.py +++ b/main/pythonDev/exudyn/FEM.py @@ -20,8 +20,11 @@ StrNodeType2NodeType from exudyn.graphicsDataUtilities import ComputeTriangleArea + import numpy as np #LoadSolutionFile from enum import Enum #for class HCBstaticModeSelection +import os + #convert zero-based sparse matrix data to dense numpy matrix #DEPRECTAED!!!!!!!!!!!!!!!! @@ -1106,6 +1109,12 @@ def SaveToFile(self, fileName, fileVersion = 1 ): fileExtension = '' if len(fileName) < 4 or fileName[-4:]!='.npy': fileExtension = '.npy' + + try: + os.makedirs(os.path.dirname(fileName+fileExtension), exist_ok=True) + except: + pass #makedirs may fail on some systems, but we keep going + with open(fileName+fileExtension, 'wb') as f: np.save(f, np.array([int(fileVersion)])) #array allows to add more data in future @@ -1581,6 +1590,12 @@ def SaveToFile(self, fileName, fileVersion = 13 ): fileExtension = '' if len(fileName) < 4 or fileName[-4:]!='.npy': fileExtension = '.npy' + + try: + os.makedirs(os.path.dirname(fileName+fileExtension), exist_ok=True) + except: + pass #makedirs may fail on some systems, but we keep going + with open(fileName+fileExtension, 'wb') as f: if fileVersion>0: dataVersion = np.array([int(fileVersion)]) diff --git a/main/pythonDev/exudyn/GUI.py b/main/pythonDev/exudyn/GUI.py index a83b882d..f2b26ee2 100644 --- a/main/pythonDev/exudyn/GUI.py +++ b/main/pythonDev/exudyn/GUI.py @@ -217,7 +217,9 @@ def ConvertString2Value(value, vType, vSize, dictionaryTypesT): if str(iValue) == value: return [iValue, errorMsg] - if len(vSize) == 2 or (len(vSize)==1 and vSize[0] > 1): #must be matrix + if (len(vSize) == 2 or #must be matrix + (len(vSize)==1 and vSize[0] > 1) or #must be vector with fixed size + (len(vSize)==1 and vSize[0] == -1) ): #array / vector with undefined size return [ast.literal_eval(value), errorMsg] #print("Error in ConvertString2Value: unknown type",vType, "value=", value) diff --git a/main/pythonDev/exudyn/__init__.py b/main/pythonDev/exudyn/__init__.py index 070870e2..75222c59 100644 --- a/main/pythonDev/exudyn/__init__.py +++ b/main/pythonDev/exudyn/__init__.py @@ -141,7 +141,8 @@ def RequireVersion(requiredVersionString): isOk = False if not isOk: #print("EXUDYN version "+requiredVersionString+" required, but only " + GetVersionString() + " available") - raise RuntimeError("EXUDYN version "+requiredVersionString+" required, but only " + GetVersionString() + " available") + raise RuntimeError("EXUDYN version "+requiredVersionString+" required, but only " + GetVersionString() + + " available!\nYou can install the latest development version with:\npip install -U exudyn --pre\n\n") #do not import itemInterface here, as it would go into exu. scope diff --git a/main/pythonDev/exudyn/__init__.pyi b/main/pythonDev/exudyn/__init__.pyi index 37b1e4ec..fd409f0c 100644 --- a/main/pythonDev/exudyn/__init__.pyi +++ b/main/pythonDev/exudyn/__init__.pyi @@ -585,7 +585,28 @@ class VSettingsLoads: showNumbers: bool +class VSettingsSensorTraces: + lineWidth: float + listOfPositionSensors: ArrayIndex + listOfTriadSensors: ArrayIndex + listOfVectorSensors: ArrayIndex + positionsShowEvery: int + sensorsMbsNumber: int + showCurrent: bool + showFuture: bool + showPast: bool + showPositionTrace: bool + showTriads: bool + showVectors: bool + traceColors: ArrayFloat + triadSize: float + triadsShowEvery: int + vectorScaling: float + vectorsShowEvery: int + + class VSettingsSensors: + traces: VSettingsSensorTraces defaultColor: Tuple[float,float,float,float] defaultSize: float drawSimplified: bool @@ -1449,7 +1470,7 @@ class MainSystem: def SolutionViewer(self, solution=None, rowIncrement=1, timeout=0.04, runOnStart=True, runMode=2, fontSize=12, title='', checkRenderEngineStopFlag=True) -> None: ... @overload - def CreateMassPoint(self, name='', referenceCoordinates=[0.,0.,0.], initialCoordinates=[0.,0.,0.], initialVelocities=[0.,0.,0.], physicsMass=0, gravity=[0.,0.,0.], graphicsDataList=[], drawSize=-1, color=[-1.,-1.,-1.,-1.], show=True, create2D=False, returnDict=False) -> Union[dict, ObjectIndex]: ... + def CreateMassPoint(self, name='', referencePosition=[0.,0.,0.], initialDisplacement=[0.,0.,0.], initialVelocity=[0.,0.,0.], physicsMass=0, gravity=[0.,0.,0.], graphicsDataList=[], drawSize=-1, color=[-1.,-1.,-1.,-1.], show=True, create2D=False, returnDict=False) -> Union[dict, ObjectIndex]: ... @overload def CreateRigidBody(self, name='', referencePosition=[0.,0.,0.], referenceRotationMatrix=np.eye(3), initialVelocity=[0.,0.,0.], initialAngularVelocity=[0.,0.,0.], initialDisplacement=None, initialRotationMatrix=None, inertia=None, gravity=[0.,0.,0.], nodeType=exudyn.NodeType.RotationEulerParameters, graphicsDataList=[], drawSize=-1, color=[-1.,-1.,-1.,-1.], show=True, create2D=False, returnDict=False) -> Union[dict, ObjectIndex]: ... diff --git a/main/pythonDev/exudyn/basicUtilities.py b/main/pythonDev/exudyn/basicUtilities.py index 04bfb63d..5613bd9f 100644 --- a/main/pythonDev/exudyn/basicUtilities.py +++ b/main/pythonDev/exudyn/basicUtilities.py @@ -80,6 +80,15 @@ def ClearWorkspace(): import matplotlib.pyplot as plt plt.close('all') +#**function: round to max number of digits; may give more digits if this is shorter; using in general the format() with '.g' option, but keeping decimal point and using exponent where necessary +def SmartRound2String(x, prec=3): + s = ("{:.0"+str(prec)+"g}").format(x) + if abs(x) > 1 and x != int(x) and '.' not in s and 'e' not in s: + s = s+'.' + if x == int(x) and len(s) > len(str(x)): + s = str(x) + return s + #**function: create a diagonal or identity matrix; used for interface.py, avoiding the need for numpy diff --git a/main/pythonDev/exudyn/interactive.py b/main/pythonDev/exudyn/interactive.py index b8c4000b..2d2e78fc 100644 --- a/main/pythonDev/exudyn/interactive.py +++ b/main/pythonDev/exudyn/interactive.py @@ -856,32 +856,21 @@ def UFviewer(mbs, dialog): # mbs.systemData.SetTime(t, exudyn.ConfigurationType.Visualization) SetSolutionState(mainSystem, mbs.sys['solutionViewerSolution'], i, exudyn.ConfigurationType.Visualization) - #exudyn.DoRendererIdleTasks(timeout) - # SC.visualizationSettings.contour.reduceRange = False mbs.SendRedrawSignal() - exudyn.DoRendererIdleTasks() #as there is no simulation, we must do this for graphicsDataUserFunctions - # if mbs.sys['modeShapeSaveImages'] == 0: - # SC.RedrawAndSaveImage() #create images for animation - # else: - # SC.visualizationSettings.exportImages.saveImageFileCounter = 0 #for next mode ... + exudyn.DoRendererIdleTasks() #as there is no simulation, we must do this for singlethreaded renderer to draw graphicsDataUserFunctions dialog.period = mbs.sys['solutionViewerPeriod'] if mbs.sys['solutionViewerRunModus'] < 2: mbs.sys['solutionViewerStep'] += mbs.sys['solutionViewerRowIncrement'] - # print("step=", mbs.sys['solutionViewerStep']) #first variable is scale, which contains step dialog.variableList[0][0].set(mbs.sys['solutionViewerStep']) - # for var in dialog.variableList: - # #self.mbs.sys[var[1]] = var[0].get() - # print(var[1],'=', var[0].get()) if mbs.sys['solutionViewerSaveImages'] == 0: + #in single-threaded renderer, this causes 2x redraw, so we could save the above exudyn.DoRendererIdleTasks() then ...! SC.RedrawAndSaveImage() #create images for animation - # else: #do not reset image counter to allow creating of multi-view images, slow motion, etc. - # SC.visualizationSettings.exportImages.saveImageFileCounter = 0 # if mbs.sys['solutionViewerStep']>mbs.sys['solutionViewerNSteps']-1.: #or (mbs.sys['solutionViewerRunModus'] and mbs.sys['solutionViewerStep']==mbs.sys['solutionViewerNSteps']-1.): diff --git a/main/pythonDev/exudyn/itemInterface.py b/main/pythonDev/exudyn/itemInterface.py index 6092188b..087d5ede 100644 --- a/main/pythonDev/exudyn/itemInterface.py +++ b/main/pythonDev/exudyn/itemInterface.py @@ -6,7 +6,20 @@ #item interface diagonal matrix creator import exudyn #for exudyn.InvalidIndex() and other exudyn native structures needed in RigidBodySpringDamper - +import numpy as np +import copy + +#helper function for level-1 copy of dicts (for visualization default args!) +#visualization dictionaries (which may be huge, are only flat copied, which is sufficient) +def CopyDictLevel1(originalDict): + if isinstance(originalDict,dict): #copy only required if default dict is used + copyDict = {} + for key, value in originalDict.items(): + copyDict[key] = copy.copy(value) + return copyDict + else: + return originalDict #fast track for everything else + #helper function diagonal matrices, not needing numpy def IIDiagMatrix(rowsColumns, value): m = [] @@ -47,7 +60,7 @@ class VNodePoint: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -59,10 +72,10 @@ def __repr__(self): class NodePoint: def __init__(self, name = '', referenceCoordinates = [0.,0.,0.], initialCoordinates = [0.,0.,0.], initialVelocities = [0.,0.,0.], visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'Point' @@ -84,7 +97,7 @@ class VNodePoint2D: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -96,10 +109,10 @@ def __repr__(self): class NodePoint2D: def __init__(self, name = '', referenceCoordinates = [0.,0.], initialCoordinates = [0.,0.], initialVelocities = [0.,0.], visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'Point2D' @@ -121,7 +134,7 @@ class VNodeRigidBodyEP: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -133,11 +146,11 @@ def __repr__(self): class NodeRigidBodyEP: def __init__(self, name = '', referenceCoordinates = [0.,0.,0., 0.,0.,0.,0.], initialCoordinates = [0.,0.,0., 0.,0.,0.,0.], initialVelocities = [0.,0.,0., 0.,0.,0.,0.], addConstraintEquation = True, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) self.addConstraintEquation = addConstraintEquation - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'RigidBodyEP' @@ -160,7 +173,7 @@ class VNodeRigidBodyRxyz: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -172,10 +185,10 @@ def __repr__(self): class NodeRigidBodyRxyz: def __init__(self, name = '', referenceCoordinates = [0.,0.,0., 0.,0.,0.], initialCoordinates = [0.,0.,0., 0.,0.,0.], initialVelocities = [0.,0.,0., 0.,0.,0.], visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'RigidBodyRxyz' @@ -197,7 +210,7 @@ class VNodeRigidBodyRotVecLG: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -209,10 +222,10 @@ def __repr__(self): class NodeRigidBodyRotVecLG: def __init__(self, name = '', referenceCoordinates = [0.,0.,0., 0.,0.,0.], initialCoordinates = [0.,0.,0., 0.,0.,0.], initialVelocities = [0.,0.,0., 0.,0.,0.], visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'RigidBodyRotVecLG' @@ -234,7 +247,7 @@ class VNodeRigidBodyRotVecDataLG: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -246,10 +259,10 @@ def __repr__(self): class NodeRigidBodyRotVecDataLG: def __init__(self, name = '', referenceCoordinates = [0.,0.,0., 0.,0.,0.], initialCoordinates = [0.,0.,0., 0.,0.,0.], initialVelocities = [0.,0.,0., 0.,0.,0.], visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'RigidBodyRotVecDataLG' @@ -271,7 +284,7 @@ class VNodeRigidBody2D: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -283,10 +296,10 @@ def __repr__(self): class NodeRigidBody2D: def __init__(self, name = '', referenceCoordinates = [0.,0.,0.], initialCoordinates = [0.,0.,0.], initialVelocities = [0.,0.,0.], visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'RigidBody2D' @@ -316,10 +329,10 @@ def __repr__(self): class Node1D: def __init__(self, name = '', referenceCoordinates = [0.], initialCoordinates = [0.], initialVelocities = [0.], visualization = {'show': False}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', '1D' @@ -335,7 +348,7 @@ class VNodePoint2DSlope1: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -347,10 +360,10 @@ def __repr__(self): class NodePoint2DSlope1: def __init__(self, name = '', referenceCoordinates = [0.,0.,1.,0.], initialCoordinates = [0.,0.,0.,0.], initialVelocities = [0.,0.,0.,0.], visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'Point2DSlope1' @@ -372,7 +385,7 @@ class VNodePoint3DSlope1: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -384,10 +397,10 @@ def __repr__(self): class NodePoint3DSlope1: def __init__(self, name = '', referenceCoordinates = [0.,0.,0.,1.,0.,0.], initialCoordinates = [0.,0.,0.,0.,0.,0.], initialVelocities = [0.,0.,0.,0.,0.,0.], visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'Point3DSlope1' @@ -409,7 +422,7 @@ class VNodePoint3DSlope23: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -421,10 +434,10 @@ def __repr__(self): class NodePoint3DSlope23: def __init__(self, name = '', referenceCoordinates = [0.,0.,0.,1.,0.,0.,1.,0.,0.], initialCoordinates = [0.,0.,0.,0.,0.,0.,0.,0.,0.], initialVelocities = [0.,0.,0.,0.,0.,0.,0.,0.,0.], visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialVelocities = initialVelocities - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialVelocities = np.array(initialVelocities) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'Point3DSlope23' @@ -454,11 +467,11 @@ def __repr__(self): class NodeGenericODE2: def __init__(self, name = '', referenceCoordinates = [], initialCoordinates = [], initialCoordinates_t = [], numberOfODE2Coordinates = 0, visualization = {'show': False}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates - self.initialCoordinates_t = initialCoordinates_t + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) + self.initialCoordinates_t = np.array(initialCoordinates_t) self.numberOfODE2Coordinates = CheckForValidPInt(numberOfODE2Coordinates,"numberOfODE2Coordinates","NodeGenericODE2") - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'GenericODE2' @@ -483,10 +496,10 @@ def __repr__(self): class NodeGenericODE1: def __init__(self, name = '', referenceCoordinates = [], initialCoordinates = [], numberOfODE1Coordinates = 0, visualization = {'show': False}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) self.numberOfODE1Coordinates = CheckForValidPInt(numberOfODE1Coordinates,"numberOfODE1Coordinates","NodeGenericODE1") - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'GenericODE1' @@ -510,10 +523,10 @@ def __repr__(self): class NodeGenericAE: def __init__(self, name = '', referenceCoordinates = [], initialCoordinates = [], numberOfAECoordinates = 0, visualization = {'show': False}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.initialCoordinates = initialCoordinates + self.referenceCoordinates = np.array(referenceCoordinates) + self.initialCoordinates = np.array(initialCoordinates) self.numberOfAECoordinates = CheckForValidPInt(numberOfAECoordinates,"numberOfAECoordinates","NodeGenericAE") - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'GenericAE' @@ -537,9 +550,9 @@ def __repr__(self): class NodeGenericData: def __init__(self, name = '', initialCoordinates = [], numberOfDataCoordinates = 0, visualization = {'show': False}): self.name = name - self.initialCoordinates = initialCoordinates + self.initialCoordinates = np.array(initialCoordinates) self.numberOfDataCoordinates = CheckForValidUInt(numberOfDataCoordinates,"numberOfDataCoordinates","NodeGenericData") - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'GenericData' @@ -554,7 +567,7 @@ class VNodePointGround: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -566,8 +579,8 @@ def __repr__(self): class NodePointGround: def __init__(self, name = '', referenceCoordinates = [0.,0.,0.], visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.referenceCoordinates = referenceCoordinates - self.visualization = visualization + self.referenceCoordinates = np.array(referenceCoordinates) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'nodeType', 'PointGround' @@ -589,8 +602,8 @@ class VObjectGround: def __init__(self, show = True, graphicsDataUserFunction = 0, color = [-1.,-1.,-1.,-1.], graphicsData = []): self.show = show self.graphicsDataUserFunction = graphicsDataUserFunction - self.color = color - self.graphicsData = graphicsData + self.color = np.array(color) + self.graphicsData = copy.copy(graphicsData) def __iter__(self): yield 'show', self.show @@ -603,9 +616,9 @@ def __repr__(self): class ObjectGround: def __init__(self, name = '', referencePosition = [0.,0.,0.], referenceRotation = IIDiagMatrix(rowsColumns=3,value=1), visualization = {'show': True, 'graphicsDataUserFunction': 0, 'color': [-1.,-1.,-1.,-1.], 'graphicsData': []}): self.name = name - self.referencePosition = referencePosition - self.referenceRotation = referenceRotation - self.visualization = visualization + self.referencePosition = np.array(referencePosition) + self.referenceRotation = np.array(referenceRotation) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'Ground' @@ -622,7 +635,7 @@ def __repr__(self): class VObjectMassPoint: def __init__(self, show = True, graphicsData = []): self.show = show - self.graphicsData = graphicsData + self.graphicsData = copy.copy(graphicsData) def __iter__(self): yield 'show', self.show @@ -635,7 +648,7 @@ def __init__(self, name = '', physicsMass = 0., nodeNumber = exudyn.InvalidIndex self.name = name self.physicsMass = CheckForValidUReal(physicsMass,"physicsMass","ObjectMassPoint") self.nodeNumber = nodeNumber - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'MassPoint' @@ -654,7 +667,7 @@ def __repr__(self): class VObjectMassPoint2D: def __init__(self, show = True, graphicsData = []): self.show = show - self.graphicsData = graphicsData + self.graphicsData = copy.copy(graphicsData) def __iter__(self): yield 'show', self.show @@ -667,7 +680,7 @@ def __init__(self, name = '', physicsMass = 0., nodeNumber = exudyn.InvalidIndex self.name = name self.physicsMass = CheckForValidUReal(physicsMass,"physicsMass","ObjectMassPoint2D") self.nodeNumber = nodeNumber - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'MassPoint2D' @@ -686,7 +699,7 @@ def __repr__(self): class VObjectMass1D: def __init__(self, show = True, graphicsData = []): self.show = show - self.graphicsData = graphicsData + self.graphicsData = copy.copy(graphicsData) def __iter__(self): yield 'show', self.show @@ -699,9 +712,9 @@ def __init__(self, name = '', physicsMass = 0., nodeNumber = exudyn.InvalidIndex self.name = name self.physicsMass = CheckForValidUReal(physicsMass,"physicsMass","ObjectMass1D") self.nodeNumber = nodeNumber - self.referencePosition = referencePosition - self.referenceRotation = referenceRotation - self.visualization = visualization + self.referencePosition = np.array(referencePosition) + self.referenceRotation = np.array(referenceRotation) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'Mass1D' @@ -722,7 +735,7 @@ def __repr__(self): class VObjectRotationalMass1D: def __init__(self, show = True, graphicsData = []): self.show = show - self.graphicsData = graphicsData + self.graphicsData = copy.copy(graphicsData) def __iter__(self): yield 'show', self.show @@ -735,9 +748,9 @@ def __init__(self, name = '', physicsInertia = 0., nodeNumber = exudyn.InvalidIn self.name = name self.physicsInertia = CheckForValidUReal(physicsInertia,"physicsInertia","ObjectRotationalMass1D") self.nodeNumber = nodeNumber - self.referencePosition = referencePosition - self.referenceRotation = referenceRotation - self.visualization = visualization + self.referencePosition = np.array(referencePosition) + self.referenceRotation = np.array(referenceRotation) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'RotationalMass1D' @@ -759,7 +772,7 @@ class VObjectRigidBody: def __init__(self, show = True, graphicsDataUserFunction = 0, graphicsData = []): self.show = show self.graphicsDataUserFunction = graphicsDataUserFunction - self.graphicsData = graphicsData + self.graphicsData = copy.copy(graphicsData) def __iter__(self): yield 'show', self.show @@ -772,10 +785,10 @@ class ObjectRigidBody: def __init__(self, name = '', physicsMass = 0., physicsInertia = [0.,0.,0., 0.,0.,0.], physicsCenterOfMass = [0.,0.,0.], nodeNumber = exudyn.InvalidIndex(), visualization = {'show': True, 'graphicsDataUserFunction': 0, 'graphicsData': []}): self.name = name self.physicsMass = CheckForValidUReal(physicsMass,"physicsMass","ObjectRigidBody") - self.physicsInertia = physicsInertia - self.physicsCenterOfMass = physicsCenterOfMass + self.physicsInertia = np.array(physicsInertia) + self.physicsCenterOfMass = np.array(physicsCenterOfMass) self.nodeNumber = nodeNumber - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'RigidBody' @@ -798,7 +811,7 @@ class VObjectRigidBody2D: def __init__(self, show = True, graphicsDataUserFunction = 0, graphicsData = []): self.show = show self.graphicsDataUserFunction = graphicsDataUserFunction - self.graphicsData = graphicsData + self.graphicsData = copy.copy(graphicsData) def __iter__(self): yield 'show', self.show @@ -813,7 +826,7 @@ def __init__(self, name = '', physicsMass = 0., physicsInertia = 0., nodeNumber self.physicsMass = CheckForValidUReal(physicsMass,"physicsMass","ObjectRigidBody2D") self.physicsInertia = CheckForValidUReal(physicsInertia,"physicsInertia","ObjectRigidBody2D") self.nodeNumber = nodeNumber - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'RigidBody2D' @@ -834,8 +847,8 @@ def __repr__(self): class VObjectGenericODE2: def __init__(self, show = True, color = [-1.,-1.,-1.,-1.], triangleMesh = [], showNodes = False, graphicsDataUserFunction = 0): self.show = show - self.color = color - self.triangleMesh = triangleMesh + self.color = np.array(color) + self.triangleMesh = np.array(triangleMesh) self.showNodes = showNodes self.graphicsDataUserFunction = graphicsDataUserFunction @@ -849,17 +862,17 @@ def __iter__(self): def __repr__(self): return str(dict(self)) class ObjectGenericODE2: - def __init__(self, name = '', nodeNumbers = [], massMatrix = [], stiffnessMatrix = [], dampingMatrix = [], forceVector = [], forceUserFunction = 0, massMatrixUserFunction = 0, jacobianUserFunction = 0, visualization = {'show': True, 'color': [-1.,-1.,-1.,-1.], 'triangleMesh': [], 'showNodes': False, 'graphicsDataUserFunction': 0}): + def __init__(self, name = '', nodeNumbers = [], massMatrix = None, stiffnessMatrix = None, dampingMatrix = None, forceVector = [], forceUserFunction = 0, massMatrixUserFunction = 0, jacobianUserFunction = 0, visualization = {'show': True, 'color': [-1.,-1.,-1.,-1.], 'triangleMesh': [], 'showNodes': False, 'graphicsDataUserFunction': 0}): self.name = name - self.nodeNumbers = nodeNumbers + self.nodeNumbers = copy.copy(nodeNumbers) self.massMatrix = massMatrix self.stiffnessMatrix = stiffnessMatrix self.dampingMatrix = dampingMatrix - self.forceVector = forceVector + self.forceVector = np.array(forceVector) self.forceUserFunction = forceUserFunction self.massMatrixUserFunction = massMatrixUserFunction self.jacobianUserFunction = jacobianUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'GenericODE2' @@ -892,11 +905,11 @@ def __repr__(self): class ObjectGenericODE1: def __init__(self, name = '', nodeNumbers = [], systemMatrix = [], rhsVector = [], rhsUserFunction = 0, visualization = {'show': True}): self.name = name - self.nodeNumbers = nodeNumbers - self.systemMatrix = systemMatrix - self.rhsVector = rhsVector + self.nodeNumbers = copy.copy(nodeNumbers) + self.systemMatrix = np.array(systemMatrix) + self.rhsVector = np.array(rhsVector) self.rhsUserFunction = rhsUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'GenericODE1' @@ -914,8 +927,8 @@ def __init__(self, show = True, showLinks = True, showJoints = True, color = [-1 self.show = show self.showLinks = showLinks self.showJoints = showJoints - self.color = color - self.graphicsDataList = graphicsDataList + self.color = np.array(color) + self.graphicsDataList = copy.copy(graphicsDataList) def __iter__(self): yield 'show', self.show @@ -927,27 +940,27 @@ def __iter__(self): def __repr__(self): return str(dict(self)) class ObjectKinematicTree: - def __init__(self, name = '', nodeNumber = exudyn.InvalidIndex(), gravity = [0.,0.,0.], baseOffset = [0.,0.,0.], jointTypes = [], linkParents = [], jointTransformations = [], jointOffsets = [], linkInertiasCOM = [], linkCOMs = [], linkMasses = [], linkForces = [], linkTorques = [], jointForceVector = [], jointPositionOffsetVector = [], jointVelocityOffsetVector = [], jointPControlVector = [], jointDControlVector = [], forceUserFunction = 0, visualization = {'show': True, 'showLinks': True, 'showJoints': True, 'color': [-1.,-1.,-1.,-1.], 'graphicsDataList': []}): + def __init__(self, name = '', nodeNumber = exudyn.InvalidIndex(), gravity = [0.,0.,0.], baseOffset = [0.,0.,0.], jointTypes = [], linkParents = [], jointTransformations = None, jointOffsets = None, linkInertiasCOM = None, linkCOMs = None, linkMasses = [], linkForces = None, linkTorques = None, jointForceVector = [], jointPositionOffsetVector = [], jointVelocityOffsetVector = [], jointPControlVector = [], jointDControlVector = [], forceUserFunction = 0, visualization = {'show': True, 'showLinks': True, 'showJoints': True, 'color': [-1.,-1.,-1.,-1.], 'graphicsDataList': []}): self.name = name self.nodeNumber = nodeNumber - self.gravity = gravity - self.baseOffset = baseOffset - self.jointTypes = jointTypes - self.linkParents = linkParents + self.gravity = np.array(gravity) + self.baseOffset = np.array(baseOffset) + self.jointTypes = copy.copy(jointTypes) + self.linkParents = copy.copy(linkParents) self.jointTransformations = jointTransformations self.jointOffsets = jointOffsets self.linkInertiasCOM = linkInertiasCOM self.linkCOMs = linkCOMs - self.linkMasses = linkMasses + self.linkMasses = np.array(linkMasses) self.linkForces = linkForces self.linkTorques = linkTorques - self.jointForceVector = jointForceVector - self.jointPositionOffsetVector = jointPositionOffsetVector - self.jointVelocityOffsetVector = jointVelocityOffsetVector - self.jointPControlVector = jointPControlVector - self.jointDControlVector = jointDControlVector + self.jointForceVector = np.array(jointForceVector) + self.jointPositionOffsetVector = np.array(jointPositionOffsetVector) + self.jointVelocityOffsetVector = np.array(jointVelocityOffsetVector) + self.jointPControlVector = np.array(jointPControlVector) + self.jointDControlVector = np.array(jointDControlVector) self.forceUserFunction = forceUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'KinematicTree' @@ -985,8 +998,8 @@ def __repr__(self): class VObjectFFRF: def __init__(self, show = True, color = [-1.,-1.,-1.,-1.], triangleMesh = [], showNodes = False): self.show = show - self.color = color - self.triangleMesh = triangleMesh + self.color = np.array(color) + self.triangleMesh = np.array(triangleMesh) self.showNodes = showNodes def __iter__(self): @@ -998,18 +1011,18 @@ def __iter__(self): def __repr__(self): return str(dict(self)) class ObjectFFRF: - def __init__(self, name = '', nodeNumbers = [], massMatrixFF = [], stiffnessMatrixFF = [], dampingMatrixFF = [], forceVector = [], forceUserFunction = 0, massMatrixUserFunction = 0, computeFFRFterms = True, objectIsInitialized = False, visualization = {'show': True, 'color': [-1.,-1.,-1.,-1.], 'triangleMesh': [], 'showNodes': False}): + def __init__(self, name = '', nodeNumbers = [], massMatrixFF = None, stiffnessMatrixFF = None, dampingMatrixFF = None, forceVector = [], forceUserFunction = 0, massMatrixUserFunction = 0, computeFFRFterms = True, objectIsInitialized = False, visualization = {'show': True, 'color': [-1.,-1.,-1.,-1.], 'triangleMesh': [], 'showNodes': False}): self.name = name - self.nodeNumbers = nodeNumbers + self.nodeNumbers = copy.copy(nodeNumbers) self.massMatrixFF = massMatrixFF self.stiffnessMatrixFF = stiffnessMatrixFF self.dampingMatrixFF = dampingMatrixFF - self.forceVector = forceVector + self.forceVector = np.array(forceVector) self.forceUserFunction = forceUserFunction self.massMatrixUserFunction = massMatrixUserFunction self.computeFFRFterms = computeFFRFterms self.objectIsInitialized = objectIsInitialized - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'FFRF' @@ -1033,8 +1046,8 @@ def __repr__(self): class VObjectFFRFreducedOrder: def __init__(self, show = True, color = [-1.,-1.,-1.,-1.], triangleMesh = [], showNodes = False): self.show = show - self.color = color - self.triangleMesh = triangleMesh + self.color = np.array(color) + self.triangleMesh = np.array(triangleMesh) self.showNodes = showNodes def __iter__(self): @@ -1046,31 +1059,31 @@ def __iter__(self): def __repr__(self): return str(dict(self)) class ObjectFFRFreducedOrder: - def __init__(self, name = '', nodeNumbers = [], massMatrixReduced = [], stiffnessMatrixReduced = [], dampingMatrixReduced = [], forceUserFunction = 0, massMatrixUserFunction = 0, computeFFRFterms = True, modeBasis = [], outputVariableModeBasis = [], outputVariableTypeModeBasis = 0, referencePositions = [], objectIsInitialized = False, physicsMass = 0., physicsInertia = IIDiagMatrix(rowsColumns=3,value=1), physicsCenterOfMass = [0.,0.,0.], mPsiTildePsi = [], mPsiTildePsiTilde = [], mPhitTPsi = [], mPhitTPsiTilde = [], mXRefTildePsi = [], mXRefTildePsiTilde = [], physicsCenterOfMassTilde = IIDiagMatrix(rowsColumns=3,value=0), visualization = {'show': True, 'color': [-1.,-1.,-1.,-1.], 'triangleMesh': [], 'showNodes': False}): + def __init__(self, name = '', nodeNumbers = [], massMatrixReduced = None, stiffnessMatrixReduced = None, dampingMatrixReduced = None, forceUserFunction = 0, massMatrixUserFunction = 0, computeFFRFterms = True, modeBasis = [], outputVariableModeBasis = [], outputVariableTypeModeBasis = 0, referencePositions = [], objectIsInitialized = False, physicsMass = 0., physicsInertia = IIDiagMatrix(rowsColumns=3,value=1), physicsCenterOfMass = [0.,0.,0.], mPsiTildePsi = [], mPsiTildePsiTilde = [], mPhitTPsi = [], mPhitTPsiTilde = [], mXRefTildePsi = [], mXRefTildePsiTilde = [], physicsCenterOfMassTilde = IIDiagMatrix(rowsColumns=3,value=0), visualization = {'show': True, 'color': [-1.,-1.,-1.,-1.], 'triangleMesh': [], 'showNodes': False}): self.name = name - self.nodeNumbers = nodeNumbers + self.nodeNumbers = copy.copy(nodeNumbers) self.massMatrixReduced = massMatrixReduced self.stiffnessMatrixReduced = stiffnessMatrixReduced self.dampingMatrixReduced = dampingMatrixReduced self.forceUserFunction = forceUserFunction self.massMatrixUserFunction = massMatrixUserFunction self.computeFFRFterms = computeFFRFterms - self.modeBasis = modeBasis - self.outputVariableModeBasis = outputVariableModeBasis + self.modeBasis = np.array(modeBasis) + self.outputVariableModeBasis = np.array(outputVariableModeBasis) self.outputVariableTypeModeBasis = outputVariableTypeModeBasis - self.referencePositions = referencePositions + self.referencePositions = np.array(referencePositions) self.objectIsInitialized = objectIsInitialized self.physicsMass = CheckForValidUReal(physicsMass,"physicsMass","ObjectFFRFreducedOrder") - self.physicsInertia = physicsInertia - self.physicsCenterOfMass = physicsCenterOfMass - self.mPsiTildePsi = mPsiTildePsi - self.mPsiTildePsiTilde = mPsiTildePsiTilde - self.mPhitTPsi = mPhitTPsi - self.mPhitTPsiTilde = mPhitTPsiTilde - self.mXRefTildePsi = mXRefTildePsi - self.mXRefTildePsiTilde = mXRefTildePsiTilde - self.physicsCenterOfMassTilde = physicsCenterOfMassTilde - self.visualization = visualization + self.physicsInertia = np.array(physicsInertia) + self.physicsCenterOfMass = np.array(physicsCenterOfMass) + self.mPsiTildePsi = np.array(mPsiTildePsi) + self.mPsiTildePsiTilde = np.array(mPsiTildePsiTilde) + self.mPhitTPsi = np.array(mPhitTPsi) + self.mPhitTPsiTilde = np.array(mPhitTPsiTilde) + self.mXRefTildePsi = np.array(mXRefTildePsi) + self.mXRefTildePsiTilde = np.array(mXRefTildePsiTilde) + self.physicsCenterOfMassTilde = np.array(physicsCenterOfMassTilde) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'FFRFreducedOrder' @@ -1112,7 +1125,7 @@ class VObjectANCFCable2D: def __init__(self, show = True, drawHeight = 0., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawHeight = drawHeight - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1133,9 +1146,9 @@ def __init__(self, name = '', physicsLength = 0., physicsMassPerLength = 0., phy self.physicsReferenceAxialStrain = physicsReferenceAxialStrain self.physicsReferenceCurvature = physicsReferenceCurvature self.strainIsRelativeToReference = strainIsRelativeToReference - self.nodeNumbers = nodeNumbers + self.nodeNumbers = copy.copy(nodeNumbers) self.useReducedOrderIntegration = useReducedOrderIntegration - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ANCFCable2D' @@ -1165,7 +1178,7 @@ class VObjectALEANCFCable2D: def __init__(self, show = True, drawHeight = 0., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawHeight = drawHeight - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1188,10 +1201,10 @@ def __init__(self, name = '', physicsLength = 0., physicsMassPerLength = 0., phy self.physicsReferenceCurvature = physicsReferenceCurvature self.physicsUseCouplingTerms = physicsUseCouplingTerms self.physicsAddALEvariation = physicsAddALEvariation - self.nodeNumbers = nodeNumbers + self.nodeNumbers = copy.copy(nodeNumbers) self.useReducedOrderIntegration = useReducedOrderIntegration self.strainIsRelativeToReference = strainIsRelativeToReference - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ALEANCFCable2D' @@ -1224,7 +1237,7 @@ class VObjectANCFBeam: def __init__(self, show = True, sectionGeometry = exudyn.BeamSectionGeometry(), color = [-1.,-1.,-1.,-1.]): self.show = show self.sectionGeometry = sectionGeometry - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1236,11 +1249,11 @@ def __repr__(self): class ObjectANCFBeam: def __init__(self, name = '', nodeNumbers = [exudyn.InvalidIndex(), exudyn.InvalidIndex()], physicsLength = 0., sectionData = exudyn.BeamSection(), crossSectionPenaltyFactor = [1.,1.,1.], visualization = {'show': True, 'sectionGeometry': exudyn.BeamSectionGeometry(), 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.nodeNumbers = nodeNumbers + self.nodeNumbers = copy.copy(nodeNumbers) self.physicsLength = CheckForValidPReal(physicsLength,"physicsLength","ObjectANCFBeam") self.sectionData = sectionData - self.crossSectionPenaltyFactor = crossSectionPenaltyFactor - self.visualization = visualization + self.crossSectionPenaltyFactor = np.array(crossSectionPenaltyFactor) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ANCFBeam' @@ -1263,7 +1276,7 @@ class VObjectBeamGeometricallyExact2D: def __init__(self, show = True, drawHeight = 0., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawHeight = drawHeight - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1275,7 +1288,7 @@ def __repr__(self): class ObjectBeamGeometricallyExact2D: def __init__(self, name = '', nodeNumbers = [exudyn.InvalidIndex(), exudyn.InvalidIndex()], physicsLength = 0., physicsMassPerLength = 0., physicsCrossSectionInertia = 0., physicsBendingStiffness = 0., physicsAxialStiffness = 0., physicsShearStiffness = 0., physicsBendingDamping = 0., physicsAxialDamping = 0., physicsShearDamping = 0., physicsReferenceCurvature = 0., includeReferenceRotations = False, visualization = {'show': True, 'drawHeight': 0., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.nodeNumbers = nodeNumbers + self.nodeNumbers = copy.copy(nodeNumbers) self.physicsLength = CheckForValidUReal(physicsLength,"physicsLength","ObjectBeamGeometricallyExact2D") self.physicsMassPerLength = CheckForValidUReal(physicsMassPerLength,"physicsMassPerLength","ObjectBeamGeometricallyExact2D") self.physicsCrossSectionInertia = CheckForValidUReal(physicsCrossSectionInertia,"physicsCrossSectionInertia","ObjectBeamGeometricallyExact2D") @@ -1287,7 +1300,7 @@ def __init__(self, name = '', nodeNumbers = [exudyn.InvalidIndex(), exudyn.Inval self.physicsShearDamping = CheckForValidUReal(physicsShearDamping,"physicsShearDamping","ObjectBeamGeometricallyExact2D") self.physicsReferenceCurvature = physicsReferenceCurvature self.includeReferenceRotations = includeReferenceRotations - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'BeamGeometricallyExact2D' @@ -1318,7 +1331,7 @@ class VObjectBeamGeometricallyExact: def __init__(self, show = True, sectionGeometry = exudyn.BeamSectionGeometry(), color = [-1.,-1.,-1.,-1.]): self.show = show self.sectionGeometry = sectionGeometry - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1330,10 +1343,10 @@ def __repr__(self): class ObjectBeamGeometricallyExact: def __init__(self, name = '', nodeNumbers = [exudyn.InvalidIndex(), exudyn.InvalidIndex()], physicsLength = 0., sectionData = exudyn.BeamSection(), visualization = {'show': True, 'sectionGeometry': exudyn.BeamSectionGeometry(), 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.nodeNumbers = nodeNumbers + self.nodeNumbers = copy.copy(nodeNumbers) self.physicsLength = CheckForValidPReal(physicsLength,"physicsLength","ObjectBeamGeometricallyExact") self.sectionData = sectionData - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'BeamGeometricallyExact' @@ -1355,7 +1368,7 @@ class VObjectConnectorSpringDamper: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1367,7 +1380,7 @@ def __repr__(self): class ObjectConnectorSpringDamper: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], referenceLength = 0., stiffness = 0., damping = 0., force = 0., velocityOffset = 0., activeConnector = True, springForceUserFunction = 0, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.referenceLength = CheckForValidPReal(referenceLength,"referenceLength","ObjectConnectorSpringDamper") self.stiffness = CheckForValidUReal(stiffness,"stiffness","ObjectConnectorSpringDamper") self.damping = CheckForValidUReal(damping,"damping","ObjectConnectorSpringDamper") @@ -1375,7 +1388,7 @@ def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.In self.velocityOffset = velocityOffset self.activeConnector = activeConnector self.springForceUserFunction = springForceUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorSpringDamper' @@ -1402,7 +1415,7 @@ class VObjectConnectorCartesianSpringDamper: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1414,13 +1427,13 @@ def __repr__(self): class ObjectConnectorCartesianSpringDamper: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], stiffness = [0.,0.,0.], damping = [0.,0.,0.], offset = [0.,0.,0.], springForceUserFunction = 0, activeConnector = True, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers - self.stiffness = stiffness - self.damping = damping - self.offset = offset + self.markerNumbers = copy.copy(markerNumbers) + self.stiffness = np.array(stiffness) + self.damping = np.array(damping) + self.offset = np.array(offset) self.springForceUserFunction = springForceUserFunction self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorCartesianSpringDamper' @@ -1445,7 +1458,7 @@ class VObjectConnectorRigidBodySpringDamper: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1457,17 +1470,17 @@ def __repr__(self): class ObjectConnectorRigidBodySpringDamper: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], nodeNumber = exudyn.InvalidIndex(), stiffness = IIDiagMatrix(rowsColumns=6,value=0.), damping = IIDiagMatrix(rowsColumns=6,value=0.), rotationMarker0 = IIDiagMatrix(rowsColumns=3,value=1), rotationMarker1 = IIDiagMatrix(rowsColumns=3,value=1), offset = [0.,0.,0.,0.,0.,0.], activeConnector = True, springForceTorqueUserFunction = 0, postNewtonStepUserFunction = 0, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.nodeNumber = nodeNumber - self.stiffness = stiffness - self.damping = damping - self.rotationMarker0 = rotationMarker0 - self.rotationMarker1 = rotationMarker1 - self.offset = offset + self.stiffness = np.array(stiffness) + self.damping = np.array(damping) + self.rotationMarker0 = np.array(rotationMarker0) + self.rotationMarker1 = np.array(rotationMarker1) + self.offset = np.array(offset) self.activeConnector = activeConnector self.springForceTorqueUserFunction = springForceTorqueUserFunction self.postNewtonStepUserFunction = postNewtonStepUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorRigidBodySpringDamper' @@ -1497,7 +1510,7 @@ def __init__(self, show = True, drawSize = -1., drawAsCylinder = False, color = self.show = show self.drawSize = drawSize self.drawAsCylinder = drawAsCylinder - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1510,16 +1523,16 @@ def __repr__(self): class ObjectConnectorLinearSpringDamper: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], stiffness = 0., damping = 0., axisMarker0 = [1,0,0], offset = 0., velocityOffset = 0., force = 0., activeConnector = True, springForceUserFunction = 0, visualization = {'show': True, 'drawSize': -1., 'drawAsCylinder': False, 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.stiffness = stiffness self.damping = damping - self.axisMarker0 = axisMarker0 + self.axisMarker0 = np.array(axisMarker0) self.offset = offset self.velocityOffset = velocityOffset self.force = force self.activeConnector = activeConnector self.springForceUserFunction = springForceUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorLinearSpringDamper' @@ -1548,7 +1561,7 @@ class VObjectConnectorTorsionalSpringDamper: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1560,18 +1573,18 @@ def __repr__(self): class ObjectConnectorTorsionalSpringDamper: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], nodeNumber = exudyn.InvalidIndex(), stiffness = 0., damping = 0., rotationMarker0 = IIDiagMatrix(rowsColumns=3,value=1), rotationMarker1 = IIDiagMatrix(rowsColumns=3,value=1), offset = 0., velocityOffset = 0., torque = 0., activeConnector = True, springTorqueUserFunction = 0, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.nodeNumber = nodeNumber self.stiffness = stiffness self.damping = damping - self.rotationMarker0 = rotationMarker0 - self.rotationMarker1 = rotationMarker1 + self.rotationMarker0 = np.array(rotationMarker0) + self.rotationMarker1 = np.array(rotationMarker1) self.offset = offset self.velocityOffset = velocityOffset self.torque = torque self.activeConnector = activeConnector self.springTorqueUserFunction = springTorqueUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorTorsionalSpringDamper' @@ -1601,7 +1614,7 @@ class VObjectConnectorCoordinateSpringDamper: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1613,13 +1626,13 @@ def __repr__(self): class ObjectConnectorCoordinateSpringDamper: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], stiffness = 0., damping = 0., offset = 0., activeConnector = True, springForceUserFunction = 0, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.stiffness = stiffness self.damping = damping self.offset = offset self.activeConnector = activeConnector self.springForceUserFunction = springForceUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorCoordinateSpringDamper' @@ -1644,7 +1657,7 @@ class VObjectConnectorCoordinateSpringDamperExt: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1656,7 +1669,7 @@ def __repr__(self): class ObjectConnectorCoordinateSpringDamperExt: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], nodeNumber = exudyn.InvalidIndex(), stiffness = 0., damping = 0., offset = 0., velocityOffset = 0., factor0 = 1., factor1 = 1., fDynamicFriction = 0., fStaticFrictionOffset = 0., stickingStiffness = 0., stickingDamping = 0., exponentialDecayStatic = 1.e-3, fViscousFriction = 0., frictionProportionalZone = 0., limitStopsUpper = 0., limitStopsLower = 0., limitStopsStiffness = 0., limitStopsDamping = 0., useLimitStops = False, activeConnector = True, springForceUserFunction = 0, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.nodeNumber = nodeNumber self.stiffness = stiffness self.damping = damping @@ -1678,7 +1691,7 @@ def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.In self.useLimitStops = useLimitStops self.activeConnector = activeConnector self.springForceUserFunction = springForceUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorCoordinateSpringDamperExt' @@ -1719,7 +1732,7 @@ class VObjectConnectorGravity: def __init__(self, show = False, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1731,13 +1744,13 @@ def __repr__(self): class ObjectConnectorGravity: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], gravitationalConstant = 6.67430e-11, mass0 = 0., mass1 = 0., minDistanceRegularization = 0., activeConnector = True, visualization = {'show': False, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.gravitationalConstant = gravitationalConstant self.mass0 = CheckForValidUReal(mass0,"mass0","ObjectConnectorGravity") self.mass1 = CheckForValidUReal(mass1,"mass1","ObjectConnectorGravity") self.minDistanceRegularization = CheckForValidUReal(minDistanceRegularization,"minDistanceRegularization","ObjectConnectorGravity") self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorGravity' @@ -1768,8 +1781,8 @@ def __init__(self, show = True, cylinderRadius = 0.05, rodRadius = 0.03, pistonR self.rodMountRadius = rodMountRadius self.baseMountRadius = baseMountRadius self.baseMountLength = baseMountLength - self.colorCylinder = colorCylinder - self.colorPiston = colorPiston + self.colorCylinder = np.array(colorCylinder) + self.colorPiston = np.array(colorPiston) def __iter__(self): yield 'show', self.show @@ -1788,8 +1801,8 @@ def __repr__(self): class ObjectConnectorHydraulicActuatorSimple: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], nodeNumbers = [], offsetLength = 0., strokeLength = 0., chamberCrossSection0 = 0., chamberCrossSection1 = 0., hoseVolume0 = 0., hoseVolume1 = 0., valveOpening0 = 0., valveOpening1 = 0., actuatorDamping = 0., oilBulkModulus = 0., cylinderBulkModulus = 0., hoseBulkModulus = 0., nominalFlow = 0., systemPressure = 0., tankPressure = 0., useChamberVolumeChange = False, activeConnector = True, visualization = {'show': True, 'cylinderRadius': 0.05, 'rodRadius': 0.03, 'pistonRadius': 0.04, 'pistonLength': 0.001, 'rodMountRadius': 0.0, 'baseMountRadius': 0.0, 'baseMountLength': 0.0, 'colorCylinder': [-1.,-1.,-1.,-1.], 'colorPiston': [0.8,0.8,0.8,1.]}): self.name = name - self.markerNumbers = markerNumbers - self.nodeNumbers = nodeNumbers + self.markerNumbers = copy.copy(markerNumbers) + self.nodeNumbers = copy.copy(nodeNumbers) self.offsetLength = CheckForValidUReal(offsetLength,"offsetLength","ObjectConnectorHydraulicActuatorSimple") self.strokeLength = CheckForValidPReal(strokeLength,"strokeLength","ObjectConnectorHydraulicActuatorSimple") self.chamberCrossSection0 = CheckForValidPReal(chamberCrossSection0,"chamberCrossSection0","ObjectConnectorHydraulicActuatorSimple") @@ -1807,7 +1820,7 @@ def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.In self.tankPressure = tankPressure self.useChamberVolumeChange = useChamberVolumeChange self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorHydraulicActuatorSimple' @@ -1852,7 +1865,7 @@ class VObjectConnectorReevingSystemSprings: def __init__(self, show = True, ropeRadius = 0.001, color = [-1.,-1.,-1.,-1.]): self.show = show self.ropeRadius = ropeRadius - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1862,20 +1875,21 @@ def __iter__(self): def __repr__(self): return str(dict(self)) class ObjectConnectorReevingSystemSprings: - def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], hasCoordinateMarkers = False, coordinateFactors = [1,1], stiffnessPerLength = 0., dampingPerLength = 0., dampingTorsional = 0., dampingShear = 0., referenceLength = 0., sheavesAxes = [], sheavesRadii = [], activeConnector = True, visualization = {'show': True, 'ropeRadius': 0.001, 'color': [-1.,-1.,-1.,-1.]}): + def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], hasCoordinateMarkers = False, coordinateFactors = [1,1], stiffnessPerLength = 0., dampingPerLength = 0., dampingTorsional = 0., dampingShear = 0., regularizationForce = 0.1, referenceLength = 0., sheavesAxes = None, sheavesRadii = [], activeConnector = True, visualization = {'show': True, 'ropeRadius': 0.001, 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.hasCoordinateMarkers = hasCoordinateMarkers - self.coordinateFactors = coordinateFactors + self.coordinateFactors = np.array(coordinateFactors) self.stiffnessPerLength = CheckForValidUReal(stiffnessPerLength,"stiffnessPerLength","ObjectConnectorReevingSystemSprings") self.dampingPerLength = CheckForValidUReal(dampingPerLength,"dampingPerLength","ObjectConnectorReevingSystemSprings") self.dampingTorsional = CheckForValidUReal(dampingTorsional,"dampingTorsional","ObjectConnectorReevingSystemSprings") self.dampingShear = CheckForValidUReal(dampingShear,"dampingShear","ObjectConnectorReevingSystemSprings") + self.regularizationForce = regularizationForce self.referenceLength = referenceLength self.sheavesAxes = sheavesAxes - self.sheavesRadii = sheavesRadii + self.sheavesRadii = np.array(sheavesRadii) self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorReevingSystemSprings' @@ -1887,6 +1901,7 @@ def __iter__(self): yield 'dampingPerLength', self.dampingPerLength yield 'dampingTorsional', self.dampingTorsional yield 'dampingShear', self.dampingShear + yield 'regularizationForce', self.regularizationForce yield 'referenceLength', self.referenceLength yield 'sheavesAxes', self.sheavesAxes yield 'sheavesRadii', self.sheavesRadii @@ -1905,7 +1920,7 @@ class VObjectConnectorDistance: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1917,10 +1932,10 @@ def __repr__(self): class ObjectConnectorDistance: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], distance = 0., activeConnector = True, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.distance = CheckForValidPReal(distance,"distance","ObjectConnectorDistance") self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorDistance' @@ -1942,7 +1957,7 @@ class VObjectConnectorCoordinate: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1954,14 +1969,14 @@ def __repr__(self): class ObjectConnectorCoordinate: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], offset = 0., factorValue1 = 1., velocityLevel = False, offsetUserFunction = 0, offsetUserFunction_t = 0, activeConnector = True, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.offset = offset self.factorValue1 = factorValue1 self.velocityLevel = velocityLevel self.offsetUserFunction = offsetUserFunction self.offsetUserFunction_t = offsetUserFunction_t self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorCoordinate' @@ -1986,7 +2001,7 @@ def __repr__(self): class VObjectConnectorCoordinateVector: def __init__(self, show = True, color = [-1.,-1.,-1.,-1.]): self.show = show - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -1997,17 +2012,17 @@ def __repr__(self): class ObjectConnectorCoordinateVector: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], scalingMarker0 = [], scalingMarker1 = [], quadraticTermMarker0 = [], quadraticTermMarker1 = [], offset = [], velocityLevel = False, constraintUserFunction = 0, jacobianUserFunction = 0, activeConnector = True, visualization = {'show': True, 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers - self.scalingMarker0 = scalingMarker0 - self.scalingMarker1 = scalingMarker1 - self.quadraticTermMarker0 = quadraticTermMarker0 - self.quadraticTermMarker1 = quadraticTermMarker1 - self.offset = offset + self.markerNumbers = copy.copy(markerNumbers) + self.scalingMarker0 = np.array(scalingMarker0) + self.scalingMarker1 = np.array(scalingMarker1) + self.quadraticTermMarker0 = np.array(quadraticTermMarker0) + self.quadraticTermMarker1 = np.array(quadraticTermMarker1) + self.offset = np.array(offset) self.velocityLevel = velocityLevel self.constraintUserFunction = constraintUserFunction self.jacobianUserFunction = jacobianUserFunction self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorCoordinateVector' @@ -2035,7 +2050,7 @@ class VObjectConnectorRollingDiscPenalty: def __init__(self, show = True, discWidth = 0.1, color = [-1.,-1.,-1.,-1.]): self.show = show self.discWidth = discWidth - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2047,21 +2062,21 @@ def __repr__(self): class ObjectConnectorRollingDiscPenalty: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], nodeNumber = exudyn.InvalidIndex(), discRadius = 0., discAxis = [1,0,0], planeNormal = [0,0,1], dryFrictionAngle = 0., contactStiffness = 0., contactDamping = 0., dryFriction = [0,0], dryFrictionProportionalZone = 0., viscousFriction = [0,0], rollingFrictionViscous = 0., useLinearProportionalZone = False, activeConnector = True, visualization = {'show': True, 'discWidth': 0.1, 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.nodeNumber = nodeNumber self.discRadius = CheckForValidPReal(discRadius,"discRadius","ObjectConnectorRollingDiscPenalty") - self.discAxis = discAxis - self.planeNormal = planeNormal + self.discAxis = np.array(discAxis) + self.planeNormal = np.array(planeNormal) self.dryFrictionAngle = dryFrictionAngle self.contactStiffness = CheckForValidUReal(contactStiffness,"contactStiffness","ObjectConnectorRollingDiscPenalty") self.contactDamping = CheckForValidUReal(contactDamping,"contactDamping","ObjectConnectorRollingDiscPenalty") - self.dryFriction = dryFriction + self.dryFriction = np.array(dryFriction) self.dryFrictionProportionalZone = dryFrictionProportionalZone - self.viscousFriction = viscousFriction + self.viscousFriction = np.array(viscousFriction) self.rollingFrictionViscous = rollingFrictionViscous self.useLinearProportionalZone = useLinearProportionalZone self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ConnectorRollingDiscPenalty' @@ -2093,7 +2108,7 @@ def __repr__(self): class VObjectContactConvexRoll: def __init__(self, show = True, color = [-1.,-1.,-1.,-1.]): self.show = show - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2104,7 +2119,7 @@ def __repr__(self): class ObjectContactConvexRoll: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], nodeNumber = exudyn.InvalidIndex(), contactStiffness = 0., contactDamping = 0., dynamicFriction = 0., staticFrictionOffset = 0., viscousFriction = 0., exponentialDecayStatic = 1e-3, frictionProportionalZone = 1e-3, rollLength = 0., coefficientsHull = [], rBoundingSphere = 0, activeConnector = True, visualization = {'show': True, 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.nodeNumber = nodeNumber self.contactStiffness = contactStiffness self.contactDamping = contactDamping @@ -2114,10 +2129,10 @@ def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.In self.exponentialDecayStatic = CheckForValidPReal(exponentialDecayStatic,"exponentialDecayStatic","ObjectContactConvexRoll") self.frictionProportionalZone = CheckForValidUReal(frictionProportionalZone,"frictionProportionalZone","ObjectContactConvexRoll") self.rollLength = CheckForValidUReal(rollLength,"rollLength","ObjectContactConvexRoll") - self.coefficientsHull = coefficientsHull + self.coefficientsHull = np.array(coefficientsHull) self.rBoundingSphere = CheckForValidUReal(rBoundingSphere,"rBoundingSphere","ObjectContactConvexRoll") self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ContactConvexRoll' @@ -2144,7 +2159,7 @@ class VObjectContactCoordinate: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2156,13 +2171,13 @@ def __repr__(self): class ObjectContactCoordinate: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], nodeNumber = exudyn.InvalidIndex(), contactStiffness = 0., contactDamping = 0., offset = 0., activeConnector = True, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.nodeNumber = nodeNumber self.contactStiffness = CheckForValidUReal(contactStiffness,"contactStiffness","ObjectContactCoordinate") self.contactDamping = CheckForValidUReal(contactDamping,"contactDamping","ObjectContactCoordinate") self.offset = offset self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ContactCoordinate' @@ -2184,7 +2199,7 @@ def __init__(self, show = True, showContactCircle = True, drawSize = -1., color self.show = show self.showContactCircle = showContactCircle self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2197,7 +2212,7 @@ def __repr__(self): class ObjectContactCircleCable2D: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], nodeNumber = exudyn.InvalidIndex(), numberOfContactSegments = 3, contactStiffness = 0., contactDamping = 0., circleRadius = 0., offset = 0., activeConnector = True, visualization = {'show': True, 'showContactCircle': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.nodeNumber = nodeNumber self.numberOfContactSegments = numberOfContactSegments self.contactStiffness = CheckForValidUReal(contactStiffness,"contactStiffness","ObjectContactCircleCable2D") @@ -2205,7 +2220,7 @@ def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.In self.circleRadius = CheckForValidUReal(circleRadius,"circleRadius","ObjectContactCircleCable2D") self.offset = offset self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ContactCircleCable2D' @@ -2230,7 +2245,7 @@ def __init__(self, show = True, showContactCircle = True, drawSize = -1., color self.show = show self.showContactCircle = showContactCircle self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2243,7 +2258,7 @@ def __repr__(self): class ObjectContactFrictionCircleCable2D: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], nodeNumber = exudyn.InvalidIndex(), numberOfContactSegments = 3, contactStiffness = 0., contactDamping = 0., frictionVelocityPenalty = 0., frictionStiffness = 0., frictionCoefficient = 0., circleRadius = 0., useSegmentNormals = True, activeConnector = True, visualization = {'show': True, 'showContactCircle': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.nodeNumber = nodeNumber self.numberOfContactSegments = CheckForValidPInt(numberOfContactSegments,"numberOfContactSegments","ObjectContactFrictionCircleCable2D") self.contactStiffness = CheckForValidUReal(contactStiffness,"contactStiffness","ObjectContactFrictionCircleCable2D") @@ -2254,7 +2269,7 @@ def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.In self.circleRadius = CheckForValidUReal(circleRadius,"circleRadius","ObjectContactFrictionCircleCable2D") self.useSegmentNormals = useSegmentNormals self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ContactFrictionCircleCable2D' @@ -2282,7 +2297,7 @@ def __init__(self, show = True, axesRadius = 0.1, axesLength = 0.4, color = [-1. self.show = show self.axesRadius = axesRadius self.axesLength = axesLength - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2295,16 +2310,16 @@ def __repr__(self): class ObjectJointGeneric: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], constrainedAxes = [1,1,1,1,1,1], rotationMarker0 = IIDiagMatrix(rowsColumns=3,value=1), rotationMarker1 = IIDiagMatrix(rowsColumns=3,value=1), activeConnector = True, offsetUserFunctionParameters = [0.,0.,0.,0.,0.,0.], offsetUserFunction = 0, offsetUserFunction_t = 0, alternativeConstraints = False, visualization = {'show': True, 'axesRadius': 0.1, 'axesLength': 0.4, 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers - self.constrainedAxes = constrainedAxes - self.rotationMarker0 = rotationMarker0 - self.rotationMarker1 = rotationMarker1 + self.markerNumbers = copy.copy(markerNumbers) + self.constrainedAxes = copy.copy(constrainedAxes) + self.rotationMarker0 = np.array(rotationMarker0) + self.rotationMarker1 = np.array(rotationMarker1) self.activeConnector = activeConnector - self.offsetUserFunctionParameters = offsetUserFunctionParameters + self.offsetUserFunctionParameters = np.array(offsetUserFunctionParameters) self.offsetUserFunction = offsetUserFunction self.offsetUserFunction_t = offsetUserFunction_t self.alternativeConstraints = alternativeConstraints - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'JointGeneric' @@ -2334,7 +2349,7 @@ def __init__(self, show = True, axisRadius = 0.1, axisLength = 0.4, color = [-1. self.show = show self.axisRadius = axisRadius self.axisLength = axisLength - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2347,11 +2362,11 @@ def __repr__(self): class ObjectJointRevoluteZ: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], rotationMarker0 = IIDiagMatrix(rowsColumns=3,value=1), rotationMarker1 = IIDiagMatrix(rowsColumns=3,value=1), activeConnector = True, visualization = {'show': True, 'axisRadius': 0.1, 'axisLength': 0.4, 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers - self.rotationMarker0 = rotationMarker0 - self.rotationMarker1 = rotationMarker1 + self.markerNumbers = copy.copy(markerNumbers) + self.rotationMarker0 = np.array(rotationMarker0) + self.rotationMarker1 = np.array(rotationMarker1) self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'JointRevoluteZ' @@ -2376,7 +2391,7 @@ def __init__(self, show = True, axisRadius = 0.1, axisLength = 0.4, color = [-1. self.show = show self.axisRadius = axisRadius self.axisLength = axisLength - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2389,11 +2404,11 @@ def __repr__(self): class ObjectJointPrismaticX: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], rotationMarker0 = IIDiagMatrix(rowsColumns=3,value=1), rotationMarker1 = IIDiagMatrix(rowsColumns=3,value=1), activeConnector = True, visualization = {'show': True, 'axisRadius': 0.1, 'axisLength': 0.4, 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers - self.rotationMarker0 = rotationMarker0 - self.rotationMarker1 = rotationMarker1 + self.markerNumbers = copy.copy(markerNumbers) + self.rotationMarker0 = np.array(rotationMarker0) + self.rotationMarker1 = np.array(rotationMarker1) self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'JointPrismaticX' @@ -2417,7 +2432,7 @@ class VObjectJointSpherical: def __init__(self, show = True, jointRadius = 0.1, color = [-1.,-1.,-1.,-1.]): self.show = show self.jointRadius = jointRadius - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2429,10 +2444,10 @@ def __repr__(self): class ObjectJointSpherical: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], constrainedAxes = [1,1,1], activeConnector = True, visualization = {'show': True, 'jointRadius': 0.1, 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers - self.constrainedAxes = constrainedAxes + self.markerNumbers = copy.copy(markerNumbers) + self.constrainedAxes = copy.copy(constrainedAxes) self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'JointSpherical' @@ -2454,7 +2469,7 @@ class VObjectJointRollingDisc: def __init__(self, show = True, discWidth = 0.1, color = [-1.,-1.,-1.,-1.]): self.show = show self.discWidth = discWidth - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2466,13 +2481,13 @@ def __repr__(self): class ObjectJointRollingDisc: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], constrainedAxes = [1,1,1], activeConnector = True, discRadius = 0, discAxis = [1,0,0], planeNormal = [0,0,1], visualization = {'show': True, 'discWidth': 0.1, 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers - self.constrainedAxes = constrainedAxes + self.markerNumbers = copy.copy(markerNumbers) + self.constrainedAxes = copy.copy(constrainedAxes) self.activeConnector = activeConnector self.discRadius = CheckForValidPReal(discRadius,"discRadius","ObjectJointRollingDisc") - self.discAxis = discAxis - self.planeNormal = planeNormal - self.visualization = visualization + self.discAxis = np.array(discAxis) + self.planeNormal = np.array(planeNormal) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'JointRollingDisc' @@ -2497,7 +2512,7 @@ class VObjectJointRevolute2D: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2509,9 +2524,9 @@ def __repr__(self): class ObjectJointRevolute2D: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], activeConnector = True, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'JointRevolute2D' @@ -2532,7 +2547,7 @@ class VObjectJointPrismatic2D: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2544,12 +2559,12 @@ def __repr__(self): class ObjectJointPrismatic2D: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], axisMarker0 = [1.,0.,0.], normalMarker1 = [0.,1.,0.], constrainRotation = True, activeConnector = True, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers - self.axisMarker0 = axisMarker0 - self.normalMarker1 = normalMarker1 + self.markerNumbers = copy.copy(markerNumbers) + self.axisMarker0 = np.array(axisMarker0) + self.normalMarker1 = np.array(normalMarker1) self.constrainRotation = constrainRotation self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'JointPrismatic2D' @@ -2573,7 +2588,7 @@ class VObjectJointSliding2D: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2585,15 +2600,15 @@ def __repr__(self): class ObjectJointSliding2D: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], slidingMarkerNumbers = [], slidingMarkerOffsets = [], nodeNumber = exudyn.InvalidIndex(), classicalFormulation = True, constrainRotation = False, axialForce = 0, activeConnector = True, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers - self.slidingMarkerNumbers = slidingMarkerNumbers - self.slidingMarkerOffsets = slidingMarkerOffsets + self.markerNumbers = copy.copy(markerNumbers) + self.slidingMarkerNumbers = copy.copy(slidingMarkerNumbers) + self.slidingMarkerOffsets = np.array(slidingMarkerOffsets) self.nodeNumber = nodeNumber self.classicalFormulation = classicalFormulation self.constrainRotation = constrainRotation self.axialForce = axialForce self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'JointSliding2D' @@ -2620,7 +2635,7 @@ class VObjectJointALEMoving2D: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2632,15 +2647,15 @@ def __repr__(self): class ObjectJointALEMoving2D: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], slidingMarkerNumbers = [], slidingMarkerOffsets = [], slidingOffset = 0., nodeNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], usePenaltyFormulation = False, penaltyStiffness = 0., activeConnector = True, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers - self.slidingMarkerNumbers = slidingMarkerNumbers - self.slidingMarkerOffsets = slidingMarkerOffsets + self.markerNumbers = copy.copy(markerNumbers) + self.slidingMarkerNumbers = copy.copy(slidingMarkerNumbers) + self.slidingMarkerOffsets = np.array(slidingMarkerOffsets) self.slidingOffset = slidingOffset - self.nodeNumbers = nodeNumbers + self.nodeNumbers = copy.copy(nodeNumbers) self.usePenaltyFormulation = usePenaltyFormulation self.penaltyStiffness = penaltyStiffness self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'JointALEMoving2D' @@ -2667,7 +2682,7 @@ class VObjectContactFrictionCircleCable2DOld: def __init__(self, show = True, drawSize = -1., color = [-1.,-1.,-1.,-1.]): self.show = show self.drawSize = drawSize - self.color = color + self.color = np.array(color) def __iter__(self): yield 'show', self.show @@ -2679,7 +2694,7 @@ def __repr__(self): class ObjectContactFrictionCircleCable2DOld: def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.InvalidIndex() ], nodeNumber = exudyn.InvalidIndex(), numberOfContactSegments = 3, contactStiffness = 0., contactDamping = 0., frictionVelocityPenalty = 0., frictionStiffness = 0., frictionCoefficient = 0., circleRadius = 0., offset = 0., activeConnector = True, visualization = {'show': True, 'drawSize': -1., 'color': [-1.,-1.,-1.,-1.]}): self.name = name - self.markerNumbers = markerNumbers + self.markerNumbers = copy.copy(markerNumbers) self.nodeNumber = nodeNumber self.numberOfContactSegments = CheckForValidPInt(numberOfContactSegments,"numberOfContactSegments","ObjectContactFrictionCircleCable2DOld") self.contactStiffness = CheckForValidUReal(contactStiffness,"contactStiffness","ObjectContactFrictionCircleCable2DOld") @@ -2690,7 +2705,7 @@ def __init__(self, name = '', markerNumbers = [ exudyn.InvalidIndex(), exudyn.In self.circleRadius = CheckForValidUReal(circleRadius,"circleRadius","ObjectContactFrictionCircleCable2DOld") self.offset = offset self.activeConnector = activeConnector - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'objectType', 'ContactFrictionCircleCable2DOld' @@ -2727,7 +2742,7 @@ class MarkerBodyMass: def __init__(self, name = '', bodyNumber = exudyn.InvalidIndex(), visualization = {'show': True}): self.name = name self.bodyNumber = bodyNumber - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'BodyMass' @@ -2750,8 +2765,8 @@ class MarkerBodyPosition: def __init__(self, name = '', bodyNumber = exudyn.InvalidIndex(), localPosition = [0.,0.,0.], visualization = {'show': True}): self.name = name self.bodyNumber = bodyNumber - self.localPosition = localPosition - self.visualization = visualization + self.localPosition = np.array(localPosition) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'BodyPosition' @@ -2775,8 +2790,8 @@ class MarkerBodyRigid: def __init__(self, name = '', bodyNumber = exudyn.InvalidIndex(), localPosition = [0.,0.,0.], visualization = {'show': True}): self.name = name self.bodyNumber = bodyNumber - self.localPosition = localPosition - self.visualization = visualization + self.localPosition = np.array(localPosition) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'BodyRigid' @@ -2800,7 +2815,7 @@ class MarkerNodePosition: def __init__(self, name = '', nodeNumber = exudyn.InvalidIndex(), visualization = {'show': True}): self.name = name self.nodeNumber = nodeNumber - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'NodePosition' @@ -2823,7 +2838,7 @@ class MarkerNodeRigid: def __init__(self, name = '', nodeNumber = exudyn.InvalidIndex(), visualization = {'show': True}): self.name = name self.nodeNumber = nodeNumber - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'NodeRigid' @@ -2847,7 +2862,7 @@ def __init__(self, name = '', nodeNumber = exudyn.InvalidIndex(), coordinate = e self.name = name self.nodeNumber = nodeNumber self.coordinate = CheckForValidUInt(coordinate,"coordinate","MarkerNodeCoordinate") - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'NodeCoordinate' @@ -2871,7 +2886,7 @@ class MarkerNodeCoordinates: def __init__(self, name = '', nodeNumber = exudyn.InvalidIndex(), visualization = {'show': True}): self.name = name self.nodeNumber = nodeNumber - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'NodeCoordinates' @@ -2895,7 +2910,7 @@ def __init__(self, name = '', nodeNumber = exudyn.InvalidIndex(), coordinate = e self.name = name self.nodeNumber = nodeNumber self.coordinate = CheckForValidUInt(coordinate,"coordinate","MarkerNodeODE1Coordinate") - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'NodeODE1Coordinate' @@ -2920,7 +2935,7 @@ def __init__(self, name = '', nodeNumber = exudyn.InvalidIndex(), rotationCoordi self.name = name self.nodeNumber = nodeNumber self.rotationCoordinate = CheckForValidUInt(rotationCoordinate,"rotationCoordinate","MarkerNodeRotationCoordinate") - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'NodeRotationCoordinate' @@ -2946,9 +2961,9 @@ class MarkerSuperElementPosition: def __init__(self, name = '', bodyNumber = exudyn.InvalidIndex(), meshNodeNumbers = [], weightingFactors = [], visualization = {'show': True, 'showMarkerNodes': True}): self.name = name self.bodyNumber = bodyNumber - self.meshNodeNumbers = meshNodeNumbers - self.weightingFactors = weightingFactors - self.visualization = visualization + self.meshNodeNumbers = copy.copy(meshNodeNumbers) + self.weightingFactors = np.array(weightingFactors) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'SuperElementPosition' @@ -2976,12 +2991,12 @@ class MarkerSuperElementRigid: def __init__(self, name = '', bodyNumber = exudyn.InvalidIndex(), offset = [0.,0.,0.], meshNodeNumbers = [], weightingFactors = [], useAlternativeApproach = True, rotationsExponentialMap = 2, visualization = {'show': True, 'showMarkerNodes': True}): self.name = name self.bodyNumber = bodyNumber - self.offset = offset - self.meshNodeNumbers = meshNodeNumbers - self.weightingFactors = weightingFactors + self.offset = np.array(offset) + self.meshNodeNumbers = copy.copy(meshNodeNumbers) + self.weightingFactors = np.array(weightingFactors) self.useAlternativeApproach = useAlternativeApproach self.rotationsExponentialMap = rotationsExponentialMap - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'SuperElementRigid' @@ -3011,8 +3026,8 @@ def __init__(self, name = '', objectNumber = exudyn.InvalidIndex(), linkNumber = self.name = name self.objectNumber = objectNumber self.linkNumber = CheckForValidUInt(linkNumber,"linkNumber","MarkerKinematicTreeRigid") - self.localPosition = localPosition - self.visualization = visualization + self.localPosition = np.array(localPosition) + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'KinematicTreeRigid' @@ -3037,7 +3052,7 @@ class MarkerObjectODE2Coordinates: def __init__(self, name = '', objectNumber = exudyn.InvalidIndex(), visualization = {'show': True}): self.name = name self.objectNumber = objectNumber - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'ObjectODE2Coordinates' @@ -3062,7 +3077,7 @@ def __init__(self, name = '', bodyNumber = exudyn.InvalidIndex(), numberOfSegmen self.bodyNumber = bodyNumber self.numberOfSegments = CheckForValidPInt(numberOfSegments,"numberOfSegments","MarkerBodyCable2DShape") self.verticalOffset = verticalOffset - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'BodyCable2DShape' @@ -3087,7 +3102,7 @@ class MarkerBodyCable2DCoordinates: def __init__(self, name = '', bodyNumber = exudyn.InvalidIndex(), visualization = {'show': True}): self.name = name self.bodyNumber = bodyNumber - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'markerType', 'BodyCable2DCoordinates' @@ -3112,10 +3127,10 @@ class LoadForceVector: def __init__(self, name = '', markerNumber = exudyn.InvalidIndex(), loadVector = [0.,0.,0.], bodyFixed = False, loadVectorUserFunction = 0, visualization = {'show': True}): self.name = name self.markerNumber = markerNumber - self.loadVector = loadVector + self.loadVector = np.array(loadVector) self.bodyFixed = bodyFixed self.loadVectorUserFunction = loadVectorUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'loadType', 'ForceVector' @@ -3145,10 +3160,10 @@ class LoadTorqueVector: def __init__(self, name = '', markerNumber = exudyn.InvalidIndex(), loadVector = [0.,0.,0.], bodyFixed = False, loadVectorUserFunction = 0, visualization = {'show': True}): self.name = name self.markerNumber = markerNumber - self.loadVector = loadVector + self.loadVector = np.array(loadVector) self.bodyFixed = bodyFixed self.loadVectorUserFunction = loadVectorUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'loadType', 'TorqueVector' @@ -3178,9 +3193,9 @@ class LoadMassProportional: def __init__(self, name = '', markerNumber = exudyn.InvalidIndex(), loadVector = [0.,0.,0.], loadVectorUserFunction = 0, visualization = {'show': True}): self.name = name self.markerNumber = markerNumber - self.loadVector = loadVector + self.loadVector = np.array(loadVector) self.loadVectorUserFunction = loadVectorUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'loadType', 'MassProportional' @@ -3211,7 +3226,7 @@ def __init__(self, name = '', markerNumber = exudyn.InvalidIndex(), load = 0., l self.markerNumber = markerNumber self.load = load self.loadUserFunction = loadUserFunction - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'loadType', 'Coordinate' @@ -3242,7 +3257,7 @@ def __init__(self, name = '', nodeNumber = exudyn.InvalidIndex(), writeToFile = self.fileName = fileName self.outputVariableType = outputVariableType self.storeInternal = storeInternal - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'sensorType', 'Node' @@ -3273,7 +3288,7 @@ def __init__(self, name = '', objectNumber = exudyn.InvalidIndex(), writeToFile self.fileName = fileName self.outputVariableType = outputVariableType self.storeInternal = storeInternal - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'sensorType', 'Object' @@ -3300,12 +3315,12 @@ class SensorBody: def __init__(self, name = '', bodyNumber = exudyn.InvalidIndex(), localPosition = [0.,0.,0.], writeToFile = True, fileName = '', outputVariableType = 0, storeInternal = False, visualization = {'show': True}): self.name = name self.bodyNumber = bodyNumber - self.localPosition = localPosition + self.localPosition = np.array(localPosition) self.writeToFile = writeToFile self.fileName = fileName self.outputVariableType = outputVariableType self.storeInternal = storeInternal - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'sensorType', 'Body' @@ -3338,7 +3353,7 @@ def __init__(self, name = '', bodyNumber = exudyn.InvalidIndex(), meshNodeNumber self.fileName = fileName self.outputVariableType = outputVariableType self.storeInternal = storeInternal - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'sensorType', 'SuperElement' @@ -3367,12 +3382,12 @@ def __init__(self, name = '', objectNumber = exudyn.InvalidIndex(), linkNumber = self.name = name self.objectNumber = objectNumber self.linkNumber = CheckForValidUInt(linkNumber,"linkNumber","SensorKinematicTree") - self.localPosition = localPosition + self.localPosition = np.array(localPosition) self.writeToFile = writeToFile self.fileName = fileName self.outputVariableType = outputVariableType self.storeInternal = storeInternal - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'sensorType', 'KinematicTree' @@ -3405,7 +3420,7 @@ def __init__(self, name = '', markerNumber = exudyn.InvalidIndex(), writeToFile self.fileName = fileName self.outputVariableType = outputVariableType self.storeInternal = storeInternal - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'sensorType', 'Marker' @@ -3435,7 +3450,7 @@ def __init__(self, name = '', loadNumber = exudyn.InvalidIndex(), writeToFile = self.writeToFile = writeToFile self.fileName = fileName self.storeInternal = storeInternal - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'sensorType', 'Load' @@ -3460,13 +3475,13 @@ def __repr__(self): class SensorUserFunction: def __init__(self, name = '', sensorNumbers = [], factors = [], writeToFile = True, fileName = '', sensorUserFunction = 0, storeInternal = False, visualization = {'show': True}): self.name = name - self.sensorNumbers = sensorNumbers - self.factors = factors + self.sensorNumbers = copy.copy(sensorNumbers) + self.factors = np.array(factors) self.writeToFile = writeToFile self.fileName = fileName self.sensorUserFunction = sensorUserFunction self.storeInternal = storeInternal - self.visualization = visualization + self.visualization = CopyDictLevel1(visualization) def __iter__(self): yield 'sensorType', 'UserFunction' diff --git a/main/pythonDev/exudyn/mainSystemExtensions.py b/main/pythonDev/exudyn/mainSystemExtensions.py index 7d148235..11d4a65a 100644 --- a/main/pythonDev/exudyn/mainSystemExtensions.py +++ b/main/pythonDev/exudyn/mainSystemExtensions.py @@ -85,9 +85,9 @@ def JointPreCheckCalc(where, mbs, name, bodyNumbers, position, show, useGlobalFr #**input: # mbs: the MainSystem where items are created # name: name string for object, node is 'Node:'+name -# referenceCoordinates: reference coordinates for point node (always a 3D vector, no matter if 2D or 3D mass) -# initialCoordinates: initial displacements for point node (always a 3D vector, no matter if 2D or 3D mass) -# initialVelocities: initial velocities for point node (always a 3D vector, no matter if 2D or 3D mass) +# referencePosition: reference coordinates for point node (always a 3D vector, no matter if 2D or 3D mass) +# initialDisplacement: initial displacements for point node (always a 3D vector, no matter if 2D or 3D mass) +# initialVelocity: initial velocities for point node (always a 3D vector, no matter if 2D or 3D mass) # physicsMass: mass of mass point # gravity: gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) # graphicsDataList: list of GraphicsData for optional mass visualization @@ -105,8 +105,8 @@ def JointPreCheckCalc(where, mbs, name, bodyNumbers, position, show, useGlobalFr # SC = exu.SystemContainer() # mbs = SC.AddSystem() # -# b0=mbs.CreateMassPoint(referenceCoordinates = [0,0,0], -# initialVelocities = [2,5,0], +# b0=mbs.CreateMassPoint(referencePosition = [0,0,0], +# initialVelocity = [2,5,0], # physicsMass = 1, gravity = [0,-9.81,0], # drawSize = 0.5, color=color4blue) # @@ -117,9 +117,9 @@ def JointPreCheckCalc(where, mbs, name, bodyNumbers, position, show, useGlobalFr # mbs.SolveDynamic(simulationSettings = simulationSettings) def MainSystemCreateMassPoint(mbs, name = '', - referenceCoordinates = [0.,0.,0.], - initialCoordinates = [0.,0.,0.], - initialVelocities = [0.,0.,0.], + referencePosition = [0.,0.,0.], + initialDisplacement = [0.,0.,0.], + initialVelocity = [0.,0.,0.], physicsMass=0, gravity = [0.,0.,0.], graphicsDataList = [], @@ -133,12 +133,12 @@ def MainSystemCreateMassPoint(mbs, if not exudyn.__useExudynFast: if not isinstance(name, str): RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='name', received = name, expectedType = ExpectedType.String) - if not IsVector(referenceCoordinates, 3): - RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='referenceCoordinates', received = referenceCoordinates, expectedType = ExpectedType.Vector, dim=3) - if not IsVector(initialCoordinates, 3): - RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='initialCoordinates', received = initialCoordinates, expectedType = ExpectedType.Vector, dim=3) - if not IsVector(initialVelocities, 3): - RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='initialVelocities', received = initialVelocities, expectedType = ExpectedType.Vector, dim=3) + if not IsVector(referencePosition, 3): + RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='referencePosition', received = referencePosition, expectedType = ExpectedType.Vector, dim=3) + if not IsVector(initialDisplacement, 3): + RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='initialDisplacement', received = initialDisplacement, expectedType = ExpectedType.Vector, dim=3) + if not IsVector(initialVelocity, 3): + RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='initialVelocity', received = initialVelocity, expectedType = ExpectedType.Vector, dim=3) if not IsVector(gravity, 3): RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='gravity', received = gravity, expectedType = ExpectedType.Vector, dim=3) @@ -162,9 +162,9 @@ def MainSystemCreateMassPoint(mbs, if not create2D: nodeNumber = mbs.AddNode(eii.NodePoint(name = nodeName, - referenceCoordinates = referenceCoordinates, - initialCoordinates=initialCoordinates, - initialVelocities=initialVelocities, + referenceCoordinates = referencePosition, + initialCoordinates=initialDisplacement, + initialVelocities=initialVelocity, visualization = eii.VNodePoint(show = show and (graphicsDataList == []), drawSize = drawSize, color = color), )) bodyNumber = mbs.AddObject(eii.MassPoint(name = name, @@ -174,9 +174,9 @@ def MainSystemCreateMassPoint(mbs, graphicsData = graphicsDataList) )) else: nodeNumber = mbs.AddNode(eii.NodePoint2D(name = nodeName, - referenceCoordinates = referenceCoordinates[0:2], - initialCoordinates=initialCoordinates[0:2], - initialVelocities=initialVelocities[0:2], + referenceCoordinates = referencePosition[0:2], + initialCoordinates=initialDisplacement[0:2], + initialVelocities=initialVelocity[0:2], visualization = eii.VNodePoint2D(show = show and (graphicsDataList == []), drawSize = drawSize, color = color), )) bodyNumber = mbs.AddObject(eii.MassPoint2D(name = name, @@ -447,8 +447,8 @@ def AngularVelocity2RotationVector_t(angularVelocity, rotMatrix): # SC = exu.SystemContainer() # mbs = SC.AddSystem() # -# b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], -# initialVelocities = [2,5,0], +# b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], +# initialVelocity = [2,5,0], # physicsMass = 1, gravity = [0,-9.81,0], # drawSize = 0.5, color=color4blue) # @@ -583,7 +583,7 @@ def MainSystemCreateSpringDamper(mbs, # SC = exu.SystemContainer() # mbs = SC.AddSystem() # -# b0 = mbs.CreateMassPoint(referenceCoordinates = [7,0,0], +# b0 = mbs.CreateMassPoint(referencePosition = [7,0,0], # physicsMass = 1, gravity = [0,-9.81,0], # drawSize = 0.5, color=color4blue) # @@ -1185,7 +1185,7 @@ def MainSystemCreateGenericJoint(mbs, name='', bodyNumbers=[None, None], # gravity = [0,-9.81,0], # graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], # color=color4orange)]) -# m1 = mbs.CreateMassPoint(referenceCoordinates=[5.5,-1,0], +# m1 = mbs.CreateMassPoint(referencePosition=[5.5,-1,0], # physicsMass=1, drawSize = 0.2) # n1 = mbs.GetObject(m1)['nodeNumber'] # diff --git a/main/pythonDev/exudyn/plot.py b/main/pythonDev/exudyn/plot.py index d14db063..d5097c04 100644 --- a/main/pythonDev/exudyn/plot.py +++ b/main/pythonDev/exudyn/plot.py @@ -16,6 +16,7 @@ import exudyn #for sensor index from exudyn.advancedUtilities import PlotLineCode import copy +import os #++++++++++++++++++++++++++++++++ #this structure helps to define default values, that are then always used! @@ -193,6 +194,8 @@ def PlotSensorDefaults(): # [*kwargs]: # minorTicksXon: if True, turn minor ticks for x-axis on # minorTicksYon: if True, turn minor ticks for y-axis on +# logScaleX: use log scale for x-axis +# logScaleY: use log scale for y-axis # fileCommentChar: if exists, defines the comment character in files (\#, %, ...) # fileDelimiterChar: if exists, defines the character indicating the columns for data (',', ' ', ';', ...) #**output: [Any, Any, Any, Any]; plots the sensor data; returns [plt, fig, ax, line] in which plt is matplotlib.pyplot, fig is the figure (or None), ax is the axis (or None) and line is the return value of plt.plot (or None) which could be changed hereafter @@ -242,7 +245,7 @@ def PlotSensor(mbs, sensorNumbers=[], components=0, xLabel='time (s)', yLabel=No for key in kwargs: - if (key!='minorTicksXon' and key!='minorTicksYon' and key!='sizeInches' + if (key!='minorTicksXon' and key!='minorTicksYon' and key!='fileCommentChar' and key!='fileDelimiterChar' and key!='logScaleX' and key!='logScaleY'): raise ValueError('PlotSensor: invalid argument: '+key) @@ -656,6 +659,11 @@ def PlotSensor(mbs, sensorNumbers=[], components=0, xLabel='time (s)', yLabel=No plt.show() if fileName != '': + try: + os.makedirs(os.path.dirname(fileName), exist_ok=True) + except: + pass #makedirs may fail on some systems, but we keep going + plt.savefig(fileName) return [plt, fig, ax, line] @@ -708,8 +716,8 @@ def PlotFFT(frequency, data, plt.xscale('log') if logScaleY: plt.yscale('log') - ax.grid(b=True, which='major', color='k', linestyle='-') - ax.grid(b=True, which='minor', color='k', linestyle=':') + ax.grid(visible=True, which='major', color='k', linestyle='-') + ax.grid(visible=True, which='minor', color='k', linestyle=':') ax.minorticks_on() plt.tight_layout() @@ -990,6 +998,10 @@ def PlotImage(imageData, HT = np.eye(4), axesEqual=True, plot3D=False, lineWidth plt.show() if fileName != '': + try: + os.makedirs(os.path.dirname(fileName), exist_ok=True) + except: + pass #makedirs may fail on some systems, but we keep going plt.savefig(fileName) diff --git a/main/pythonDev/exudyn/processing.py b/main/pythonDev/exudyn/processing.py index 4917c4ef..0ee4dcc0 100644 --- a/main/pythonDev/exudyn/processing.py +++ b/main/pythonDev/exudyn/processing.py @@ -17,6 +17,7 @@ import sys import time from copy import deepcopy #, copy +import os from exudyn.advancedUtilities import IsInteger #%%+++++++++++++++++++++++++++++++++++++++++++ @@ -62,6 +63,17 @@ def SingleIndex2SubIndices(i, subIndexRanges): return iRanges +#%%+++++++++++++++++++++++++++++++++++++++++++++++++++++ +#*function: internal function; add computation Index and parameterFunctionData to dictionry entry +# +def AddComputationIndexAndFunctionData(ind, cnt, addComputationIndex, parameterFunctionData): + if addComputationIndex: + ind['computationIndex'] = cnt + if bool(parameterFunctionData): # if dict is not empty + ind['functionData'] = parameterFunctionData + return + + #%%+++++++++++++++++++++++++++++++++++++++++++ #function: internal output function for ParameterVariation and GeneticOptimization # write header or values to output file and increase counter @@ -69,6 +81,12 @@ def WriteToFile(resultsFile, parameters, currentGeneration, values, globalCnt, w if resultsFile != '': #print('write to file') if writeHeader: + try: + #check only added in case of writeHeader to reduce overheads; may fail, if no header is written (but why...?) + os.makedirs(os.path.dirname(resultsFile), exist_ok=True) + except: + pass #makedirs may fail on some systems, but we keep going + file = open(resultsFile, 'w') file.write('#EXUDYN '+fileType+' results file:'+resultsFile+'\n') file.write('#results stored columnwise for every parameter and individual\n') @@ -505,6 +523,7 @@ def ParameterVariation(parameterFunction, parameters, # distanceFactor: children only survive at a certain relative distance of the current range; must be small enough (< 0.5) to allow individuals to survive; ignored if distanceFactor=0; as a rule of thumb, the distanceFactor should be zero in case that there is only one significant minimum, but if there are many local minima, the distanceFactor should be used to search at several different local minima # childDistribution: string with name of distribution for producing childs: "normal" (Gaussian, with sigma defining range), "uniform" (exactly in range of childs) # distanceFactorGenerations: number of generations (populations) at which the distance factor is active; the distance factor is used to find several local minima; finally, convergence is speed up without the distance factor +# parameterFunctionData: dictionary containing additional data passed to the objectiveFunction inside the parameters with dict key 'functionData'; use this e.g. for passing solver parameters or other settings # randomizerInitialization: initialize randomizer at beginning of optimization in order to get reproducible results, provide any integer in the range between 0 and 2**32 - 1 (default: no initialization) # # debugMode: if True, additional print out is done @@ -536,6 +555,7 @@ def GeneticOptimization(objectiveFunction, parameters, useMultiProcessing=False, showProgress = True, clusterHostNames = [], + parameterFunctionData = {}, **kwargs): def RandomNumber(distribution, rangeBegin, rangeEnd, vMin, vMax): @@ -637,9 +657,7 @@ def RandomNumber(distribution, rangeBegin, rangeEnd, vMin, vMax): pEnd = value[1] value = np.random.uniform(pBegin, pEnd) ind[key] = value - if addComputationIndex: - ind['computationIndex'] = i #unique index for one set of computations - + AddComputationIndexAndFunctionData(ind, i, addComputationIndex, parameterFunctionData) currentGeneration += [ind] #+++++++++++++++++++++++++++++++++++++++++++++++ @@ -673,10 +691,12 @@ def RandomNumber(distribution, rangeBegin, rangeEnd, vMin, vMax): writeHeader = (popCnt == 0), multiProcessingMode=multiProcessingMode) - #remove computationIndex from new generation + #remove computationIndex and parameterfunctiondata from new generation for item in currentGeneration: if 'computationIndex' in item: del item['computationIndex'] + if 'functionData' in item: + del item['functionData'] #store all values parametersAll += currentGeneration.copy() @@ -753,7 +773,7 @@ def RandomNumber(distribution, rangeBegin, rangeEnd, vMin, vMax): for k in range(nGen): d = 0 for (key,value) in ind.items(): - if key != 'computationIndex': + if key != 'computationIndex' and key in parameters.keys(): # only manipulate values from given parameters d += (ind[key] - currentGeneration[k][key])**2/(rangesDict[key])**2 d = np.sqrt(d/dim) #number of parameters shall not influence distanceFactor #print("d=",d,":",ind,"-",currentGeneration[k]) @@ -830,7 +850,7 @@ def RandomNumber(distribution, rangeBegin, rangeEnd, vMin, vMax): currentGeneration += [newGen] #currentGeneration += [indList[pi]] #gives wrong sorting in dict ..., destroys output file order p += 1 - + indList[-1]['functionData'] = parameterFunctionData # add function data cnt += 1 #computation count ... for every parameter variation within one generation # print("pop", popCnt, ": currentGeneration=\n",currentGeneration) else: @@ -848,7 +868,7 @@ def RandomNumber(distribution, rangeBegin, rangeEnd, vMin, vMax): n = len(parametersAll) if n != 0: for key in parametersAll[0]: - if key != 'computationIndex': + if key != 'computationIndex' and key in parameters.keys(): # do not output function data parameterData = np.zeros(n) #extract parameter list from list of dictionaries: for i in range(n): @@ -862,26 +882,22 @@ def RandomNumber(distribution, rangeBegin, rangeEnd, vMin, vMax): #%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -#**function: Compute minimum of given objectiveFunction. This function is based on scipy.optimize.minimize() and it provides the same interface as GeneticOptimization(). +#**function: Compute minimum of given objectiveFunction. This function is based on scipy.optimize.minimize() and it provides the same interface as GeneticOptimization(). Note that in special cases, you should copy this function and adapt to your needs. #**input: # objectiveFunction: function, which takes the form parameterFunction(parameterDict) and which returns a value or list (or numpy array) which reflects the size of the objective to be minimized # parameters: given as a dictionary, consist of name and tuple containing the search range for this parameter (begin, end), e.g. 'mass':(10,50) # storeFunctionValues: if True, objectiveFunction values are computed (additional costs!) and stored in every iteration into valueList # initialGuess: initial guess. Array of real elements of size (n,), where 'n' is the number of independent variables. If not provided by the user, initialGuess is computed from bounds provided in parameterDict. # method: solver that should be used, e.g. 'Nelder-Mead', 'Powell', 'CG' etc. A list of available solvers can be found in the documentation of scipy.optimize.minimize(). -# tol: tolerance for termination. When tol is specified, the selected minimization algorithm sets some relevant solver-specific tolerance(s) equal to tol. For detailed control, use solver-specific options using the 'options' variable. +# tol: tolerance for termination. When tol is specified, the selected minimization algorithm sets some relevant solver-specific tolerance(s) equal to tol (but this is usually not the tolerance for loss or parameters1). For detailed control, use solver-specific options using the 'options' variable. # options: dictionary of solver options. Can be used to set absolute and relative error tolerances. Detailed information can be found in the documentation of scipy.optimize.minimize(). # enforceBounds: if True, ensures that only parameters within the bounds specified in ParameterDict are used for minimization; this may help to avoid, e.g., negative values, but may lead to non-convergence # verbose: prints solver information into console, e.g. number of iterations 'nit', number of funcion evaluations 'nfev', status etc. -# showProgress: if True, shows for every iteration objective function value, number of current iteration, time needed for current iteration, maximum number of iterations until solver option 'maxiter' is reached. +# showProgress: if True, shows for every iteration objective function value, current iteration number, time needed for current iteration, maximum number of iterations and loss (current value of objective function) # addComputationIndex: if True, key 'computationIndex' is added for consistency reasons with GeneticOptimizaiton to every parameterDict in the call to parameterFunction(); however, the value is always 0, because no multi threading is used in Minimize(...) # resultsFile: if provided, the results are stored columnwise into the given file and written after every generation; use resultsMonitor.py to track results in realtime # useScipyBounds: if True, use scipy.optimize.minimize() option 'bounds' to apply bounds on variable specified in ParameterDict. Note, this option is only used by some specific methods of scipy.optimize.minimize()! method='Nelder-Mead' ignores this option for example! if False, option 'enforceBounds' will be set to False! # args: extra arguments passed to the objective function and its derivatives (fun, jac and hess functions). -# jac: method for computing the gradient vector. -# hess: method for computing the Hessian matrix. -# hessp: hessian of objective function times an arbitrary vector p. -# constraints: constraints definition (only for COBYLA, SLSQP and trust-constr). #**author: Stefan Holzinger, Johannes Gerstmayr #**output: returns [optimumParameter, optimumValue, parameterList, valueList], containing the optimum parameter set 'optimumParameter', optimum value 'optimumValue', the whole list of parameters parameterList with according objective values 'valueList' #**notes: This function is still under development and shows an experimental state! There are currently unused arguments of scipy.optimize.minimize(): Detailed information can be found in the documentation of scipy.optimize.minimize(). @@ -889,6 +905,7 @@ def Minimize(objectiveFunction, parameters, initialGuess=[], method='Nelder-Mead enforceBounds=True, debugMode=False, showProgress=True, addComputationIndex=False, storeFunctionValues=True, **kwargs): from scipy import optimize #for minimize + # from functools import partial #add extra args to function # get parameter names parKeyLst = list(parameters.keys()) @@ -924,7 +941,7 @@ def Minimize(objectiveFunction, parameters, initialGuess=[], method='Nelder-Mead # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # process initial guess - if initialGuessCopy != []: # initial guess has been provided by the user + if initialGuessCopy == []: # initial guess has been provided by the user initialGuessCopy = [None]*nParameters for i in range(nParameters): initialGuessCopy[i] = np.mean(bounds[i]) @@ -968,10 +985,12 @@ def WriteToFileMinimize(resFileName, parDictInit, pDict, objFunVal, resFileCnt): return resultsFileCntTemp startTime = time.time() #for calculating time to go + timePrintLast = [startTime-10] # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # callback: needed to get parameters after each iteration for file writing and post processing - def StoreParameterFunctionValues(parametersAtIteration, *args): + def StoreParameterFunctionValues(parametersAtIteration, convergence=0, lastTime=False): + #global timePrintLast # print(parametersAtIteration2) for i in range(nParameters): parameterValueLst[i].append(parametersAtIteration[i]) @@ -987,24 +1006,25 @@ def StoreParameterFunctionValues(parametersAtIteration, *args): if resultsFile != '': resultsFileCnt[0] = WriteToFileMinimize(resultsFile, parameters, pDict, valuesAtIteration, resultsFileCnt[0]) - # increase iteration counter itCtr[0] += 1 # time needed for iteration iterationsToGo = (maxiter-itCtr[0]) timeToGo = 0 - timeSpent = time.time() - startTime + currentTime = time.time() + timeSpent = currentTime - startTime if itCtr[0] != 0: timeToGo = timeSpent/itCtr[0] * iterationsToGo # print progess to console if showProgress: - print('***** ') - print('iteration ' + str(itCtr[0]) + ' / max. ' + str(iterationsToGo)) - print(' time = ', timeSpent, 's') - print(' time to go (max) = ', timeToGo, 's') - print(' objective function value: ', valuesAtIteration) + if currentTime - timePrintLast[0] > 1 or lastTime: + timePrintLast[0] = currentTime + print('iteration ' + str(itCtr[0]) + ' / ' + str(maxiter), end='') + print(', time = '+str(round(timeSpent,2)), 's / ',end='') + print(str(round(timeToGo,2)) + 's',end='') + print(', loss:', ("{:.0"+str(3)+"g}").format(valuesAtIteration)) @@ -1029,19 +1049,18 @@ def ParameterFunctionMinimize(parametersAtIteration): # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # perform optimizaion - optimizeResult = optimize.minimize(ParameterFunctionMinimize, initialGuessCopy, + optimizeResult = optimize.minimize(ParameterFunctionMinimize, + initialGuessCopy, method=method, bounds=scipyMinimizeBounds, + # callback=partial(StoreParameterFunctionValues, convergence=0, callbackArgs=callbackArgs), callback=StoreParameterFunctionValues, tol=tol, options=options, - #jac=jac, - #hess=hess, - #constraints=constraints, ) # if showProgress: # print progress data for final iteration to console - StoreParameterFunctionValues(optimizeResult['x']) + StoreParameterFunctionValues(optimizeResult['x'], lastTime=True) if debugMode: # show solver informations (e.g. number of function evaluations etc.) print('---------------------------------------\n') diff --git a/main/pythonDev/exudyn/robotics/rosInterface.py b/main/pythonDev/exudyn/robotics/rosInterface.py new file mode 100644 index 00000000..69558b54 --- /dev/null +++ b/main/pythonDev/exudyn/robotics/rosInterface.py @@ -0,0 +1,302 @@ +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# This is an EXUDYN python ROS interface +# +# Details: This interface collects interfaces and functionality for ROS comunication +# This library is under construction (2023-05); +# To make use of this libraries, you need to +# install ROS (ROS1 noetic) including rospy +# Please consider following workflow: +# make sure to have a working ROS1-NOETIC installation, ROS2 is not supported yet +# tested only with ROS1-NOETIC, ubuntu 20.04, and Python 3.8.10 +# you find all ROS1 installation steps on: +# http://wiki.ros.org/noetic/Installation/Ubuntu +# Step 1.4 we recommend to install: (sudo apt install ros-noetic-desktop) +# Check the installation of the turtlesim package (rosrun turtlesim turtlesim_node ) +# if not installed: sudo apt install ros-noetic-turtlesim +# use a catkin workspace and build a ROS1 Package +# Follow instructions on: +# http://wiki.ros.org/ROS/Tutorials (recommend go trough step 1 to 6) +# Minimal example to use: +# create catkin workspace: +# mkdir -p ~/catkin_ws/src +# cd ~/catkin_ws +# catkin_make +# source devel/setup.bash +# build ROS package: +# cd ~/catkin_ws/src +# catkin_create_pkg my_pkg_name rospy roscpp std_msgs geometry_msgs sensor_msgs +# build catkin workspace and sourcing setup file +# cd ~/catkin_ws +# cakin_make +# source ~/catkin_ws/devel/setup.bash +# for more functionality see also: ROSExampleMassPoint.py, ROSExampleBringup.launch, ROSExampleControlVelocity.py +# Author: Martin Sereinig, Peter Manzl +# Date: 2023-05-31 (created) +# +# Copyright:This file is part of Exudyn. Exudyn is free software. +# You can redistribute it and/or modify it under the terms of the Exudyn license. +# See 'LICENSE.txt' for more details. +# +#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +import numpy as np +import exudyn as exu +from exudyn.utilities import * +import time +import os + +# import needed ROS modules and messages +import rospy +from geometry_msgs.msg import PoseStamped, WrenchStamped, Twist +from std_msgs.msg import Float64MultiArray, Empty, String, Time + +#**class: interface super class to establish a ROS Exudyn interface +# see specific class functions which can be used and extended +# by inheritance with class MyClass(ROSInterface) +#**author: Martin Sereinig, Peter Manzl +#**notes: some inspiration can be taken from +class ROSInterface: + def __init__(self, name = 'ExudynRobotInterface'): + + # check ROS version + self.CheckROSversion() + + # init ros node + rospy.init_node(name, anonymous=True) + + # topics namespace, will be used in all topics + self.topicBase = '/exudyn/' + + # set ROS node start time Time + self.t0 = rospy.get_time() + print('ROS node initialization at time {} done!'.format(self.t0)) + # initialize simulation runtime + self.tsim = self.t0 - rospy.get_time() + + # initialization of some timing variables + self.rosPoseSendInterval = 0.01 #ms + self.rosTwistSendInterval = 0.01 #ms + self.lastPoseSendTime = -self.rosPoseSendInterval + self.lastTwistSendTime = -self.rosTwistSendInterval + self.systemStateUpdateInterval = 0.01 #ms + self.lastSystemStateUpdateTime = -self.systemStateUpdateInterval + self.lastStepTime = 0 # last step time (exudyn time) + + # initialize standard publisher + # publisher for time message + self.exuTimePublisher = self.InitPublisher(pubTopicName='SimiulationTime', + pubType = Time, queueSize = 10) + # publisher for simple string message + self.exuStringPublisher = self.InitPublisher(pubTopicName='SimpleString', + pubType = String, queueSize = 10) + # publisher for velocities (Twist) + self.exuTwistPublisher = self.InitPublisher(pubTopicName='Twist', + pubType = Twist, queueSize = 10) + # publisher for Pose + self.exuPosePublisher = self.InitPublisher(pubTopicName='Pose', + pubType = PoseStamped, queueSize = 10) + # publisher for Wrench + self.exuWrenchPublisher = self.InitPublisher(pubTopicName='Wrensh', + pubType = WrenchStamped, queueSize = 10) + # publisher for system data + self.exuSystemstatePublisher = self.InitPublisher(pubTopicName='Systemstate', + pubType = Float64MultiArray, queueSize = 1) + # add further publisher if needed in inherited class + # initialization of subscriber and needed callback function will be done in inherited class + # self.callbackData = + return + #**classFunction: function to create a publisher + #**input: + # pubTopicName: topic name to publish, actual topic will be /exudyn/pubTopicName + # pubType: data type used in topic + # queSize: length of queue to hold messages, should be as small as sending frequency (= simulation sample time) + #**author: Martin Sereinig + #**notes: find msgs types here + # http://docs.ros.org/en/melodic/api/std_msgs/html/index-msg.html + #**examples: + # publisher for poses, pubType = PoseStamped, + # publisher for system data, pubType = Float64MultiArray, + # publisher for filtered force, pubType = WrenchStamped, + # publisher for velocities, pubType = Twist, + def InitPublisher(self, pubTopicName='', pubType = Empty, queueSize = 10): + exuPublisher = rospy.Publisher(self.topicBase + pubTopicName, + pubType, queue_size=queueSize) + return exuPublisher + + #**classFunction: function to create a generic callback function for a subscriber + #**input: + # topic: topic name generated by init Subscriber + # data: data structure for regarding individual topic + #**author: Peter Manzl + def ExuCallbackGeneric(self,subTopicName, data): + setattr(self, subTopicName, data) + return True + + #**function: function to create a subscriber + #**input: + # subTopicNameSpace: topic namespace: 'exudyn/' + # subTopicName: topic name to subscribe + # subType: data type for topic to subscribe + #**author: Peter Manzl + #**note: callback function will be automatic generated for each subscriber, depending + # on subTopicName. Data will be found under self.subTopicName + def InitSubscriber(self,subTopicNameSpace, subTopicName, subType): + exuSubscriber = rospy.Subscriber(subTopicNameSpace+subTopicName, subType, + lambda data: self.ExuCallbackGeneric(subTopicName, data)) + return exuSubscriber + + #**classFunction: check the current used ROS version + #**author: Martin Sereinig + #**note: just supports ROS1, ROS2 support will be given in future releases + def CheckROSversion(self): + # check and set ROSVersion + #os.system('rosversion -d') + #self.myROSversionString = os.popen('rosversion -d').read() + self.myROSversionEnvInt = int(os.getenv('ROS_VERSION','0')) + self.myROSdistriEnv = os.getenv('ROS_DISTRO','unknown') + rospy.loginfo('-ROS'+str(self.myROSversionEnvInt)+' '+self.myROSdistriEnv+'-') + if self.myROSversionEnvInt != 0: + return True + else: + return False + + #**classFunction: Example method to be called once per frame/control cycle in Exudyn PreStepUserFunction + #**note: reads sensor values, creates message, publish and subscribe to ROS + #**input: + # mbs: mbs (exudyn.exudynCPP.MainSystem), multi-body simulation system from exudyn + # tExu: tExu (float), elapsed time since simulation start + # getData: getData (string), get pose information from 'node' or from 'sensor' + #**author: Martin Sereinig + #**notes: + # reads sensor values, creates message, publish and subscribe to ROS + # publishing each and every step is too much, this would slow down the connection + # thus: publish every few seconds, only + # furthermore, as vrInterface is only updating the graphics with f=60Hz, we don't have to update + # system state every 1ms, so with f=1000Hz. Instead f=60Hz equivalents to update every 1/60=17ms + # timing variable to know when to send new command to robot or when to publish new mbs system state update + def PublishPoseUpdate(self, mbs, tExu, getData = 'node'): + if tExu - self.lastPoseSendTime >= self.rosPoseSendInterval: + self.lastPoseSendTime = tExu + if getData == 'sensor': + # read current kinematic state and orientation from predefined variables send via mbs.variables + posFromExu = mbs.GetSensorValues(mbs.variables['pos']) + oriFromExu = mbs.GetSensorValues(mbs.variables['ori']) + # convert data to numpy arrays + pos = np.array(posFromExu) + rot = np.array(oriFromExu) + rotE = np.roll(RotXYZ2EulerParameters(rot),-1) # use roll to meet ROS eulerparameter convention [x,y,z,w] + + elif getData == 'node': + nodeDic = mbs.GetNode(mbs.variables['nodeNumber']) + if nodeDic['nodeType'] == 'RigidBodyEP': + # get position [x,y,z] and orientation (eulerparameter) [w,x,y,z] from exudyn via node coordinates + # nodeCoordinates = [x,y,z, w,x,y,z] + nodeCoordinates = list(np.array(nodeDic['referenceCoordinates']) + + np.array(mbs.GetNodeOutput(mbs.variables['nodeNumber'],variableType = exu.OutputVariableType.Coordinates))) + # reformulation for ROS + pos = nodeCoordinates[0:3] # pos = [x,y,z] + rotE = np.roll(nodeCoordinates[3:7],-1) # rotE = [x,y,z,w] + + if False: # for debug + print('position: ',nodeCoordinates[0:3]) + print('orientation: ',nodeCoordinates[3:7]) # eulerparameter exu [w,x,y,z] + else: + print('node type not supported') + else: + print('Error! Please choose how to get pose information!') + + + poseExu = np.append(pos,rotE) + # compose message and publish + msgData = PoseStamped() + # postion + msgData.pose.position.x = poseExu[0] + msgData.pose.position.y = poseExu[1] + msgData.pose.position.z = poseExu[2] + # orientation given in unit quarternions + msgData.pose.orientation.x = poseExu[3] + msgData.pose.orientation.y = poseExu[4] + msgData.pose.orientation.z = poseExu[5] + msgData.pose.orientation.w = poseExu[6] + # write current time into message + msgData.header.stamp = rospy.Time.now() + self.exuPosePublisher.publish(msgData) + + + + #**classFunction: Example method to be called once per frame/control cycle in Exudyn PreStepUserFunction + #**note: reads sensor values, creates message, publish and subscribe to ROS + #**input: + # mbs: mbs (exudyn.exudynCPP.MainSystem), multi-body simulation system from exudyn + # tExu: tExu (float), elapsed time since simulation start + # getData: getData (string), get pose information from 'node' or from 'sensor' + #**author: Martin Sereinig + #**notes: + # reads sensor values, creates message, publish and subscribe to ROS + def PublishTwistUpdate(self, mbs, tExu, getData='node'): + if tExu - self.lastTwistSendTime >= self.rosTwistSendInterval: + self.lastTwistSendTime = tExu + + if getData == 'sensor': + # read current kinematic state and orientation from predefined variables + velocityLinearFromExu = mbs.GetSensorValues(mbs.variables['velt']) + velocityAngularFromExu = mbs.GetSensorValues(mbs.variables['velr']) + # convert data to numpy arrays + velLin = np.array(velocityLinearFromExu) + velAng = np.array(velocityAngularFromExu) + + elif getData == 'node': + nodeDic = mbs.GetNode(mbs.variables['nodeNumber']) + if nodeDic['nodeType'] == 'RigidBodyEP': + # get linear and angular velocity form exudyn via node + velLin= mbs.GetNodeOutput(mbs.variables['nodeNumber'],variableType = exu.OutputVariableType.Velocity) + velAng = mbs.GetNodeOutput(mbs.variables['nodeNumber'],variableType = exu.OutputVariableType.AngularVelocity) + # same could be done to get acceleration from exudyn node + # nUIPLinearAcc= mbs.GetNodeOutput(nUIP,variableType = exu.OutputVariableType.Acceleration) + # nUIPAngularAcc= mbs.GetNodeOutput(nUIP,variableType = exu.OutputVariableType.AngularAcceleration) + + twistExu = np.append(velLin,velAng) + # compose message and publish + msgData = Twist() + # linear velocities + msgData.linear.x = twistExu[0] + msgData.linear.y = twistExu[1] + msgData.linear.z = twistExu[2] + # angular velocities + msgData.angular.x = twistExu[3] + msgData.angular.y = twistExu[4] + msgData.angular.z = twistExu[5] + # write current time into message + self.exuTwistPublisher.publish(msgData) + + #**classFunction: method to be send system state data once per frame/control cycle in Exudyn PreStepUserFunction + #**input: + # mbs: mbs (exudyn.exudynCPP.MainSystem), multi-body simulation system from exudyn + # tExu: tExu (float), simulation time + # systemStateData: systemStateData (list), full Exudyn SystemState + #**author: Martin Sereinig + #**note: collects important exudyn system data and send it to ros-topic + def PublishSystemStateUpdate(self, mbs, tExu): + if tExu - self.lastSystemStateUpdateTime >= self.systemStateUpdateInterval: + self.lastSystemStateUpdateTime = tExu + + systemStateList1d = [] + # publish system state to ros-topic + systemStateData = mbs.systemData.GetSystemState() + + # first entry is current time + systemStateList1d.append(tExu) + + # then systemData itself follows + for array in systemStateData: + # add length of next array + systemStateList1d.append(float(len(array))) + # add array itself + for i in range(len(array)): + systemStateList1d.append(array[i]) + + msg = Float64MultiArray() + msg.data = systemStateList1d # dataList + self.exuSystemstatePublisher.publish(msg) + + diff --git a/main/pythonDev/exudyn/signalProcessing.py b/main/pythonDev/exudyn/signalProcessing.py index 21571ff0..81016ac1 100644 --- a/main/pythonDev/exudyn/signalProcessing.py +++ b/main/pythonDev/exudyn/signalProcessing.py @@ -217,11 +217,11 @@ def GetInterpolatedSignalValue(time, dataArray, timeArray=[], dataArrayIndex = - tB = tA+dt #check if time index is correct: if timeArrayIndex == -1: #1D array - if abs(tA-timeArray[index]) > tolerance or abs(tB-timeArray[index+1]) > tolerance : + if abs(tA-timeArrayNew[index]) > tolerance or abs(tB-timeArrayNew[index+1]) > tolerance : print('Warning: GetInterpolatedSignalValue: timeArray does not seem to have constant sampling rate; use larger tolerance or numpy.interp(...) instead') else: #2D array - if (abs(tA-timeArray[index,timeArrayIndex]) > tolerance or - abs(tB-timeArray[index+1,timeArrayIndex]) > tolerance): + if (abs(tA-timeArrayNew[index,timeArrayIndex]) > tolerance or + abs(tB-timeArrayNew[index+1,timeArrayIndex]) > tolerance): print('Warning: GetInterpolatedSignalValue: timeArray does not seem to have constant sampling rate; use larger tolerance or numpy.interp(...) instead') diff --git a/main/pythonDev/exudyn/solver.py b/main/pythonDev/exudyn/solver.py index b9e6bfb8..5db946bc 100644 --- a/main/pythonDev/exudyn/solver.py +++ b/main/pythonDev/exudyn/solver.py @@ -346,8 +346,8 @@ def RestoreSimulationSettings(simulationSettings, store): # SC = exu.SystemContainer() # mbs = SC.AddSystem() # # -# b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], -# initialVelocities = [2*0,5,0], +# b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], +# initialVelocity = [2*0,5,0], # physicsMass = 1, gravity = [0,-9.81,0], # drawSize = 0.5, color=color4blue) # # @@ -421,8 +421,8 @@ def ComputeLinearizedSystem(mbs, # SC = exu.SystemContainer() # mbs = SC.AddSystem() # # -# b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], -# initialVelocities = [2*0,5,0], +# b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], +# initialVelocity = [2*0,5,0], # physicsMass = 1, gravity = [0,-9.81,0], # drawSize = 0.5, color=color4blue) # # diff --git a/main/setup.py b/main/setup.py index 1e3e82d6..3cd0a6ad 100644 --- a/main/setup.py +++ b/main/setup.py @@ -15,8 +15,8 @@ try: #create single __init__.pyi file from subfiles - oldDir = os.getcwd() - os.chdir(oldDir+'\src\pythonGenerator') + oldDir = os.getcwd().replace('\\','/') + os.chdir(oldDir+'/src/pythonGenerator') fileCS='createStubFiles.py' exec(open(fileCS).read(), globals()) #must be executed in pythonGenerator dir os.chdir(oldDir) @@ -24,8 +24,8 @@ print('WARNING: stub files could not be merged!') #raise ValueError('') -#os.environ["CC"] = "gcc-8" #use gcc-8.4 on linux; does not work on windows -#os.environ["CXX"] = "gcc-8" +#os.environ["CC"] = "gcc-9" #for linux to choose compiler +#os.environ["CXX"] = "gcc-9" startTime = time.time() #print('setup.py: START time:', startTime) @@ -550,7 +550,7 @@ class BuildExt(build_ext): l_opts['unix'] += darwin_opts else: l_opts['unix'] += [ - '-lgomp', #for openmp ==> needed for omp_get_num_threads() + #'-lgomp', #for openmp; not needed any more, as omp_get_num_threads() has been replaced '-lstdc++fs', #for autocreate directories, using std::filesystem from c++17 std ] #warnings not available in clang: @@ -795,6 +795,7 @@ def _single_compile(obj): "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", #"Operating System :: Microsoft :: Windows :: Windows 10", diff --git a/main/src/Autogenerated/BeamSectionGeometry.h b/main/src/Autogenerated/BeamSectionGeometry.h index 23a74f97..f6e9b27c 100644 --- a/main/src/Autogenerated/BeamSectionGeometry.h +++ b/main/src/Autogenerated/BeamSectionGeometry.h @@ -4,7 +4,7 @@ * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: diff --git a/main/src/Autogenerated/CObjectConnectorReevingSystemSprings.h b/main/src/Autogenerated/CObjectConnectorReevingSystemSprings.h index ec79a836..d6fc6f9b 100644 --- a/main/src/Autogenerated/CObjectConnectorReevingSystemSprings.h +++ b/main/src/Autogenerated/CObjectConnectorReevingSystemSprings.h @@ -4,7 +4,7 @@ * * @author Gerstmayr Johannes * @date 2019-07-01 (generated) -* @date 2022-12-01 20:24:37 (last modified) +* @date 2023-07-12 16:03:38 (last modified) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -35,6 +35,7 @@ class CObjectConnectorReevingSystemSpringsParameters // AUTO: Real dampingPerLength; //!< AUTO: axial damping per length [SI:N/(m/s)/m] of rope; the effective damping coefficient of the reeving system is computed as \f$DA/L\f$ in which \f$L\f$ is the current length of the rope Real dampingTorsional; //!< AUTO: torsional damping [SI:Nms] between sheaves; this effect can damp rotations around the rope axis, pairwise between sheaves; this parameter is experimental Real dampingShear; //!< AUTO: damping of shear motion [SI:Ns] between sheaves; this effect can damp motion perpendicular to the rope between each pair of sheaves; this parameter is experimental + Real regularizationForce; //!< AUTO: small regularization force [SI:N] in order to avoid large compressive forces; this regularization force can either be \f$<0\f$ (using a linear tension/compression spring model) or \f$>0\f$, which restricts forces in the rope to be always \f$\ge -F_{reg}\f$. Note that smaller forces lead to problems in implicit integrators and smaller time steps. For explicit integrators, this force can be chosen close to zero. Real referenceLength; //!< AUTO: reference length for computation of roped force Vector3DList sheavesAxes; //!< AUTO: list of local vectors axes of sheaves; vectors refer to rigid body markers given in list of markerNumbers; first and last axes are ignored, as they represent the attachment of the rope ends Vector sheavesRadii; //!< AUTO: radius for each sheave, related to list of markerNumbers and list of sheaveAxes; first and last radii must always be zero. @@ -49,6 +50,7 @@ class CObjectConnectorReevingSystemSpringsParameters // AUTO: dampingPerLength = 0.; dampingTorsional = 0.; dampingShear = 0.; + regularizationForce = 0.1; referenceLength = 0.; sheavesAxes = Vector3DList(); sheavesRadii = Vector(); @@ -59,7 +61,7 @@ class CObjectConnectorReevingSystemSpringsParameters // AUTO: /** *********************************************************************************************** * @class CObjectConnectorReevingSystemSprings -* @brief A rD reeving system defined by a list of torque-free and friction-free sheaves or points that are connected with one rope (modelled as massless spring). The force is assumed to be constant all over the rope. The sheaves or connection points are defined by \f$nr\f$ rigid body markers \f$[m_0, \, m_1, \, \ldots, \, m_{nr-1}]\f$. At both ends of the rope there may be a prescribed motion coupled to a coordinate marker each, given by \f$m_{c0}\f$ and \f$m_{c1}\f$ . +* @brief A rD reeving system defined by a list of torque-free and friction-free sheaves or points that are connected with one rope (modelled as massless spring). NOTE that the spring can undergo tension AND compression (in order to avoid compression, use a PreStepUserFunction to turn off stiffness and damping in this case!). The force is assumed to be constant all over the rope. The sheaves or connection points are defined by \f$nr\f$ rigid body markers \f$[m_0, \, m_1, \, \ldots, \, m_{nr-1}]\f$. At both ends of the rope there may be a prescribed motion coupled to a coordinate marker each, given by \f$m_{c0}\f$ and \f$m_{c1}\f$ . * * @author Gerstmayr Johannes * @date 2019-07-01 (generated) diff --git a/main/src/Autogenerated/CSolverStructures.h b/main/src/Autogenerated/CSolverStructures.h index eefbda65..71ef3213 100644 --- a/main/src/Autogenerated/CSolverStructures.h +++ b/main/src/Autogenerated/CSolverStructures.h @@ -4,7 +4,7 @@ * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -139,7 +139,7 @@ class CSolverTimer // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -263,7 +263,7 @@ class SolverLocalData // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -377,7 +377,7 @@ class SolverIterationData // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -473,7 +473,7 @@ class SolverConvergenceData // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -585,7 +585,7 @@ class SolverOutputData // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: diff --git a/main/src/Autogenerated/DictionariesGetSet.h b/main/src/Autogenerated/DictionariesGetSet.h index ee699257..529d4c04 100644 --- a/main/src/Autogenerated/DictionariesGetSet.h +++ b/main/src/Autogenerated/DictionariesGetSet.h @@ -2,7 +2,7 @@ // AUTO: Helper file for dictionaries get/set for system structures; generated by Johannes Gerstmayr // AUTO: Generated by Johannes Gerstmayr // AUTO: Used for SimulationSettings and VisualizationSettings -// AUTO: last modified = 2023-06-12 +// AUTO: last modified = 2023-07-17 // AUTO: ++++++++++++++++++++++ #ifndef DICTIONARIESGETSET__H @@ -1074,7 +1074,7 @@ d = py::dict(); //reset local dict d["itemIdentifier"] = std::string(""); //identifier for item d["value"] = data.PyGetPivotThreshold(); - d["type"] = "PReal"; + d["type"] = "UReal"; d["size"] = std::vector{1}; d["description"] = "[ONLY available for EXUdense and EigenDense (FullPivot) solver] threshold for dense linear solver, can be used to detect close to singular solutions, setting this to, e.g., 1e-12; solver then reports on equations that are causing close to singularity"; structureDict["pivotThreshold"] = d; @@ -2190,9 +2190,172 @@ data.showNumbers = py::cast(d["showNumbers"]); } //! AUTO: read access to structure; converting into dictionary + py::dict GetDictionaryWithTypeInfo(const VSettingsSensorTraces& data) { + auto structureDict = py::dict(); + auto d = py::dict(); //local dict + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.PyGetLineWidth(); + d["type"] = "UFloat"; + d["size"] = std::vector{1}; + d["description"] = "line width for traces"; + structureDict["lineWidth"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.PyGetListOfPositionSensors(); + d["type"] = "IndexArray"; + d["size"] = std::vector{-1}; + d["description"] = "list of position sensors which can be shown as trace inside render window if sensors have storeInternal=True; if this list is empty and showPositionTrace=True, then all available sensors are shown"; + structureDict["listOfPositionSensors"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.PyGetListOfTriadSensors(); + d["type"] = "IndexArray"; + d["size"] = std::vector{-1}; + d["description"] = "list of sensors of with OutputVariableType RotationMatrix; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showTriads=True; the triad is drawn at the related position"; + structureDict["listOfTriadSensors"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.PyGetListOfVectorSensors(); + d["type"] = "IndexArray"; + d["size"] = std::vector{-1}; + d["description"] = "list of sensors with 3D vector quantities; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showVectors=True; the vector quantity is drawn relative to the related position"; + structureDict["listOfVectorSensors"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.PyGetPositionsShowEvery(); + d["type"] = "PInt"; + d["size"] = std::vector{1}; + d["description"] = "integer value i; out of available sensor data, show every i-th position"; + structureDict["positionsShowEvery"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.sensorsMbsNumber; + d["type"] = "Index"; + d["size"] = std::vector{1}; + d["description"] = "number of main system which is used to for sensor lists; if only 1 mbs is in the SystemContainer, use 0; if there are several mbs, it needs to specify the number"; + structureDict["sensorsMbsNumber"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.showCurrent; + d["type"] = "bool"; + d["size"] = std::vector{1}; + d["description"] = "show current trace position (and especially vector quantity) related to current visualization state; this only works in solution viewer if sensor values are stored at time grid points of the solution file (up to a precision of 1e-10) and may therefore be temporarily unavailable"; + structureDict["showCurrent"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.showFuture; + d["type"] = "bool"; + d["size"] = std::vector{1}; + d["description"] = "show trace future to current visualization state if already computed (e.g. in SolutionViewer)"; + structureDict["showFuture"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.showPast; + d["type"] = "bool"; + d["size"] = std::vector{1}; + d["description"] = "show trace previous to current visualization state"; + structureDict["showPast"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.showPositionTrace; + d["type"] = "bool"; + d["size"] = std::vector{1}; + d["description"] = "show position trace of all position sensors if listOfPositionSensors=[] or of specified sensors; sensors need to activate storeInternal=True"; + structureDict["showPositionTrace"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.showTriads; + d["type"] = "bool"; + d["size"] = std::vector{1}; + d["description"] = "if True, show basis vectors from rotation matrices provided by sensors"; + structureDict["showTriads"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.showVectors; + d["type"] = "bool"; + d["size"] = std::vector{1}; + d["description"] = "if True, show vector quantities according to description in showPositionTrace"; + structureDict["showVectors"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.PyGetTraceColors(); + d["type"] = "VectorFloat"; + d["size"] = std::vector{-1}; + d["description"] = "RGBA float values for traces in one array; using 6x4 values gives different colors for 6 traces; in case of triads, the 0/1/2-axes are drawn in red, green, and blue"; + structureDict["traceColors"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.triadSize; + d["type"] = "float"; + d["size"] = std::vector{1}; + d["description"] = "length of triad axes if shown"; + structureDict["triadSize"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.PyGetTriadsShowEvery(); + d["type"] = "PInt"; + d["size"] = std::vector{1}; + d["description"] = "integer value i; out of available sensor data, show every i-th triad"; + structureDict["triadsShowEvery"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.vectorScaling; + d["type"] = "float"; + d["size"] = std::vector{1}; + d["description"] = "scaling of vector quantities; if, e.g., loads, this factor has to be adjusted significantly"; + structureDict["vectorScaling"] = d; + + d = py::dict(); //reset local dict + d["itemIdentifier"] = std::string(""); //identifier for item + d["value"] = data.PyGetVectorsShowEvery(); + d["type"] = "PInt"; + d["size"] = std::vector{1}; + d["description"] = "integer value i; out of available sensor data, show every i-th vector"; + structureDict["vectorsShowEvery"] = d; + + return structureDict; + } + //! AUTO: write access to data structure; converting dictionary d into structure + void SetDictionary(VSettingsSensorTraces& data, const py::dict& d) { + data.lineWidth = py::cast(d["lineWidth"]); + data.listOfPositionSensors = py::cast>(d["listOfPositionSensors"]); + data.listOfTriadSensors = py::cast>(d["listOfTriadSensors"]); + data.listOfVectorSensors = py::cast>(d["listOfVectorSensors"]); + data.positionsShowEvery = py::cast(d["positionsShowEvery"]); + data.sensorsMbsNumber = py::cast(d["sensorsMbsNumber"]); + data.showCurrent = py::cast(d["showCurrent"]); + data.showFuture = py::cast(d["showFuture"]); + data.showPast = py::cast(d["showPast"]); + data.showPositionTrace = py::cast(d["showPositionTrace"]); + data.showTriads = py::cast(d["showTriads"]); + data.showVectors = py::cast(d["showVectors"]); + data.traceColors = py::cast>(d["traceColors"]); + data.triadSize = py::cast(d["triadSize"]); + data.triadsShowEvery = py::cast(d["triadsShowEvery"]); + data.vectorScaling = py::cast(d["vectorScaling"]); + data.vectorsShowEvery = py::cast(d["vectorsShowEvery"]); + } + //! AUTO: read access to structure; converting into dictionary py::dict GetDictionaryWithTypeInfo(const VSettingsSensors& data) { auto structureDict = py::dict(); auto d = py::dict(); //local dict + structureDict["traces"] = GetDictionaryWithTypeInfo(data.traces); d = py::dict(); //reset local dict d["itemIdentifier"] = std::string(""); //identifier for item d["value"] = data.PyGetDefaultColor(); @@ -2237,6 +2400,7 @@ } //! AUTO: write access to data structure; converting dictionary d into structure void SetDictionary(VSettingsSensors& data, const py::dict& d) { + SetDictionary(data.traces, py::cast(d["traces"])); data.defaultColor = py::cast>(d["defaultColor"]); data.defaultSize = py::cast(d["defaultSize"]); data.drawSimplified = py::cast(d["drawSimplified"]); diff --git a/main/src/Autogenerated/MainObjectConnectorReevingSystemSprings.h b/main/src/Autogenerated/MainObjectConnectorReevingSystemSprings.h index c4a2e9cd..dd68ca2d 100644 --- a/main/src/Autogenerated/MainObjectConnectorReevingSystemSprings.h +++ b/main/src/Autogenerated/MainObjectConnectorReevingSystemSprings.h @@ -4,7 +4,7 @@ * * @author Gerstmayr Johannes * @date 2019-07-01 (generated) -* @date 2022-12-01 20:06:47 (last modified) +* @date 2023-07-12 16:00:01 (last modified) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -38,7 +38,7 @@ class MainObjectConnectorReevingSystemSpringsParameters // AUTO: /** *********************************************************************************************** * @class MainObjectConnectorReevingSystemSprings -* @brief A rD reeving system defined by a list of torque-free and friction-free sheaves or points that are connected with one rope (modelled as massless spring). The force is assumed to be constant all over the rope. The sheaves or connection points are defined by \f$nr\f$ rigid body markers \f$[m_0, \, m_1, \, \ldots, \, m_{nr-1}]\f$. At both ends of the rope there may be a prescribed motion coupled to a coordinate marker each, given by \f$m_{c0}\f$ and \f$m_{c1}\f$ . +* @brief A rD reeving system defined by a list of torque-free and friction-free sheaves or points that are connected with one rope (modelled as massless spring). NOTE that the spring can undergo tension AND compression (in order to avoid compression, use a PreStepUserFunction to turn off stiffness and damping in this case!). The force is assumed to be constant all over the rope. The sheaves or connection points are defined by \f$nr\f$ rigid body markers \f$[m_0, \, m_1, \, \ldots, \, m_{nr-1}]\f$. At both ends of the rope there may be a prescribed motion coupled to a coordinate marker each, given by \f$m_{c0}\f$ and \f$m_{c1}\f$ . * * @author Gerstmayr Johannes * @date 2019-07-01 (generated) @@ -115,6 +115,7 @@ class MainObjectConnectorReevingSystemSprings: public MainObjectConnector // AUT if (EPyUtils::DictItemExists(d, "dampingPerLength")) { cObjectConnectorReevingSystemSprings->GetParameters().dampingPerLength = py::cast(d["dampingPerLength"]); /* AUTO: read out dictionary and cast to C++ type*/} if (EPyUtils::DictItemExists(d, "dampingTorsional")) { cObjectConnectorReevingSystemSprings->GetParameters().dampingTorsional = py::cast(d["dampingTorsional"]); /* AUTO: read out dictionary and cast to C++ type*/} if (EPyUtils::DictItemExists(d, "dampingShear")) { cObjectConnectorReevingSystemSprings->GetParameters().dampingShear = py::cast(d["dampingShear"]); /* AUTO: read out dictionary and cast to C++ type*/} + if (EPyUtils::DictItemExists(d, "regularizationForce")) { cObjectConnectorReevingSystemSprings->GetParameters().regularizationForce = py::cast(d["regularizationForce"]); /* AUTO: read out dictionary and cast to C++ type*/} if (EPyUtils::DictItemExists(d, "referenceLength")) { cObjectConnectorReevingSystemSprings->GetParameters().referenceLength = py::cast(d["referenceLength"]); /* AUTO: read out dictionary and cast to C++ type*/} EPyUtils::SetVector3DListSafely(d, "sheavesAxes", cObjectConnectorReevingSystemSprings->GetParameters().sheavesAxes); /*! AUTO: safely cast to C++ type*/ cObjectConnectorReevingSystemSprings->GetParameters().sheavesRadii = py::cast>(d["sheavesRadii"]); /* AUTO: read out dictionary and cast to C++ type*/ @@ -138,6 +139,7 @@ class MainObjectConnectorReevingSystemSprings: public MainObjectConnector // AUT d["dampingPerLength"] = (Real)cObjectConnectorReevingSystemSprings->GetParameters().dampingPerLength; //! AUTO: cast variables into python (not needed for standard types) d["dampingTorsional"] = (Real)cObjectConnectorReevingSystemSprings->GetParameters().dampingTorsional; //! AUTO: cast variables into python (not needed for standard types) d["dampingShear"] = (Real)cObjectConnectorReevingSystemSprings->GetParameters().dampingShear; //! AUTO: cast variables into python (not needed for standard types) + d["regularizationForce"] = (Real)cObjectConnectorReevingSystemSprings->GetParameters().regularizationForce; //! AUTO: cast variables into python (not needed for standard types) d["referenceLength"] = (Real)cObjectConnectorReevingSystemSprings->GetParameters().referenceLength; //! AUTO: cast variables into python (not needed for standard types) d["sheavesAxes"] = (PyVector3DList)cObjectConnectorReevingSystemSprings->GetParameters().sheavesAxes; //! AUTO: cast variables into python (not needed for standard types) d["sheavesRadii"] = EPyUtils::Vector2NumPy(cObjectConnectorReevingSystemSprings->GetParameters().sheavesRadii); //! AUTO: cast variables into python (not needed for standard types) @@ -160,6 +162,7 @@ class MainObjectConnectorReevingSystemSprings: public MainObjectConnector // AUT else if (parameterName.compare("dampingPerLength") == 0) { return py::cast((Real)cObjectConnectorReevingSystemSprings->GetParameters().dampingPerLength);} //! AUTO: get parameter else if (parameterName.compare("dampingTorsional") == 0) { return py::cast((Real)cObjectConnectorReevingSystemSprings->GetParameters().dampingTorsional);} //! AUTO: get parameter else if (parameterName.compare("dampingShear") == 0) { return py::cast((Real)cObjectConnectorReevingSystemSprings->GetParameters().dampingShear);} //! AUTO: get parameter + else if (parameterName.compare("regularizationForce") == 0) { return py::cast((Real)cObjectConnectorReevingSystemSprings->GetParameters().regularizationForce);} //! AUTO: get parameter else if (parameterName.compare("referenceLength") == 0) { return py::cast((Real)cObjectConnectorReevingSystemSprings->GetParameters().referenceLength);} //! AUTO: get parameter else if (parameterName.compare("sheavesAxes") == 0) { return py::cast((PyVector3DList)cObjectConnectorReevingSystemSprings->GetParameters().sheavesAxes);} //! AUTO: get parameter else if (parameterName.compare("sheavesRadii") == 0) { return EPyUtils::Vector2NumPy(cObjectConnectorReevingSystemSprings->GetParameters().sheavesRadii);} //! AUTO: get parameter @@ -183,6 +186,7 @@ class MainObjectConnectorReevingSystemSprings: public MainObjectConnector // AUT else if (parameterName.compare("dampingPerLength") == 0) { cObjectConnectorReevingSystemSprings->GetParameters().dampingPerLength = py::cast(value); /* AUTO: read out dictionary and cast to C++ type*/; } //! AUTO: get parameter else if (parameterName.compare("dampingTorsional") == 0) { cObjectConnectorReevingSystemSprings->GetParameters().dampingTorsional = py::cast(value); /* AUTO: read out dictionary and cast to C++ type*/; } //! AUTO: get parameter else if (parameterName.compare("dampingShear") == 0) { cObjectConnectorReevingSystemSprings->GetParameters().dampingShear = py::cast(value); /* AUTO: read out dictionary and cast to C++ type*/; } //! AUTO: get parameter + else if (parameterName.compare("regularizationForce") == 0) { cObjectConnectorReevingSystemSprings->GetParameters().regularizationForce = py::cast(value); /* AUTO: read out dictionary and cast to C++ type*/; } //! AUTO: get parameter else if (parameterName.compare("referenceLength") == 0) { cObjectConnectorReevingSystemSprings->GetParameters().referenceLength = py::cast(value); /* AUTO: read out dictionary and cast to C++ type*/; } //! AUTO: get parameter else if (parameterName.compare("sheavesAxes") == 0) { EPyUtils::SetVector3DListSafely(value, cObjectConnectorReevingSystemSprings->GetParameters().sheavesAxes); /*! AUTO: safely cast to C++ type*/; } //! AUTO: get parameter else if (parameterName.compare("sheavesRadii") == 0) { cObjectConnectorReevingSystemSprings->GetParameters().sheavesRadii = py::cast>(value); /* AUTO: read out dictionary and cast to C++ type*/; } //! AUTO: get parameter diff --git a/main/src/Autogenerated/MainSolver.h b/main/src/Autogenerated/MainSolver.h index 8a982dc0..ea13d64e 100644 --- a/main/src/Autogenerated/MainSolver.h +++ b/main/src/Autogenerated/MainSolver.h @@ -6,7 +6,7 @@ and hereafter you can access all data and functions via 'solver'. * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -91,7 +91,7 @@ and hereafter you can access all data and functions via 'solver'. * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -260,7 +260,7 @@ and hereafter you can access all data and functions via 'solver'. * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: diff --git a/main/src/Autogenerated/PyStructuralElementsDataStructures.h b/main/src/Autogenerated/PyStructuralElementsDataStructures.h index 96d69d0b..3b9774ed 100644 --- a/main/src/Autogenerated/PyStructuralElementsDataStructures.h +++ b/main/src/Autogenerated/PyStructuralElementsDataStructures.h @@ -4,7 +4,7 @@ * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: diff --git a/main/src/Autogenerated/Pybind_modules.h b/main/src/Autogenerated/Pybind_modules.h index d264327d..5673fe1e 100644 --- a/main/src/Autogenerated/Pybind_modules.h +++ b/main/src/Autogenerated/Pybind_modules.h @@ -1,6 +1,6 @@ // AUTO: ++++++++++++++++++++++ // AUTO: pybind11 module includes; generated by Johannes Gerstmayr -// AUTO: last modified = 2023-06-12 +// AUTO: last modified = 2023-07-17 // AUTO: ++++++++++++++++++++++ //++++++++++++++++++++++++++++++++ @@ -418,10 +418,36 @@ .def("__repr__", [](const VSettingsLoads &item) { return ""; } ) //!< AUTO: add representation for object based on ostream operator ; // AUTO: end of class definition!!! + //++++++++++++++++++++++++++++++++ + //++++++++++++++++++++++++++++++++ + py::class_(m, "VSettingsSensorTraces", "VSettingsSensorTraces class") // AUTO: + .def(py::init<>()) + .def_property("lineWidth", &VSettingsSensorTraces::PyGetLineWidth, &VSettingsSensorTraces::PySetLineWidth) + .def_property("listOfPositionSensors", &VSettingsSensorTraces::PyGetListOfPositionSensors, &VSettingsSensorTraces::PySetListOfPositionSensors) + .def_property("listOfTriadSensors", &VSettingsSensorTraces::PyGetListOfTriadSensors, &VSettingsSensorTraces::PySetListOfTriadSensors) + .def_property("listOfVectorSensors", &VSettingsSensorTraces::PyGetListOfVectorSensors, &VSettingsSensorTraces::PySetListOfVectorSensors) + .def_property("positionsShowEvery", &VSettingsSensorTraces::PyGetPositionsShowEvery, &VSettingsSensorTraces::PySetPositionsShowEvery) + .def_readwrite("sensorsMbsNumber", &VSettingsSensorTraces::sensorsMbsNumber, "number of main system which is used to for sensor lists; if only 1 mbs is in the SystemContainer, use 0; if there are several mbs, it needs to specify the number") + .def_readwrite("showCurrent", &VSettingsSensorTraces::showCurrent, "show current trace position (and especially vector quantity) related to current visualization state; this only works in solution viewer if sensor values are stored at time grid points of the solution file (up to a precision of 1e-10) and may therefore be temporarily unavailable") + .def_readwrite("showFuture", &VSettingsSensorTraces::showFuture, "show trace future to current visualization state if already computed (e.g. in SolutionViewer)") + .def_readwrite("showPast", &VSettingsSensorTraces::showPast, "show trace previous to current visualization state") + .def_readwrite("showPositionTrace", &VSettingsSensorTraces::showPositionTrace, "show position trace of all position sensors if listOfPositionSensors=[] or of specified sensors; sensors need to activate storeInternal=True") + .def_readwrite("showTriads", &VSettingsSensorTraces::showTriads, "if True, show basis vectors from rotation matrices provided by sensors") + .def_readwrite("showVectors", &VSettingsSensorTraces::showVectors, "if True, show vector quantities according to description in showPositionTrace") + .def_property("traceColors", &VSettingsSensorTraces::PyGetTraceColors, &VSettingsSensorTraces::PySetTraceColors) + .def_readwrite("triadSize", &VSettingsSensorTraces::triadSize, "length of triad axes if shown") + .def_property("triadsShowEvery", &VSettingsSensorTraces::PyGetTriadsShowEvery, &VSettingsSensorTraces::PySetTriadsShowEvery) + .def_readwrite("vectorScaling", &VSettingsSensorTraces::vectorScaling, "scaling of vector quantities; if, e.g., loads, this factor has to be adjusted significantly") + .def_property("vectorsShowEvery", &VSettingsSensorTraces::PyGetVectorsShowEvery, &VSettingsSensorTraces::PySetVectorsShowEvery) + // AUTO: access functions for VSettingsSensorTraces + .def("__repr__", [](const VSettingsSensorTraces &item) { return ""; } ) //!< AUTO: add representation for object based on ostream operator + ; // AUTO: end of class definition!!! + //++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++ py::class_(m, "VSettingsSensors", "VSettingsSensors class") // AUTO: .def(py::init<>()) + .def_readwrite("traces", &VSettingsSensors::traces, "settings for showing (position) sensor traces and vector plots in the render window") .def_property("defaultColor", &VSettingsSensors::PyGetDefaultColor, &VSettingsSensors::PySetDefaultColor) .def_readwrite("defaultSize", &VSettingsSensors::defaultSize, "global sensor size; if -1.f, sensor size is relative to maxSceneSize") .def_readwrite("drawSimplified", &VSettingsSensors::drawSimplified, "draw sensors with simplified symbols") diff --git a/main/src/Autogenerated/SimulationSettings.h b/main/src/Autogenerated/SimulationSettings.h index 1f7658b3..429f225c 100644 --- a/main/src/Autogenerated/SimulationSettings.h +++ b/main/src/Autogenerated/SimulationSettings.h @@ -4,7 +4,7 @@ * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -162,7 +162,7 @@ class SolutionSettings // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -245,7 +245,7 @@ class NumericalDifferentiationSettings // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -313,7 +313,7 @@ class DiscontinuousSettings // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -443,7 +443,7 @@ class NewtonSettings // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -531,7 +531,7 @@ class GeneralizedAlphaSettings // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -595,7 +595,7 @@ class ExplicitIntegrationSettings // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -816,7 +816,7 @@ class TimeIntegrationSettings // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -985,7 +985,7 @@ class StaticSolverSettings // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -1021,7 +1021,7 @@ class LinearSolverSettings // AUTO: // AUTO: access functions //! AUTO: Set function (needed in pybind) for: [ONLY available for EXUdense and EigenDense (FullPivot) solver] threshold for dense linear solver, can be used to detect close to singular solutions, setting this to, e.g., 1e-12; solver then reports on equations that are causing close to singularity - void PySetPivotThreshold(const Real& pivotThresholdInit) { pivotThreshold = EXUstd::GetSafelyPReal(pivotThresholdInit,"pivotThreshold"); } + void PySetPivotThreshold(const Real& pivotThresholdInit) { pivotThreshold = EXUstd::GetSafelyUReal(pivotThresholdInit,"pivotThreshold"); } //! AUTO: Read (Copy) access to: [ONLY available for EXUdense and EigenDense (FullPivot) solver] threshold for dense linear solver, can be used to detect close to singular solutions, setting this to, e.g., 1e-12; solver then reports on equations that are causing close to singularity Real PyGetPivotThreshold() const { return Real(pivotThreshold); } @@ -1051,7 +1051,7 @@ class LinearSolverSettings // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -1156,7 +1156,7 @@ class Parallel // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: diff --git a/main/src/Autogenerated/VisualizationSettings.h b/main/src/Autogenerated/VisualizationSettings.h index 6b7b1c02..0fef0acf 100644 --- a/main/src/Autogenerated/VisualizationSettings.h +++ b/main/src/Autogenerated/VisualizationSettings.h @@ -4,7 +4,7 @@ * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -207,7 +207,7 @@ class VSettingsGeneral // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -299,7 +299,7 @@ class VSettingsContour // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -390,7 +390,7 @@ class VSettingsNodes // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -484,7 +484,7 @@ class VSettingsBeams // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -545,7 +545,7 @@ class VSettingsKinematicTree // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -623,7 +623,7 @@ class VSettingsBodies // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -712,7 +712,7 @@ class VSettingsConnectors // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -781,7 +781,7 @@ class VSettingsMarkers // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -853,13 +853,153 @@ class VSettingsLoads // AUTO: }; +/** *********************************************************************************************** +* @class VSettingsSensorTraces +* @brief Visualization settings for traces of sensors. Note that a large number of time points (influenced by simulationSettings.solutionSettings.sensorsWritePeriod) may lead to slow graphics. +* +* @author AUTO: Gerstmayr Johannes +* @date AUTO: 2019-07-01 (generated) +* @date AUTO: 2023-07-17 (last modfied) +* +* @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. +* @note Bug reports, support and further information: + - email: johannes.gerstmayr@uibk.ac.at + - weblink: missing + +************************************************************************************************ **/ +#include + +#include "Utilities/ReleaseAssert.h" +#include "Utilities/BasicDefinitions.h" +#include "Main/OutputVariable.h" +#include "Linalg/BasicLinalg.h" + +class VSettingsSensorTraces // AUTO: +{ +public: // AUTO: + float lineWidth; //!< AUTO: line width for traces + ArrayIndex listOfPositionSensors; //!< AUTO: list of position sensors which can be shown as trace inside render window if sensors have storeInternal=True; if this list is empty and showPositionTrace=True, then all available sensors are shown + ArrayIndex listOfTriadSensors; //!< AUTO: list of sensors of with OutputVariableType RotationMatrix; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showTriads=True; the triad is drawn at the related position + ArrayIndex listOfVectorSensors; //!< AUTO: list of sensors with 3D vector quantities; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showVectors=True; the vector quantity is drawn relative to the related position + Index positionsShowEvery; //!< AUTO: integer value i; out of available sensor data, show every i-th position + Index sensorsMbsNumber; //!< AUTO: number of main system which is used to for sensor lists; if only 1 mbs is in the SystemContainer, use 0; if there are several mbs, it needs to specify the number + bool showCurrent; //!< AUTO: show current trace position (and especially vector quantity) related to current visualization state; this only works in solution viewer if sensor values are stored at time grid points of the solution file (up to a precision of 1e-10) and may therefore be temporarily unavailable + bool showFuture; //!< AUTO: show trace future to current visualization state if already computed (e.g. in SolutionViewer) + bool showPast; //!< AUTO: show trace previous to current visualization state + bool showPositionTrace; //!< AUTO: show position trace of all position sensors if listOfPositionSensors=[] or of specified sensors; sensors need to activate storeInternal=True + bool showTriads; //!< AUTO: if True, show basis vectors from rotation matrices provided by sensors + bool showVectors; //!< AUTO: if True, show vector quantities according to description in showPositionTrace + ArrayFloat traceColors; //!< AUTO: RGBA float values for traces in one array; using 6x4 values gives different colors for 6 traces; in case of triads, the 0/1/2-axes are drawn in red, green, and blue + float triadSize; //!< AUTO: length of triad axes if shown + Index triadsShowEvery; //!< AUTO: integer value i; out of available sensor data, show every i-th triad + float vectorScaling; //!< AUTO: scaling of vector quantities; if, e.g., loads, this factor has to be adjusted significantly + Index vectorsShowEvery; //!< AUTO: integer value i; out of available sensor data, show every i-th vector + + +public: // AUTO: + //! AUTO: default constructor with parameter initialization + VSettingsSensorTraces() + { + lineWidth = 2.f; + listOfPositionSensors = ArrayIndex(); + listOfTriadSensors = ArrayIndex(); + listOfVectorSensors = ArrayIndex(); + positionsShowEvery = 1; + sensorsMbsNumber = 0; + showCurrent = true; + showFuture = false; + showPast = true; + showPositionTrace = false; + showTriads = false; + showVectors = false; + traceColors = ArrayFloat({0.2f,0.2f,0.2f,1.f, 0.8f,0.2f,0.2f,1.f, 0.2f,0.8f,0.2f,1.f, 0.2f,0.2f,0.8f,1.f, 0.2f,0.8f,0.8f,1.f, 0.8f,0.2f,0.8f,1.f, 0.8f,0.4f,0.1f,1.f}); + triadSize = 0.1f ; + triadsShowEvery = 1; + vectorScaling = 0.01f; + vectorsShowEvery = 1; + }; + + // AUTO: access functions + //! AUTO: Set function (needed in pybind) for: line width for traces + void PySetLineWidth(const float& lineWidthInit) { lineWidth = EXUstd::GetSafelyUFloat(lineWidthInit,"lineWidth"); } + //! AUTO: Read (Copy) access to: line width for traces + float PyGetLineWidth() const { return float(lineWidth); } + + //! AUTO: Set function (needed in pybind) for: list of position sensors which can be shown as trace inside render window if sensors have storeInternal=True; if this list is empty and showPositionTrace=True, then all available sensors are shown + void PySetListOfPositionSensors(const std::vector& listOfPositionSensorsInit) { listOfPositionSensors = listOfPositionSensorsInit; } + //! AUTO: Read (Copy) access to: list of position sensors which can be shown as trace inside render window if sensors have storeInternal=True; if this list is empty and showPositionTrace=True, then all available sensors are shown + std::vector PyGetListOfPositionSensors() const { return std::vector(listOfPositionSensors); } + + //! AUTO: Set function (needed in pybind) for: list of sensors of with OutputVariableType RotationMatrix; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showTriads=True; the triad is drawn at the related position + void PySetListOfTriadSensors(const std::vector& listOfTriadSensorsInit) { listOfTriadSensors = listOfTriadSensorsInit; } + //! AUTO: Read (Copy) access to: list of sensors of with OutputVariableType RotationMatrix; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showTriads=True; the triad is drawn at the related position + std::vector PyGetListOfTriadSensors() const { return std::vector(listOfTriadSensors); } + + //! AUTO: Set function (needed in pybind) for: list of sensors with 3D vector quantities; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showVectors=True; the vector quantity is drawn relative to the related position + void PySetListOfVectorSensors(const std::vector& listOfVectorSensorsInit) { listOfVectorSensors = listOfVectorSensorsInit; } + //! AUTO: Read (Copy) access to: list of sensors with 3D vector quantities; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showVectors=True; the vector quantity is drawn relative to the related position + std::vector PyGetListOfVectorSensors() const { return std::vector(listOfVectorSensors); } + + //! AUTO: Set function (needed in pybind) for: integer value i; out of available sensor data, show every i-th position + void PySetPositionsShowEvery(const Index& positionsShowEveryInit) { positionsShowEvery = EXUstd::GetSafelyPInt(positionsShowEveryInit,"positionsShowEvery"); } + //! AUTO: Read (Copy) access to: integer value i; out of available sensor data, show every i-th position + Index PyGetPositionsShowEvery() const { return Index(positionsShowEvery); } + + //! AUTO: Set function (needed in pybind) for: RGBA float values for traces in one array; using 6x4 values gives different colors for 6 traces; in case of triads, the 0/1/2-axes are drawn in red, green, and blue + void PySetTraceColors(const std::vector& traceColorsInit) { traceColors = traceColorsInit; } + //! AUTO: Read (Copy) access to: RGBA float values for traces in one array; using 6x4 values gives different colors for 6 traces; in case of triads, the 0/1/2-axes are drawn in red, green, and blue + std::vector PyGetTraceColors() const { return std::vector(traceColors); } + + //! AUTO: Set function (needed in pybind) for: integer value i; out of available sensor data, show every i-th triad + void PySetTriadsShowEvery(const Index& triadsShowEveryInit) { triadsShowEvery = EXUstd::GetSafelyPInt(triadsShowEveryInit,"triadsShowEvery"); } + //! AUTO: Read (Copy) access to: integer value i; out of available sensor data, show every i-th triad + Index PyGetTriadsShowEvery() const { return Index(triadsShowEvery); } + + //! AUTO: Set function (needed in pybind) for: integer value i; out of available sensor data, show every i-th vector + void PySetVectorsShowEvery(const Index& vectorsShowEveryInit) { vectorsShowEvery = EXUstd::GetSafelyPInt(vectorsShowEveryInit,"vectorsShowEvery"); } + //! AUTO: Read (Copy) access to: integer value i; out of available sensor data, show every i-th vector + Index PyGetVectorsShowEvery() const { return Index(vectorsShowEvery); } + + //! AUTO: print function used in ostream operator (print is virtual and can thus be overloaded) + virtual void Print(std::ostream& os) const + { + os << "VSettingsSensorTraces" << ":\n"; + os << " lineWidth = " << lineWidth << "\n"; + os << " listOfPositionSensors = " << listOfPositionSensors << "\n"; + os << " listOfTriadSensors = " << listOfTriadSensors << "\n"; + os << " listOfVectorSensors = " << listOfVectorSensors << "\n"; + os << " positionsShowEvery = " << positionsShowEvery << "\n"; + os << " sensorsMbsNumber = " << sensorsMbsNumber << "\n"; + os << " showCurrent = " << showCurrent << "\n"; + os << " showFuture = " << showFuture << "\n"; + os << " showPast = " << showPast << "\n"; + os << " showPositionTrace = " << showPositionTrace << "\n"; + os << " showTriads = " << showTriads << "\n"; + os << " showVectors = " << showVectors << "\n"; + os << " traceColors = " << traceColors << "\n"; + os << " triadSize = " << triadSize << "\n"; + os << " triadsShowEvery = " << triadsShowEvery << "\n"; + os << " vectorScaling = " << vectorScaling << "\n"; + os << " vectorsShowEvery = " << vectorsShowEvery << "\n"; + os << "\n"; + } + + friend std::ostream& operator<<(std::ostream& os, const VSettingsSensorTraces& object) + { + object.Print(os); + return os; + } + +}; + + /** *********************************************************************************************** * @class VSettingsSensors * @brief Visualization settings for sensors. * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -877,6 +1017,7 @@ class VSettingsLoads // AUTO: class VSettingsSensors // AUTO: { public: // AUTO: + VSettingsSensorTraces traces; //!< AUTO: settings for showing (position) sensor traces and vector plots in the render window Float4 defaultColor; //!< AUTO: default cRGB color for sensors; 4th value is alpha-transparency float defaultSize; //!< AUTO: global sensor size; if -1.f, sensor size is relative to maxSceneSize bool drawSimplified; //!< AUTO: draw sensors with simplified symbols @@ -905,6 +1046,7 @@ class VSettingsSensors // AUTO: virtual void Print(std::ostream& os) const { os << "VSettingsSensors" << ":\n"; + os << " traces = " << traces << "\n"; os << " defaultColor = " << defaultColor << "\n"; os << " defaultSize = " << defaultSize << "\n"; os << " drawSimplified = " << drawSimplified << "\n"; @@ -928,7 +1070,7 @@ class VSettingsSensors // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -1014,7 +1156,7 @@ class VSettingsContact // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -1112,7 +1254,7 @@ class VSettingsWindow // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -1186,7 +1328,7 @@ class VSettingsDialogs // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -1458,7 +1600,7 @@ class VSettingsOpenGL // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -1560,7 +1702,7 @@ class VSettingsExportImages // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -1621,7 +1763,7 @@ class VSettingsOpenVR // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: @@ -1763,7 +1905,7 @@ class VSettingsInteractive // AUTO: * * @author AUTO: Gerstmayr Johannes * @date AUTO: 2019-07-01 (generated) -* @date AUTO: 2023-06-12 (last modfied) +* @date AUTO: 2023-07-17 (last modfied) * * @copyright This file is part of Exudyn. Exudyn is free software: you can redistribute it and/or modify it under the terms of the Exudyn license. See "LICENSE.txt" for more details. * @note Bug reports, support and further information: diff --git a/main/src/Autogenerated/pybind_manual_classes.h b/main/src/Autogenerated/pybind_manual_classes.h index e34ff384..3a4df5b4 100644 --- a/main/src/Autogenerated/pybind_manual_classes.h +++ b/main/src/Autogenerated/pybind_manual_classes.h @@ -1,6 +1,6 @@ // AUTO: ++++++++++++++++++++++ // AUTO: pybind11 manual module includes; generated by Johannes Gerstmayr -// AUTO: last modified = 2023-06-12 +// AUTO: last modified = 2023-07-19 // AUTO: ++++++++++++++++++++++ // pybinding to enum classes: @@ -363,6 +363,10 @@ item.PySetItem(index, vector); }, "set list item 'index' with data, write: data[index] = ...") .def("__getitem__", [](const PyVector3DList &item, Index index) { return py::array_t(item[index].NumberOfItems(), item[index].GetDataPointer()); }, "get copy of list item with 'index' as vector") + .def("__copy__", [](const PyVector3DList &item) { + return PyVector3DList(item); }, "copy method to be used for copy.copy(...); in fact does already deep copy") + .def("__deepcopy__", [](const PyVector3DList &item, py::dict) { + return PyVector3DList(item); }, "memo"_a, "deepcopy method to be used for copy.copy(...)") .def("__repr__", [](const PyVector3DList &item) { return EXUstd::ToString(item.GetPythonObject()); }, "return the string representation of the Vector3DList data, e.g.: print(data)") ; // end of PyVector3DList pybind definitions @@ -379,6 +383,10 @@ item.PySetItem(index, vector); }, "set list item 'index' with data, write: data[index] = ...") .def("__getitem__", [](const PyVector2DList &item, Index index) { return py::array_t(item[index].NumberOfItems(), item[index].GetDataPointer()); }, "get copy of list item with 'index' as vector") + .def("__copy__", [](const PyVector2DList &item) { + return PyVector2DList(item); }, "copy method to be used for copy.copy(...); in fact does already deep copy") + .def("__deepcopy__", [](const PyVector2DList &item, py::dict) { + return PyVector2DList(item); }, "memo"_a, "deepcopy method to be used for copy.copy(...)") .def("__repr__", [](const PyVector2DList &item) { return EXUstd::ToString(item.GetPythonObject()); }, "return the string representation of the Vector2DList data, e.g.: print(data)") ; // end of PyVector2DList pybind definitions @@ -395,6 +403,10 @@ item.PySetItem(index, vector); }, "set list item 'index' with data, write: data[index] = ...") .def("__getitem__", [](const PyVector6DList &item, Index index) { return py::array_t(item[index].NumberOfItems(), item[index].GetDataPointer()); }, "get copy of list item with 'index' as vector") + .def("__copy__", [](const PyVector6DList &item) { + return PyVector6DList(item); }, "copy method to be used for copy.copy(...); in fact does already deep copy") + .def("__deepcopy__", [](const PyVector6DList &item, py::dict) { + return PyVector6DList(item); }, "memo"_a, "deepcopy method to be used for copy.copy(...)") .def("__repr__", [](const PyVector6DList &item) { return EXUstd::ToString(item.GetPythonObject()); }, "return the string representation of the Vector6DList data, e.g.: print(data)") ; // end of PyVector6DList pybind definitions diff --git a/main/src/Autogenerated/versionCpp.cpp b/main/src/Autogenerated/versionCpp.cpp index bc089c7c..21ca4671 100644 --- a/main/src/Autogenerated/versionCpp.cpp +++ b/main/src/Autogenerated/versionCpp.cpp @@ -1,7 +1,7 @@ // AUTO: ++++++++++++++++++++++ // AUTO: version info automatically generated by tracker; generated by Johannes Gerstmayr -// AUTO: last modified = 2023-06-12 +// AUTO: last modified = 2023-07-19 // AUTO: ++++++++++++++++++++++ namespace EXUstd { - const char* exudynVersion = "1.6.164.dev1"; + const char* exudynVersion = "1.7.0"; } diff --git a/main/src/Graphics/GlfwClient.cpp b/main/src/Graphics/GlfwClient.cpp index f323c822..30d9d287 100644 --- a/main/src/Graphics/GlfwClient.cpp +++ b/main/src/Graphics/GlfwClient.cpp @@ -133,6 +133,11 @@ ResizableArray* GlfwRenderer::graphicsDataList = nullptr; VisualizationSettings* GlfwRenderer::visSettings = nullptr; VisualizationSystemContainerBase* GlfwRenderer::basicVisualizationSystemContainer = nullptr; //++++++++++++++++++++++++++++++++++++++++++ +Vector3DList GlfwRenderer::sensorTracePositions; +Vector3DList GlfwRenderer::sensorTraceVectors; //synchronized with triads +Matrix3DList GlfwRenderer::sensorTraceTriads; //synchronized with vectors +Vector GlfwRenderer::sensorTraceValues; //temporary storage for current sensor data +//++++++++++++++++++++++++++++++++++++++++++ GlfwRenderer::GlfwRenderer() @@ -1209,6 +1214,8 @@ void GlfwRenderer::SetViewOnMouseCursor(GLdouble x, GLdouble y, GLdouble delX, G //! function to evaluate selection of items, show message, return dictionary string bool GlfwRenderer::MouseSelect(GLFWwindow* window, Index mouseX, Index mouseY, Index& itemID) { + //if (verboseRenderer) { std::cout << "Mouse select" << std::flush; } + MouseSelectOpenGL(window, (Index)stateMachine.selectionMouseCoordinates[0], (Index)stateMachine.selectionMouseCoordinates[1], @@ -1217,6 +1224,8 @@ bool GlfwRenderer::MouseSelect(GLFWwindow* window, Index mouseX, Index mouseY, I const Real timeOutHighlightItem = 0.5; //just short to exactly see object ItemID2IndexType(itemID, stateMachine.highlightIndex, stateMachine.highlightType, stateMachine.highlightMbsNumber); + //if (verboseRenderer) { std::cout << " select=" << EXUstd::ToString(itemID) << std::flush; } + //PrintDelayed("itemID=" + EXUstd::ToString(itemID)); if (stateMachine.highlightType != ItemType::_None && stateMachine.highlightIndex != invalidIndex) @@ -1250,6 +1259,7 @@ void GlfwRenderer::MouseSelectOpenGL(GLFWwindow* window, Index mouseX, Index mou //put into separate function, for Render(...) int width, height; + //if (verboseRenderer) { std::cout << " MouseSelectOpenGL" << std::flush; } glfwGetFramebufferSize(window, &width, &height); //rendererOut << "current window: width=" << width << ", height=" << height << "\n"; @@ -1261,9 +1271,12 @@ void GlfwRenderer::MouseSelectOpenGL(GLFWwindow* window, Index mouseX, Index mou //++++++++++++++++++++++++++++++++++++++++ + //if (verboseRenderer) { std::cout << " glSelectBuffer" << std::flush; } const Index selectBufferSize = 10000; //size for number of objects picked at same time GLuint selectBuffer[selectBufferSize]; glSelectBuffer(selectBufferSize, selectBuffer); + + //if (verboseRenderer) { std::cout << " glRenderMode" << std::flush; } glRenderMode(GL_SELECT); GLint viewport[4]; @@ -1278,6 +1291,7 @@ void GlfwRenderer::MouseSelectOpenGL(GLFWwindow* window, Index mouseX, Index mou glClearStencil(0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); + //if (verboseRenderer) { std::cout << " glMatrixMode" << std::flush; } //++++++++++++++++++++++++++++++++++++++++ //from Render(...) glMatrixMode(GL_PROJECTION); @@ -1302,26 +1316,32 @@ void GlfwRenderer::MouseSelectOpenGL(GLFWwindow* window, Index mouseX, Index mou //++++++++++++++++++++++++++++++++++++++++ //add one name in hierarchie and then draw scene with names + //if (verboseRenderer) { std::cout << " glInitNames" << std::flush; } glInitNames(); + //if (verboseRenderer) { std::cout << " glPushName" << std::flush; } glPushName(1); const bool selectionMode = true; + //if (verboseRenderer) { std::cout << " RenderGraphicsData" << std::flush; } RenderGraphicsData(selectionMode); //render scene with names //glCallList (filledlist); glPopName(); //++++++++++++++++++++++++++++++++++++++++ + //if (verboseRenderer) { std::cout << " glPopMatrix" << std::flush; } glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); glPopMatrix(); + //if (verboseRenderer) { std::cout << " glRenderMode" << std::flush; } Index numberOfItemsFound = glRenderMode(GL_RENDER); //++++++++++++++++++++++++++++++++++++++++ //evaluate items: //rendererOut << "number of found items = " << numberOfItemsFound << "\n"; + //if (verboseRenderer) { std::cout << " evaluate" << std::flush; } Index itemIDnearest = 0; GLuint minimalDepth = 0; //clip other items that are closer @@ -1762,7 +1782,7 @@ void GlfwRenderer::RunLoop() FinishRunLoop(); } -void GlfwRenderer::DoRendererTasks() +void GlfwRenderer::DoRendererTasks(bool graphicsUpdateAndRender) { Real updateInterval = (Real)(visSettings->general.graphicsUpdateInterval); Real time = EXUstd::GetTimeInSeconds(); @@ -1779,7 +1799,10 @@ void GlfwRenderer::DoRendererTasks() } - if (useMultiThreadedRendering || (time >= lastGraphicsUpdate + updateInterval) || GetCallBackSignal()) + if (useMultiThreadedRendering || + (time >= lastGraphicsUpdate + updateInterval) || + GetCallBackSignal() || + graphicsUpdateAndRender) { basicVisualizationSystemContainer->UpdateGraphicsData(); bool maxSceneComputed = false; @@ -1852,7 +1875,7 @@ void GlfwRenderer::FinishRunLoop() } //! run renderer idle for certain amount of time; use this for single-threaded, interactive animations; waitSeconds==-1 waits forever -void GlfwRenderer::DoRendererIdleTasks(Real waitSeconds) +void GlfwRenderer::DoRendererIdleTasks(Real waitSeconds, bool graphicsUpdateAndRender) { Real time = EXUstd::GetTimeInSeconds(); bool continueTask = true; @@ -1866,7 +1889,7 @@ void GlfwRenderer::DoRendererIdleTasks(Real waitSeconds) { if (!useMultiThreadedRendering) { - DoRendererTasks(); + DoRendererTasks(graphicsUpdateAndRender); } else { @@ -2378,7 +2401,8 @@ void GlfwRenderer::Render3Dobjects(int screenWidth, int screenHeight, float& scr SetModelRotationTranslation(); - RenderGraphicsData(); + RenderSensorTraces(); + RenderGraphicsData(); @@ -2735,6 +2759,148 @@ void GlfwRenderer::RenderGraphicsDataText(GraphicsData* data, Index lastItemID, } +//Index cnt0 = 0; + +//draw sensor traces +//NOTE: this function could be moved to VisualizationSystem to create this data only once (but what happens for animations?)? +void GlfwRenderer::RenderSensorTraces() +{ + if (visSettings->sensors.traces.showPositionTrace || + visSettings->sensors.traces.showVectors || + visSettings->sensors.traces.showTriads) + { + float factOffset = 1.f*state->maxSceneSize; + if (state->zoom != 0.f) { factOffset *= 1.f / state->zoom; } + + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); + glPolygonOffset(visSettings->openGL.polygonOffset*factOffset, visSettings->openGL.polygonOffset*factOffset); // + glEnable(GL_POLYGON_OFFSET_FILL); + glDisable(GL_POLYGON_OFFSET_LINE); + + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); + if (visSettings->openGL.lineSmooth) { glEnable(GL_LINE_SMOOTH); } + + const ArrayIndex& positionSensors = visSettings->sensors.traces.listOfPositionSensors; + const ArrayIndex& vectorSensors = visSettings->sensors.traces.listOfVectorSensors; + const ArrayIndex& triadSensors = visSettings->sensors.traces.listOfTriadSensors; + + glLineWidth(visSettings->sensors.traces.lineWidth); + + Index positionsShowEvery = EXUstd::Maximum(1,visSettings->sensors.traces.positionsShowEvery); //max in order to avoid crash in case of 0 or negative numbers + Index vectorsShowEvery = EXUstd::Maximum(1, visSettings->sensors.traces.vectorsShowEvery); + Index triadsShowEvery = EXUstd::Maximum(1, visSettings->sensors.traces.triadsShowEvery); + + const ArrayFloat& edgeColors = visSettings->sensors.traces.traceColors; + + bool showVectors = visSettings->sensors.traces.showVectors && (positionSensors.NumberOfItems() == vectorSensors.NumberOfItems()); + bool showTriads = visSettings->sensors.traces.showTriads && (positionSensors.NumberOfItems() == triadSensors.NumberOfItems()); + + Real vectorScaling = (Real)visSettings->sensors.traces.vectorScaling; + float triadSize = visSettings->sensors.traces.triadSize; + // if no sensors, do other approach: + //while list with stop criteria + //GetSensorsPositionsVectorsLists returns true if further sensors available + //std::cout << "ST" << showTriads << ", PL" << positionSensors.NumberOfItems() + // << ", TL" << triadSensors.NumberOfItems() << "\n"; + + + Index i = 0; + bool returnValue = true; + while ((positionSensors.NumberOfItems() > 0 && i < positionSensors.NumberOfItems()) || (positionSensors.NumberOfItems() == 0 && returnValue) ) + { + Float4 edgeColor({ 0.,0.,0.,1. }); //Default + if (edgeColors.NumberOfItems() >= (i + 1) * 4) + { + for (Index j = 0; j < 4; j++) + { + edgeColor[j] = edgeColors[i * 4 + j]; + } + } + + Index positionSensorIndex = i; + Index vectorSensorIndex = -1; + Index triadSensorIndex = -1; + if (i < positionSensors.NumberOfItems()) { positionSensorIndex = positionSensors[i]; } + if (i < vectorSensors.NumberOfItems() && showVectors) { vectorSensorIndex = vectorSensors[i]; } + if (i < triadSensors.NumberOfItems() && showTriads) { triadSensorIndex = triadSensors[i]; } + + //get sensor data + returnValue = basicVisualizationSystemContainer->GetSensorsPositionsVectorsLists(visSettings->sensors.traces.sensorsMbsNumber, positionSensorIndex, + vectorSensorIndex, triadSensorIndex, sensorTracePositions, sensorTraceVectors, sensorTraceTriads, sensorTraceValues, + visSettings->sensors.traces); + + if (visSettings->sensors.traces.showPositionTrace)// && sensorTracePositions.NumberOfItems() > 1) + { + glBegin(GL_LINE_STRIP); //list of single points to define lines + glColor4f(edgeColor[0], edgeColor[1], edgeColor[2], edgeColor[3]); + + for (Index j = 0; j < sensorTracePositions.NumberOfItems(); j++) + { + if (j % positionsShowEvery == 0 || j == sensorTracePositions.NumberOfItems() - 1) + { + const Vector3D& p = sensorTracePositions[j]; + glVertex3f((float)p[0], (float)p[1], (float)p[2]); + } + } + glEnd(); //GL_LINE_STRIP + } + + if ((visSettings->sensors.traces.showVectors && sensorTraceVectors.NumberOfItems() != 0) || + (visSettings->sensors.traces.showTriads && sensorTraceTriads.NumberOfItems() != 0) ) + { + glBegin(GL_LINES); + //if (visSettings->openGL.enableLighting) { glEnable(GL_LIGHTING); } //only enabled when drawing triangle faces + //glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); + for (Index j = 0; j < sensorTracePositions.NumberOfItems(); j++) + { + if (j < sensorTraceVectors.NumberOfItems()) + { + if (j % vectorsShowEvery == 0 || j == sensorTraceVectors.NumberOfItems() - 1) + { + const Vector3D& p = sensorTracePositions[j]; + const Vector3D& v = sensorTraceVectors[j]; + glColor4f(edgeColor[0], edgeColor[1], edgeColor[2], edgeColor[3]); + glVertex3f((float)p[0], (float)p[1], (float)p[2]); + glVertex3f((float)(p[0] + vectorScaling * v[0]), + (float)(p[1] + vectorScaling * v[1]), + (float)(p[2] + vectorScaling * v[2])); + } + } + if (j < sensorTraceTriads.NumberOfItems()) + { + if (j % triadsShowEvery == 0 || j == sensorTraceTriads.NumberOfItems() - 1) + { + float f = triadSize; + Float3 p({ (float)sensorTracePositions[j][0], + (float)sensorTracePositions[j][1], + (float)sensorTracePositions[j][2] }); + const Matrix3D& m = sensorTraceTriads[j]; + //glColor4f(edgeColor[0], edgeColor[1], edgeColor[2], edgeColor[3]); //set back to trace color! + glColor4f(1.f, 0, 0, edgeColor[3]); + glVertex3f(p[0], p[1], p[2]); + glVertex3f(p[0] + f * (float)m(0, 0), p[1] + f * (float)m(1, 0), p[2] + f * (float)m(2, 0)); + + glColor4f(0, 1.f, 0, edgeColor[3]); + glVertex3f(p[0], p[1], p[2]); + glVertex3f(p[0] + f * (float)m(0, 1), p[1] + f * (float)m(1, 1), p[2] + f * (float)m(2, 1)); + + glColor4f(0, 0, 1.f, edgeColor[3]); + glVertex3f(p[0], p[1], p[2]); + glVertex3f(p[0] + f * (float)m(0, 2), p[1] + f * (float)m(1, 2), p[2] + f * (float)m(2, 2)); + } + } + } + glEnd(); //GL_LINES + + //if (visSettings->openGL.enableLighting) { glDisable(GL_LIGHTING); } //only enabled when drawing triangle faces + } + + i++; + } + if (visSettings->openGL.lineSmooth) { glDisable(GL_LINE_SMOOTH); } + + } +} void GlfwRenderer::RenderGraphicsData(bool selectionMode) { diff --git a/main/src/Graphics/GlfwClient.h b/main/src/Graphics/GlfwClient.h index d714bc41..664a4ddd 100644 --- a/main/src/Graphics/GlfwClient.h +++ b/main/src/Graphics/GlfwClient.h @@ -121,6 +121,7 @@ class GlfwRenderer static std::atomic_flag renderFunctionRunning; //!< semaphore to check if Render(...) function is currently running (prevent from calling twice) static std::atomic_flag showMessageSemaphore; //!< semaphore to prevent calling ShowMessage twice + //+++++++++++++++++++++++++++++++++++++++++ static BitmapFont bitmapFont; //!< bitmap font for regular texts and for textured fonts, initialized upon start of renderer static float fontScale; //!< monitor scaling factor from windows, to scale fonts @@ -151,7 +152,13 @@ class GlfwRenderer static ResizableArray* graphicsDataList; //!< link to graphics data; only works for one MainSystem, but could also be realized for several systems static VisualizationSettings* visSettings; //!< link to visualization settings static VisualizationSystemContainerBase* basicVisualizationSystemContainer; - //+++++++++++++++++++++++++++++++++++++++++ + //+++++++++++++++++++++++++++++++++++++++++ + //for sensor traces: + static Vector3DList sensorTracePositions; + static Vector3DList sensorTraceVectors; //synchronized with triads + static Matrix3DList sensorTraceTriads; //synchronized with vectors + static Vector sensorTraceValues; //temporary storage for current sensor data + //+++++++++++++++++++++++++++++++++++++++++ public: GlfwRenderer(); @@ -291,7 +298,7 @@ class GlfwRenderer static void ShowMessage(const STDstring& str, Real timeout = 0); //! run renderer idle for certain amount of time; use this for single-threaded, interactive animations; waitSeconds==-1 waits forever - static void DoRendererIdleTasks(Real waitSeconds); + static void DoRendererIdleTasks(Real waitSeconds, bool graphicsUpdateAndRender=false); //! check if separate thread used: static bool UseMultiThreadedRendering() { return useMultiThreadedRendering; } @@ -372,7 +379,8 @@ class GlfwRenderer static void RunLoop(); //! tasks which are regularly called by RunLoop(), used if no separate thread used in GLFW; use wait in seconds to do this - static void DoRendererTasks(); + //! for single-threaded renderer, an immediate rendering can be requested + static void DoRendererTasks(bool graphicsUpdateAndRender = false); //! tasks which are done if renderer is shut down static void FinishRunLoop(); @@ -398,6 +406,9 @@ class GlfwRenderer //! Render particulary the graphics data of multibody system; selectionMode==true adds names static void RenderGraphicsData(bool selectionMode = false); + //! render sensor traces if activated and available + static void RenderSensorTraces(); + //! Render particulary the text of multibody system; selectionMode==true adds names static void RenderGraphicsDataText(GraphicsData* data, Index lastItemID, bool highlight, Index highlightID, Float4 highlightColor2, Float4 otherColor2, bool selectionMode=false); diff --git a/main/src/Graphics/VisualizationSystemContainer.cpp b/main/src/Graphics/VisualizationSystemContainer.cpp index 2287c092..fe15fa94 100644 --- a/main/src/Graphics/VisualizationSystemContainer.cpp +++ b/main/src/Graphics/VisualizationSystemContainer.cpp @@ -107,11 +107,32 @@ void VisualizationSystemContainer::RedrawAndSaveImage() Index timerMilliseconds = settings.exportImages.saveImageTimeOut / timeOut; if (timerMilliseconds == 0) { timerMilliseconds = 1; } //min wait time per iteration +#ifdef USE_GLFW_GRAPHICS + if (!glfwRenderer.UseMultiThreadedRendering()) //otherwise, user functions are anyway processed + { + //in this case, we need to update graphics, otherwise it is not saved + + glfwRenderer.DoRendererIdleTasks(0., true); //request immediate redraw + //now image should be saved ... + } +#endif + //now wait until the saveImage flag has been deleted by the current redraw operation Index i = 0; while (i++ < timeOut && (saveImageOpenGL || saveImage)) //wait timeOut*timerMilliseconds seconds for last operation to finish { std::this_thread::sleep_for(std::chrono::milliseconds(timerMilliseconds)); +#ifdef USE_GLFW_GRAPHICS + if (glfwRenderer.UseMultiThreadedRendering()) //otherwise, user functions are anyway processed + { + //Needed ?: PyProcessExecuteQueue(); //use time to execute incoming python tasks + //process user functions + for (auto item : visualizationSystems) + { + item->postProcessData->ProcessUserFunctionDrawing(); //check if user functions to be drawn and do user function evaluations + } + } +#endif } if (saveImageOpenGL || saveImage) { @@ -285,6 +306,7 @@ std::string VisualizationSystemContainer::GetComputationMessage(bool solverInfor return std::string(); } +//get marker position and orientation void VisualizationSystemContainer::GetMarkerPositionOrientation(Index markerNumber, Index mbsNumber, Vector3D& position, Matrix3D& orientation, bool& hasPosition, bool& hasOrientation) { position = Vector3D(0); @@ -313,6 +335,115 @@ void VisualizationSystemContainer::GetMarkerPositionOrientation(Index markerNumb } +//get sensor data list (if available) +bool VisualizationSystemContainer::GetSensorsPositionsVectorsLists(Index mbsNumber, Index positionSensorIndex, Index vectorSensorIndex, Index triadSensorIndex, + Vector3DList& sensorTracePositions, Vector3DList& sensorTraceVectors, Matrix3DList& sensorTraceTriads, Vector sensorTraceValues, + const VSettingsSensorTraces& traces) +{ + sensorTracePositions.SetNumberOfItems(0); + sensorTraceVectors.SetNumberOfItems(0); + sensorTraceTriads.SetNumberOfItems(0); + + //bool showVectors, bool showTriads, bool showPast, bool showFuture, bool showCurrent + + if (mbsNumber >= 0 && mbsNumber < NumberOFMainSystemsBacklink()) + { + CSystem* cSystem = GetMainSystemBacklink(mbsNumber)->GetCSystem(); + Real time = cSystem->GetSystemData().GetCData().GetVisualization().GetTime(); + if (positionSensorIndex >= 0 && positionSensorIndex < cSystem->GetSystemData().GetCSensors().NumberOfItems()) + { + const CSensor& sensor = *cSystem->GetSystemData().GetCSensors()[positionSensorIndex]; + if (EXUstd::IsOfType(sensor.GetOutputVariableType(), OutputVariableType::Position)) + { + const ResizableMatrix& data = sensor.GetInternalStorage(); + if (data.NumberOfRows() > 0 and data.NumberOfColumns() == 4) //must be position compatible data + { + for (Index i = 0; i < data.NumberOfRows(); i++) + { + if ((traces.showPast && data(i, 0) <= time) || + (traces.showFuture && data(i, 0) > time) || + (traces.showCurrent && fabs(data(i, 0) - time) < 1e-10)) //needed for current vectors + { + Vector3D v({ data(i,1), data(i,2), data(i,3) }); //time not used + sensorTracePositions.Append(v); + } + } + } + + if (traces.showVectors && vectorSensorIndex >= 0 && vectorSensorIndex < cSystem->GetSystemData().GetCSensors().NumberOfItems()) + { + const CSensor& vectorSensor = *cSystem->GetSystemData().GetCSensors()[vectorSensorIndex]; + const ResizableMatrix& data = vectorSensor.GetInternalStorage(); + if (data.NumberOfRows() > 0 && data.NumberOfColumns() == 4) //must be Vector3D data + { + for (Index i = 0; i < data.NumberOfRows(); i++) + { + if ((traces.showPast && data(i, 0) <= time) || + (traces.showFuture && data(i, 0) > time) || + (traces.showCurrent && fabs(data(i, 0) - time) < 1e-10) ) + { + Vector3D v({ data(i,1), data(i,2), data(i,3) }); //time not used + sensorTraceVectors.Append(v); + } + } + //this won't work, as in solution viewer current values are not "current"! + //if (showCurrent) + //{ + // vectorSensor.GetSensorValues(cSystem->GetSystemData(), sensorTraceValues, ConfigurationType::Visualization); + // if (sensorTraceValues.NumberOfItems() == 3) + // { + // Vector3D v({ sensorTraceValues[0], + // sensorTraceValues[1], + // sensorTraceValues[2] }); //time not used + // sensorTraceVectors.Append(v); + // } + //} + } + } + if (traces.showTriads && triadSensorIndex >= 0 && triadSensorIndex < cSystem->GetSystemData().GetCSensors().NumberOfItems()) + { + //std::cout << "A," << GetOutputVariableTypeString(triadSensor.GetOutputVariableType()) << ";\n"; + const CSensor& triadSensor = *cSystem->GetSystemData().GetCSensors()[triadSensorIndex]; + const ResizableMatrix& data = triadSensor.GetInternalStorage(); + if (data.NumberOfRows() > 0 && data.NumberOfColumns() == 10 && + EXUstd::IsOfType(triadSensor.GetOutputVariableType(), OutputVariableType::RotationMatrix)) //must be Matrix3D data + { + for (Index i = 0; i < data.NumberOfRows(); i++) + { + if ((traces.showPast && data(i, 0) <= time) || + (traces.showFuture && data(i, 0) > time) || + (traces.showCurrent && fabs(data(i, 0) - time) < 1e-10) ) + { + Matrix3D m(3, 3, { data(i,1), data(i,2), data(i,3), + data(i,4), data(i,5), data(i,6), + data(i,7), data(i,8), data(i,9) }); //time not used + sensorTraceTriads.Append(m); + //std::cout << "out"; + } + } + //if (showCurrent) + //{ + // triadSensor.GetSensorValues(cSystem->GetSystemData(), sensorTraceValues, ConfigurationType::Visualization); + // if (sensorTraceValues.NumberOfItems() == 10) + // { + // Matrix3D m(3, 3, { sensorTraceValues[1], sensorTraceValues[2], sensorTraceValues[3], + // sensorTraceValues[4], sensorTraceValues[5], sensorTraceValues[6], + // sensorTraceValues[7], sensorTraceValues[8], sensorTraceValues[9] }); //time not used + // sensorTraceTriads.Append(m); + // } + //} + } + } + } + } + if (positionSensorIndex < cSystem->GetSystemData().GetCSensors().NumberOfItems()-1) + { + return true; + } + } + return false; +} + //! REMOVE: get backlink of ith main system (0 if not existing), temporary for selection MainSystem* VisualizationSystemContainer::GetMainSystemBacklink(Index iSystem) { diff --git a/main/src/Graphics/VisualizationSystemContainer.h b/main/src/Graphics/VisualizationSystemContainer.h index 4328c1be..3a243902 100644 --- a/main/src/Graphics/VisualizationSystemContainer.h +++ b/main/src/Graphics/VisualizationSystemContainer.h @@ -240,6 +240,9 @@ class VisualizationSystemContainer: public VisualizationSystemContainerBase virtual bool GetComputeMaxSceneRequest() override { return computeMaxSceneRequest; } virtual void GetMarkerPositionOrientation(Index markerNumber, Index mbsNumber, Vector3D& position, Matrix3D& orientation, bool& hasPosition, bool& hasOrientation) override; + virtual bool GetSensorsPositionsVectorsLists(Index mbsNumber, Index positionSensorIndex, Index vectorSensorIndex, Index triadSensorIndex, + Vector3DList& sensorTracePositions, Vector3DList& sensorTraceVectors, Matrix3DList& sensorTraceTriads, Vector sensorTraceValues, + const VSettingsSensorTraces& traces) override; //! any multi-line text message from computation to be shown in renderer (e.g. time, solver, ...) virtual std::string GetComputationMessage(bool solverInformation = true, diff --git a/main/src/Graphics/VisualizationSystemContainerBase.h b/main/src/Graphics/VisualizationSystemContainerBase.h index c520ffa9..4f6fb0ee 100644 --- a/main/src/Graphics/VisualizationSystemContainerBase.h +++ b/main/src/Graphics/VisualizationSystemContainerBase.h @@ -41,7 +41,12 @@ class VisualizationSystemContainerBase virtual void SetComputeMaxSceneRequest(bool flag) = 0; virtual bool GetComputeMaxSceneRequest() = 0; + //get marker position and orientation virtual void GetMarkerPositionOrientation(Index markerNumber, Index mbsNumber, Vector3D& position, Matrix3D& orientation, bool& hasPosition, bool& hasOrientation) = 0; + //get sensor data list (if available); return true if further sensors available + virtual bool GetSensorsPositionsVectorsLists(Index mbsNumber, Index positionSensorIndex, Index vectorSensorIndex, Index triadSensorIndex, + Vector3DList& sensorTracePositions, Vector3DList& sensorTraceVectors, Matrix3DList& sensorTraceTriads, Vector sensorTraceValues, + const VSettingsSensorTraces& traces) = 0; virtual std::string GetComputationMessage(bool solverInformation = true, bool solutionInformation = true, bool solverTime = true) = 0; //! any multi-line text message from computation to be shown in renderer (e.g. time, solver, ...) diff --git a/main/src/Main/CSystem.cpp b/main/src/Main/CSystem.cpp index 052461fb..1a534b3b 100644 --- a/main/src/Main/CSystem.cpp +++ b/main/src/Main/CSystem.cpp @@ -1701,19 +1701,25 @@ void CSystem::ComputeODE2SingleLoad(Index loadIndex, TemporaryComputationData& t { Vector3D loadVector3D(0); //initialization in order to avoid gcc warnings Vector1D loadVector1D(0); //scalar loads...//initialization in order to avoid gcc warnings +#ifndef __FAST_EXUDYN_LINALG bool loadVector1Ddefined = false; //add checks such that wrong formats would fail bool loadVector3Ddefined = false; //add checks such that wrong formats would fail +#endif CLoad* cLoad = cSystemData.GetCLoads()[(Index)loadIndex]; if (cLoad->IsVector()) { loadVector3D = cLoad->GetLoadVector(cSystemData.GetMainSystemBacklink(), currentTime); +#ifndef __FAST_EXUDYN_LINALG loadVector3Ddefined = true; +#endif } else { loadVector1D = Vector1D(cLoad->GetLoadValue(cSystemData.GetMainSystemBacklink(), currentTime)); +#ifndef __FAST_EXUDYN_LINALG loadVector1Ddefined = true; +#endif } Index markerNumber = cLoad->GetMarkerNumber(); @@ -1887,7 +1893,7 @@ void CSystem::ComputeODE2SingleLoadLTG(Index loadIndex, ArrayIndex& ltgODE2equat CLoad* cLoad = cSystemData.GetCLoads()[(Index)loadIndex]; Index markerNumber = cLoad->GetMarkerNumber(); CMarker* marker = cSystemData.GetCMarkers()[markerNumber]; - LoadType loadType = cLoad->GetType(); + //LoadType loadType = cLoad->GetType(); //loads only applied to Marker::Body or Marker::Node if (marker->GetType() & Marker::Body) //code for body markers @@ -1985,9 +1991,9 @@ void CSystem::JacobianODE2Loads(TemporaryComputationDataArray& tempArray, const //Index nODE2 = cSystemData.GetNumberOfCoordinatesODE2(); //Index nODE1 = cSystemData.GetNumberOfCoordinatesODE1(); - Vector& xODE1 = cSystemData.GetCData().currentState.ODE1Coords; //current coordinates ==> this is what is differentiated for + //Vector& xODE1 = cSystemData.GetCData().currentState.ODE1Coords; //current coordinates ==> this is what is differentiated for Vector& xODE2 = cSystemData.GetCData().currentState.ODE2Coords; //current coordinates ==> this is what is differentiated for - Vector& xRefODE1 = cSystemData.GetCData().referenceState.ODE1Coords; //reference coordinates; might be important for numerical differentiation + //Vector& xRefODE1 = cSystemData.GetCData().referenceState.ODE1Coords; //reference coordinates; might be important for numerical differentiation Vector& xRefODE2 = cSystemData.GetCData().referenceState.ODE2Coords; //reference coordinates; might be important for numerical differentiation Vector& xODE2_t = cSystemData.GetCData().currentState.ODE2Coords_t; //for diff w.r.t. velocities @@ -2001,7 +2007,7 @@ void CSystem::JacobianODE2Loads(TemporaryComputationDataArray& tempArray, const ComputeODE2SingleLoadLTG(j, ltgODE2eq, ltgODE2coords, ltgODE1coords); Index nLocalODE2eq = ltgODE2eq.NumberOfItems(); Index nLocalODE2coords = ltgODE2coords.NumberOfItems(); - Index nLocalODE1coords = ltgODE1coords.NumberOfItems(); + //Index nLocalODE1coords = ltgODE1coords.NumberOfItems(); if (nLocalODE2eq != 0) { @@ -2055,6 +2061,7 @@ void CSystem::ComputeODE1Loads(TemporaryComputationData& temp, Vector& systemODE Vector1D loadVector1D(0); //scalar loads...//initialization in order to avoid gcc warnings bool loadVector1Ddefined = false; //add checks such that wrong formats would fail //bool loadVector3Ddefined = false; //add checks such that wrong formats would fail + __UNUSED(loadVector1Ddefined); //avoid unused variable warnings Real currentTime = cSystemData.GetCData().currentState.time; for (Index j = 0; j < nLoads; j++) @@ -3250,13 +3257,13 @@ TimerStructureRegistrator TSRreactionForces2("TSreactionForces2", TSreactionForc //! ode2ReactionForces += C_{q2}^T * \lambda void CSystem::ComputeODE2ProjectedReactionForces(TemporaryComputationDataArray& tempArray, const Vector& reactionForces, Vector& ode2ReactionForces) { - Index nAE = cSystemData.GetNumberOfCoordinatesAE(); - Index nODE2 = cSystemData.GetNumberOfCoordinatesODE2(); + //Index nAE = cSystemData.GetNumberOfCoordinatesAE(); + //Index nODE2 = cSystemData.GetNumberOfCoordinatesODE2(); //Index nODE1 = cSystemData.GetNumberOfCoordinatesODE1(); TemporaryComputationData& temp = tempArray[0]; - CHECKandTHROW(reactionForces.NumberOfItems() == nAE, "CSystem::ComputeODE2ProjectedReactionForces: reactionForces size mismatch!"); - CHECKandTHROW(ode2ReactionForces.NumberOfItems() == nODE2, "CSystem::ComputeODE2ProjectedReactionForces: ode2ReactionForces size mismatch!"); + CHECKandTHROW(reactionForces.NumberOfItems() == cSystemData.GetNumberOfCoordinatesAE(), "CSystem::ComputeODE2ProjectedReactionForces: reactionForces size mismatch!"); + CHECKandTHROW(ode2ReactionForces.NumberOfItems() == cSystemData.GetNumberOfCoordinatesODE2(), "CSystem::ComputeODE2ProjectedReactionForces: ode2ReactionForces size mismatch!"); int nItemsObjectsNoUF = cSystemData.listObjectProjectedReactionForcesODE2NoUF.NumberOfItems(); int nItemsNodesObjectsNoUF = nItemsObjectsNoUF + cSystemData.nodesODE2WithAE.NumberOfItems(); @@ -3517,10 +3524,10 @@ void CSystem::ComputeConstraintJacobianDerivative(TemporaryComputationData& temp void CSystem::ComputeConstraintJacobianTimesVector(TemporaryComputationData& temp, const Vector& v, Vector& result) { Index nAE = cSystemData.GetNumberOfCoordinatesAE(); - Index nODE2 = cSystemData.GetNumberOfCoordinatesODE2(); + //Index nODE2 = cSystemData.GetNumberOfCoordinatesODE2(); //Index nODE1 = cSystemData.GetNumberOfCoordinatesODE1(); - CHECKandTHROW(v.NumberOfItems() == nODE2, "CSystem::ComputeConstraintJacobianTimesVector: v size mismatch!"); + CHECKandTHROW(v.NumberOfItems() == cSystemData.GetNumberOfCoordinatesODE2(), "CSystem::ComputeConstraintJacobianTimesVector: v size mismatch!"); result.SetNumberOfItems(nAE); result.SetAll(0.); diff --git a/main/src/Main/rendererPythonInterface.cpp b/main/src/Main/rendererPythonInterface.cpp index ac24507a..6d792293 100644 --- a/main/src/Main/rendererPythonInterface.cpp +++ b/main/src/Main/rendererPythonInterface.cpp @@ -685,7 +685,7 @@ void PyProcessAskQuit() try { //open window to execute a python command ... - float alphaTransparency = GetGlfwRenderer().GetVisualizationSettings()->dialogs.alphaTransparency; + //float alphaTransparency = GetGlfwRenderer().GetVisualizationSettings()->dialogs.alphaTransparency; PyWriteToSysDictionary("quitResponse", py::cast((int)1) ); std::string str = R"( diff --git a/main/src/Objects/CObjectBeamGeometricallyExact.cpp b/main/src/Objects/CObjectBeamGeometricallyExact.cpp index 129bee07..46598e91 100644 --- a/main/src/Objects/CObjectBeamGeometricallyExact.cpp +++ b/main/src/Objects/CObjectBeamGeometricallyExact.cpp @@ -289,11 +289,13 @@ void CObjectBeamGeometricallyExact::ComputeJacobianODE2_ODE2(EXUmath::MatrixCont //jacobianODE2.GetInternalDenseMatrix().SetScalarMatrix(dimJacobian, 0.); const Index nDim3D = 3; - Index nNode0 = GetCNode(0)->GetNumberOfODE2Coordinates(); - Index nNode1 = GetCNode(1)->GetNumberOfODE2Coordinates(); - CHECKandTHROW( (nNode0 + nNode1 == dimJacobian) && + + Index nNode0 = GetCNode(0)->GetNumberOfODE2Coordinates(); + + //put this check into checkPreAssembleConsistencies.cpp + CHECKandTHROW( (nNode0 + GetCNode(1)->GetNumberOfODE2Coordinates() == dimJacobian) && (nNode0 <= (CNodeRigidBody::maxRotationCoordinates + nDim3D) ) && - (nNode1 <= (CNodeRigidBody::maxRotationCoordinates + nDim3D) ), + (GetCNode(1)->GetNumberOfODE2Coordinates() <= (CNodeRigidBody::maxRotationCoordinates + nDim3D) ), "CObjectBeamGeometricallyExact::ComputeJacobianODE2_ODE2: nodal coordinates mismatch; the nodes cannot be used with this beam element"); //const Index nDisplacementCoordinates = 3; diff --git a/main/src/Objects/CObjectConnectorReevingSystemSprings.cpp b/main/src/Objects/CObjectConnectorReevingSystemSprings.cpp index b4c37972..d85eb93c 100644 --- a/main/src/Objects/CObjectConnectorReevingSystemSprings.cpp +++ b/main/src/Objects/CObjectConnectorReevingSystemSprings.cpp @@ -23,7 +23,13 @@ Real CObjectConnectorReevingSystemSprings::ComputeForce(Real L, Real L0, Real L_ { Real invL0 = 1e3; //use minimum reference length (1mm), leads to very high stiffness ... should never happen if (L0 != 0.) { invL0 = 1. / L0; } - return ((L - L0)*EA + (L_t - L0_t) * DA) * invL0; + Real F = ((L - L0)*EA + (L_t - L0_t) * DA) * invL0; + + if (parameters.regularizationForce > 0 && F < 0) + { + F = parameters.regularizationForce * tanh(F / parameters.regularizationForce); + } + return F; } else { return 0.; } } diff --git a/main/src/Objects/CObjectFFRFreducedOrder.cpp b/main/src/Objects/CObjectFFRFreducedOrder.cpp index 4d3846f8..41eefd20 100644 --- a/main/src/Objects/CObjectFFRFreducedOrder.cpp +++ b/main/src/Objects/CObjectFFRFreducedOrder.cpp @@ -578,12 +578,10 @@ void CObjectFFRFreducedOrder::GetAccessFunctionBody(AccessFunctionType accessTyp if (parameters.mPhitTPsi.NumberOfRows() != 0) //otherwise it uses the user function ... { Index nODE2Rigid = GetCNode(rigidBodyNodeNumber)->GetNumberOfODE2Coordinates(); //number of rigid body coordinates - Index nODE2FF = GetCNode(genericNodeNumber)->GetNumberOfODE2Coordinates(); - - //pout << "nODE2FF =" << nODE2FF << "\n"; CHECKandTHROW((parameters.mPhitTPsi.NumberOfRows() == CNodeRigidBody::nDim3D) && - (parameters.mPhitTPsi.NumberOfColumns() == nODE2FF), "CObjectFFRFreducedOrder::GetAccessFunctionBody:DisplacementMassIntegral_q: inconsistent dimensions of matrix mPhitTPsi"); + (parameters.mPhitTPsi.NumberOfColumns() == GetCNode(genericNodeNumber)->GetNumberOfODE2Coordinates()), + "CObjectFFRFreducedOrder::GetAccessFunctionBody:DisplacementMassIntegral_q: inconsistent dimensions of matrix mPhitTPsi"); //EXUmath::MultMatrixTransposedMatrixTemplate(parameters.mPhitTPsi, A.GetTransposed(), tempMatrix); EXUmath::MultMatrixMatrixTemplate(A, parameters.mPhitTPsi, tempMatrix); diff --git a/main/src/Objects/CObjectKinematicTree.cpp b/main/src/Objects/CObjectKinematicTree.cpp index 903b405e..1e94bb7d 100644 --- a/main/src/Objects/CObjectKinematicTree.cpp +++ b/main/src/Objects/CObjectKinematicTree.cpp @@ -46,6 +46,7 @@ void CObjectKinematicTree::ComputeMassMatrix(EXUmath::MatrixContainer& massMatri { Index rv = massMatrixC.GetInternalDenseMatrix().InvertSpecial(tempMatrix, tempArrayIndex, false); CHECKandTHROW(rv == -1, "CObjectKinematicTree::ComputeMassMatrix: inverse failed; check if mass parameters are non-zero or set computeMassMatrixInversePerBody=False"); + __UNUSED(rv); //avoid unused variable warnings } } diff --git a/main/src/Objects/checkPreAssembleConsistencies.cpp b/main/src/Objects/checkPreAssembleConsistencies.cpp index 38630829..bb4fb769 100644 --- a/main/src/Objects/checkPreAssembleConsistencies.cpp +++ b/main/src/Objects/checkPreAssembleConsistencies.cpp @@ -773,6 +773,12 @@ bool MainObjectConnectorReevingSystemSprings::CheckPreAssembleConsistency(const } } + if (cObject->GetParameters().regularizationForce == 0.) + { + errorString = "CObjectConnectorReevingSystemSprings: regularizationForce may not be zero"; + return false; + } + Index npr = cObject->GetParameters().sheavesRadii.NumberOfItems(); if (nRigidBodyMarkers != npr) diff --git a/main/src/Pymodules/PyMatrixContainer.cpp b/main/src/Pymodules/PyMatrixContainer.cpp index 66ce793f..d3853d3e 100644 --- a/main/src/Pymodules/PyMatrixContainer.cpp +++ b/main/src/Pymodules/PyMatrixContainer.cpp @@ -27,7 +27,12 @@ PyMatrixContainer::PyMatrixContainer(const py::object& matrix) { //pout << "PyMatrixContainer::PyMatrixContainer:\n"; //py::print(matrix); - if (py::isinstance(matrix)) + if (matrix.is_none()) + { + useDenseMatrix = true; + denseMatrix = ResizableMatrix(); + } + else if (py::isinstance(matrix)) { //pout << "works2: PyMatrixContainer::PyMatrixContainer:\n"; *this = py::cast(matrix); @@ -92,7 +97,7 @@ PyMatrixContainer::PyMatrixContainer(const py::object& matrix) } else { - CHECKandTHROWstring("MatrixContainer: can only initialize with empty list [], list of lists or with 2D numpy array"); + CHECKandTHROWstring("MatrixContainer: can only initialize with None, empty list [], list of lists or with 2D numpy array"); } //pout << "PyMatrixContainer::PyMatrixContainer:READY\n"; diff --git a/main/src/Pymodules/PyMatrixVector.h b/main/src/Pymodules/PyMatrixVector.h index 6ccf8e93..0a605534 100644 --- a/main/src/Pymodules/PyMatrixVector.h +++ b/main/src/Pymodules/PyMatrixVector.h @@ -23,14 +23,18 @@ class PyVectorList : public VectorList public: //! create empty (dense) container //?remove default constructor to enable conversion from py::object in constructor? - PyVectorList() : VectorList () {} + PyVectorList() : VectorList() {} - PyVectorList(const VectorList & other) : VectorList(other) {} + PyVectorList(const VectorList& other) : VectorList(other) {} //! initialize array with list of py::array or with emtpy list (default value) PyVectorList(const py::object& listOfArrays) { - if (py::isinstance(listOfArrays)) + if (listOfArrays.is_none()) + { + *this = VectorList(); + } + else if (py::isinstance(listOfArrays)) { py::list pyList = py::cast(listOfArrays); this->SetMaxNumberOfItems((Index)pyList.size()); @@ -40,11 +44,10 @@ class PyVectorList : public VectorList { this->PyAppend((const py::object&)item); } - return; } else { - PyError(STDstring("Vector" + EXUstd::ToString(dataSize) + "DList: Expected list of " + EXUstd::ToString(dataSize) + "D numpy arrays, but received '" + + PyError(STDstring("Vector" + EXUstd::ToString(dataSize) + "DList: Expected empty list, None, or list of " + EXUstd::ToString(dataSize) + "D numpy arrays, but received '" + EXUstd::ToString(listOfArrays) + "'")); } } @@ -159,7 +162,11 @@ class PyMatrixList : public MatrixList //! initialize array with list of py::array or with emtpy list (default value) PyMatrixList(const py::object& listOfArrays) { - if (py::isinstance(listOfArrays)) + if (listOfArrays.is_none()) + { + *this = MatrixList(); + } + else if (py::isinstance(listOfArrays)) { py::list pyList = py::cast(listOfArrays); this->SetMaxNumberOfItems((Index)pyList.size()); @@ -169,11 +176,10 @@ class PyMatrixList : public MatrixList { this->PyAppend((const py::object&)item); } - return; } else { - PyError(STDstring("Matrix" + EXUstd::ToString(numberOfRowsColumns) + "DList: Expected list of " + EXUstd::ToString(numberOfRowsColumns) + "D numpy matrices, but received '" + + PyError(STDstring("Matrix" + EXUstd::ToString(numberOfRowsColumns) + "DList: Expected empty list, None, or list of " + EXUstd::ToString(numberOfRowsColumns) + "D numpy matrices, but received '" + EXUstd::ToString(listOfArrays) + "'")); } } @@ -266,7 +272,12 @@ namespace EPyUtils GenericExceptionHandling([&] { - if (py::isinstance(value)) + if (value.is_none()) + { + destination.Flush(); + rv = true; + } + else if (py::isinstance(value)) { py::list pylist = py::cast(value); //also works for numpy arrays (but gives different type!) @@ -274,7 +285,7 @@ namespace EPyUtils if (pylist.size() != 0) { rv = false; - PyError(STDstring("Set " + listType + ": Either empty list [] or " + listType + " allowed, but received: ") + + PyError(STDstring("Set " + listType + ": Either empty list [], None, or " + listType + " allowed, but received: ") + STDstring(py::str(value))); //here we do not use py::cast(value), because value may be Vector3DList directly, which cannot be casted to Python! } rv = true; @@ -293,7 +304,7 @@ namespace EPyUtils else { rv = false; - PyError(STDstring("Set " + listType + ": Either empty list [] or " + listType + " allowed, but received: ") + + PyError(STDstring("Set " + listType + ": Either empty list [], None, or " + listType + " allowed, but received: ") + STDstring(py::str(value))); //here we do not use py::cast(value), because value may be Vector3DList directly, which cannot be casted to Python! } }, "Set [Vector/Matrix][3/6]DList"); diff --git a/main/src/Pymodules/PybindModule.cpp b/main/src/Pymodules/PybindModule.cpp index 96eacfc6..374b93c5 100644 --- a/main/src/Pymodules/PybindModule.cpp +++ b/main/src/Pymodules/PybindModule.cpp @@ -775,7 +775,7 @@ PYBIND11_MODULE(exudynCPP, m) { return STDstring(EXUstd::ToString(item.GetIndex())); }, "return the string representation of the index, which can be, e.g., printed") ; - + ////++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //NOT needed, should always convert to std::vector //py::class_(m, "ArrayNodeIndex", "ArrayNodeIndex: array of indices which may only be used for nodes") diff --git a/main/src/Pymodules/PybindUtilities.h b/main/src/Pymodules/PybindUtilities.h index da9a8164..74e673de 100644 --- a/main/src/Pymodules/PybindUtilities.h +++ b/main/src/Pymodules/PybindUtilities.h @@ -189,8 +189,11 @@ namespace EPyUtils { //! Expect Index or ArrayNodeIndex; otherwise throws error inline ArrayIndex GetArrayNodeIndexSafely(const py::object& pyObject) { - - if (py::isinstance(pyObject) || py::isinstance(pyObject)) + if (pyObject.is_none()) + { + return ArrayIndex(); //empty list + } + else if (py::isinstance(pyObject) || py::isinstance(pyObject)) { py::list pylist = py::cast(pyObject); //also works for numpy arrays (but gives different type!) ArrayIndex indexList; //initialize empty list @@ -246,7 +249,11 @@ namespace EPyUtils { //! Expect Index or ArrayMarkerIndex; otherwise throws error inline ArrayIndex GetArrayMarkerIndexSafely(const py::object& pyObject) { - if (py::isinstance(pyObject) || py::isinstance(pyObject)) + if (pyObject.is_none()) + { + return ArrayIndex(); //empty list + } + else if (py::isinstance(pyObject) || py::isinstance(pyObject)) { py::list pylist = py::cast(pyObject); //hopefully also works for numpy arrays .. TEST! ArrayIndex indexList; //initialize empty list @@ -277,7 +284,11 @@ namespace EPyUtils { //! Expect Index or ArraySensorIndex; otherwise throws error inline ArrayIndex GetArraySensorIndexSafely(const py::object& pyObject) { - if (py::isinstance(pyObject) || py::isinstance(pyObject)) + if (pyObject.is_none()) + { + return ArrayIndex(); //empty list + } + else if (py::isinstance(pyObject) || py::isinstance(pyObject)) { py::list pylist = py::cast(pyObject); //hopefully also works for numpy arrays .. TEST! ArrayIndex indexList; //initialize empty list diff --git a/main/src/Solver/CSolver.cpp b/main/src/Solver/CSolver.cpp index 538a5319..0243f41e 100644 --- a/main/src/Solver/CSolver.cpp +++ b/main/src/Solver/CSolver.cpp @@ -120,55 +120,56 @@ void SolverLocalData::CleanUpMemory() void SolverLocalData::SetLinearSolverType(LinearSolverType linearSolverType, bool reuseAnalyzedPattern, bool ignoreSingularJacobian, Real pivotThreshold) { - systemJacobian = &systemJacobianDense; - systemMassMatrix = &systemMassMatrixDense; - jacobianAE = &jacobianAEdense; + //std::cout << "SetLinearSolverType" << std::flush; //pout << "linearSolverType=" << linearSolverType << "\n"; if (EXUstd::IsOfType(LinearSolverType::Dense, linearSolverType)) { + //std::cout << "SetLinearSolverType1a" << std::flush; systemJacobian = &systemJacobianDense; systemMassMatrix = &systemMassMatrixDense; jacobianAE = &jacobianAEdense; #ifdef USE_EIGEN_DENSE_SOLVER Index flagEigen = (Index)(linearSolverType == LinearSolverType::EigenDense); - flagEigen += flagEigen * (Index)ignoreSingularJacobian; //flag becomes 0 or 2 + flagEigen += flagEigen * (Index)ignoreSingularJacobian; //flag only added in EigenDense case systemJacobianDense.UseEigenSolverType() = flagEigen; systemMassMatrixDense.UseEigenSolverType() = flagEigen; jacobianAEdense.UseEigenSolverType() = flagEigen; #endif } - else if (linearSolverType == LinearSolverType::EigenSparse) - { - systemJacobian = &systemJacobianSparse; - systemMassMatrix = &systemMassMatrixSparse; - jacobianAE = &jacobianAEsparse; - } - else if (linearSolverType == LinearSolverType::EigenSparseSymmetric) + else { + //std::cout << "SetLinearSolverType1b" << std::flush; systemJacobian = &systemJacobianSparse; systemMassMatrix = &systemMassMatrixSparse; jacobianAE = &jacobianAEsparse; - - systemJacobian->AssumeSymmetric(); - systemMassMatrix->AssumeSymmetric(); - jacobianAE->AssumeSymmetric(); } - else + + //std::cout << "SetLinearSolverType2" << std::flush; + if (linearSolverType == LinearSolverType::EigenSparseSymmetric) { - CHECKandTHROWstring("SolverLocalData::SetLinearSolverType: invalid linearSolverType"); + systemJacobianSparse.AssumeSymmetric(); + systemMassMatrixSparse.AssumeSymmetric(); + jacobianAEsparse.AssumeSymmetric(); } - if (!EXUstd::IsOfType(LinearSolverType::Dense, linearSolverType)) + //{ + // CHECKandTHROWstring("SolverLocalData::SetLinearSolverType: invalid linearSolverType"); + //} + + if (!EXUstd::IsOfType(LinearSolverType::Dense, linearSolverType)) { - systemJacobian->SetReuseAnalyzedPattern(reuseAnalyzedPattern); - systemMassMatrix->SetReuseAnalyzedPattern(reuseAnalyzedPattern); - jacobianAE->SetReuseAnalyzedPattern(reuseAnalyzedPattern); + //std::cout << "SetLinearSolverType3" << std::flush; + systemJacobianSparse.SetReuseAnalyzedPattern(reuseAnalyzedPattern); + systemMassMatrixSparse.SetReuseAnalyzedPattern(reuseAnalyzedPattern); + jacobianAEsparse.SetReuseAnalyzedPattern(reuseAnalyzedPattern); } - systemJacobian->PivotThreshold() = pivotThreshold; + //std::cout << "SetLinearSolverType4" << std::flush; + systemJacobian->PivotThreshold() = pivotThreshold; systemMassMatrix->PivotThreshold() = pivotThreshold; jacobianAE->PivotThreshold() = pivotThreshold; + //std::cout << "SetLinearSolverType5" << std::flush; } diff --git a/main/src/System/CContact.cpp b/main/src/System/CContact.cpp index eedd926f..0ed494c7 100644 --- a/main/src/System/CContact.cpp +++ b/main/src/System/CContact.cpp @@ -2692,6 +2692,7 @@ ArrayIndex* GeneralContact::GetActiveContacts(Contact::TypeIndex selectedTypeInd Index nItemsAvailable = globalContactIndexOffsets[selectedTypeIndex+1] - globalContactIndexOffsets[selectedTypeIndex]; CHECKandTHROW(itemIndex < nItemsAvailable, "GetContactInteractions: itemIndex is out of available range"); + __UNUSED(nItemsAvailable); //avoid unused variable warnings Index globalIndex = itemIndex + globalContactIndexOffsets[selectedTypeIndex]; diff --git a/main/src/Utilities/ReleaseAssert.h b/main/src/Utilities/ReleaseAssert.h index ba504dd7..32f70c0c 100644 --- a/main/src/Utilities/ReleaseAssert.h +++ b/main/src/Utilities/ReleaseAssert.h @@ -35,24 +35,27 @@ //#define __FAST_EXUDYN_LINALG //defined as preprocessor flags #ifndef __FAST_EXUDYN_LINALG -#define __PYTHON_USERFUNCTION_CATCH__ //performs try/catch in all python user functions -#define __EXUDYN_RUNTIME_CHECKS__ //performs several runtime checks, which slows down performance in release or debug mode + #define __PYTHON_USERFUNCTION_CATCH__ //performs try/catch in all python user functions + #define __EXUDYN_RUNTIME_CHECKS__ //performs several runtime checks, which slows down performance in release or debug mode -//!check if _checkExpression is true; if no, trow std::exception(_exceptionMessage); _exceptionMessage will be a const char*, e.g. "VectorBase::operator[]: invalid index" -//!linalg matrix/vector access functions, memory allocation, array classes and solvers will throw exceptions if the errors are not recoverable -//!this, as a consequence leads to a pybind exception translated to python; the message will be visible in python; for __FAST_EXUDYN_LINALG, no checks are performed + //!check if _checkExpression is true; if no, trow std::exception(_exceptionMessage); _exceptionMessage will be a const char*, e.g. "VectorBase::operator[]: invalid index" + //!linalg matrix/vector access functions, memory allocation, array classes and solvers will throw exceptions if the errors are not recoverable + //!this, as a consequence leads to a pybind exception translated to python; the message will be visible in python; for __FAST_EXUDYN_LINALG, no checks are performed -#define CHECKandTHROW(_checkExpression,_exceptionMessage) ((_checkExpression) ? 0 : throw EXUexception(_exceptionMessage)) -#define CHECKandTHROWcond(_checkExpression) ((_checkExpression) ? 0 : throw EXUexception("unexpected EXUDYN internal error")) -//always throw: -#define CHECKandTHROWstring(_exceptionMessage) (throw EXUexception(_exceptionMessage)) + #define CHECKandTHROW(_checkExpression,_exceptionMessage) ((_checkExpression) ? 0 : throw EXUexception(_exceptionMessage)) + #define CHECKandTHROWcond(_checkExpression) ((_checkExpression) ? 0 : throw EXUexception("unexpected EXUDYN internal error")) + //always throw: + #define CHECKandTHROWstring(_exceptionMessage) (throw EXUexception(_exceptionMessage)) #else //no checks in __FAST_EXUDYN_LINALG mode -#define CHECKandTHROW(_checkExpression,_exceptionMessage) -#define CHECKandTHROWcond(_checkExpression) -#define CHECKandTHROWstring(_exceptionMessage) + #define CHECKandTHROW(_checkExpression,_exceptionMessage) + #define CHECKandTHROWcond(_checkExpression) + #define CHECKandTHROWstring(_exceptionMessage) #endif +//add some macro to define unused variable, not trowing compiler warning, especially in case of __FAST_EXUDYN_LINALG where some variables will not be used any more +#define __UNUSED(x) ((void)(true ? 0 : (x))) + #define __EXUDYN_invalid_local_node0 "Object:GetNodeNumber: invalid call to local node number" //workaround to avoid string in object definition file #define __EXUDYN_invalid_local_node "Object:GetNodeNumber: invalid local node number > 0" //workaround to avoid string in object definition file #define __EXUDYN_invalid_local_node1 "Object:GetNodeNumber: invalid local node number > 1" //workaround to avoid string in object definition file diff --git a/main/src/Utilities/ResizableArray.h b/main/src/Utilities/ResizableArray.h index d0d947d0..ee692ba1 100644 --- a/main/src/Utilities/ResizableArray.h +++ b/main/src/Utilities/ResizableArray.h @@ -41,6 +41,7 @@ #include typedef ResizableArray ArrayReal; +typedef ResizableArray ArrayFloat; typedef ResizableArray ArrayIndex; typedef std::vector StdArrayIndex; //needed for user functions diff --git a/main/src/pythonGenerator/autoGenerateHelper.py b/main/src/pythonGenerator/autoGenerateHelper.py index 895bdc0b..3a9ea567 100644 --- a/main/src/pythonGenerator/autoGenerateHelper.py +++ b/main/src/pythonGenerator/autoGenerateHelper.py @@ -72,6 +72,7 @@ def Str2Latex(s, isDefaultValue=False, replaceCurlyBracket=True): #replace _ and (s.find('Vector') != -1) or (s.find('Matrix') != -1) or (s.find('Transformations66List') != -1) or (s.find('Matrix3DList') != -1) or (s.find('JointTypeList') != -1) ): + s = s.replace('ArrayFloat','') #correct python notation s = s.replace('ArrayIndex','') #correct python notation s = s.replace('JointTypeList','') #KinematicTree s = s.replace('Vector3DList','') #KinematicTree @@ -138,7 +139,11 @@ def DefaultValue2Python(s): s = s.replace('EXUmath::zeroMatrix3D','IIDiagMatrix(rowsColumns=3,value=0)') #replace with itemInterface diagonal matrix s = s.replace('Matrix()','[]') #replace empty matrix with emtpy list s = s.replace('MatrixI()','[]') #replace empty matrix with emtpy list - s = s.replace('PyMatrixContainer()','[]') #initialization in iteminterface with empty array + s = s.replace('PyMatrixContainer()','None') #initialization in iteminterface with empty array + s = s.replace('Vector2DList()','None') #initialization in iteminterface with empty array + s = s.replace('Vector3DList()','None') #initialization in iteminterface with empty array + s = s.replace('Vector6DList()','None') #initialization in iteminterface with empty array + s = s.replace('Matrix3DList()','None') #initialization in iteminterface with empty array s = s.replace('BeamSectionGeometry()','exudyn.BeamSectionGeometry()') #initialization in iteminterface with empty array s = s.replace('BeamSection()','exudyn.BeamSection()') #initialization in iteminterface with empty array @@ -161,11 +166,16 @@ def DefaultValue2Python(s): ): s = s.replace('ArrayIndex','') #correct python notation s = s.replace('JointTypeList','') #KinematicTree - s = s.replace('Vector6DList','') #KinematicTree - s = s.replace('Vector3DList','') #KinematicTree - s = s.replace('Matrix3DList','') #KinematicTree - s = s.replace('Vector2DList','') #BeamSectionGeometry - s = s.replace('PyVector2DList','') #BeamSectionGeometry + # s = s.replace('Vector2DList','') #BeamSectionGeometry + # s = s.replace('Vector3DList','') #KinematicTree + # s = s.replace('Vector6DList','') #KinematicTree + # s = s.replace('Matrix3DList','') #KinematicTree + + #s = s.replace('PyVector2DList','') #BeamSectionGeometry + if s.find('PyVector2DList') != -1: + print(s) + raise ValueError('autoGenerateHelper(): unexpected PyVector2DList found') + s = s.replace('Vector9D','') #correct python notation s = s.replace('Vector7D','') #correct python notation; rigid body coordinates s = s.replace('Vector6D','') #correct python notation; inertia parameters diff --git a/main/src/pythonGenerator/autoGeneratePyBindings.py b/main/src/pythonGenerator/autoGeneratePyBindings.py index 23cd15ff..a2109d50 100644 --- a/main/src/pythonGenerator/autoGeneratePyBindings.py +++ b/main/src/pythonGenerator/autoGeneratePyBindings.py @@ -1045,7 +1045,10 @@ plr.DefLatexFinishTable()#only finalize latex table -plr.DefLatexStartClass('MainSystem Python extensions','This section represents [experimental] extensions to MainSystem, which are direct calls to Python functions, such as PlotSensor or SolveDynamic; these extensions allow a more intuitive interaction with the MainSystem class, see the following example. For activation, import \\texttt{exudyn.mainSystemExtensions} or \\texttt{exudyn.utilities}', subSection=True,labelName='sec:mainsystem:pythonExtensions') +#%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#create extensions +plr.DefLatexStartClass('MainSystem extensions (create)',"This section represents extensions to MainSystem, which are direct calls to Python functions; the 'create' extensions to simplify the creation of multibody systems, such as CreateMassPoint(...); these extensions allow a more intuitive interaction with the MainSystem class, see the following example. For activation, import \\texttt{exudyn.mainSystemExtensions} or \\texttt{exudyn.utilities}", subSection=True,labelName='sec:mainsystem:pythonExtensionsCreate') plr.AddDocuCodeBlock(code=""" import exudyn as exu @@ -1056,16 +1059,33 @@ # #create rigid body b1=mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, sideLengths=[0.1,0.1,1]), - referencePosition = [1,0,0], - gravity = [0,0,-9.81]) + referencePosition = [1,0,0], + gravity = [0,0,-9.81]) +""") + +plr.sLatex += '\\input{MainSystemCreateExt.tex}\n\n' + +with open('generated/MainSystemCreateExt.rst', 'r') as f: + plr.sRST += f.read() + +#%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +#function extensions +plr.DefLatexStartClass('MainSystem extensions (general)','This section represents general extensions to MainSystem, which are direct calls to Python functions, such as PlotSensor or SolveDynamic; these extensions allow a more intuitive interaction with the MainSystem class, see the following example. For activation, import \\texttt{exudyn.mainSystemExtensions} or \\texttt{exudyn.utilities}', subSection=True,labelName='sec:mainsystem:pythonExtensions') + +plr.AddDocuCodeBlock(code=""" +#this example sketches the usage +#for complete examples see Examples/ or TestModels/ folders +#create some multibody system (mbs) first: +# ... +# +#compute system degree of freedom: +mbs.ComputeSystemDegreeOfFreedom(verbose=True) # -mbs.Assemble() #call solver function directly from mbs: -mbs.ComputeSystemDegreeOfFreedom() -simulationSettings = exu.SimulationSettings() -mbs.SolveDynamic(simulationSettings) +mbs.SolveDynamic(exu.SimulationSettings()) # -#plot sensor sBody0 directly from mbs: +#plot sensor directly from mbs: mbs.PlotSensor(...) """) @@ -1074,6 +1094,7 @@ with open('generated/MainSystemExt.rst', 'r') as f: plr.sRST += f.read() + #%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #NODE @@ -2389,6 +2410,24 @@ description="get copy of list item with 'index' as vector", isLambdaFunction = True, ) +#copy and deepcopy according to Pybind11, see https://pybind11.readthedocs.io/en/latest/advanced/classes.html#pickling-support +# .def("__copy__", [](const Copyable &self) { +# return Copyable(self); +# }) +# .def("__deepcopy__", [](const Copyable &self, py::dict) { +# return Copyable(self); +# }, "memo"_a); +plr.DefPyFunctionAccess(cClass=classStr, pyName='__copy__', + cName='[](const PyVector3DList &item) {\n return PyVector3DList(item); }', + description="copy method to be used for copy.copy(...); in fact does already deep copy", + isLambdaFunction = True, + ) + +plr.DefPyFunctionAccess(cClass=classStr, pyName='__deepcopy__', + cName='[](const PyVector3DList &item, py::dict) {\n return PyVector3DList(item); }, "memo"_a', + description="deepcopy method to be used for copy.copy(...)", + isLambdaFunction = True, + ) plr.DefPyFunctionAccess(cClass=classStr, pyName='__repr__', cName='[](const PyVector3DList &item) {\n return EXUstd::ToString(item.GetPythonObject()); }', @@ -2447,6 +2486,18 @@ isLambdaFunction = True, ) +plr.DefPyFunctionAccess(cClass=classStr, pyName='__copy__', + cName='[](const PyVector2DList &item) {\n return PyVector2DList(item); }', + description="copy method to be used for copy.copy(...); in fact does already deep copy", + isLambdaFunction = True, + ) + +plr.DefPyFunctionAccess(cClass=classStr, pyName='__deepcopy__', + cName='[](const PyVector2DList &item, py::dict) {\n return PyVector2DList(item); }, "memo"_a', + description="deepcopy method to be used for copy.copy(...)", + isLambdaFunction = True, + ) + plr.DefPyFunctionAccess(cClass=classStr, pyName='__repr__', cName='[](const PyVector2DList &item) {\n return EXUstd::ToString(item.GetPythonObject()); }', description="return the string representation of the Vector2DList data, e.g.: print(data)", @@ -2501,6 +2552,18 @@ isLambdaFunction = True, ) +plr.DefPyFunctionAccess(cClass=classStr, pyName='__copy__', + cName='[](const PyVector6DList &item) {\n return PyVector6DList(item); }', + description="copy method to be used for copy.copy(...); in fact does already deep copy", + isLambdaFunction = True, + ) + +plr.DefPyFunctionAccess(cClass=classStr, pyName='__deepcopy__', + cName='[](const PyVector6DList &item, py::dict) {\n return PyVector6DList(item); }, "memo"_a', + description="deepcopy method to be used for copy.copy(...)", + isLambdaFunction = True, + ) + plr.DefPyFunctionAccess(cClass=classStr, pyName='__repr__', cName='[](const PyVector6DList &item) {\n return EXUstd::ToString(item.GetPythonObject()); }', description="return the string representation of the Vector6DList data, e.g.: print(data)", diff --git a/main/src/pythonGenerator/doc2rst.py b/main/src/pythonGenerator/doc2rst.py index f063a414..7668827f 100644 --- a/main/src/pythonGenerator/doc2rst.py +++ b/main/src/pythonGenerator/doc2rst.py @@ -612,7 +612,7 @@ def ParseFile(fileName, header = ''): 'Rot':'rotation', 'Rxyz':'rotation parameterization: consecutive rotations around x, y and z-axis (Tait-Bryan)', 'STL':'STereoLithography', - 'T66':'Pl\"ucker transformation', + 'T66':'Pl\\"ucker transformation', 'trig':'triangle (in graphics)', } @@ -639,7 +639,8 @@ def ParseFile(fileName, header = ''): file.write(abbrvTex) file.close() -file=open(destDir+rstFolder+'Abbreviations.rst','w') +#rst files should be utf8 for special characters +file=io.open(destDir+rstFolder+'Abbreviations.rst','w',encoding='utf8') file.write(abbrvRST) file.close() diff --git a/main/src/pythonGenerator/exudynVersion.py b/main/src/pythonGenerator/exudynVersion.py index c16d52d6..36fe8b1c 100644 --- a/main/src/pythonGenerator/exudynVersion.py +++ b/main/src/pythonGenerator/exudynVersion.py @@ -1,4 +1,4 @@ # version info automatically generated by tracker; generated by Johannes Gerstmayr -# last modified = 2023-06-12 -exudynVersionString = "1.6.164.dev1" +# last modified = 2023-07-19 +exudynVersionString = "1.7.0" diff --git a/main/src/pythonGenerator/generated/MainSystemCreateExt.rst b/main/src/pythonGenerator/generated/MainSystemCreateExt.rst new file mode 100644 index 00000000..fb5a5d90 --- /dev/null +++ b/main/src/pythonGenerator/generated/MainSystemCreateExt.rst @@ -0,0 +1,532 @@ + + +.. _sec-mainsystemextensions-createmasspoint: + +Function: CreateMassPoint +^^^^^^^^^^^^^^^^^^^^^^^^^ +`CreateMassPoint `__\ (\ ``name = ''``\ , \ ``referencePosition = [0.,0.,0.]``\ , \ ``initialDisplacement = [0.,0.,0.]``\ , \ ``initialVelocity = [0.,0.,0.]``\ , \ ``physicsMass = 0``\ , \ ``gravity = [0.,0.,0.]``\ , \ ``graphicsDataList = []``\ , \ ``drawSize = -1``\ , \ ``color = [-1.,-1.,-1.,-1.]``\ , \ ``show = True``\ , \ ``create2D = False``\ , \ ``returnDict = False``\ ) + +- | \ *function description*\ : + | helper function to create 2D or 3D mass point object and node, using arguments as in NodePoint and MassPoint + | - NOTE that this function is added to MainSystem via Python function MainSystemCreateMassPoint. +- | \ *input*\ : + | \ ``name``\ : name string for object, node is 'Node:'+name + | \ ``referencePosition``\ : reference coordinates for point node (always a 3D vector, no matter if 2D or 3D mass) + | \ ``initialDisplacement``\ : initial displacements for point node (always a 3D vector, no matter if 2D or 3D mass) + | \ ``initialVelocity``\ : initial velocities for point node (always a 3D vector, no matter if 2D or 3D mass) + | \ ``physicsMass``\ : mass of mass point + | \ ``gravity``\ : gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) + | \ ``graphicsDataList``\ : list of GraphicsData for optional mass visualization + | \ ``drawSize``\ : general drawing size of node + | \ ``color``\ : color of node + | \ ``show``\ : True: if graphicsData list is empty, node is shown, otherwise body is shown; otherwise, nothing is shown + | \ ``create2D``\ : if False, create NodePoint2D and MassPoint2D + | \ ``returnDict``\ : if False, returns object index; if True, returns dict of all information on created object and node +- | \ *output*\ : + | Union[dict, ObjectIndex]; returns mass point object index or dict with all data on request (if returnDict=True) +- | \ *example*\ : + +.. code-block:: python + + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0=mbs.CreateMassPoint(referencePosition = [0,0,0], + initialVelocity = [2,5,0], + physicsMass = 1, gravity = [0,-9.81,0], + drawSize = 0.5, color=color4blue) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `chatGPTupdate.py `_\ (Ex), \ `springDamperTutorialNew.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) + + + +.. _sec-mainsystemextensions-createrigidbody: + +Function: CreateRigidBody +^^^^^^^^^^^^^^^^^^^^^^^^^ +`CreateRigidBody `__\ (\ ``name = ''``\ , \ ``referencePosition = [0.,0.,0.]``\ , \ ``referenceRotationMatrix = np.eye(3)``\ , \ ``initialVelocity = [0.,0.,0.]``\ , \ ``initialAngularVelocity = [0.,0.,0.]``\ , \ ``initialDisplacement = None``\ , \ ``initialRotationMatrix = None``\ , \ ``inertia = None``\ , \ ``gravity = [0.,0.,0.]``\ , \ ``nodeType = exudyn.NodeType.RotationEulerParameters``\ , \ ``graphicsDataList = []``\ , \ ``drawSize = -1``\ , \ ``color = [-1.,-1.,-1.,-1.]``\ , \ ``show = True``\ , \ ``create2D = False``\ , \ ``returnDict = False``\ ) + +- | \ *function description*\ : + | helper function to create 3D (or 2D) rigid body object and node; all quantities are global (angular velocity, etc.) + | - NOTE that this function is added to MainSystem via Python function MainSystemCreateRigidBody. +- | \ *input*\ : + | \ ``name``\ : name string for object, node is 'Node:'+name + | \ ``referencePosition``\ : reference position vector for rigid body node (always a 3D vector, no matter if 2D or 3D body) + | \ ``referenceRotationMatrix``\ : reference rotation matrix for rigid body node (always 3D matrix, no matter if 2D or 3D body) + | \ ``initialVelocity``\ : initial translational velocity vector for node (always a 3D vector, no matter if 2D or 3D body) + | \ ``initialAngularVelocity``\ : initial angular velocity vector for node (always a 3D vector, no matter if 2D or 3D body) + | \ ``initialDisplacement``\ : initial translational displacement vector for node (always a 3D vector, no matter if 2D or 3D body); these displacements are deviations from reference position, e.g. for a finite element node [None: unused] + | \ ``initialRotationMatrix``\ : initial rotation provided as matrix (always a 3D matrix, no matter if 2D or 3D body); this rotation is superimposed to reference rotation [None: unused] + | \ ``inertia``\ : an instance of class RigidBodyInertia, see rigidBodyUtilities; may also be from derived class (InertiaCuboid, InertiaMassPoint, InertiaCylinder, ...) + | \ ``gravity``\ : gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) + | \ ``graphicsDataList``\ : list of GraphicsData for rigid body visualization; use graphicsDataUtilities function GraphicsData...(...) + | \ ``drawSize``\ : general drawing size of node + | \ ``color``\ : color of node + | \ ``show``\ : True: if graphicsData list is empty, node is shown, otherwise body is shown; False: nothing is shown + | \ ``create2D``\ : if False, create NodePoint2D and MassPoint2D + | \ ``returnDict``\ : if False, returns object index; if True, returns dict of all information on created object and node +- | \ *output*\ : + | Union[dict, ObjectIndex]; returns rigid body object index (or dict with 'nodeNumber', 'objectNumber' and possibly 'loadNumber' and 'markerBodyMass' if returnDict=True) +- | \ *example*\ : + +.. code-block:: python + + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [1,0,0], + initialVelocity = [2,5,0], + initialAngularVelocity = [5,0.5,0.7], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4red)]) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `addPrismaticJoint.py `_\ (Ex), \ `addRevoluteJoint.py `_\ (Ex), \ `chatGPTupdate.py `_\ (Ex), \ `graphicsDataExample.py `_\ (Ex), \ `rigidBodyTutorial3.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `computeODE2AEeigenvaluesTest.py `_\ (TM), \ `driveTrainTest.py `_\ (TM) + + + +.. _sec-mainsystemextensions-createspringdamper: + +Function: CreateSpringDamper +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`CreateSpringDamper `__\ (\ ``name = ''``\ , \ ``bodyOrNodeList = [None, None]``\ , \ ``localPosition0 = [0.,0.,0.]``\ , \ ``localPosition1 = [0.,0.,0.]``\ , \ ``referenceLength = None``\ , \ ``stiffness = 0.``\ , \ ``damping = 0.``\ , \ ``force = 0.``\ , \ ``velocityOffset = 0.``\ , \ ``show = True``\ , \ ``drawSize = -1``\ , \ ``color = color4default``\ ) + +- | \ *function description*\ : + | helper function to create SpringDamper connector, using arguments from ObjectConnectorSpringDamper; similar interface as CreateDistanceConstraint(...) + | - NOTE that this function is added to MainSystem via Python function MainSystemCreateSpringDamper. +- | \ *input*\ : + | \ ``name``\ : name string for connector; markers get Marker0:name and Marker1:name + | \ ``bodyOrNodeList``\ : a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types + | \ ``localPosition0``\ : local position (as 3D list or numpy array) on body0, if not a node number + | \ ``localPosition1``\ : local position (as 3D list or numpy array) on body1, if not a node number + | \ ``referenceLength``\ : if None, length is computed from reference position of bodies or nodes; if not None, this scalar reference length is used for spring + | \ ``stiffness``\ : scalar stiffness coefficient + | \ ``damping``\ : scalar damping coefficient + | \ ``force``\ : scalar additional force applied + | \ ``velocityOffset``\ : scalar offset: if referenceLength is changed over time, the velocityOffset may be changed accordingly to emulate a reference motion + | \ ``show``\ : if True, connector visualization is drawn + | \ ``drawSize``\ : general drawing size of connector + | \ ``color``\ : color of connector +- | \ *output*\ : + | ObjectIndex; returns index of newly created object +- | \ *example*\ : + +.. code-block:: python + + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2,5,0], + physicsMass = 1, gravity = [0,-9.81,0], + drawSize = 0.5, color=color4blue) + oGround = mbs.AddObject(ObjectGround()) + #add vertical spring + oSD = mbs.CreateSpringDamper(bodyOrNodeList=[oGround, b0], + localPosition0=[2,1,0], + localPosition1=[0,0,0], + stiffness=1e4, damping=1e2, + drawSize=0.2) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + SC.visualizationSettings.nodes.drawNodesAsPoint=False + mbs.SolveDynamic(simulationSettings = simulationSettings) + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `chatGPTupdate.py `_\ (Ex), \ `springDamperTutorialNew.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) + + + +.. _sec-mainsystemextensions-createcartesianspringdamper: + +Function: CreateCartesianSpringDamper +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`CreateCartesianSpringDamper `__\ (\ ``name = ''``\ , \ ``bodyOrNodeList = [None, None]``\ , \ ``localPosition0 = [0.,0.,0.]``\ , \ ``localPosition1 = [0.,0.,0.]``\ , \ ``stiffness = [0.,0.,0.]``\ , \ ``damping = [0.,0.,0.]``\ , \ ``offset = [0.,0.,0.]``\ , \ ``show = True``\ , \ ``drawSize = -1``\ , \ ``color = color4default``\ ) + +- | \ *function description*\ : + | helper function to create CartesianSpringDamper connector, using arguments from ObjectConnectorCartesianSpringDamper + | - NOTE that this function is added to MainSystem via Python function MainSystemCreateCartesianSpringDamper. +- | \ *input*\ : + | \ ``name``\ : name string for connector; markers get Marker0:name and Marker1:name + | \ ``bodyOrNodeList``\ : a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types + | \ ``localPosition0``\ : local position (as 3D list or numpy array) on body0, if not a node number + | \ ``localPosition1``\ : local position (as 3D list or numpy array) on body1, if not a node number + | \ ``stiffness``\ : stiffness coefficients (as 3D list or numpy array) + | \ ``damping``\ : damping coefficients (as 3D list or numpy array) + | \ ``offset``\ : offset vector (as 3D list or numpy array) + | \ ``show``\ : if True, connector visualization is drawn + | \ ``drawSize``\ : general drawing size of connector + | \ ``color``\ : color of connector +- | \ *output*\ : + | ObjectIndex; returns index of newly created object +- | \ *example*\ : + +.. code-block:: python + + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateMassPoint(referencePosition = [7,0,0], + physicsMass = 1, gravity = [0,-9.81,0], + drawSize = 0.5, color=color4blue) + oGround = mbs.AddObject(ObjectGround()) + oSD = mbs.CreateCartesianSpringDamper(bodyOrNodeList=[oGround, b0], + localPosition0=[7.5,1,0], + localPosition1=[0,0,0], + stiffness=[200,2000,0], damping=[2,20,0], + drawSize=0.2) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + SC.visualizationSettings.nodes.drawNodesAsPoint=False + mbs.SolveDynamic(simulationSettings = simulationSettings) + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `chatGPTupdate.py `_\ (Ex), \ `computeODE2AEeigenvaluesTest.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM) + + + +.. _sec-mainsystemextensions-createrigidbodyspringdamper: + +Function: CreateRigidBodySpringDamper +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`CreateRigidBodySpringDamper `__\ (\ ``name = ''``\ , \ ``bodyOrNodeList = [None, None]``\ , \ ``localPosition0 = [0.,0.,0.]``\ , \ ``localPosition1 = [0.,0.,0.]``\ , \ ``stiffness = np.zeros((6,6))``\ , \ ``damping = np.zeros((6,6))``\ , \ ``offset = [0.,0.,0.,0.,0.,0.]``\ , \ ``rotationMatrixJoint = np.eye(3)``\ , \ ``useGlobalFrame = True``\ , \ ``show = True``\ , \ ``drawSize = -1``\ , \ ``color = color4default``\ ) + +- | \ *function description*\ : + | helper function to create RigidBodySpringDamper connector, using arguments from ObjectConnectorRigidBodySpringDamper + | - NOTE that this function is added to MainSystem via Python function MainSystemCreateRigidBodySpringDamper. +- | \ *input*\ : + | \ ``name``\ : name string for connector; markers get Marker0:name and Marker1:name + | \ ``bodyOrNodeList``\ : a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types + | \ ``localPosition0``\ : local position (as 3D list or numpy array) on body0, if not a node number + | \ ``localPosition1``\ : local position (as 3D list or numpy array) on body1, if not a node number + | \ ``stiffness``\ : stiffness coefficients (as 6D matrix or numpy array) + | \ ``damping``\ : damping coefficients (as 6D matrix or numpy array) + | \ ``offset``\ : offset vector (as 6D list or numpy array) + | \ ``rotationMatrixJoint``\ : additional rotation matrix; in case useGlobalFrame=False, it transforms body0/node0 local frame to joint frame; if useGlobalFrame=True, it transforms global frame to joint frame + | \ ``useGlobalFrame``\ : if False, the rotationMatrixJoint is defined in the local coordinate system of body0 + | \ ``show``\ : if True, connector visualization is drawn + | \ ``drawSize``\ : general drawing size of connector + | \ ``color``\ : color of connector +- | \ *output*\ : + | ObjectIndex; returns index of newly created object +- | \ *example*\ : + +.. code-block:: python + + #TODO + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `bricardMechanism.py `_\ (TM) + + + +.. _sec-mainsystemextensions-createrevolutejoint: + +Function: CreateRevoluteJoint +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`CreateRevoluteJoint `__\ (\ ``name = ''``\ , \ ``bodyNumbers = [None, None]``\ , \ ``position = []``\ , \ ``axis = []``\ , \ ``useGlobalFrame = True``\ , \ ``show = True``\ , \ ``axisRadius = 0.1``\ , \ ``axisLength = 0.4``\ , \ ``color = color4default``\ ) + +- | \ *function description*\ : + | Create revolute joint between two bodies; definition of joint position and axis in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers, markerRotation and other quantities are automatically computed + | - NOTE that this function is added to MainSystem via Python function MainSystemCreateRevoluteJoint. +- | \ *input*\ : + | \ ``name``\ : name string for joint; markers get Marker0:name and Marker1:name + | \ ``bodyNumbers``\ : a list of object numbers for body0 and body1; must be rigid body or ground object + | \ ``position``\ : a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 + | \ ``axis``\ : a 3D vector as list or np.array: if useGlobalFrame=True it describes the global rotation axis of the joint in reference configuration; else: local axis in body0 + | \ ``useGlobalFrame``\ : if False, the point and axis vectors are defined in the local coordinate system of body0 + | \ ``show``\ : if True, connector visualization is drawn + | \ ``axisRadius``\ : radius of axis for connector graphical representation + | \ ``axisLength``\ : length of axis for connector graphical representation + | \ ``color``\ : color of connector +- | \ *output*\ : + | [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +- | \ *example*\ : + +.. code-block:: python + + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [3,0,0], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4steelblue)]) + oGround = mbs.AddObject(ObjectGround()) + mbs.CreateRevoluteJoint(bodyNumbers=[oGround, b0], position=[2.5,0,0], axis=[0,0,1], + useGlobalFrame=True, axisRadius=0.02, axisLength=0.14) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `addRevoluteJoint.py `_\ (Ex), \ `chatGPTupdate.py `_\ (Ex), \ `rigidBodyTutorial3.py `_\ (Ex), \ `solutionViewerTest.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM), \ `perf3DRigidBodies.py `_\ (TM) + + + +.. _sec-mainsystemextensions-createprismaticjoint: + +Function: CreatePrismaticJoint +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`CreatePrismaticJoint `__\ (\ ``name = ''``\ , \ ``bodyNumbers = [None, None]``\ , \ ``position = []``\ , \ ``axis = []``\ , \ ``useGlobalFrame = True``\ , \ ``show = True``\ , \ ``axisRadius = 0.1``\ , \ ``axisLength = 0.4``\ , \ ``color = color4default``\ ) + +- | \ *function description*\ : + | Create prismatic joint between two bodies; definition of joint position and axis in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers, markerRotation and other quantities are automatically computed + | - NOTE that this function is added to MainSystem via Python function MainSystemCreatePrismaticJoint. +- | \ *input*\ : + | \ ``name``\ : name string for joint; markers get Marker0:name and Marker1:name + | \ ``bodyNumbers``\ : a list of object numbers for body0 and body1; must be rigid body or ground object + | \ ``position``\ : a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 + | \ ``axis``\ : a 3D vector as list or np.array containing the global translation axis of the joint in reference configuration + | \ ``useGlobalFrame``\ : if False, the point and axis vectors are defined in the local coordinate system of body0 + | \ ``show``\ : if True, connector visualization is drawn + | \ ``axisRadius``\ : radius of axis for connector graphical representation + | \ ``axisLength``\ : length of axis for connector graphical representation + | \ ``color``\ : color of connector +- | \ *output*\ : + | [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +- | \ *example*\ : + +.. code-block:: python + + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [4,0,0], + initialVelocity = [0,4,0], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4steelblue)]) + oGround = mbs.AddObject(ObjectGround()) + mbs.CreatePrismaticJoint(bodyNumbers=[oGround, b0], position=[3.5,0,0], axis=[0,1,0], + useGlobalFrame=True, axisRadius=0.02, axisLength=1) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `addPrismaticJoint.py `_\ (Ex), \ `chatGPTupdate.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) + + + +.. _sec-mainsystemextensions-createsphericaljoint: + +Function: CreateSphericalJoint +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`CreateSphericalJoint `__\ (\ ``name = ''``\ , \ ``bodyNumbers = [None, None]``\ , \ ``position = []``\ , \ ``constrainedAxes = [1,1,1]``\ , \ ``useGlobalFrame = True``\ , \ ``show = True``\ , \ ``jointRadius = 0.1``\ , \ ``color = color4default``\ ) + +- | \ *function description*\ : + | Create spherical joint between two bodies; definition of joint position in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers are automatically computed + | - NOTE that this function is added to MainSystem via Python function MainSystemCreateSphericalJoint. +- | \ *input*\ : + | \ ``name``\ : name string for joint; markers get Marker0:name and Marker1:name + | \ ``bodyNumbers``\ : a list of object numbers for body0 and body1; must be mass point, rigid body or ground object + | \ ``position``\ : a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 + | \ ``constrainedAxes``\ : flags, which determines which (global) translation axes are constrained; each entry may only be 0 (=free) axis or 1 (=constrained axis) + | \ ``useGlobalFrame``\ : if False, the point and axis vectors are defined in the local coordinate system of body0 + | \ ``show``\ : if True, connector visualization is drawn + | \ ``jointRadius``\ : radius of sphere for connector graphical representation + | \ ``color``\ : color of connector +- | \ *output*\ : + | [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +- | \ *example*\ : + +.. code-block:: python + + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [5,0,0], + initialAngularVelocity = [5,0,0], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4orange)]) + oGround = mbs.AddObject(ObjectGround()) + mbs.CreateSphericalJoint(bodyNumbers=[oGround, b0], position=[5.5,0,0], + useGlobalFrame=True, jointRadius=0.06) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `driveTrainTest.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM) + + + +.. _sec-mainsystemextensions-creategenericjoint: + +Function: CreateGenericJoint +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`CreateGenericJoint `__\ (\ ``name = ''``\ , \ ``bodyNumbers = [None, None]``\ , \ ``position = []``\ , \ ``rotationMatrixAxes = np.eye(3)``\ , \ ``constrainedAxes = [1,1,1, 1,1,1]``\ , \ ``useGlobalFrame = True``\ , \ ``show = True``\ , \ ``axesRadius = 0.1``\ , \ ``axesLength = 0.4``\ , \ ``color = color4default``\ ) + +- | \ *function description*\ : + | Create generic joint between two bodies; definition of joint position (position) and axes (rotationMatrixAxes) in global coordinates (useGlobalFrame=True) or in local coordinates of body0 (useGlobalFrame=False), where rotationMatrixAxes is an additional rotation to body0; all markers, markerRotation and other quantities are automatically computed + | - NOTE that this function is added to MainSystem via Python function MainSystemCreateGenericJoint. +- | \ *input*\ : + | \ ``name``\ : name string for joint; markers get Marker0:name and Marker1:name + | \ ``bodyNumber0``\ : a object number for body0, must be rigid body or ground object + | \ ``bodyNumber1``\ : a object number for body1, must be rigid body or ground object + | \ ``position``\ : a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 + | \ ``rotationMatrixAxes``\ : rotation matrix which defines orientation of constrainedAxes; if useGlobalFrame, this rotation matrix is global, else the rotation matrix is post-multiplied with the rotation of body0, identical with rotationMarker0 in the joint + | \ ``constrainedAxes``\ : flag, which determines which translation (0,1,2) and rotation (3,4,5) axes are constrained; each entry may only be 0 (=free) axis or 1 (=constrained axis); ALL constrained Axes are defined relative to reference rotation of body0 times rotation0 + | \ ``useGlobalFrame``\ : if False, the position is defined in the local coordinate system of body0, otherwise it is defined in global coordinates + | \ ``show``\ : if True, connector visualization is drawn + | \ ``axesRadius``\ : radius of axes for connector graphical representation + | \ ``axesLength``\ : length of axes for connector graphical representation + | \ ``color``\ : color of connector +- | \ *output*\ : + | [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +- | \ *example*\ : + +.. code-block:: python + + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [6,0,0], + initialAngularVelocity = [0,8,0], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4orange)]) + oGround = mbs.AddObject(ObjectGround()) + mbs.CreateGenericJoint(bodyNumbers=[oGround, b0], position=[5.5,0,0], + constrainedAxes=[1,1,1, 1,0,0], + rotationMatrixAxes=RotationMatrixX(0.125*pi), #tilt axes + useGlobalFrame=True, axesRadius=0.02, axesLength=0.2) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `bricardMechanism.py `_\ (TM), \ `computeODE2AEeigenvaluesTest.py `_\ (TM), \ `driveTrainTest.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM), \ `rigidBodyCOMtest.py `_\ (TM) + + + +.. _sec-mainsystemextensions-createdistanceconstraint: + +Function: CreateDistanceConstraint +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`CreateDistanceConstraint `__\ (\ ``name = ''``\ , \ ``bodyOrNodeList = [None, None]``\ , \ ``localPosition0 = [0.,0.,0.]``\ , \ ``localPosition1 = [0.,0.,0.]``\ , \ ``distance = None``\ , \ ``show = True``\ , \ ``drawSize = -1.``\ , \ ``color = color4default``\ ) + +- | \ *function description*\ : + | Create distance joint between two bodies; definition of joint positions in local coordinates of bodies or nodes; if distance=None, it is computed automatically from reference length; all markers are automatically computed + | - NOTE that this function is added to MainSystem via Python function MainSystemCreateDistanceConstraint. +- | \ *input*\ : + | \ ``name``\ : name string for joint; markers get Marker0:name and Marker1:name + | \ ``bodyOrNodeList``\ : a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types + | \ ``localPosition0``\ : local position (as 3D list or numpy array) on body0, if not a node number + | \ ``localPosition1``\ : local position (as 3D list or numpy array) on body1, if not a node number + | \ ``distance``\ : if None, distance is computed from reference position of bodies or nodes; if not None, this distance (which must be always larger than zero) is prescribed between the two positions + | \ ``show``\ : if True, connector visualization is drawn + | \ ``drawSize``\ : general drawing size of node + | \ ``color``\ : color of connector +- | \ *output*\ : + | [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint +- | \ *example*\ : + +.. code-block:: python + + import exudyn as exu + from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities + import numpy as np + SC = exu.SystemContainer() + mbs = SC.AddSystem() + b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, + sideLengths=[1,0.1,0.1]), + referencePosition = [6,0,0], + gravity = [0,-9.81,0], + graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], + color=color4orange)]) + m1 = mbs.CreateMassPoint(referencePosition=[5.5,-1,0], + physicsMass=1, drawSize = 0.2) + n1 = mbs.GetObject(m1)['nodeNumber'] + oGround = mbs.AddObject(ObjectGround()) + mbs.CreateDistanceConstraint(bodyOrNodeList=[oGround, b0], + localPosition0 = [6.5,1,0], + localPosition1 = [0.5,0,0], + distance=None, #automatically computed + drawSize=0.06) + mbs.CreateDistanceConstraint(bodyOrNodeList=[b0, n1], + localPosition0 = [-0.5,0,0], + localPosition1 = [0.,0.,0.], #must be [0,0,0] for Node + distance=None, #automatically computed + drawSize=0.06) + mbs.Assemble() + simulationSettings = exu.SimulationSettings() #takes currently set values or default values + simulationSettings.timeIntegration.numberOfSteps = 1000 + simulationSettings.timeIntegration.endTime = 2 + mbs.SolveDynamic(simulationSettings = simulationSettings) + + +Relevant Examples (Ex) and TestModels (TM) with weblink to github: + + \ `chatGPTupdate.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) + diff --git a/main/src/pythonGenerator/generated/MainSystemExt.rst b/main/src/pythonGenerator/generated/MainSystemExt.rst index d029e8a6..53ddf85b 100644 --- a/main/src/pythonGenerator/generated/MainSystemExt.rst +++ b/main/src/pythonGenerator/generated/MainSystemExt.rst @@ -38,543 +38,11 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github: -.. _sec-mainsystemextensions-createmasspoint: - -Function: CreateMassPoint -^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateMassPoint `__\ (\ ``name = ''``\ , \ ``referenceCoordinates = [0.,0.,0.]``\ , \ ``initialCoordinates = [0.,0.,0.]``\ , \ ``initialVelocities = [0.,0.,0.]``\ , \ ``physicsMass = 0``\ , \ ``gravity = [0.,0.,0.]``\ , \ ``graphicsDataList = []``\ , \ ``drawSize = -1``\ , \ ``color = [-1.,-1.,-1.,-1.]``\ , \ ``show = True``\ , \ ``create2D = False``\ , \ ``returnDict = False``\ ) - -- | \ *function description*\ : - | helper function to create 2D or 3D mass point object and node, using arguments as in NodePoint and MassPoint - | - NOTE that this function is added to MainSystem via Python function MainSystemCreateMassPoint. -- | \ *input*\ : - | \ ``name``\ : name string for object, node is 'Node:'+name - | \ ``referenceCoordinates``\ : reference coordinates for point node (always a 3D vector, no matter if 2D or 3D mass) - | \ ``initialCoordinates``\ : initial displacements for point node (always a 3D vector, no matter if 2D or 3D mass) - | \ ``initialVelocities``\ : initial velocities for point node (always a 3D vector, no matter if 2D or 3D mass) - | \ ``physicsMass``\ : mass of mass point - | \ ``gravity``\ : gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) - | \ ``graphicsDataList``\ : list of GraphicsData for optional mass visualization - | \ ``drawSize``\ : general drawing size of node - | \ ``color``\ : color of node - | \ ``show``\ : True: if graphicsData list is empty, node is shown, otherwise body is shown; otherwise, nothing is shown - | \ ``create2D``\ : if False, create NodePoint2D and MassPoint2D - | \ ``returnDict``\ : if False, returns object index; if True, returns dict of all information on created object and node -- | \ *output*\ : - | Union[dict, ObjectIndex]; returns mass point object index or dict with all data on request (if returnDict=True) -- | \ *example*\ : - -.. code-block:: python - - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0=mbs.CreateMassPoint(referenceCoordinates = [0,0,0], - initialVelocities = [2,5,0], - physicsMass = 1, gravity = [0,-9.81,0], - drawSize = 0.5, color=color4blue) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `springDamperTutorialNew.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) - - - -.. _sec-mainsystemextensions-createrigidbody: - -Function: CreateRigidBody -^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateRigidBody `__\ (\ ``name = ''``\ , \ ``referencePosition = [0.,0.,0.]``\ , \ ``referenceRotationMatrix = np.eye(3)``\ , \ ``initialVelocity = [0.,0.,0.]``\ , \ ``initialAngularVelocity = [0.,0.,0.]``\ , \ ``initialDisplacement = None``\ , \ ``initialRotationMatrix = None``\ , \ ``inertia = None``\ , \ ``gravity = [0.,0.,0.]``\ , \ ``nodeType = exudyn.NodeType.RotationEulerParameters``\ , \ ``graphicsDataList = []``\ , \ ``drawSize = -1``\ , \ ``color = [-1.,-1.,-1.,-1.]``\ , \ ``show = True``\ , \ ``create2D = False``\ , \ ``returnDict = False``\ ) - -- | \ *function description*\ : - | helper function to create 3D (or 2D) rigid body object and node; all quantities are global (angular velocity, etc.) - | - NOTE that this function is added to MainSystem via Python function MainSystemCreateRigidBody. -- | \ *input*\ : - | \ ``name``\ : name string for object, node is 'Node:'+name - | \ ``referencePosition``\ : reference position vector for rigid body node (always a 3D vector, no matter if 2D or 3D body) - | \ ``referenceRotationMatrix``\ : reference rotation matrix for rigid body node (always 3D matrix, no matter if 2D or 3D body) - | \ ``initialVelocity``\ : initial translational velocity vector for node (always a 3D vector, no matter if 2D or 3D body) - | \ ``initialAngularVelocity``\ : initial angular velocity vector for node (always a 3D vector, no matter if 2D or 3D body) - | \ ``initialDisplacement``\ : initial translational displacement vector for node (always a 3D vector, no matter if 2D or 3D body); these displacements are deviations from reference position, e.g. for a finite element node [None: unused] - | \ ``initialRotationMatrix``\ : initial rotation provided as matrix (always a 3D matrix, no matter if 2D or 3D body); this rotation is superimposed to reference rotation [None: unused] - | \ ``inertia``\ : an instance of class RigidBodyInertia, see rigidBodyUtilities; may also be from derived class (InertiaCuboid, InertiaMassPoint, InertiaCylinder, ...) - | \ ``gravity``\ : gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) - | \ ``graphicsDataList``\ : list of GraphicsData for rigid body visualization; use graphicsDataUtilities function GraphicsData...(...) - | \ ``drawSize``\ : general drawing size of node - | \ ``color``\ : color of node - | \ ``show``\ : True: if graphicsData list is empty, node is shown, otherwise body is shown; False: nothing is shown - | \ ``create2D``\ : if False, create NodePoint2D and MassPoint2D - | \ ``returnDict``\ : if False, returns object index; if True, returns dict of all information on created object and node -- | \ *output*\ : - | Union[dict, ObjectIndex]; returns rigid body object index (or dict with 'nodeNumber', 'objectNumber' and possibly 'loadNumber' and 'markerBodyMass' if returnDict=True) -- | \ *example*\ : - -.. code-block:: python - - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [1,0,0], - initialVelocity = [2,5,0], - initialAngularVelocity = [5,0.5,0.7], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4red)]) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `addPrismaticJoint.py `_\ (Ex), \ `addRevoluteJoint.py `_\ (Ex), \ `graphicsDataExample.py `_\ (Ex), \ `rigidBodyTutorial3.py `_\ (Ex), \ `rigidBodyTutorial3withMarkers.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `computeODE2AEeigenvaluesTest.py `_\ (TM), \ `driveTrainTest.py `_\ (TM) - - - -.. _sec-mainsystemextensions-createspringdamper: - -Function: CreateSpringDamper -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateSpringDamper `__\ (\ ``name = ''``\ , \ ``bodyOrNodeList = [None, None]``\ , \ ``localPosition0 = [0.,0.,0.]``\ , \ ``localPosition1 = [0.,0.,0.]``\ , \ ``referenceLength = None``\ , \ ``stiffness = 0.``\ , \ ``damping = 0.``\ , \ ``force = 0.``\ , \ ``velocityOffset = 0.``\ , \ ``show = True``\ , \ ``drawSize = -1``\ , \ ``color = color4default``\ ) - -- | \ *function description*\ : - | helper function to create SpringDamper connector, using arguments from ObjectConnectorSpringDamper; similar interface as CreateDistanceConstraint(...) - | - NOTE that this function is added to MainSystem via Python function MainSystemCreateSpringDamper. -- | \ *input*\ : - | \ ``name``\ : name string for connector; markers get Marker0:name and Marker1:name - | \ ``bodyOrNodeList``\ : a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types - | \ ``localPosition0``\ : local position (as 3D list or numpy array) on body0, if not a node number - | \ ``localPosition1``\ : local position (as 3D list or numpy array) on body1, if not a node number - | \ ``referenceLength``\ : if None, length is computed from reference position of bodies or nodes; if not None, this scalar reference length is used for spring - | \ ``stiffness``\ : scalar stiffness coefficient - | \ ``damping``\ : scalar damping coefficient - | \ ``force``\ : scalar additional force applied - | \ ``velocityOffset``\ : scalar offset: if referenceLength is changed over time, the velocityOffset may be changed accordingly to emulate a reference motion - | \ ``show``\ : if True, connector visualization is drawn - | \ ``drawSize``\ : general drawing size of connector - | \ ``color``\ : color of connector -- | \ *output*\ : - | ObjectIndex; returns index of newly created object -- | \ *example*\ : - -.. code-block:: python - - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2,5,0], - physicsMass = 1, gravity = [0,-9.81,0], - drawSize = 0.5, color=color4blue) - oGround = mbs.AddObject(ObjectGround()) - #add vertical spring - oSD = mbs.CreateSpringDamper(bodyOrNodeList=[oGround, b0], - localPosition0=[2,1,0], - localPosition1=[0,0,0], - stiffness=1e4, damping=1e2, - drawSize=0.2) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - SC.visualizationSettings.nodes.drawNodesAsPoint=False - mbs.SolveDynamic(simulationSettings = simulationSettings) - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `springDamperTutorialNew.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) - - - -.. _sec-mainsystemextensions-createcartesianspringdamper: - -Function: CreateCartesianSpringDamper -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateCartesianSpringDamper `__\ (\ ``name = ''``\ , \ ``bodyOrNodeList = [None, None]``\ , \ ``localPosition0 = [0.,0.,0.]``\ , \ ``localPosition1 = [0.,0.,0.]``\ , \ ``stiffness = [0.,0.,0.]``\ , \ ``damping = [0.,0.,0.]``\ , \ ``offset = [0.,0.,0.]``\ , \ ``show = True``\ , \ ``drawSize = -1``\ , \ ``color = color4default``\ ) - -- | \ *function description*\ : - | helper function to create CartesianSpringDamper connector, using arguments from ObjectConnectorCartesianSpringDamper - | - NOTE that this function is added to MainSystem via Python function MainSystemCreateCartesianSpringDamper. -- | \ *input*\ : - | \ ``name``\ : name string for connector; markers get Marker0:name and Marker1:name - | \ ``bodyOrNodeList``\ : a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types - | \ ``localPosition0``\ : local position (as 3D list or numpy array) on body0, if not a node number - | \ ``localPosition1``\ : local position (as 3D list or numpy array) on body1, if not a node number - | \ ``stiffness``\ : stiffness coefficients (as 3D list or numpy array) - | \ ``damping``\ : damping coefficients (as 3D list or numpy array) - | \ ``offset``\ : offset vector (as 3D list or numpy array) - | \ ``show``\ : if True, connector visualization is drawn - | \ ``drawSize``\ : general drawing size of connector - | \ ``color``\ : color of connector -- | \ *output*\ : - | ObjectIndex; returns index of newly created object -- | \ *example*\ : - -.. code-block:: python - - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateMassPoint(referenceCoordinates = [7,0,0], - physicsMass = 1, gravity = [0,-9.81,0], - drawSize = 0.5, color=color4blue) - oGround = mbs.AddObject(ObjectGround()) - oSD = mbs.CreateCartesianSpringDamper(bodyOrNodeList=[oGround, b0], - localPosition0=[7.5,1,0], - localPosition1=[0,0,0], - stiffness=[200,2000,0], damping=[2,20,0], - drawSize=0.2) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - SC.visualizationSettings.nodes.drawNodesAsPoint=False - mbs.SolveDynamic(simulationSettings = simulationSettings) - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `computeODE2AEeigenvaluesTest.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM) - - - -.. _sec-mainsystemextensions-createrigidbodyspringdamper: - -Function: CreateRigidBodySpringDamper -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateRigidBodySpringDamper `__\ (\ ``name = ''``\ , \ ``bodyOrNodeList = [None, None]``\ , \ ``localPosition0 = [0.,0.,0.]``\ , \ ``localPosition1 = [0.,0.,0.]``\ , \ ``stiffness = np.zeros((6,6))``\ , \ ``damping = np.zeros((6,6))``\ , \ ``offset = [0.,0.,0.,0.,0.,0.]``\ , \ ``rotationMatrixJoint = np.eye(3)``\ , \ ``useGlobalFrame = True``\ , \ ``show = True``\ , \ ``drawSize = -1``\ , \ ``color = color4default``\ ) - -- | \ *function description*\ : - | helper function to create RigidBodySpringDamper connector, using arguments from ObjectConnectorRigidBodySpringDamper - | - NOTE that this function is added to MainSystem via Python function MainSystemCreateRigidBodySpringDamper. -- | \ *input*\ : - | \ ``name``\ : name string for connector; markers get Marker0:name and Marker1:name - | \ ``bodyOrNodeList``\ : a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types - | \ ``localPosition0``\ : local position (as 3D list or numpy array) on body0, if not a node number - | \ ``localPosition1``\ : local position (as 3D list or numpy array) on body1, if not a node number - | \ ``stiffness``\ : stiffness coefficients (as 6D matrix or numpy array) - | \ ``damping``\ : damping coefficients (as 6D matrix or numpy array) - | \ ``offset``\ : offset vector (as 6D list or numpy array) - | \ ``rotationMatrixJoint``\ : additional rotation matrix; in case useGlobalFrame=False, it transforms body0/node0 local frame to joint frame; if useGlobalFrame=True, it transforms global frame to joint frame - | \ ``useGlobalFrame``\ : if False, the rotationMatrixJoint is defined in the local coordinate system of body0 - | \ ``show``\ : if True, connector visualization is drawn - | \ ``drawSize``\ : general drawing size of connector - | \ ``color``\ : color of connector -- | \ *output*\ : - | ObjectIndex; returns index of newly created object -- | \ *example*\ : - -.. code-block:: python - - #TODO - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `bricardMechanism.py `_\ (TM) - - - -.. _sec-mainsystemextensions-createrevolutejoint: - -Function: CreateRevoluteJoint -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateRevoluteJoint `__\ (\ ``name = ''``\ , \ ``bodyNumbers = [None, None]``\ , \ ``position = []``\ , \ ``axis = []``\ , \ ``useGlobalFrame = True``\ , \ ``show = True``\ , \ ``axisRadius = 0.1``\ , \ ``axisLength = 0.4``\ , \ ``color = color4default``\ ) - -- | \ *function description*\ : - | Create revolute joint between two bodies; definition of joint position and axis in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers, markerRotation and other quantities are automatically computed - | - NOTE that this function is added to MainSystem via Python function MainSystemCreateRevoluteJoint. -- | \ *input*\ : - | \ ``name``\ : name string for joint; markers get Marker0:name and Marker1:name - | \ ``bodyNumbers``\ : a list of object numbers for body0 and body1; must be rigid body or ground object - | \ ``position``\ : a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 - | \ ``axis``\ : a 3D vector as list or np.array: if useGlobalFrame=True it describes the global rotation axis of the joint in reference configuration; else: local axis in body0 - | \ ``useGlobalFrame``\ : if False, the point and axis vectors are defined in the local coordinate system of body0 - | \ ``show``\ : if True, connector visualization is drawn - | \ ``axisRadius``\ : radius of axis for connector graphical representation - | \ ``axisLength``\ : length of axis for connector graphical representation - | \ ``color``\ : color of connector -- | \ *output*\ : - | [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint -- | \ *example*\ : - -.. code-block:: python - - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [3,0,0], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4steelblue)]) - oGround = mbs.AddObject(ObjectGround()) - mbs.CreateRevoluteJoint(bodyNumbers=[oGround, b0], position=[2.5,0,0], axis=[0,0,1], - useGlobalFrame=True, axisRadius=0.02, axisLength=0.14) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `addRevoluteJoint.py `_\ (Ex), \ `rigidBodyTutorial3.py `_\ (Ex), \ `solutionViewerTest.py `_\ (Ex), \ `bricardMechanism.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM), \ `perf3DRigidBodies.py `_\ (TM) - - - -.. _sec-mainsystemextensions-createprismaticjoint: - -Function: CreatePrismaticJoint -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreatePrismaticJoint `__\ (\ ``name = ''``\ , \ ``bodyNumbers = [None, None]``\ , \ ``position = []``\ , \ ``axis = []``\ , \ ``useGlobalFrame = True``\ , \ ``show = True``\ , \ ``axisRadius = 0.1``\ , \ ``axisLength = 0.4``\ , \ ``color = color4default``\ ) - -- | \ *function description*\ : - | Create prismatic joint between two bodies; definition of joint position and axis in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers, markerRotation and other quantities are automatically computed - | - NOTE that this function is added to MainSystem via Python function MainSystemCreatePrismaticJoint. -- | \ *input*\ : - | \ ``name``\ : name string for joint; markers get Marker0:name and Marker1:name - | \ ``bodyNumbers``\ : a list of object numbers for body0 and body1; must be rigid body or ground object - | \ ``position``\ : a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 - | \ ``axis``\ : a 3D vector as list or np.array containing the global translation axis of the joint in reference configuration - | \ ``useGlobalFrame``\ : if False, the point and axis vectors are defined in the local coordinate system of body0 - | \ ``show``\ : if True, connector visualization is drawn - | \ ``axisRadius``\ : radius of axis for connector graphical representation - | \ ``axisLength``\ : length of axis for connector graphical representation - | \ ``color``\ : color of connector -- | \ *output*\ : - | [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint -- | \ *example*\ : - -.. code-block:: python - - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [4,0,0], - initialVelocity = [0,4,0], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4steelblue)]) - oGround = mbs.AddObject(ObjectGround()) - mbs.CreatePrismaticJoint(bodyNumbers=[oGround, b0], position=[3.5,0,0], axis=[0,1,0], - useGlobalFrame=True, axisRadius=0.02, axisLength=1) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `addPrismaticJoint.py `_\ (Ex), \ `mainSystemExtensionsTests.py `_\ (TM) - - - -.. _sec-mainsystemextensions-createsphericaljoint: - -Function: CreateSphericalJoint -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateSphericalJoint `__\ (\ ``name = ''``\ , \ ``bodyNumbers = [None, None]``\ , \ ``position = []``\ , \ ``constrainedAxes = [1,1,1]``\ , \ ``useGlobalFrame = True``\ , \ ``show = True``\ , \ ``jointRadius = 0.1``\ , \ ``color = color4default``\ ) - -- | \ *function description*\ : - | Create spherical joint between two bodies; definition of joint position in global coordinates (alternatively in body0 local coordinates) for reference configuration of bodies; all markers are automatically computed - | - NOTE that this function is added to MainSystem via Python function MainSystemCreateSphericalJoint. -- | \ *input*\ : - | \ ``name``\ : name string for joint; markers get Marker0:name and Marker1:name - | \ ``bodyNumbers``\ : a list of object numbers for body0 and body1; must be mass point, rigid body or ground object - | \ ``position``\ : a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 - | \ ``constrainedAxes``\ : flags, which determines which (global) translation axes are constrained; each entry may only be 0 (=free) axis or 1 (=constrained axis) - | \ ``useGlobalFrame``\ : if False, the point and axis vectors are defined in the local coordinate system of body0 - | \ ``show``\ : if True, connector visualization is drawn - | \ ``jointRadius``\ : radius of sphere for connector graphical representation - | \ ``color``\ : color of connector -- | \ *output*\ : - | [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint -- | \ *example*\ : - -.. code-block:: python - - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [5,0,0], - initialAngularVelocity = [5,0,0], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4orange)]) - oGround = mbs.AddObject(ObjectGround()) - mbs.CreateSphericalJoint(bodyNumbers=[oGround, b0], position=[5.5,0,0], - useGlobalFrame=True, jointRadius=0.06) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `driveTrainTest.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM) - - - -.. _sec-mainsystemextensions-creategenericjoint: - -Function: CreateGenericJoint -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateGenericJoint `__\ (\ ``name = ''``\ , \ ``bodyNumbers = [None, None]``\ , \ ``position = []``\ , \ ``rotationMatrixAxes = np.eye(3)``\ , \ ``constrainedAxes = [1,1,1, 1,1,1]``\ , \ ``useGlobalFrame = True``\ , \ ``show = True``\ , \ ``axesRadius = 0.1``\ , \ ``axesLength = 0.4``\ , \ ``color = color4default``\ ) - -- | \ *function description*\ : - | Create generic joint between two bodies; definition of joint position (position) and axes (rotationMatrixAxes) in global coordinates (useGlobalFrame=True) or in local coordinates of body0 (useGlobalFrame=False), where rotationMatrixAxes is an additional rotation to body0; all markers, markerRotation and other quantities are automatically computed - | - NOTE that this function is added to MainSystem via Python function MainSystemCreateGenericJoint. -- | \ *input*\ : - | \ ``name``\ : name string for joint; markers get Marker0:name and Marker1:name - | \ ``bodyNumber0``\ : a object number for body0, must be rigid body or ground object - | \ ``bodyNumber1``\ : a object number for body1, must be rigid body or ground object - | \ ``position``\ : a 3D vector as list or np.array: if useGlobalFrame=True it describes the global position of the joint in reference configuration; else: local position in body0 - | \ ``rotationMatrixAxes``\ : rotation matrix which defines orientation of constrainedAxes; if useGlobalFrame, this rotation matrix is global, else the rotation matrix is post-multiplied with the rotation of body0, identical with rotationMarker0 in the joint - | \ ``constrainedAxes``\ : flag, which determines which translation (0,1,2) and rotation (3,4,5) axes are constrained; each entry may only be 0 (=free) axis or 1 (=constrained axis); ALL constrained Axes are defined relative to reference rotation of body0 times rotation0 - | \ ``useGlobalFrame``\ : if False, the position is defined in the local coordinate system of body0, otherwise it is defined in global coordinates - | \ ``show``\ : if True, connector visualization is drawn - | \ ``axesRadius``\ : radius of axes for connector graphical representation - | \ ``axesLength``\ : length of axes for connector graphical representation - | \ ``color``\ : color of connector -- | \ *output*\ : - | [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint -- | \ *example*\ : - -.. code-block:: python - - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [6,0,0], - initialAngularVelocity = [0,8,0], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4orange)]) - oGround = mbs.AddObject(ObjectGround()) - mbs.CreateGenericJoint(bodyNumbers=[oGround, b0], position=[5.5,0,0], - constrainedAxes=[1,1,1, 1,0,0], - rotationMatrixAxes=RotationMatrixX(0.125*pi), #tilt axes - useGlobalFrame=True, axesRadius=0.02, axesLength=0.2) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `bricardMechanism.py `_\ (TM), \ `computeODE2AEeigenvaluesTest.py `_\ (TM), \ `driveTrainTest.py `_\ (TM), \ `mainSystemExtensionsTests.py `_\ (TM), \ `rigidBodyCOMtest.py `_\ (TM) - - - -.. _sec-mainsystemextensions-createdistanceconstraint: - -Function: CreateDistanceConstraint -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -`CreateDistanceConstraint `__\ (\ ``name = ''``\ , \ ``bodyOrNodeList = [None, None]``\ , \ ``localPosition0 = [0.,0.,0.]``\ , \ ``localPosition1 = [0.,0.,0.]``\ , \ ``distance = None``\ , \ ``show = True``\ , \ ``drawSize = -1.``\ , \ ``color = color4default``\ ) - -- | \ *function description*\ : - | Create distance joint between two bodies; definition of joint positions in local coordinates of bodies or nodes; if distance=None, it is computed automatically from reference length; all markers are automatically computed - | - NOTE that this function is added to MainSystem via Python function MainSystemCreateDistanceConstraint. -- | \ *input*\ : - | \ ``name``\ : name string for joint; markers get Marker0:name and Marker1:name - | \ ``bodyOrNodeList``\ : a list of object numbers (with specific localPosition0/1) or node numbers; may also be of mixed types - | \ ``localPosition0``\ : local position (as 3D list or numpy array) on body0, if not a node number - | \ ``localPosition1``\ : local position (as 3D list or numpy array) on body1, if not a node number - | \ ``distance``\ : if None, distance is computed from reference position of bodies or nodes; if not None, this distance (which must be always larger than zero) is prescribed between the two positions - | \ ``show``\ : if True, connector visualization is drawn - | \ ``drawSize``\ : general drawing size of node - | \ ``color``\ : color of connector -- | \ *output*\ : - | [ObjectIndex, MarkerIndex, MarkerIndex]; returns list [oJoint, mBody0, mBody1], containing the joint object number, and the two rigid body markers on body0/1 for the joint -- | \ *example*\ : - -.. code-block:: python - - import exudyn as exu - from exudyn.utilities import * #includes itemInterface, graphicsDataUtilities and rigidBodyUtilities - import numpy as np - SC = exu.SystemContainer() - mbs = SC.AddSystem() - b0 = mbs.CreateRigidBody(inertia = InertiaCuboid(density=5000, - sideLengths=[1,0.1,0.1]), - referencePosition = [6,0,0], - gravity = [0,-9.81,0], - graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], - color=color4orange)]) - m1 = mbs.CreateMassPoint(referenceCoordinates=[5.5,-1,0], - physicsMass=1, drawSize = 0.2) - n1 = mbs.GetObject(m1)['nodeNumber'] - oGround = mbs.AddObject(ObjectGround()) - mbs.CreateDistanceConstraint(bodyOrNodeList=[oGround, b0], - localPosition0 = [6.5,1,0], - localPosition1 = [0.5,0,0], - distance=None, #automatically computed - drawSize=0.06) - mbs.CreateDistanceConstraint(bodyOrNodeList=[b0, n1], - localPosition0 = [-0.5,0,0], - localPosition1 = [0.,0.,0.], #must be [0,0,0] for Node - distance=None, #automatically computed - drawSize=0.06) - mbs.Assemble() - simulationSettings = exu.SimulationSettings() #takes currently set values or default values - simulationSettings.timeIntegration.numberOfSteps = 1000 - simulationSettings.timeIntegration.endTime = 2 - mbs.SolveDynamic(simulationSettings = simulationSettings) - - -Relevant Examples (Ex) and TestModels (TM) with weblink to github: - - \ `mainSystemExtensionsTests.py `_\ (TM) - - - .. _sec-mainsystemextensions-plotsensor: Function: PlotSensor ^^^^^^^^^^^^^^^^^^^^ -`PlotSensor `__\ (\ ``sensorNumbers = []``\ , \ ``components = 0``\ , \ ``xLabel = 'time (s)'``\ , \ ``yLabel = None``\ , \ ``labels = []``\ , \ ``colorCodeOffset = 0``\ , \ ``newFigure = True``\ , \ ``closeAll = False``\ , \ ``componentsX = []``\ , \ ``title = ''``\ , \ ``figureName = ''``\ , \ ``fontSize = 16``\ , \ ``colors = []``\ , \ ``lineStyles = []``\ , \ ``lineWidths = []``\ , \ ``markerStyles = []``\ , \ ``markerSizes = []``\ , \ ``markerDensity = 0.08``\ , \ ``rangeX = []``\ , \ ``rangeY = []``\ , \ ``majorTicksX = 10``\ , \ ``majorTicksY = 10``\ , \ ``offsets = []``\ , \ ``factors = []``\ , \ ``subPlot = []``\ , \ ``sizeInches = [6.4,4.8]``\ , \ ``fileName = ''``\ , \ ``useXYZcomponents = True``\ , \ ``**kwargs``\ ) +`PlotSensor `__\ (\ ``sensorNumbers = []``\ , \ ``components = 0``\ , \ ``xLabel = 'time (s)'``\ , \ ``yLabel = None``\ , \ ``labels = []``\ , \ ``colorCodeOffset = 0``\ , \ ``newFigure = True``\ , \ ``closeAll = False``\ , \ ``componentsX = []``\ , \ ``title = ''``\ , \ ``figureName = ''``\ , \ ``fontSize = 16``\ , \ ``colors = []``\ , \ ``lineStyles = []``\ , \ ``lineWidths = []``\ , \ ``markerStyles = []``\ , \ ``markerSizes = []``\ , \ ``markerDensity = 0.08``\ , \ ``rangeX = []``\ , \ ``rangeY = []``\ , \ ``majorTicksX = 10``\ , \ ``majorTicksY = 10``\ , \ ``offsets = []``\ , \ ``factors = []``\ , \ ``subPlot = []``\ , \ ``sizeInches = [6.4,4.8]``\ , \ ``fileName = ''``\ , \ ``useXYZcomponents = True``\ , \ ``**kwargs``\ ) - | \ *function description*\ : | Helper function for direct and easy visualization of sensor outputs, without need for loading text files, etc.; PlotSensor can be used to simply plot, e.g., the measured x-Position over time in a figure. PlotSensor provides an interface to matplotlib (which needs to be installed). Default values of many function arguments can be changed using the exudyn.plot function PlotSensorDefaults(), see there for usage. @@ -615,6 +83,8 @@ Function: PlotSensor | \ ``[*kwargs]``\ : | \ ``minorTicksXon``\ : if True, turn minor ticks for x-axis on | \ ``minorTicksYon``\ : if True, turn minor ticks for y-axis on + | \ ``logScaleX``\ : use log scale for x-axis + | \ ``logScaleY``\ : use log scale for y-axis | \ ``fileCommentChar``\ : if exists, defines the comment character in files (\#, | \ ``fileDelimiterChar``\ : if exists, defines the character indicating the columns for data (',', ' ', ';', ...) - | \ *output*\ : @@ -779,8 +249,8 @@ Function: ComputeLinearizedSystem SC = exu.SystemContainer() mbs = SC.AddSystem() # - b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2*0,5,0], + b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2*0,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) # @@ -837,8 +307,8 @@ Function: ComputeODE2Eigenvalues SC = exu.SystemContainer() mbs = SC.AddSystem() # - b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], - initialVelocities = [2*0,5,0], + b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], + initialVelocity = [2*0,5,0], physicsMass = 1, gravity = [0,-9.81,0], drawSize = 0.5, color=color4blue) # diff --git a/main/src/pythonGenerator/generated/stubAutoBindingsExt.pyi b/main/src/pythonGenerator/generated/stubAutoBindingsExt.pyi index 7804e816..4f9304c0 100644 --- a/main/src/pythonGenerator/generated/stubAutoBindingsExt.pyi +++ b/main/src/pythonGenerator/generated/stubAutoBindingsExt.pyi @@ -4,7 +4,7 @@ class MainSystem: def SolutionViewer(self, solution=None, rowIncrement=1, timeout=0.04, runOnStart=True, runMode=2, fontSize=12, title='', checkRenderEngineStopFlag=True) -> None: ... @overload - def CreateMassPoint(self, name='', referenceCoordinates=[0.,0.,0.], initialCoordinates=[0.,0.,0.], initialVelocities=[0.,0.,0.], physicsMass=0, gravity=[0.,0.,0.], graphicsDataList=[], drawSize=-1, color=[-1.,-1.,-1.,-1.], show=True, create2D=False, returnDict=False) -> Union[dict, ObjectIndex]: ... + def CreateMassPoint(self, name='', referencePosition=[0.,0.,0.], initialDisplacement=[0.,0.,0.], initialVelocity=[0.,0.,0.], physicsMass=0, gravity=[0.,0.,0.], graphicsDataList=[], drawSize=-1, color=[-1.,-1.,-1.,-1.], show=True, create2D=False, returnDict=False) -> Union[dict, ObjectIndex]: ... @overload def CreateRigidBody(self, name='', referencePosition=[0.,0.,0.], referenceRotationMatrix=np.eye(3), initialVelocity=[0.,0.,0.], initialAngularVelocity=[0.,0.,0.], initialDisplacement=None, initialRotationMatrix=None, inertia=None, gravity=[0.,0.,0.], nodeType=exudyn.NodeType.RotationEulerParameters, graphicsDataList=[], drawSize=-1, color=[-1.,-1.,-1.,-1.], show=True, create2D=False, returnDict=False) -> Union[dict, ObjectIndex]: ... diff --git a/main/src/pythonGenerator/generated/stubSystemStructures.pyi b/main/src/pythonGenerator/generated/stubSystemStructures.pyi index a1bb3e1a..62a1264a 100644 --- a/main/src/pythonGenerator/generated/stubSystemStructures.pyi +++ b/main/src/pythonGenerator/generated/stubSystemStructures.pyi @@ -307,8 +307,29 @@ class VSettingsLoads: show: bool showNumbers: bool +#information for VSettingsSensorTraces +class VSettingsSensorTraces: + lineWidth: float + listOfPositionSensors: ArrayIndex + listOfTriadSensors: ArrayIndex + listOfVectorSensors: ArrayIndex + positionsShowEvery: int + sensorsMbsNumber: int + showCurrent: bool + showFuture: bool + showPast: bool + showPositionTrace: bool + showTriads: bool + showVectors: bool + traceColors: ArrayFloat + triadSize: float + triadsShowEvery: int + vectorScaling: float + vectorsShowEvery: int + #information for VSettingsSensors class VSettingsSensors: + traces: VSettingsSensorTraces defaultColor: Tuple[float,float,float,float] defaultSize: float drawSimplified: bool diff --git a/main/src/pythonGenerator/mainSystemExtensionsHeader.py b/main/src/pythonGenerator/mainSystemExtensionsHeader.py index 915405fd..bb09438a 100644 --- a/main/src/pythonGenerator/mainSystemExtensionsHeader.py +++ b/main/src/pythonGenerator/mainSystemExtensionsHeader.py @@ -85,9 +85,9 @@ def JointPreCheckCalc(where, mbs, name, bodyNumbers, position, show, useGlobalFr #**input: # mbs: the MainSystem where items are created # name: name string for object, node is 'Node:'+name -# referenceCoordinates: reference coordinates for point node (always a 3D vector, no matter if 2D or 3D mass) -# initialCoordinates: initial displacements for point node (always a 3D vector, no matter if 2D or 3D mass) -# initialVelocities: initial velocities for point node (always a 3D vector, no matter if 2D or 3D mass) +# referencePosition: reference coordinates for point node (always a 3D vector, no matter if 2D or 3D mass) +# initialDisplacement: initial displacements for point node (always a 3D vector, no matter if 2D or 3D mass) +# initialVelocity: initial velocities for point node (always a 3D vector, no matter if 2D or 3D mass) # physicsMass: mass of mass point # gravity: gravity vevtor applied (always a 3D vector, no matter if 2D or 3D mass) # graphicsDataList: list of GraphicsData for optional mass visualization @@ -105,8 +105,8 @@ def JointPreCheckCalc(where, mbs, name, bodyNumbers, position, show, useGlobalFr # SC = exu.SystemContainer() # mbs = SC.AddSystem() # -# b0=mbs.CreateMassPoint(referenceCoordinates = [0,0,0], -# initialVelocities = [2,5,0], +# b0=mbs.CreateMassPoint(referencePosition = [0,0,0], +# initialVelocity = [2,5,0], # physicsMass = 1, gravity = [0,-9.81,0], # drawSize = 0.5, color=color4blue) # @@ -117,9 +117,9 @@ def JointPreCheckCalc(where, mbs, name, bodyNumbers, position, show, useGlobalFr # mbs.SolveDynamic(simulationSettings = simulationSettings) def MainSystemCreateMassPoint(mbs, name = '', - referenceCoordinates = [0.,0.,0.], - initialCoordinates = [0.,0.,0.], - initialVelocities = [0.,0.,0.], + referencePosition = [0.,0.,0.], + initialDisplacement = [0.,0.,0.], + initialVelocity = [0.,0.,0.], physicsMass=0, gravity = [0.,0.,0.], graphicsDataList = [], @@ -133,12 +133,12 @@ def MainSystemCreateMassPoint(mbs, if not exudyn.__useExudynFast: if not isinstance(name, str): RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='name', received = name, expectedType = ExpectedType.String) - if not IsVector(referenceCoordinates, 3): - RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='referenceCoordinates', received = referenceCoordinates, expectedType = ExpectedType.Vector, dim=3) - if not IsVector(initialCoordinates, 3): - RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='initialCoordinates', received = initialCoordinates, expectedType = ExpectedType.Vector, dim=3) - if not IsVector(initialVelocities, 3): - RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='initialVelocities', received = initialVelocities, expectedType = ExpectedType.Vector, dim=3) + if not IsVector(referencePosition, 3): + RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='referencePosition', received = referencePosition, expectedType = ExpectedType.Vector, dim=3) + if not IsVector(initialDisplacement, 3): + RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='initialDisplacement', received = initialDisplacement, expectedType = ExpectedType.Vector, dim=3) + if not IsVector(initialVelocity, 3): + RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='initialVelocity', received = initialVelocity, expectedType = ExpectedType.Vector, dim=3) if not IsVector(gravity, 3): RaiseTypeError(where='MainSystem.CreateMassPoint(...)', argumentName='gravity', received = gravity, expectedType = ExpectedType.Vector, dim=3) @@ -162,9 +162,9 @@ def MainSystemCreateMassPoint(mbs, if not create2D: nodeNumber = mbs.AddNode(eii.NodePoint(name = nodeName, - referenceCoordinates = referenceCoordinates, - initialCoordinates=initialCoordinates, - initialVelocities=initialVelocities, + referenceCoordinates = referencePosition, + initialCoordinates=initialDisplacement, + initialVelocities=initialVelocity, visualization = eii.VNodePoint(show = show and (graphicsDataList == []), drawSize = drawSize, color = color), )) bodyNumber = mbs.AddObject(eii.MassPoint(name = name, @@ -174,9 +174,9 @@ def MainSystemCreateMassPoint(mbs, graphicsData = graphicsDataList) )) else: nodeNumber = mbs.AddNode(eii.NodePoint2D(name = nodeName, - referenceCoordinates = referenceCoordinates[0:2], - initialCoordinates=initialCoordinates[0:2], - initialVelocities=initialVelocities[0:2], + referenceCoordinates = referencePosition[0:2], + initialCoordinates=initialDisplacement[0:2], + initialVelocities=initialVelocity[0:2], visualization = eii.VNodePoint2D(show = show and (graphicsDataList == []), drawSize = drawSize, color = color), )) bodyNumber = mbs.AddObject(eii.MassPoint2D(name = name, @@ -447,8 +447,8 @@ def AngularVelocity2RotationVector_t(angularVelocity, rotMatrix): # SC = exu.SystemContainer() # mbs = SC.AddSystem() # -# b0 = mbs.CreateMassPoint(referenceCoordinates = [2,0,0], -# initialVelocities = [2,5,0], +# b0 = mbs.CreateMassPoint(referencePosition = [2,0,0], +# initialVelocity = [2,5,0], # physicsMass = 1, gravity = [0,-9.81,0], # drawSize = 0.5, color=color4blue) # @@ -583,7 +583,7 @@ def MainSystemCreateSpringDamper(mbs, # SC = exu.SystemContainer() # mbs = SC.AddSystem() # -# b0 = mbs.CreateMassPoint(referenceCoordinates = [7,0,0], +# b0 = mbs.CreateMassPoint(referencePosition = [7,0,0], # physicsMass = 1, gravity = [0,-9.81,0], # drawSize = 0.5, color=color4blue) # @@ -1185,7 +1185,7 @@ def MainSystemCreateGenericJoint(mbs, name='', bodyNumbers=[None, None], # gravity = [0,-9.81,0], # graphicsDataList = [GraphicsDataOrthoCubePoint(size=[1,0.1,0.1], # color=color4orange)]) -# m1 = mbs.CreateMassPoint(referenceCoordinates=[5.5,-1,0], +# m1 = mbs.CreateMassPoint(referencePosition=[5.5,-1,0], # physicsMass=1, drawSize = 0.2) # n1 = mbs.GetObject(m1)['nodeNumber'] # diff --git a/main/src/pythonGenerator/objectDefinition.py b/main/src/pythonGenerator/objectDefinition.py index 9700c73c..08b5ea3e 100644 --- a/main/src/pythonGenerator/objectDefinition.py +++ b/main/src/pythonGenerator/objectDefinition.py @@ -1009,7 +1009,7 @@ def UFgraphics(mbs, objectNum): sims=exu.SimulationSettings() sims.timeIntegration.numberOfSteps = 10000000 #many steps to see graphics exu.StartRenderer() #perform zoom all (press 'a' several times) after startup to see the sphere - exu.SolveDynamic(mbs, sims) + mbs.SolveDynamic(sims) exu.StopRenderer() \end{lstlisting} %%RSTCOMPATIBLE @@ -1104,7 +1104,7 @@ class = ObjectMassPoint #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] @@ -1198,7 +1198,7 @@ class = ObjectMassPoint2D #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] @@ -1294,7 +1294,7 @@ class = ObjectMass1D #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result, get current mass position at local position [0,0,0] exudynTestGlobals.testResult = mbs.GetObjectOutputBody(mass, exu.OutputVariableType.Position, [0,0,0])[0] @@ -1397,7 +1397,7 @@ class = ObjectRotationalMass1D #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result, get current rotor z-rotation at local position [0,0,0] exudynTestGlobals.testResult = mbs.GetObjectOutputBody(rotor, exu.OutputVariableType.Rotation, [0,0,0]) @@ -1737,7 +1737,7 @@ class = ObjectRigidBody2D #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] @@ -1969,7 +1969,7 @@ def UFgraphics(mbs, itemNumber): #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) + mbs.SolveDynamic(solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass1, exu.OutputVariableType.Position)[0] @@ -2147,7 +2147,7 @@ def UFrhs(mbs, t, itemNumber, q): sims=exu.SimulationSettings() solverType = exu.DynamicSolverType.RK44 - exu.SolveDynamic(mbs, solverType=solverType, simulationSettings=sims) + mbs.SolveDynamic(solverType=solverType, simulationSettings=sims) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nODE1, exu.OutputVariableType.Coordinates)[0] @@ -2297,7 +2297,7 @@ class = ObjectKinematicTree which denotes the transformation from joint coordinate (scalar) to rotations and translations. We can compute the local joint angular velocity $\tomega_i$ and translational velocity $\wv_i$, as a 6D vector $\vv^J_i$, from \be - \vv^J_i = \vp{\tomega_i}{\wv_i} = \tPhi_i \, q_i + \vv^J_i = \vp{\tomega_i}{\wv_i} = \tPhi_i \, \dot q_i \ee % The joint coordinates, which can be rotational or translational, are stored in the vector @@ -2496,7 +2496,7 @@ class = ObjectKinematicTree simulationSettings = exu.SimulationSettings() #takes currently set values or default values simulationSettings.timeIntegration.numberOfSteps = 1000 #gives very accurate results - exu.SolveDynamic(mbs, simulationSettings , solverType=exu.DynamicSolverType.RK67) #highly accurate! + mbs.SolveDynamic(simulationSettings , solverType=exu.DynamicSolverType.RK67) #highly accurate! #check final value of angle: q0 = mbs.GetNodeOutput(nGeneric, exu.OutputVariableType.Coordinates) @@ -3624,7 +3624,7 @@ class = ObjectANCFCable2D #assemble and solve system for default parameters mbs.Assemble() - exu.SolveStatic(mbs) + mbs.SolveStatic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(lastNode, exu.OutputVariableType.Displacement)[0] @@ -4237,7 +4237,7 @@ def UFforce(mbs, t, itemNumber, u, v, k, d, F0): #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[0] @@ -4428,7 +4428,7 @@ def UFforce(mbs, t, itemNumber, u, v, k, d, offset): #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Displacement)[1] @@ -4615,7 +4615,7 @@ def UFforce(mbs, t, itemNumber, displacement, rotation, velocity, angularVelocit #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Displacement)[1] @@ -4774,7 +4774,7 @@ def UFforce(mbs, t, itemNumber, displacement, velocity, stiffness, damping, offs #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Displacement)[0] @@ -4931,7 +4931,7 @@ def UFforce(mbs, t, itemNumber, rotation, angularVelocity, stiffness, damping, o #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Rotation)[2] @@ -5092,7 +5092,7 @@ def springForce(mbs, t, itemNumber, u, v, k, d, offset): #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, @@ -5471,7 +5471,7 @@ class = ObjectConnectorGravity mbs.Assemble() sims = exu.SimulationSettings() sims.timeIntegration.endTime = tEnd - exu.SolveDynamic(mbs, sims, solverType=exu.DynamicSolverType.RK67) + mbs.SolveDynamic(sims, solverType=exu.DynamicSolverType.RK67) #check result at default integration time #expect y=x after one period of orbiting (got: 100000.00000000479) @@ -5713,7 +5713,7 @@ class = ObjectConnectorHydraulicActuatorSimple #%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ class = ObjectConnectorReevingSystemSprings -classDescription = "A rD reeving system defined by a list of torque-free and friction-free sheaves or points that are connected with one rope (modelled as massless spring). The force is assumed to be constant all over the rope. The sheaves or connection points are defined by $nr$ rigid body markers $[m_0, \, m_1, \, \ldots, \, m_{nr-1}]$. At both ends of the rope there may be a prescribed motion coupled to a coordinate marker each, given by $m_{c0}$ and $m_{c1}$ ." +classDescription = "A rD reeving system defined by a list of torque-free and friction-free sheaves or points that are connected with one rope (modelled as massless spring). NOTE that the spring can undergo tension AND compression (in order to avoid compression, use a PreStepUserFunction to turn off stiffness and damping in this case!). The force is assumed to be constant all over the rope. The sheaves or connection points are defined by $nr$ rigid body markers $[m_0, \, m_1, \, \ldots, \, m_{nr-1}]$. At both ends of the rope there may be a prescribed motion coupled to a coordinate marker each, given by $m_{c0}$ and $m_{c1}$ ." cParentClass = CObjectConnector mainParentClass = MainObjectConnector visuParentClass = VisualizationObject @@ -5832,10 +5832,21 @@ class = ObjectConnectorReevingSystemSprings \dot L_0 = f_0 \cdot \dot q_{m_{c0}} + f_1 \cdot \dot q_{m_{c1}}, \quad \ee while we set $L_0 = L_{ref}$ and $\dot L_0=0$ otherwise. - The force in the reeving system (assumed to be constant all over the rope) reads + The linear force in the reeving system (assumed to be constant all over the rope) is computed as \be - F = (L-L_{0}) \frac{EA}{L_0} + (\dot L - \dot L_0)\frac{DA}{L_0} + F_{lin} = (L-L_{0}) \frac{EA}{L_0} + (\dot L - \dot L_0)\frac{DA}{L_0} \ee + The rope force is computed from + \be + F = \begin{cases} F_{lin} \quad \mathrm{if} \quad F_{lin} > 0 \\ + F_{reg} \cdot \mathrm{tanh}(F_{lin}/F_{reg})\quad \mathrm{else} + \end{cases} + \ee + Which allows small compressive forces $F_{reg}$. + In case that $F_{reg} < 0$, compressive forces are not regularized (linear spring). + The case $F_{reg} = 0$ will be used in future only in combination with a data node, + which allows switching similar as in friction and contact elements. + Note that in case of $L_0=0$, the term $\frac{1}{L_0}$ is replaced by $1000$. However, this case must be avoided by the user by choosing appropriate parameters for the system. @@ -5856,6 +5867,7 @@ class = ObjectConnectorReevingSystemSprings V, CP, dampingPerLength, , , UReal, "0.", , IO, "$DA$axial damping per length [SI:N/(m/s)/m] of rope; the effective damping coefficient of the reeving system is computed as $DA/L$ in which $L$ is the current length of the rope" V, CP, dampingTorsional, , , UReal, "0.", , IO, "$DT$torsional damping [SI:Nms] between sheaves; this effect can damp rotations around the rope axis, pairwise between sheaves; this parameter is experimental" V, CP, dampingShear, , , UReal, "0.", , IO, "$DS$damping of shear motion [SI:Ns] between sheaves; this effect can damp motion perpendicular to the rope between each pair of sheaves; this parameter is experimental" +V, CP, regularizationForce, , , Real, "0.1", , IO, "$F_{reg}$small regularization force [SI:N] in order to avoid large compressive forces; this regularization force can either be $<0$ (using a linear tension/compression spring model) or $>0$, which restricts forces in the rope to be always $\ge -F_{reg}$. Note that smaller forces lead to problems in implicit integrators and smaller time steps. For explicit integrators, this force can be chosen close to zero." V, CP, referenceLength, , , Real, "0.", , IO, "$L_{ref}$reference length for computation of roped force" V, CP, sheavesAxes, , , Vector3DList,"Vector3DList()", , I, "$\lv_a = [\LU{m0}{\av_0},\, \LU{m1}{\av_1},\, \ldots ] in [\Rcal^{3}, ...]$list of local vectors axes of sheaves; vectors refer to rigid body markers given in list of markerNumbers; first and last axes are ignored, as they represent the attachment of the rope ends" V, CP, sheavesRadii, , , Vector, "Vector()", , I, "$\lv_r = [r_0,\, r_1,\, \ldots]\tp \in \Rcal^{n}$radius for each sheave, related to list of markerNumbers and list of sheaveAxes; first and last radii must always be zero." @@ -5964,7 +5976,7 @@ class = ObjectConnectorDistance sims=exu.SimulationSettings() sims.timeIntegration.generalizedAlpha.spectralRadius=0.7 - exu.SolveDynamic(mbs, sims) + mbs.SolveDynamic(sims) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Position)[0] @@ -6136,7 +6148,7 @@ def OffsetUF(mbs, t, itemNumber, lOffset): #gives 0.05 at t=1 #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass, exu.OutputVariableType.Displacement)[0] @@ -7622,7 +7634,7 @@ class = ObjectJointRevoluteZ #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, exu.SimulationSettings()) + mbs.SolveDynamic(exu.SimulationSettings()) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nBody, exu.OutputVariableType.Rotation)[2] @@ -8794,7 +8806,7 @@ class = MarkerSuperElementPosition #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs, solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) + mbs.SolveDynamic(solverType = exudyn.DynamicSolverType.TrapezoidalIndex2) #check result at default integration time exudynTestGlobals.testResult = mbs.GetNodeOutput(nMass1, exu.OutputVariableType.Position)[0] @@ -9460,7 +9472,7 @@ class = LoadMassProportional #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() #check result exudynTestGlobals.testResult = mbs.GetNodeOutput(node, exu.OutputVariableType.Position)[2] @@ -9847,7 +9859,7 @@ def UFsensor(mbs, t, sensorNumbers, factors, configuration): #assemble and solve system for default parameters mbs.Assemble() - exu.SolveDynamic(mbs) + mbs.SolveDynamic() if False: from exudyn.plot import PlotSensor diff --git a/main/src/pythonGenerator/pythonAutoGenerateObjects.py b/main/src/pythonGenerator/pythonAutoGenerateObjects.py index 2982edf9..e1f53d6b 100644 --- a/main/src/pythonGenerator/pythonAutoGenerateObjects.py +++ b/main/src/pythonGenerator/pythonAutoGenerateObjects.py @@ -74,27 +74,80 @@ def DestinationNr(strDest): #StdVector3D=std::array does not accept numpy::array 'PyFunctionVector3DScalarVector3D': 'std::function', #LoadForceVector, LoadTorqueVector, LoadMassProportional } -#this function finds out, if a parameter is set with a special Set...Safely function in C++ -def IsASetSafelyParameter(parameterType): - if ((parameterType == 'String') or - (parameterType == 'ItemName') or - (parameterType == 'Vector2D') or - (parameterType == 'Vector3DList') or - (parameterType == 'Matrix3DList') or - # (parameterType == 'PyVector3DList') or - # (parameterType == 'PyMatrix3DList') or +#this for mutable args +def IsASafelyVector(parameterType): + if ((parameterType == 'Vector2D') or (parameterType == 'Vector3D') or (parameterType == 'Vector4D') or (parameterType == 'Vector6D') or (parameterType == 'Vector7D') or (parameterType == 'Vector9D') or - (parameterType == 'Matrix3D') or + (parameterType == 'NumpyVector') + ): + return True + else: + return False + +def IsAVector(parameterType): + if ((parameterType == 'Vector') + or (parameterType == 'Float4') + or IsASafelyVector(parameterType) + ): + return True + else: + return False + +#this for mutable args +def IsASimpleMatrix(parameterType): + if ((parameterType == 'Matrix3D') or (parameterType == 'Matrix6D') or (parameterType == 'NumpyMatrix') or - (parameterType == 'NumpyMatrixI') or #for index arrays, mesh, ... - (parameterType == 'PyMatrixContainer') or - (parameterType == 'NumpyVector') - #or (parameterType in pyFunctionTypeConversion) + (parameterType == 'NumpyMatrixI') + ): + return True + else: + return False + +def IsAMatrixVectorSpecial(parameterType): + if ((parameterType == 'Vector3DList') or + (parameterType == 'Matrix3DList') or + (parameterType == 'PyMatrixContainer') + ): + return True + else: + return False + +def IsAArrayIndex(parameterType): + if ((parameterType == 'ArrayNodeIndex') or + (parameterType == 'NodeIndex2') or + (parameterType == 'NodeIndex3') or + (parameterType == 'ArrayObjectIndex') or #unused + (parameterType == 'ArrayMarkerIndex') or + (parameterType == 'ArrayLoadIndex') or #unused + (parameterType == 'ArraySensorIndex') + ): + return True + else: + return False + +#this function finds out, if a parameter is set with a special Set...Safely function in C++ +def IsASetSafelyParameter(parameterType): + if (IsASafelyVector(parameterType) or + IsASimpleMatrix(parameterType) or + IsAMatrixVectorSpecial(parameterType) or + (parameterType == 'String') or + (parameterType == 'ItemName') + # (parameterType == 'Vector2D') or + # (parameterType == 'Vector3D') or + # (parameterType == 'Vector4D') or + # (parameterType == 'Vector6D') or + # (parameterType == 'Vector7D') or + # (parameterType == 'Vector9D') or + # (parameterType == 'NumpyVector') or + # (parameterType == 'Matrix3D') or + # (parameterType == 'Matrix6D') or + # (parameterType == 'NumpyMatrix') or + # (parameterType == 'NumpyMatrixI') or #for index arrays, mesh, ... ): return True else: @@ -370,7 +423,7 @@ def WriteFile(parseInfo, parameterList, typeConversion): sList = [sParamComp, sParamMain, sComp, sMain, sVisu] nClasses = 5 #number of different classes indexComp = 2 #index in sList - indexMain = 3 #index in slist + # indexMain = 3 #index in slist #************************************ #class definition: @@ -703,6 +756,27 @@ def WriteFile(parseInfo, parameterList, typeConversion): if IsTypeWithRangeCheck(parameter['type']): parameterWithCheck = 'CheckForValid' + parameter['type'] + '(' + parameter['pythonName'] + ',' parameterWithCheck += '"' + parameter['pythonName'] +'","' + parseInfo['class'] + '")' + if (IsAVector(parameter['type']) + or IsASimpleMatrix(parameter['type']) + #or IsAMatrixVectorSpecial(parameter['type']) #defaults to None! + ): + parameterWithCheck = 'np.array('+parameterWithCheck+')' + elif (IsAArrayIndex(parameter['type']) + or parameter['type'] == 'BodyGraphicsData' #in this case, flat copy is ok + or parameter['type'] == 'BodyGraphicsDataList' #in this case, flat copy is ok + or parameter['type'] == 'JointTypeList' + or parameter['type'] == 'ArrayIndex' + ): + parameterWithCheck = 'copy.copy('+parameterWithCheck+')' #flat copy is sufficient + elif defaultValueStr.strip().startswith('['): + print('WARNING: unresolved default [...] with',parameter['pythonName']) + elif defaultValueStr.strip().startswith('{'): #for now, only visualization + print('WARNING: unresolved default {...} with',parameter['pythonName']) + + #this does not work, because MatrixContainer or similar does not provide copy method + # elif defaultValueStr.strip() == '[]': #for some special matrices, etc. + # parameterWithCheck = 'copy.copy('+parameterWithCheck+')' + #future: also add size check ... tempPythonClassInit = sIndent+sIndent+'self.' + parameter['pythonName'] + ' = ' + parameterWithCheck + '\n' @@ -730,7 +804,7 @@ def WriteFile(parseInfo, parameterList, typeConversion): sPythonClass += ', visualization = ' + vDefaultDict + '):\n' #add visualization structure (must always be there...) #sPythonClass += ', visualization = {}):\n' #add visualization structure (must always be there...) #OLD MODE: sPythonClass += ', visualization = V' + parseInfo['class'] + '()):\n' #add visualization structure (must always be there...) - sPythonClass += sPythonClassInit + sIndent+sIndent+'self.visualization = visualization\n\n' + sPythonClass += sPythonClassInit + sIndent+sIndent+'self.visualization = CopyDictLevel1(visualization)\n\n' sPythonClass += sIndent+'def __iter__(self):\n' sPythonClass += sPythonIter + '\n' sPythonClass += sIndent+'def __repr__(self):\n' @@ -1695,7 +1769,22 @@ def CutString(theString, numberOfCutLines): #s += 'from exudyn import OutputVariableType\n\n' #do not import exudyn, causes problems e.g. with exudynFast, ... s += '#item interface diagonal matrix creator\n' s += '\n' - s += 'import exudyn #for exudyn.InvalidIndex() and other exudyn native structures needed in RigidBodySpringDamper\n\n' + s += 'import exudyn #for exudyn.InvalidIndex() and other exudyn native structures needed in RigidBodySpringDamper\n' + s += 'import numpy as np\n' + s += 'import copy \n\n' + + s += '#helper function for level-1 copy of dicts (for visualization default args!)\n' + s += '#visualization dictionaries (which may be huge, are only flat copied, which is sufficient)\n' + s += 'def CopyDictLevel1(originalDict):\n' + s += space4+'if isinstance(originalDict,dict): #copy only required if default dict is used\n' + s += space4+' copyDict = {}\n' + s += space4+' for key, value in originalDict.items():\n' + s += space4+' copyDict[key] = copy.copy(value)\n' + s += space4+' return copyDict\n' + s += space4+'else:\n' + s += space4+' return originalDict #fast track for everything else\n' + s += space4+'\n' + s += '#helper function diagonal matrices, not needing numpy\n' s += 'def IIDiagMatrix(rowsColumns, value):\n' s += space4+'m = []\n' diff --git a/main/src/pythonGenerator/pythonAutoGenerateSystemStructures.py b/main/src/pythonGenerator/pythonAutoGenerateSystemStructures.py index c63ce384..b18dea6e 100644 --- a/main/src/pythonGenerator/pythonAutoGenerateSystemStructures.py +++ b/main/src/pythonGenerator/pythonAutoGenerateSystemStructures.py @@ -18,7 +18,7 @@ typeCasts = {'Bool':'bool', 'Int':'Index', 'Real':'Real', 'UInt':'Index', 'PInt':'Index', 'UReal':'Real', 'PReal':'Real', 'UFloat':'float', 'PFloat':'float', 'Vector':'std::vector', 'Vector3D':'std::vector', #'Matrix':'Matrix', 'SymmetricMatrix':'Matrix', - 'ArrayIndex':'std::vector', 'String':'std::string', 'FileName':'std::string', + 'ArrayIndex':'std::vector', 'ArrayFloat':'std::vector', 'String':'std::string', 'FileName':'std::string', 'Float2': 'std::array', 'Float3': 'std::array', 'Float4': 'std::array', #e.g. for OpenGL vectors 'Float9': 'std::array', 'Float16': 'std::array', #e.g. for OpenGL rotation matrix and homogenous transformation 'UInt2': 'std::array', 'UInt3': 'std::array', 'UInt4': 'std::array', @@ -30,8 +30,11 @@ } #convert parameter types to C++/DYNALFEX types #conversion rules for dictionary 'type'; this type conversion adds rules for the user's values in the dictionary -convertToDict = {'ResizableVector':'Vector', 'StdArray33F':'MatrixFloat', 'NumpyVector':'Vector', 'NumpyMatrix':'Matrix', - 'Index2':'IndexArray', 'Index4':'IndexArray', 'Float4':'VectorFloat', 'Float3':'VectorFloat' #,'String':'std::string' +convertToDict = {'ResizableVector':'Vector', 'StdArray33F':'MatrixFloat', + 'NumpyVector':'Vector', 'NumpyMatrix':'Matrix', + 'Index2':'IndexArray', 'Index4':'IndexArray', + 'ArrayIndex':'IndexArray', 'ArrayFloat':'VectorFloat', + 'Float4':'VectorFloat', 'Float3':'VectorFloat' #,'String':'std::string' } #convert special size parameters: diff --git a/main/src/pythonGenerator/systemStructuresDefinition.py b/main/src/pythonGenerator/systemStructuresDefinition.py index b720e9bf..c38576be 100644 --- a/main/src/pythonGenerator/systemStructuresDefinition.py +++ b/main/src/pythonGenerator/systemStructuresDefinition.py @@ -82,7 +82,7 @@ class = SolutionSettings #appendToFile=True #not done in first class writePybindIncludes = True typicalPaths = simulationSettings -latexText = "\n%++++++++++++++++++++++++++++++++++++++\n\mysubsection{Simulation settings}\nThis section includes hierarchical structures for simulation settings, e.g., time integration, static solver, Newton iteration and solution file export.\n" +latexText = "\n%++++++++++++++++++++++++++++++++++++++\n\mysubsectionlabel{Simulation settings}{sec:SimulationSettingsMain}\nThis section includes hierarchical structures for simulation settings, e.g., time integration, static solver, Newton iteration and solution file export.\n" classDescription = "General settings for exporting the solution (results) of a simulation." #V|F, pythonName, cplusplusName, size, type, defaultValue,args, cFlags, parameterDescription # @@ -366,7 +366,7 @@ class = SimulationSettings #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ class = VSettingsGeneral appendToFile=False -latexText = "\n%++++++++++++++++++++++++++++++++++++++\n\mysubsection{Visualization settings}\nThis section includes hierarchical structures for visualization settings, e.g., drawing of nodes, bodies, connectors, loads and markers and furthermore openGL, window and save image options. For further information, see \refSection{sec:overview:basics:visualizationsettings}.\n" +latexText = "\n%++++++++++++++++++++++++++++++++++++++\n\mysubsectionlabel{Visualization settings}{sec:VisualizationSettingsMain}\nThis section includes hierarchical structures for visualization settings, e.g., drawing of nodes, bodies, connectors, loads and markers and furthermore openGL, window and save image options. For further information, see \refSection{sec:overview:basics:visualizationsettings}.\n" writePybindIncludes = True typicalPaths = SC.visualizationSettings classDescription = "General settings for visualization." @@ -395,7 +395,7 @@ class = VSettingsGeneral V, showSolutionInformation, , , bool, true, , P, "true = show solution information (from simulationSettings.solution)" V, showSolverInformation, , , bool, true, , P, "true = solver name and further information shown in render window" V, showSolverTime, , , bool, true, , P, "true = solver current time shown in render window" -V, renderWindowString, , , String, "", , P, "string shown in render window (use this, e.g., for debugging, etc.; written below EXUDYN, similar to solutionInformation in SimulationSettings.solutionSettings)" +V, renderWindowString, , , String, "", , P, "string shown in render window (use this, e.g., for debugging, etc.; written below EXUDYN, similar to solutionInformation in SimulationSettings.solutionSettings)" V, pointSize, , , float, "0.01f", , P, "global point size (absolute)" V, circleTiling, , , PInt, "16", , P, "global number of segments for circles; if smaller than 2, 2 segments are used (flat)" V, cylinderTiling, , , PInt, "16", , P, "global number of segments for cylinders; if smaller than 2, 2 segments are used (flat)" @@ -555,6 +555,40 @@ class = VSettingsLoads # writeFile=VisualizationSettings.h +#%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +class = VSettingsSensorTraces +appendToFile=True +writePybindIncludes = True +typicalPaths = SC.visualizationSettings +classDescription = "Visualization settings for traces of sensors. Note that a large number of time points (influenced by simulationSettings.solutionSettings.sensorsWritePeriod) may lead to slow graphics." +#V|F, pythonName, cplusplusName, size, type, defaultValue,args, cFlags, parameterDescription +V, listOfPositionSensors, , -1, ArrayIndex, "ArrayIndex()", , P, "list of position sensors which can be shown as trace inside render window if sensors have storeInternal=True; if this list is empty and showPositionTrace=True, then all available sensors are shown" +V, listOfVectorSensors, , -1, ArrayIndex, "ArrayIndex()", , P, "list of sensors with 3D vector quantities; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showVectors=True; the vector quantity is drawn relative to the related position" +V, listOfTriadSensors, , -1, ArrayIndex, "ArrayIndex()", , P, "list of sensors of with OutputVariableType RotationMatrix; this non-empty list needs to coincide in length with the listOfPositionSensors to be shown if showTriads=True; the triad is drawn at the related position" +V, showPositionTrace, , , bool, false, , P, "show position trace of all position sensors if listOfPositionSensors=[] or of specified sensors; sensors need to activate storeInternal=True" +V, showVectors, , , bool, false, , P, "if True, show vector quantities according to description in showPositionTrace" +V, showTriads, , , bool, false, , P, "if True, show basis vectors from rotation matrices provided by sensors" +V, sensorsMbsNumber, , , Index, "0", , P, "number of main system which is used to for sensor lists; if only 1 mbs is in the SystemContainer, use 0; if there are several mbs, it needs to specify the number" +V, showPast, , , bool, true, , P, "show trace previous to current visualization state" +V, showCurrent, , , bool, true, , P, "show current trace position (and especially vector quantity) related to current visualization state; this only works in solution viewer if sensor values are stored at time grid points of the solution file (up to a precision of 1e-10) and may therefore be temporarily unavailable" +V, showFuture, , , bool, false, , P, "show trace future to current visualization state if already computed (e.g. in SolutionViewer)" +V, positionsShowEvery, , , PInt, 1, , P, "integer value i; out of available sensor data, show every i-th position" +V, vectorsShowEvery, , , PInt, 1, , P, "integer value i; out of available sensor data, show every i-th vector" +V, triadsShowEvery, , , PInt, 1, , P, "integer value i; out of available sensor data, show every i-th triad" +V, vectorScaling, , , float, "0.01f", , P, "scaling of vector quantities; if, e.g., loads, this factor has to be adjusted significantly" +V, triadSize, , , float, "0.1f ", , P, "length of triad axes if shown" +V, lineWidth, , , UFloat, "2.f", , P, "line width for traces" +V, traceColors, , -1, ArrayFloat, "ArrayFloat({0.2f,0.2f,0.2f,1.f, 0.8f,0.2f,0.2f,1.f, 0.2f,0.8f,0.2f,1.f, 0.2f,0.2f,0.8f,1.f, 0.2f,0.8f,0.8f,1.f, 0.8f,0.2f,0.8f,1.f, 0.8f,0.4f,0.1f,1.f})", , P, "RGBA float values for traces in one array; using 6x4 values gives different colors for 6 traces; in case of triads, the 0/1/2-axes are drawn in red, green, and blue" +# + +writeFile=VisualizationSettings.h + +# settings and list of sensors provided in visualizationSettings.sensors.traces with +# list of sensors, showPositionTrace, listOfPositionSensors=[] +# (empty means all position sensors, listOfVectorSensors=[] which can provide according vector quantities for positions; +# showVectors, vectorScaling=0.001, showPast=True, showFuture=False, showCurrent=True, lineWidth=2 + + #%%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ class = VSettingsSensors appendToFile=True @@ -566,7 +600,8 @@ class = VSettingsSensors V, showNumbers, , , bool, false, , P, "flag to decide, whether the sensor numbers are shown" V, drawSimplified, , , bool, true, , P, "draw sensors with simplified symbols" V, defaultSize, , , float, "-1.f", , P, "global sensor size; if -1.f, sensor size is relative to maxSceneSize" -V, defaultColor, , 4, Float4, "Float4({0.6f,0.6f,0.1f,1.f})",, P, "default cRGB color for sensors; 4th value is alpha-transparency" +V, defaultColor, , 4, Float4, "Float4({0.6f,0.6f,0.1f,1.f})",, P, "default cRGB color for sensors; 4th value is alpha-transparency" +V, traces, , , VSettingsSensorTraces, , , PS, "settings for showing (position) sensor traces and vector plots in the render window" # writeFile=VisualizationSettings.h diff --git a/main/src/pythonGenerator/utilitiesDocuGenerator.py b/main/src/pythonGenerator/utilitiesDocuGenerator.py index 8dc44b28..2d8ba585 100644 --- a/main/src/pythonGenerator/utilitiesDocuGenerator.py +++ b/main/src/pythonGenerator/utilitiesDocuGenerator.py @@ -651,6 +651,10 @@ def WriteFunctionDescription2LatexRST(functionDict, moduleNamePython, pythonFile pyiExtensions = {} #for stub files of C++ extension functions pyExtensions = '' #for extension of C++ class, added lateron to mainSystemExtensions; ONLY one string +#special strings, to put MainSystemExtensions (CreateMassPoint, ...) on top of RST and Latex description! +latexExtensionsMainSystem = '' +rstExtensionsMainSystem = '' + with open('mainSystemExtensionsHeader.py','r') as f: pyExtensions = f.read() @@ -762,24 +766,32 @@ def WriteFunctionDescription2LatexRST(functionDict, moduleNamePython, pythonFile #exu.MainSystem.PlotSensor = exu.plot.PlotSensor moduleAdd = ('exu.'+moduleNamePython+'.')*(moduleNamePython!='mainSystemExtensions') - + sPy = '\n#link '+belongsTo+' function to Python function:\n' sPy += 'exu.'+belongsTo+'.'+funcDict['functionName']+ '=' + moduleAdd+functionName + '\n\n' - - latexExtensions[belongsTo] += sFuncLatex+'\n' - rstExtensions[belongsTo] += '\n'+sFuncRST + + latexTemp = '' + rstTemp = '' + latexTemp += sFuncLatex+'\n' + rstTemp += '\n'+sFuncRST pyiExtensions[belongsTo] += sPyi pyExtensions += sPy - + if addExampleReferences: - latexExtensions[belongsTo] += sExamples - rstExtensions[belongsTo] += '\n'+sExamplesRST + latexTemp += sExamples + rstTemp += '\n'+sExamplesRST #for original function description: - funcDict['function'] = functionDescription funcDict['functionName'] = functionName + if moduleNamePython != 'mainSystemExtensions': + latexExtensions[belongsTo] += latexTemp + rstExtensions[belongsTo] += rstTemp + else: + latexExtensionsMainSystem += latexTemp + rstExtensionsMainSystem += rstTemp + #add remaining part to original latex and RST if moduleNamePython != 'mainSystemExtensions': #no description for this! [sFuncLatex, sFuncRST, sPyi, sPy] = WriteFunctionDescription2LatexRST(funcDict, moduleNamePython, fileName, @@ -961,6 +973,18 @@ def WriteFunctionDescription2LatexRST(functionDict, moduleNamePython, pythonFile file.write(pyiExtensions[key]) file.close() +#%%++++++++++++++++++++++ +if True: + file=io.open('generated/MainSystemCreateExt.rst','w',encoding='utf8') #clear file by one write access + file.write(rstExtensionsMainSystem) + file.close() + + file=io.open(theDocDir+'/MainSystemCreateExt.tex','w',encoding='utf8') #clear file by one write access + file.write(latexExtensionsMainSystem) + file.close() + + +#%%++++++++++++++++++++++ file=io.open(fileDir+'mainSystemExtensions.py','w',encoding='utf8') #clear file by one write access file.write(pyExtensions)

    lxFB73W=4wRDy;qY5jYXn`EY*H>D+ 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�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 z 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