0% found this document useful (0 votes)
143 views53 pages

Multibody System Dynamics - Presentation - 2008

The document discusses a presentation on multibody system dynamics and the free general-purpose multibody solver MBDyn developed at Politecnico di Milano, noting that the presentation has two parts, one on multibody system dynamics with reference to MBDyn, and another on the requirements for FEM interaction with MBDyn and possible solutions for interaction with Aster.

Uploaded by

Maria Marque
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
143 views53 pages

Multibody System Dynamics - Presentation - 2008

The document discusses a presentation on multibody system dynamics and the free general-purpose multibody solver MBDyn developed at Politecnico di Milano, noting that the presentation has two parts, one on multibody system dynamics with reference to MBDyn, and another on the requirements for FEM interaction with MBDyn and possible solutions for interaction with Aster.

Uploaded by

Maria Marque
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

MBDyn - Multibody System Dynamics

LaMSID (EDF R&D - French CNRS Joint Laboratory)


July 24 - August 7, 2008

Pierangelo Masarati <[email protected]>

Politecnico di Milano
Dipartimento di Ingegneria Aerospaziale
2
Preamble

This presentation is split in two parts:

• Multibody System Dynamics,

with specific reference to MBDyn,


the free general-purpose multibody solver
developed at “Dipartimento di Ingegneria Aerospaziale”
of “Politecnico di Milano”, Italy

• FEM interaction requirements of MBDyn,

with the outline of possible solutions for the interaction with Aster

LaMSID – July 24 – August 7, 2008
3
Outline

• Overview
• Multibody dynamics
• Software architectures
• Problems
• Arbitrary motion description
• Deformable components
• Solving the problem
• Extracting useful information
• Examples of multibody modeling with MBDyn
• Future development
• Documentation and support
• Acknowledgments

LaMSID – July 24 – August 7, 2008
4
Multibody dynamics: overview

• Multibody: a “buzz” word?

• Initial idea:
 automatically write equations of motion of arbitrary mechanisms

• Current status:
 efficiently and accurately integrate in time
 exact rigid-body kinematics, plus
 nonlinear finite elements, plus
 natural inclination towards multi-physics & system integration

• Future:
 scale to larger and larger problems, and
 higher performances when solving more complex problems

LaMSID – July 24 – August 7, 2008
5
Multibody dynamics: overview

Multibody methods:

• Usually are general-purpose: can model a wide variety


of mechanical systems

• Must allow to automatically write motion equations

• Should support an arbitrary number of a variety of parts, forces,


geometries, constraints, etc.

• Most often use numerical methods to compute solutions.

• Often integrated in CAD tools, with Graphical User Interfaces (GUI)

LaMSID – July 24 – August 7, 2008
6
Multibody dynamics: overview

Types of analysis:

• Kinematics: direct, inverse

• Statics (pseudo-time)

• Dynamics: direct IVP, BVP, inverse dynamics

• Miscellaneous:
 modal analysis
 sensitivity analysis
 parameter optimization
 topology optimization and mechanism synthesis

LaMSID – July 24 – August 7, 2008
7
Multibody dynamics: overview

Applications:
• Robotics
• Automotive
• Crashworthiness
• Aerospace engineering
• Industrial automation
• Applied mechanics

• Videogames: revenue higher than engineering software!


• Anywhere realistic motion (or at least that looks realistic)
is required, multibody simulation is or can (and will) be used.

LaMSID – July 24 – August 7, 2008
8
Multibody dynamics: overview

Classification of approaches:
• Based on coordinate set
classical approach
 Minimal coordinate set
 Redundant coordinate set modern approach

• Based on local solution methods


 Direct linear solvers classical approach
 Iterative solvers modern approach

• Based on problem formulation


 Explicit specialistic
 Implicit general-purpose

• Based on integration schemes


 Ordinary Differential Equations (ODE) w/ constraint stabilization
 Differential-Algebraic Equations (DAE)

LaMSID – July 24 – August 7, 2008
9
Multibody dynamics

Basic equations:

M  x  ẍ=f x , ẋ , t
 mechanics of unconstrained system of bodies
 subjected to configuration-dependent loads

Can be obtained from many (equivalent!) approaches:


 Newton-Euler: linear/angular equilibrium of each body
 d'Alembert-Lagrange: virtual work of active forces/moments
 Gauss, Hertz, Hamilton, ...: variational principles

Note: non-smooth mechanics tend to resort to discrete equations


k
M  x ẋ k−1, k =∫k−1 f  x , ẋ , t d t

LaMSID – July 24 – August 7, 2008
10
Multibody dynamics

Constrained system: kinematic constraints


 holonomic (algebraic)
 x , t=0 ẍ=aM −1 f c
 Non-holonomic
(differential, not integrable to holonomic)
x , ẋ , t=0
M−1 f c
usually
a=M −1 f
A  x , t ẋ=b x , t

• algebraic relationship between kinematic variables


• explicitly dependent on time: rheonomic
• scleronomous otherwise

LaMSID – July 24 – August 7, 2008
11
Multibody dynamics

Minimal set:
x=xq , t
usually, this relationship:
 is not known in advance, or
 cannot be easily made explicit with respect
to Lagrangian coordinates q

Cordinate partitioning is required, e.g.:


 direct elimination from derivative of constraint equation
 QR, SVD or similar decomposition

Results in Maggi-Kane equations and similar approaches

Small system is obtained by expensive numerical reduction


(unless topology knowledge can be exploited)

LaMSID – July 24 – August 7, 2008
12
Multibody dynamics

Redundant set:
 ⋅= ⋅ x⋅T/x 
T
 ⋅= ⋅ x⋅ / ẋ 
By Lagrange multipliers:
 dynamics of constrained system using physical coordinates
 constraint reactions applied to equations of motion
 algebraic constraints explicitly added to the system

• mechanism made of multiple bodies with multiple constraints


and few actual DoFs:
 system size nearly doubles

• mechanism made of deformable bodies with few constraints (e.g. FEM):


 system size not significantly altered

[ ]{ } { }
T
M  / x ẍ f
=
• sparsity is almost preserved  /x 0  b'

LaMSID – July 24 – August 7, 2008
13
Multibody dynamics

Constraint equations written “as is”:


 x , t=0
problem becomes differential algebraic (DAE); issues:
• needs specific care to be solved: (nearly) L-stable integration, i.e.
 unconditionally stable (A-stable), and
 x  0 for  t ∞
k1

• the constraint equation implies the additional constraints


̇ x , t=0
̈ x , t=0
but they are not explicitly enforced:

may need constraint stabilization (Gear et al.)

LaMSID – July 24 – August 7, 2008
14
Multibody dynamics

Constraint equations:
• x is correct
• derivatives may be inaccurate
• multipliers may be inaccurate

numerical solution x j , t j =0

k+2
numerical solution  x j , t j =0
with constraint k+2
stabilization ̇ x j , t j =0
k+1

k
 x , t=0 exact solution

LaMSID – July 24 – August 7, 2008
15
Multibody dynamics

Alternative: constraint equations differentiated to second order:

 / x ẍ=b '
problem remains ordinary differential (ODE);
• can be solved by conditionally stable algorithms
• the constraint equation does not imply the original constraints

 x , t=0
̇ x , t=0

suffers from drift! definitely needs constraint stabilization!

common technique: Baumgarte


 / x ẍ=b ' −2  ̇−2 
(violation governed by asymptotically stable linear differential eq.)

LaMSID – July 24 – August 7, 2008
16
Software architectures

• Monolithic:
 user prepares specific model using built-in library elements
 general-purpose solver swallows model and spits results

• Library:
 user writes specific solver using library elements
• usually needs programming skills; the solver must be compiled
 specific solver solves the problem and spits results

• Symbolic manipulators:
 user writes equations
 symbolic manipulation engine solves equations and spits results

• Modelica (and Modelica-like):


 user prepares model using a modeling language and libs
 general-purpose interpreter generates specific solver
 specific solver solves the problem and spits results

LaMSID – July 24 – August 7, 2008
17
Software architectures

Free software examples (surely there are more):


• Monolithic:
 MBDyn
non-free counterparts omitted
• Library:
 DynaMechs (C++)
 Mbs3d (requires Matlab)
 Open Dynamics Engine (ODE) (C++)

• Symbolic manipulators:
 3D_MEC
 EasyDyn (MuPad)
 RoboTran (requires Matlab) frequently architectures overlap

• Modelica:
 OpenModelica?

LaMSID – July 24 – August 7, 2008
18
Software architectures
• MBDyn is monolithic

• Input consists in a text file

• The input syntax allows some flexibility, e.g.:


 math expressions evaluation
 variables definition
 “rigorous” syntax checking, but free style, indentation, ...

• Relevant portions of the code are modular and can be extended by:
 writing run-time loadable modules
 hacking the code (it's free, all in all!)

• There is no built-in pre-post processing facility

• Help in this area would be warmly appreciated!


 MBDyn output can be translated into EasyAnim
 there is an independent, partial customization based on Blender

 what about a custom Salome toolbox for multibody?

LaMSID – July 24 – August 7, 2008
19
Software architectures
MBDyn interacts with other software:
• Generic streamed input/output
 Input: “drive” (scalar); can be fed to several entities:
• imposed load
• imposed joint motion
• imposed deformable component prestrain
• Inputs can be aggregated and manipulated
 Output: “measurement” (scalar); can be any exportable entity:
• any model state
• internal parameters of elements and nodes
• outputs can be aggregated and manipulated
 Used to interact with Simulink, Scicos, ... also in hard real-time

• Generic motion output/force input


 Used for interaction with CFD solvers
 Could be (easily?) adapted for interaction with Aster?

• Other software needed to pre/post-process data (e.g. FEM)

LaMSID – July 24 – August 7, 2008
20
Problems

Equations of motion: for each node (purely geometrical entity),


• Newton-Euler, written as first-order system of equations:
M ẋ= p (for dynamic nodes only)
ṗ= f x , ẋ , t  (=0 for static nodes)
• Momentum and momenta moment are used
instead of pseudo-velocities

• allows multiple contributions to inertia of a single node


(but constraint stabilization is no longer straightforward...)

Constrained equations are directly written


in differential-algebraic form:
M ẋ= p
T
ṗ / x = f x , ẋ , t
x , t= 0

LaMSID – July 24 – August 7, 2008
21
Problems

• Fundamental problem:
 integration of Initial Value Problem (IVP) in time
 also in Hard Real-Time (by way of RTAI, RT-Net & Scicos)
for Hardware-In-the-Loop (HIL) simulations

• Static analysis as degeneration of IVP dynamic analysis:


 momentum and momenta moment definitions omitted
 only gravity is considered
 system determination must be provided by kinematic constraints
and deformable components

• Kinematic analysis as degeneration of IVP dynamic analysis:


 inertia elements omitted
 system determination must be provided by kinematic constraints
 deformable components can act as “regularization”

LaMSID – July 24 – August 7, 2008
22
Problems
K '=I : Moore-Penrose pseudo-inverse

Experimental inverse dynamics problem


• inverse kinematics

[ ]{ } { }
T
(allows under- K ' / x  x 0
constrained = nonlinear
systems):  /x 0  0 −x , t

[ ]{ } { }
T
K '  / x  ẋ 0
same matrix! = linear
 /x 0 1 b x , t 

[ ]{ } { }
T
K '  / x  ẍ 0
= linear
 /x 0 2 b ' x , ẋ , t

• the RHS contains the desired motion and its derivatives


• the (regularized) static analysis provides the kinematic inversion
T/ x =f ' x , ẋ , ẍ , t  linear

LaMSID – July 24 – August 7, 2008
23
Problems

• Direct eigenanalysis (eXperimental)


 issues with constraints formulation
(mainly with rotations)

 issues with equations implementation


(matrices not available for some elements; e.g. aerodynamics)

• Future development: relative coordinate frame dynamics


 imposed frame motion: modifications only to RHS inertia elems

 instrumental for many helicopter rotor/wind turbine


dynamics problems

LaMSID – July 24 – August 7, 2008
24
Arbitrary motion description

• Mechanical degrees of freedom:


 structural node positions in the absolute reference frame
 structural node orientations with respect to the absolute frame
(but in updated form...)

• Kinematics is always written with respect to the absolute frame

• Newton-Euler equations are written in the absolute frame


 moment equilibrium (Euler) equations are written
with respect to the (moving) nodes

• Special elements may introduce further approximations


 e.g. Component Mode Synthesis (CMS) element

LaMSID – July 24 – August 7, 2008
25
Arbitrary motion description

Orientation handling:
• orientation variables: Cayley-Gibbs-Rodrigues parameters
• orientation matrix:
R=R g
• orthonormality:
R T =R−1
• derivative:
Ṙ R T =×=G g ġ×

• incremental approach from step k to k+1 to eliminate the


singularity issue that arises from orientation parameters
(increments must be small anyway for accuracy):
R k =R g k R k−1

LaMSID – July 24 – August 7, 2008
26
Arbitrary motion description

• Orientation handling:
 the actual orientation variables are the Cayley-Gibbs-Rodrigues
parameters relative to the correction phase of each time step
 k: time step counter
 i: correction iteration counter (0: predicted value)

“updated-updated” (0)
lagrangian k

k-1 k(i)
updated lagrangian
• Orientation matrix:
R ki=R g i

 R 0 
k

• Derivative:
Ṙ ki R ki T=ki×=R  gi

  0
k
×G g i

 ġ  i

×

LaMSID – July 24 – August 7, 2008
27
Arbitrary motion description

• Incremental orientation from previous step:


 Orientation parameters order of magnitude:

g~O∥∥ t
• Incremental orientation from prediction:
 Orientation parameters order of magnitude:

g ~O  t n1 

where n is the min between the order of the predictor and that
of the integration method (MBDyn: 3 and 2, respectively)

 As a consequence: R g  ≈I
G g ≈ I
(only in Jacobian
matrix, of course!) Ġ  g ≈0

LaMSID – July 24 – August 7, 2008
28
Deformable components

• Lumped deformable components


 rod (1D)
 linear, angular components (3D)
 linear & angular component (6D)

• Intrinsic, composite-ready Finite-Volume beam element


 arbitrary constitutive law
 piezoelectric constitutive law
 aerodynamic (strip-theory with inflow model) beam element

• Component Mode Synthesis (CMS)


 attached to a floating frame (a multibody node) for rigid body motion
 linear state-space representation of unsteady aerodynamics

ẋ= A xB q s
f a= qC xD0 q s b/V D1 q̇ s  b/V 2 D2 q̈ s 

LaMSID – July 24 – August 7, 2008
29
Deformable components

Lumped deformable components (3D, 6D):


T
= ax  exp  R a R b 
−1

m= R   m
 
• Attached form:
 constitutive properties referred to either of the connected nodes

=0, =1

• Intrinsic form (invariant: =1/2 ):


 constitutive properties referred to a floating reference frame
 intrinsically handles geometrical nonlinearity related to rotations
 correctly captures bending-torsion buckling behavior
 essential for anisotropic deformable components

The intrinsic/invariant form is unique to MBDyn.


It resulted from a work for Hutchinson CdR

LaMSID – July 24 – August 7, 2008
30
Deformable components

Intrinsic, composite-ready beam


• Topology:
 1D reference line p, 1D reference structure R
 2D section characterization

reference motion: p , R
reference line

reference
orientation
p R

x= pR t
t
x / = p /×R t

warping

LaMSID – July 24 – August 7, 2008
31
Deformable components

Intrinsic, composite-ready beams


• strain measure:
T T
= R p /−R 0 p 0 /
= R T  −R T0  0

• equilibrium (from VWP):


f /= 
m / p /×f = 

• constitutive properties:

f = f , 
m= m  , 

LaMSID – July 24 – August 7, 2008
32
Deformable components

Intrinsic, composite-ready beams: 3-node discretization


• Finite Volume approach: equilibrium of finite portions of beam
• internal forces function of node kinematics thru constitutive laws
• warping goes into constitutive properties computation
f II , m II f 3 , m3
f 2 , m2
f I , mI

f 1 , m1
point II
point I
node 3

node 2

node 1 constitutive properties from detailed 2D FEM

LaMSID – July 24 – August 7, 2008
33
Solving the problem

Numerical integration
• implicit, (quasi-)L stable 2 step algorithm
y k =a 1 y k−1 a 2 y k−2  t b 0 ẏ k b 1 ẏ k−1 b2 ẏ k−2 

• tunable algorithmic dissipation: asymptotic spectral radius 1→0


 asymptotic spectral radius = 0: 2nd order BDF
 “optimal” dissipation: spectral radius ~ 0.6

• second-order accurate, with third-order accurate predictor


• variable time step
• not ideal for non-smooth problems (multi-step)
• different integrators can be used; new ones can be implemented

LaMSID – July 24 – August 7, 2008
34
Solving the problem

• Prediction:
ẏ0k =m 1 y k−1m 2 y k−2 / tn 1 ẏ k−1n 2 ẏ k−2
y0k =a1 y k−1a2 y k−2  t b 0 ẏk0b 1 ẏ k−1 b 2 ẏ k−2 

• Correction iteration:
f / ẏ  ẏ if /y  yi =−f  ẏki−1 , yki−1 , t k 
but
 y i = t b 0  ẏ  i

the problem becomes algebraic


 f / ẏ  t b 0 f / y  ẏ i=−f  ẏi−1
k
, y i−1
k
, tk
ẏki= ẏki−1 ẏi
 i  i−1  i
y k =y k  t b0  ẏ

LaMSID – July 24 – August 7, 2008
35
Solving the problem

Model assembly
• model could be input incorrectly
• initial values of the state (position, velocity, reactions) are needed
• this task might not be trivial
• initial state values must comply with constraints:
 x 0, t 0 =0
̇ x 0, t 0 =0
• a dummy static nonlinear problem is solved (regularization):
T
K ' x−x 0  /x  '= f '
C ' ẋ− ẋ0  T/x '= ḟ '
x , t 0 = 0
̇x , t 0 = 0

LaMSID – July 24 – August 7, 2008
36
Solving the problem

Solution initialization (so-called “derivatives”)


• explicit problem:
ẏ=f y , t 

• implicit problem:
0=f  y , ẏ , t 

• modified correction phase to initialize solution:


f / ẏ c f /y   ẏ i=−f  ẏ 0i−1 , y 0 , t 0 
ẏ0i= ẏ0i−1 ẏi
y 0 =y 0

• convergence no longer quadratic, but saves lots of code duplication


• Setting c=0 might not work (problem can be structurally singular)

LaMSID – July 24 – August 7, 2008
37
Extracting useful information

• Detailed analysis requires detailed models, but...

• excessive details endanger the chance to extract useful information

• Proper Orthogonal Decomposition allows to extract information


from redundant measures

• Consider a set of N measurements X for n time steps; their SVD:


XT  ∈ℝ n× N =U  V T

• The singular values allow to determine the m most relevant signals


XT1: m, n=U n , 1: m  1 : m, 1: m V TN , 1 : m

• Note that T 2 T T 2 T
X X= U  U XX = V V
U T XT =  V T XT V= U 
• This allows to efficiently compute the singular values and the POMs

LaMSID – July 24 – August 7, 2008
38
Extracting useful information

• The POMs can be used to identify a transition matrix

X  k1= X k
• If X contains the free response of the system, the transition matrix
allows to estimate the relevant eigenvalues (AR model)

• More sophisticated system identification techniques can be used

• A technique based on covariance estimates from time histories has


been recently proposed; works for:
 free response
 forced response
 unmeasured forced response

[1] G. Quaranta, P. Masarati, and P. Mantegazza: “Continuous-Time Covariance Approaches for


Modal Analysis”, Journal of Sound and Vibration, Vol.310/1-2 pp. 287-312, 5 February 2008.
[2] G. Quaranta, P. Masarati, and P. Mantegazza: “Assessing the Local Stability of Periodic
Motions for Large Multibody Nonlinear Systems Using POD”, Journal of Sound and
Vibration, Vol 271/3-5, pp. 1015-1038, 2004.

LaMSID – July 24 – August 7, 2008
39
Examples of multibody modeling with MBDyn

Robotics:
delta robot

inverse dynamics
for computed
torque control

LaMSID – July 24 – August 7, 2008
40
Examples of multibody modeling with MBDyn

Robotics: PA-10
inverse kinematics
with path optimization
of cooperating robots

LaMSID – July 24 – August 7, 2008
41
Examples of multibody modeling with MBDyn

Robotics:
biomimetic robot
real-time motion planning
by inverse kinematics
with fault detection

LaMSID – July 24 – August 7, 2008
42
Examples of multibody modeling with MBDyn

Industrial processes:

• simulation of automotive components assembly (car brake pipe) to:


 check stresses introduced during assembly
 check loads on supports introduced during assembly
 check interference with other parts during assembly
 check interference with other parts during operation

• the model has been developed by a rubber manufacturer


(Hutchinson CdR)

• it is used for product design and certification

• it required the development of specific features for solution


partitioning, which are now part of the standard MBDyn (the “hints”)

LaMSID – July 24 – August 7, 2008
43
Examples of multibody modeling with MBDyn

Automotive: mechanical modeling of suspensions


purpose: determine loads in rubber bushings and other components

LaMSID – July 24 – August 7, 2008
44
Examples of multibody modeling with MBDyn

Rotorcraft dynamics and aeroservoelasticity:


• WRATS (NASA/Army) tiltrotor aeromechanics

LaMSID – July 24 – August 7, 2008
45
Examples of multibody modeling with MBDyn

Rotorcraft dynamics
and aeroservoelasticity:
• ERICA (AgustaWestland)
tiltrotor aeromechanics
(ADYN, NICETRIP EU 6FP,
in cooperation with
Eurocopter, DLR, ONERA
and more...)

LaMSID – July 24 – August 7, 2008
46
Examples of multibody modeling with MBDyn

Wind-turbine dynamics simulation,


also in Real-Time
blades

gearbox
nacelle
tower
yaw teeter

pitch

LaMSID – July 24 – August 7, 2008
47
Future development

• Multiscale handling of submodels with different dynamics;


for example, in the flying helicopter case:
 aircraft flight mechanics (~0 to 5 Hz: very slow)
 airframe & main rotor dynamics (~5 to 40 Hz: intermediate)
 tail rotor dynamics (~25 to >100 Hz: fast)

• Interfacing with different domains


 fluid-structure (Lagrangian/Eulerian modeling of work flows)
 structure-structure (dynamic loads to detailed static analysis)
 active control of large deformable systems

• Better abstraction/modularization of components/solution phases


 more freedom in model customization
 tight integration into nonlinear structural analysis
(structural damage growth under dynamic loads?)

• More...

LaMSID – July 24 – August 7, 2008
48
Future development

• Development has always been problem (and customer!) driven

• Development model:
 research (possibly new) solutions in (possibly new) areas
 procure research grants and contracts in those fields
 never ask funds just for software development
 sell expertise, not just software; as a consequence...
 ...software is not the result of a contract: it's a pre-existing tool
 software remains free even when customers are narrow-minded
 when possible, work with open-minded customers :-)

• Drawback: cannot stick with tight development plans :-(

We are a University: we should not sacrifice our research freedom


to industry schedules

LaMSID – July 24 – August 7, 2008
49
Documentation and support

• Freedom and features are not enough: software needs to be usable

• Users need:
 documentation
 forums to discuss issues
 issue tracking provisions
 reasonable guarantee of maintenance
 reasonable guarantee of stability across releases

• The main guarantee is the freedom of the software:


 in the worst case, one can always fork and go on its own; but...
 ... first, better talk to the developers: cooperation saves efforts

LaMSID – July 24 – August 7, 2008
50
Documentation and support

• Theory manual:
 Incomplete; needs lots of work

• User manual
 available and complete, but probably hard to read; needs improvements

• Tutorials
 available, but reportedly too simple; need work

• Applications manual
 just started

• Installation manual
 available, but incomplete and outdated

• Mailing lists
 available: announce, users, devel
 right now, the “users” list also serves as issue tracking provision

LaMSID – July 24 – August 7, 2008
51
Documentation and support

• Another important item that is missing is an automated test suite, that


 can be run automatically after building the software
 allows to check build errors
 allows to check regressions in new releases
 serves as example of modeling functionalities

• The rest is underway (always a work in progress)

Given the nature of the project, contributions are always welcome!

LaMSID – July 24 – August 7, 2008
52
Acknowledgments

• Paolo Mantegazza (“grandfather” of MBDyn)


• Marco Morandini (lots of optimizations, friction, ...)
• Giuseppe Quaranta (schur decomposition, FSI, ...)
• Alessandro Fumagalli (inverse dynamics, ...)

• many Graduate and PhD students

• few contributions from outside as well (mostly bug fixes)

LaMSID – July 24 – August 7, 2008
53

Questions?

LaMSID – July 24 – August 7, 2008

You might also like