MBDyn Bugs & Unresolved Issues
Disclaimer
In a numerical analysis system there may exist a number of sources
of uncertainty.
There cannot exist anything like a mathematical proof of correctness
of an analysis.
The uncertainties can be related to:
- differences between mathematical models and reality
- numerical approximation of the mathematical models
- errors in the implementation of the numerical approximations
The first source of error can be dealt with by choosing the most
appropriate model for a given problem; the second requires the knowledge
of the properties of the numerical approximations that are being used
and the ability to decide whether they fit or not the purpose.
The latter source is inevitable and can be eliminated only by careful
programming and testing.
The MBDyn developers' team is strongly committed in eliminating all
the possible bugs in the code; of course the users' help is welcome.
Users (and developers) can help by highlighting flaws in the code;
solutions and significantly patches are welcome as soon as they
contribute in yielding a better, dependable code.
Known Problems
Known problems are listed in reverse chronological order;
if you find out you're exploiting a feature that is flawed,
you're urged to upgrade before
issuing a bug report.
- The multithread assembly broke with g++ >= 4.4;
it is not yet clear whether the bug is in MBDyn or in the compiler
(or in libatomic_ops, or whatever).
- The deformable hinge joint used an incremental strain
formulation which could drift under large periodical loads.
In 1.1.2 it has been rewritten using an absolute strain measure;
now the drawbacks are a little more computational overhead
and the limitation to 'small' strains (say less than +/-180 degrees).
Viscous and viscoelastic versions have been ported
to the new formulation.
- I realize most of the comments inside the code are in Italian
(many are also out of date; this might be a feature for many
non-Italian hackers :)
- There's a bug in the C81 unsteady aerodynamic forces in 1.1.1,
which has been FIXED in 1.1.2.
Users interested in aeroelasticity are encouraged to upgrade.
- There's a library cross-dependency that's not appropriately
handled by recent versions of libtool (e.g. 1.4.1).
The file mbdyn/Makefile can be hand-crafted by linking twice
the base/.libs/libbase.a library in mbdyn target, before
and after the libaero/libstruct/libelec/libhydr block.
- (FIXED in 1.1.0) There's a problem in the memory handling
of y12/harwell solver
that makes solution inefficient when large sparse matrices are used in versions
up to 1.0.1; users are encouraged to explicitly set the solver
to "solver: y12, workspace size, <n>;" where <n> is more than
three times the estimated number of nonzero terms of the matrix.
The fix makes use of the non-zero count from the previous factorization
to adaptively change the optimal size; in case of large variations of non-zeroes
it may fail. The problem can be fixed by forcing the use of a given workspace
size (see above). Unfortunately there's no simple automatic fix because when
the solver realizes there's not enough room, the coefficients of the matrix
have already been altered. Another solution is to use the Umfpack3 solver
instead of y12, because it dynamically allocates the workspace.
-
There's a number of features included in the distribution that are known
to work only partially or have not been thoroughly checked.
Among these are:
- modal aerodynamics
- unsteady aerodynamic correction (built-in; the C81 version
has been FIXED in 1.1.2)
- some of the hydraulic elements
- the kinematic joint
-
There's a number of non-reentrant parts in MBDyn.
As a consequence there's no chance to easily turn it into
a multi-thread software (this may be considered a feature considering
the issues of porting thread-based code among platforms :).
-
The math interpreter symbol table is local.
This means that run-time changes of a symbol are not shared among
processors during parallel simulations.
This will eventually be fixed when MBDyn is interfaced to
a symbolic math toolbox.
Miscellaneous
Maintained by mbdyn@aero.polimi.it