Structures for model type aero
------------------------------

Input:
-----

  type = "aero"
  subtype = "vlm"

  symy                           y-coordinate of plane of symmetry

  points(:).id                   Point identifier
           .coor(3)              Coordinates

  ls(:).id                       Lifting surface
       .points(2)                Points P1 and P2 on leading edge
       .chord(2)                 Chord length at P1 and P2
       .alpha(2)                 Angle of attack at P1 and P2 (in deg.)
       .camber{2}                Camber at P1 and P2 as piecewise polynomial
       .nx                       Number of panels in x-direction
       .typex                    Division type in x-direction
       .ny                       Number of panels in y-direction
       .typey                    Division type in y-direction

  wake(:).id                     Wake group identifier
         .ls(:)                  Identifiers of lifting surfaces in wake group
                                 (from leading to trailing edge)

  controls(:).name               Name of control surface
             .ls(:)              Identifiers of lifting surfaces
             .factors(:)         Factors for lifting surfaces


  typex = "linear" or "cos"
  typey = "linear", "cos>" or "<cos"

  config(:).name                 Configuration name
           .qdyn                 Dynamic pressure
           .ax                   Linear acceleration
           .ay                   Linear acceleration
           .az                   Linear acceleration
           .racce                Roll acceleration
           .pacce                Pitch acceleration
           .yacce                Yaw acceleration
           .alpha                Angles of attack
           .beta                 Sideslip angle
           .pitch                Pitch rate
           .yaw                  Yaw rate
           .roll                 Roll rate
           .<cntnam>             Control surface angle (in deg.)
           .lincon{:}            Cell array of structures describing linear constraints:
                                   .<tpname> = val for trim parameters
                                   .rhs      = val for righthand side

  mass.m                         Mass
      .JS(3, 3)                  Inertia tensor with respect to center
                                 of mass
      .cm                        Coordinates of center of mass

  cref                           Reference chord

  motion.refpnt(3)               Reference point
        .heave                   Heave amplitude
        .pitch                   Pitch amplitude (radians)
        .<cntnam>                Control surface amplitude (radians)

Internal:
---------

  type = "aero"                  Component type
  subtype = "vlm"                Component subtype

  symy                           y-coordinate of plane of symmetry

  cref                           Reference chord

  nodes.nofnod                   Number of nodes
       .ncoor                    Number of coordinates
       .maxcor(3)                Maxima of the coordinates
       .mincor(3)                Minima of the coordinates
       .ids(:)                   Identifiers in ascending order
       .coor(:, 3)               Coordinates

  ls.nofls                      Number of lifting surfaces
    .ids(nofls)                 Identifiers in ascending order
    .surfs(nofls).nx            Number of panels in x-direction
                 .ny            Number of panels in y-direction
                 .P(2, 3)       Coordinates of points P1 and P2
                 .c(2)          Chord at points P1 and P2
                 .a(2)          Angle of attack at P1 and P2 (in rad)
                 .camber{2}     Camber at P1 and P2
                 .nvec(3)       Normal vector
                 .tx(:)         Parametric positions in x-direction
                 .ty(:)         Parametric positions in y-direction
                 .p1            Index of first panel in panel structure
                 .pend          Index of last panel in panel structure
                 .gid           Panel column group identifier

  panels.nofpan                 Number of panels
        .corner(4, :)           Indices of panel corner nodes
        .A(3, :)                Coordinates of vortex points A
        .B(3, :)                Coordinates of vortex points B
        .C(3, :)                Coordinates of control points C
        .nvec(3, :)             Normal vectors
        .area(:)                Areas
        .slope(:)               Slopes (from camber)

  pancols.npcol                 Number of panel columns
         .ng                    Number of panel column groups
         .panids{npcol}         Cell array with lists of panels in each column
         .gcx(2, ng)            Indices of first and last panel columns
                                in panel column group 
         .tepcor(3, 2, npcol)   Coordinates of trailing edge points A and B

  controls.ncntrl               Number of control surfaces
          .<name>.nofls         Number of lifting surfaces
                 .P1(:, 3)      Coordinates of leading edge point P1
                 .P2(:, 3)      Coordinates of leading edge point P2
                 .pids(:, 2)    Identifiers of first and last panel
                                of control surface <name>
                 .factors(:)    Factors

  config.nconf                  Number of configurations
        .ncntrl                 Number of control surfaces
        .nlinc(nconf)           Number of linear constraints
        .names{:}               Configuration names
        .qdyn(:)                Dynamic pressure
        .ax(:)                  Linear acceleration
        .ay(:)                  Linear acceleration
        .az(:)                  Linear acceleration
        .racce(:)               Roll acceleration
        .pacce(:)               Pitch acceleration
        .yacce(:)               Yaw acceleration
        .alpha(:)               Angles of attack
        .beta(:)                Sideslip angle
        .pitch(:)               Pitch rate
        .yaw(:)                 Yaw rate
        .roll(:)                Roll rate
        .cntls.<cntnam>(:)      Control surface angles
        .tpdef.<tpnam>          n-th bit is 1 if trim parameter <tpnam> is
                                defined for n-th configuration
        .lincon{nconf}          Cell array of cell arrays with definitions of linear
                                constraints

  motion.refpnt(3)              Reference point
        .heave                  Heave amplitude
        .pitch                  Pitch amplitude
        .<cntnam>               Amplitude of control surface angle

  rbmp.m                        Rigid body mass properties 
      .JS(3, 3)                 Inertia tensor with respect to center
                                of mass
      .cm(3)                    Coordinates of center of mass

  statresp.nconf                Number of configurations
          .G(:, nconf)          Vortex strengths
          .panres.nofpan        Number of panels
                 .P(3, nofpan)  Coordinates of point between A and B
                 .f(3, :, :)    Panel force
                 .p(:, nconf)   Panel pressure
          .disp(:, nconf)       Displacements

  trim.type                     Type: "rigid", "unrestrained" or "restrained"
      .nconf                    Number of configuration
      .ntp                      Number of trim variables
      .tpnames{ntp}             Trim variable names
      .tpval(ntp, nconf)        Trim variable values
      .G(:, nconf)              Vortex strengths
      .panres.nofpan            Number of panels
             .P(3, nofpan)      Coordinates of point between A and B
             .f(3, :, :)        Panel force
             .p(:, nconf)       Panel pressure
      .disp(:, nconf)           Displacements
      .qr(6, nconf)             Rigid body parameters

  diverg.ndiv                   Number of divergence cases
        .qdyn(ndiv)             Dynamic pressure
        .disp(:, ndiv)          Displacements

  flutter.nshape                Number of flutter mode shapes
         .mode(nshape)          Flutter mode number
         .point(nshape)         Flutter point number
         .v(nshape)             Flutter velocity
         .f(nshape)             Flutter frequency
         .kred(nshape)          Reduced frequency
         .disp(:, nshape)       Displacements

  freqresp.nfa                  Number of analyses
          .resp{nfa}            Cell array with responses

           resp.method          Method: 1 = direct
                                        2 = modal
                                        4 = force summation method
               .type            Load type:  1 = motion 
                                           11 = gust or manoeuvre
               .nfreq           Number of excitation frequencies
               .kred(:)         List of reduced frequencies
               .freq(:)         List of excitation frequencies
               .G(:, nfreq)     Vortex strengths
               .panres          Structure with panel results (see below)
  *b           .nback           Number of excitation frequencies with
                                physical results
  *b           .freqback(:)     List of frequencies with phyiscal results
               .Q(:, nfreq)     Response of modal coordinates
               .Ue(:, nfreq)    Elastic deformation
  *b           .U(:, nback)     Total deformation

  *b  to be computed by mfs_backx (not yet implemented)

     Panel results:

       panres.nofpan         Number of panels
             .P(3, nofpan)   Coordinates of point between A and B
             .f(3, :, nfreq) Panel force
             .p(:, nfreq)    Panel pressure

  modes.nofmod                  Number of normal modes
       .rigmod                  Number of rigid body modes
       .omega(nofmod)           Circular eigenfrequencies
       .freq(nofmod)            Eigenfrequencies
       .disp(:, nofmod)         Normal modes matrix
    
