As a result of this concern, FlightGear abstracts all of the code that implements an FDM behind an object oriented interface. As future applications find that existing FDM choices do not meet their requirements, additional FDM code can be added to the project without impacting the consistent performance of existing applications.
The original FlightGear FDM was LaRCsim, originally modeling only a Navion, which currently models a Cessna 172 using dedicated C source that has the necessary coefficients hard coded. It is sufficient for most flight situations that a passenger would choose to experience in a real aircraft. Unusual maneuvers that are often intentionally performed for training purposes are poorly modeled, including deep stalls, incipient and developed spins and steep turns. The code also supports a Navion and a Cherokee, to a similar quality.
A research group at the University of Illinois created a derivative of LaRCsim, with simplified the models such that they are only really useful for cruise flight regimes. They enhanced the code with a parametric capability, such that a configuration file could be selected at simulation start to determine how the aircraft will fly. Their use for this modification was to investigate the effect on aircraft handling of progressive accumulations of ice.
Another group is developing a completely parametric FDM code base, where all the information is retrieved from XML format files. Their JSBSim project can run independently of a full environmental simulation, to examine aerodynamic handling and other behavior. An abstraction layer links the object environment of FlightGear to the object collection of JSBSim to provide an integrated system. Among many others, this FDM supports the Cessna 172 and the X-15 (a experimental hypersonic rocket propelled research vehicle), providing the contrast between an aircraft used for teaching student pilots and an aircraft that could only be flown by trained test pilots.
An additional FDM code base, YASim, generates reasonable and flyable models for aircraft from very limited information. This is especially valuable when a new aircraft is being added into FlightGear. Initially, there is often insufficient public data for a fully parametric model. This FDM allows the aircraft to be made available to the user community, thereby encouraging its users to find sources of additional data that will improve the model quality.
The rest of FlightGear's configuration files are now also XML, such as the engine models, the instrument panel layouts and instrument design, the HUD layout, the user preferences and saved state. The real benefit of using XML here is that people with no software development experience can easily and effectively contribute. Pilots, instructors, maintenance technicians and researchers each have in-depth technical knowledge of how a specific subsystem of an aircraft, and hence the simulator, should behave. It is critical that we allow them direct access to the internals that define their respective subsystem, without burdening them with having to dig through other subsystem data to get there. We have made huge progress on achieving this in the last two years.