Recent Projects at Objexx
Objexx converted the EnergyPlus building energy modeling application from Fortran to C++ under contract with Autodesk.
The 30 MB of Fortran 90/2003 source code utilized many modern Fortran constructs and the successful conversion demonstrated the capabilities of the Objexx conversion system and the ObjexxFCL for modern Fortran 90-2008.
Objexx is providing ongoing object-oriented design, performance optimization, and team support for this project and is developing the QSS solver for the next-generation EnergyPlus under contract to the US Dept. of Energy and the Lawrence Berkeley National Laboratory.
- A cross-platform GUI for building and running models developed with the Qt framework.
- A performance redesign giving a 7X simulation speedup for 3D models.
- A new contact interaction model.
- 3D positioning support for 1/2D models.
- Real-time model visualization built with OpenSceneGraph.
- A YAML-style input file format for human readability/editability and fast parsing.
- Addition of the ObjexxPlot high-performance plotting application.
Falcon: Nuclear Fuel Rod Finite Element Modeling
The Falcon project involves extracting and modernizing a legacy Fortran FEM core, building a user-centric, graphical application for building and running models, designing a flexible input and output file framework, and building an advanced post-processor.
Technologies used to build the new hybrid Falcon system include:
Objexx worked with the SIAM-xLPR/SIAM-PFM team at the Oak Ridge National Laboratory to identify and demonstrate software technology improvements for the Python-Fortran hybrid SIAM-PFM application being developed for the NRC. The focus was on methodologies to eliminate the need for users to install dependencies or to learn/use F2PY.
Objexx converted the preeminent Rosetta software suite for protein structural identification and design from Fortran to C++ and helped the Rosetta academic consortium with the migration to scalable, object-oriented design.
The ObjexxFCL was used to provide critical functionality within the C++ Rosetta:
- Multidimensional arrays supporting Fortran indexing and array passing "tricks" to ease the migration for the developers.
- A unique automatic array dimensioning system to enable dynamic sizing to be introduced with minimal disruption.
- Array linear indexing support was used to performance tune critical loops with multidimensional array operations to obtain Fortran-competitive speeds.
- Fortran-compatible strings to preserve existing code look and semantics.
Rosetta continues as a vibrant project with a wide developer base successfully using layered, modular, object-oriented C++ designs to greatly expand the modeling scope and capabilities.
Objexx converted a major component of the PHENIX X-ray crystallography software from Fortran to C++ for the Lawrence Berkeley National Laboratory. The Objexx conversion process and the ObjexxFCL library were used.
The project included testing and debugging the Fortran and performance-tuning the C++ to meet or exceed Fortran speeds.
Aircraft Flight Software Migration
Objexx worked with a major aerospace corporation to migrate over 600 FORTRAN-77 applications from the VAX/VMS environment to standard-compliant, portable Fortran 95.