forked from simbody/simbody
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ChangeLog.txt
107 lines (95 loc) · 5.59 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Changes in Simbody 3.0 since Simbody 2.2 release (July, 2011)
(includes changes in Simbody 2.3 branch)
20 June 2012
--------------------------------------------------------------------------------
License changed from MIT to Apache 2.0 (still unrestricted open source but
with less ambiguity).
Converting from 2.X to 3.0
--------------------------
- project(): drop most arguments; always does q and u and prescribed now. If
you want to do just q or just u, call projectQ() or projectU() instead.
- ProjectOptions has changed; no longer accepted by project(); used only by
lower-level projectQ and projectU methods
- handleEvent() virtual: must convert to reduced signature, get rid of
"lowestModified"
- constraint virtuals: changed to operators, meaning needed inputs are
supplied as arguments rather than extracted from State
- adding an EventHandler or EventReporter invalidates System topology now so
you must call realizeTopology() after the last handler or reporter has been
added
- Integrator::successfulStepStatusString() now getSuccessfulStepStatusString()
- removed ill-conceived String::getAs() and updAs() methods
- Concretize<T> renamed more conventional ClonePtr<T>
- The UserFunction<T> class used by TextDataEventReporter has been made local to that class; rename it TextDataEventReporter::UserFunction.
Changes
-------
- Performance improvements to basic multibody compuations & vectors
- Added task space support methods in SimbodyMatterSubsystem: operators
for working with point, frame, and system Jacobians and their time
derivatives.
- Numerous fixes to Visualizer; intermittent failures and mesh problems
fixed.
- Added DecorativePoint, 3-axis scaling, search path for Visualizer
- Pathname::fileExists() added
- Bug 1609: Cpodes was ignoring setAllowInterpolation(false).
- OSX Lion support
- Make Spline_ copy & copy assign work properly for null Spline_
- Fix mishandled work arrays in FactorQTZ
- Implemented fast prescribed motion using mixed forward/inverse computation;
all integrators modified accordingly
- u's and z's are now integrated to relative tolerance; q's still absolute
- improved CPodes handling of triggered events
- added macros to allows use of C++11 "override" and "final" keywords
(OVERRIDE_11, FINAL_11). Build system defines those for compilers that
support them (VS10)
- Reimplemented predefined constants as global externals to avoid static
initialization order dependency; now safe to use these in static initializers
- Fix Verlet's initial estimates for u and z
- Standardized I/O for true/false/NaN/Inf values; added readUnformatted() and writeUnformatted() methods
- Added ReferencePtr<T> useful to allow pointer data members without requiring
user-written copy/copy assign methods
- Fix error-check bug in Xml::Element::insertNodeBefore()
- Reorganized geometry source to localize in SimTKmath for complicated geometry (like contact) and SimTKcommon for basic primitives
- Added BicubicSurface/BicubicFunction and related primitives
8/16 Version changed to 3.0
8/16 Checked in FrictionConstraints doc
8/21 Rearchitected constraint API to support use of constraints
as operators (BREAKING CHANGE TO CUSTOM CONSTRAINTS)
8/25 Fixed bug 1521 in SpeedCoupler constraint; backported to 2.3.
8/29 Fixed bug 1522 in memory-sharing Vector constructor; backported to 2.3.
8/29 Added calcBodyAccelerationFromUDot() method to matter subsystem.
8/29 Renamed getCoriolisAcceleration() to getMobilizerCoriolisAcceleration()
and getCentrifugalForces() to getMobilizerCentrifugalForces()
to make it clear that these are just mobilizer-incremental contributions.
This is a BREAKING CHANGE if anyone ever called those, but probably if
they did it was a mistake and they should have been calling
getTotalCoriolisAccleration() or getTotalCentrifugalForces() which are
the meaningful physical quantities.
8/30 Added multiplyByG(), calcG() and related methods to matter subsystem.
8/31 Fixed bug 1523: 0-width slice of 1-d matrix was broken
9/09 Bug fixes to mesh-mesh elastic foundation code; backported to 2.2 & 2.3
(bugs 1527, 1528)
9/14 calcAcceleration operators are now really operators (no effect on state
cache).
9/15 Added calcResidualForces() method equivalent to sdfulltrq(); inverse
dynamics with constraints.
9/18 Reworked pos & vel projection to use new operators; fixed pos projection
so that it produces a normal projection in q-space (was u-space before).
9/19 Fixed bug 1535 -- mobilizer reaction torque sometimes miscalculated.
9/21 Replaced freebody reaction force method with faster method due to Abhi
Jain.
10/27 Fix to copy of matrix subblock.
11/17/2011
Stage class has been simplified. Constants like Stage::Position are just enums
now and can be used in case statements. Previously you had to use
Stage::PositionIndex, etc. for that purpose. Those extra enums are gone now so
if you were using Stage::VelocityIndex just switch to Stage::Velocity.
The Enumeration<> and EnumerationSet<> types have been removed since they were
not being used any more. If anyone was using them, let me know.
11/30/2011
- Added Function::Sinusoid
- Added additional inertia sanity check looking at products of inertia which have to obey conditions like Ixx>=|2*Iyz| (thanks to Paul Mitiguy). The strictest test is for central inertias; if those are OK then shifting them away always results in a good inertia.
12/3/2011
- Added missing rowSum() methods to Matrix, Mat and SymMat; fixed a bug in SymMat's existing sum() method for complex matrices.
- Added missing elementwiseMultiply()/Divide()/Assign() ops
6/24/2012 Made UserFunction a local class of TextDataEventReporter since it isn't used anywhere else.