virtual void RK_CALL load(ReaK::serialization::iarchive& A, unsigned int) {
      named_object::load(A,named_object::getStaticObjectType()->TypeVersion());
      A & RK_SERIAL_LOAD_WITH_NAME(mMass)
        & RK_SERIAL_LOAD_WITH_NAME(mInertiaMoment)
        & RK_SERIAL_LOAD_WITH_NAME(mDt);
      if((mInertiaMoment.get_row_count() != 3) || (mMass < std::numeric_limits< double >::epsilon()))
	throw system_incoherency("Inertial information is improper in satellite3D_lin_dt_system's definition");
      try {
        invert_Cholesky(mInertiaMoment,mInertiaMomentInv);
      } catch(singularity_error&) {
	throw system_incoherency("Inertial tensor is singular in satellite3D_lin_dt_system's definition");
      };
    };
 airship2D_lin_system(const std::string& aName = "", 
                      double aMass = 1.0, 
                      double aInertiaMoment = 1.0) :
                      named_object(),
                      mMass(aMass),
                      mInertiaMoment(aInertiaMoment) {
   setName(aName);
   if((mInertiaMoment < std::numeric_limits< double >::epsilon()) || (mMass < std::numeric_limits< double >::epsilon()))
     throw system_incoherency("Inertial information are singular in airship2D_lin_system's definition");
 };