You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/RST/IntegrationPoints.rst
+1-1
Original file line number
Diff line number
Diff line change
@@ -128,4 +128,4 @@ Further integration rules can be found in the C++ code of Exudyn, see file \ ``B
128
128
129
129
130
130
131
-
\ **For further information on this topic read**\ : `theDoc.pdf <https://github.com/jgerstmayr/EXUDYN/blob/master/docs/theDoc/theDoc.pdf>`_
|compute linearized system of equations for ODE2 part of mbs, not considering the effects of algebraic constraints
1087
+
|compute linearized system of equations for ODE2 part of mbs, not considering the effects of algebraic constraints; for computation of eigenvalues and advanced computation with constrained systems, see ComputeODE2Eigenvalues; the current implementation is also able to project into the constrained space, however, this currently does not generally work with non-holonomic systems
1088
1088
|- NOTE that this function is added to MainSystem via Python function ComputeLinearizedSystem.
1089
1089
- | \ *input*\ :
1090
1090
|\ ``simulationSettings``\ : specific simulation settings used for computation of jacobian (e.g., sparse mode in static solver enables sparse computation)
1091
-
|\ ``useSparseSolver``\ : if False (only for small systems), all eigenvalues are computed in dense mode (slow for large systems!); if True, only the numberOfEigenvalues are computed (numberOfEigenvalues must be set!); Currently, the matrices are exported only in DENSE MODE from mbs! NOTE that the sparsesolver accuracy is much less than the dense solver
1091
+
|\ ``projectIntoConstraintNullspace``\ : if False, algebraic equations (and constraint jacobian) are not considered for the linearized system; if True, the equations are projected into the nullspace of the constraints in the current configuration, using singular value decomposition; in the latter case, the returned list contains [M, K, D, C, N] where C is the constraint jacobian and N is the nullspace matrix (C and N may be an empty list, depending on the following flags)
1092
+
|\ ``singularValuesTolerance``\ : tolerance used to distinguish between zero and nonzero singular values for algebraic constraints projection
1093
+
|\ ``returnConstraintJacobian``\ : if True, the returned list contains [M, K, D, C, N] where C is the constraint jacobian and N is the nullspace matrix (may be empty)
1094
+
|\ ``returnConstraintNullspace``\ : if True, the returned list contains [M, K, D, C, N] where C is the constraint jacobian (may be empty) and N is the nullspace matrix
1092
1095
- | \ *output*\ :
1093
-
|[ArrayLike, ArrayLike, ArrayLike]; [M, K, D]; list containing numpy mass matrix M, stiffness matrix K and damping matrix D
1096
+
|[ArrayLike, ArrayLike, ArrayLike]; [M, K, D]; list containing numpy mass matrix M, stiffness matrix K and damping matrix D; for constraints, see options with arguments above, return values may change to [M, K, D, C, N]
1094
1097
- | \ *notes*\ :
1095
1098
|consider paper of Agundez, Vallejo, Freire, Mikkola, "The dependent coordinates in the linearization of constrained multibody systems: Handling and elimination", https://www.sciencedirect.com/science/article/pii/S0020740324000791
1096
1099
- | \ *example*\ :
@@ -1131,19 +1134,19 @@ Relevant Examples (Ex) and TestModels (TM) with weblink to github:
|compute eigenvalues for unconstrained ODE2 part of mbs; the computation may include constraints in case that ignoreAlgebraicEquations=False; for algebraic constraints, however, a dense singular value decomposition of the constraint jacobian is used for the nullspace projection; the computation is done for the initial values of the mbs, independently of previous computations. If you would like to use the current state for the eigenvalue computation, you need to copy the current state to the initial state (using GetSystemState, SetSystemState, see Section :ref:`sec-mbs-systemdata`\ ); note that mass and stiffness matrices are computed in dense mode so far, while eigenvalues are computed according to useSparseSolver.
1140
+
|compute eigenvalues for unconstrained ODE2 part of mbs; the computation may include constraints in case that ignoreAlgebraicEquations=False (however, this currently does not generally work with non-holonomic systems); for algebraic constraints, however, a dense singular value decomposition of the constraint jacobian is used for the nullspace projection; the computation is done for the initial values of the mbs, independently of previous computations. If you would like to use the current state for the eigenvalue computation, you need to copy the current state to the initial state (using GetSystemState, SetSystemState, see Section :ref:`sec-mbs-systemdata`\ ); note that mass and stiffness matrices are computed in dense mode so far, while eigenvalues are computed according to useSparseSolver.
1138
1141
|- NOTE that this function is added to MainSystem via Python function ComputeODE2Eigenvalues.
1139
1142
- | \ *input*\ :
1140
1143
|\ ``simulationSettings``\ : specific simulation settings used for computation of jacobian (e.g., sparse mode in static solver enables sparse computation)
1141
-
|\ ``useSparseSolver``\ : if False (only for small systems), all eigenvalues are computed in dense mode (slow for large systems!); if True, only the numberOfEigenvalues are computed (numberOfEigenvalues must be set!); Currently, the matrices are exported only in DENSE MODE from mbs! NOTE that the sparsesolver accuracy is much less than the dense solver
1144
+
|\ ``useSparseSolver``\ : if False (only for small systems), all eigenvalues are computed in dense mode (slow for large systems!); if True, only the numberOfEigenvalues are computed (numberOfEigenvalues must be set!); Currently, the matrices are exported only in DENSE MODE from mbs, which means that intermediate matrices may become huge for more than 5000 coordinates! NOTE that the sparsesolver accuracy is much less than the dense solver
1142
1145
|\ ``numberOfEigenvalues``\ : number of eigenvalues and eivenvectors to be computed; if numberOfEigenvalues==0, all eigenvalues will be computed (may be impossible for larger or sparse problems!)
1143
1146
|\ ``constrainedCoordinates``\ : if this list is non-empty (and there are no algebraic equations or ignoreAlgebraicEquations=True), the integer indices represent constrained coordinates of the system, which are fixed during eigenvalue/vector computation; according rows/columns of mass and stiffness matrices are erased; in this case, algebraic equations of the system are ignored
1144
1147
|\ ``convert2Frequencies``\ : if True, the eigen values are converted into frequencies (Hz) and the output is [eigenFrequencies, eigenVectors]
1145
1148
|\ ``useAbsoluteValues``\ : if True, abs(eigenvalues) is used, which avoids problems for small (close to zero) eigenvalues; needed, when converting to frequencies
1146
-
|\ ``computeComplexEigenvalues``\ : if True, the system is converted into a system of first order differential equations, including damping; only implemented for dense solver!
1149
+
|\ ``computeComplexEigenvalues``\ : if True, the system is converted into a system of first order differential equations, including damping; for complex eigenvalues, set useAbsoluteValues=False (otherwise you will not get the complex values; values are unsorted, however!); only implemented for dense solver
1147
1150
|\ ``ignoreAlgebraicEquations``\ : if True, algebraic equations (and constraint jacobian) are not considered for eigenvalue computation; otherwise, the solver tries to automatically project the system into the nullspace kernel of the constraint jacobian using a SVD; this gives eigenvalues of the constrained system; eigenvectors are not computed
1148
1151
|\ ``singularValuesTolerance``\ : tolerance used to distinguish between zero and nonzero singular values for algebraic constraints projection
|compute system DOF numerically, considering Grübler-Kutzbach formula as well as redundant constraints; uses numpy matrix rank or singular value decomposition of scipy (useSVD=True)
- | **NOTE**\ : this function is directly available in MainSystem (mbs); it should be directly called as mbs.ComputeLinearizedSystem(...). For description of the interface, see the MainSystem Python extensions, :ref:`sec-mainsystemextensions-computelinearizedsystem`\
- | **NOTE**\ : this function is directly available in MainSystem (mbs); it should be directly called as mbs.ComputeODE2Eigenvalues(...). For description of the interface, see the MainSystem Python extensions, :ref:`sec-mainsystemextensions-computeode2eigenvalues`\
- | **NOTE**\ : this function is directly available in MainSystem (mbs); it should be directly called as mbs.ComputeSystemDegreeOfFreedom(...). For description of the interface, see the MainSystem Python extensions, :ref:`sec-mainsystemextensions-computesystemdegreeoffreedom`\
- description: change type in AddObject, AddMarker, AddSensor, AddLoad, AddNode from pyObject: dict to pyObject: Any in order to resolve typing errors
62
74
- date resolved: **2024-04-21 19:16**\ , date raised: 2024-04-19
63
75
* Version 1.8.18: resolved Issue 1819: KinematicTreePendulum.py (example)
64
-
- description: Version 1.7.71 broke example „kinematicTreePendulum“ with transition from SensorObject to SensorBody
76
+
- description: Version 1.7.71 broke example kinematicTreePendulum with transition from SensorObject to SensorBody
65
77
- **notes:** changed SensorObject(objectNumber=oKT into SensorBody(bodyNumber=oKT
66
78
- date resolved: **2024-04-17 16:13**\ , date raised: 2024-04-17
67
79
- resolved by: P. Manzl
@@ -80,7 +92,7 @@ Version 1.8
80
92
- description: .pyi files do not contain correct default args for C++ interfaces
81
93
- date resolved: **2024-04-14 16:15**\ , date raised: 2024-04-14
82
94
* Version 1.8.13: resolved Issue 1815: stub files (fix)
83
-
- description: .pyi files contain _ instead of _ from latex documentation
95
+
- description: .pyi are missing backslash before underscore (for latex) documentation
84
96
- date resolved: **2024-04-14 15:15**\ , date raised: 2024-04-14
85
97
* Version 1.8.12: resolved Issue 1812: GetMarkerOutput (fix)
86
98
- description: not working for MarkerKinematicTreeRigid in case of Reference configuration; adjustments done in CObjectKinematicTree::ComputeTreeTransformations to avoid the need for velocities in the retrieval of positions
@@ -5273,10 +5285,6 @@ Version 0.1
5273
5285
Open issues
5274
5286
***********
5275
5287
5276
-
* **open issue 1832:** theory docu
5277
-
- description: add description of computation of stresses for FFRFreducedOrder
5278
-
- date raised: 2024-05-03
5279
-
5280
5288
* **open issue 1825:** GraphicsDataCube
5281
5289
- description: rename to GraphicsDataBrick... functions; use assignment to keep previous functionality
0 commit comments