Recent Projects at Objexx
EnergyPlus: Building Energy Simulation
Objexx converted the EnergyPlus building energy modeling application from Fortran to C++ for a large commercial client.
The 30 MB of Fortran 90/2003 source code utilized many modern Fortran constructs and the successful conversion demonstrated the capabilities of the enhanced Objexx conversion system and of the ObjexxFCL 4.0 support for modern Fortran 90-2008.
Objexx is providing ongoing object-oriented design, performance optimization, and team support for this project.
- A GUI for building and running models developed with the cross-platform Qt framework.
- Real-time model visualization both within the GUI for model construction and simulation, and, optionally, in a viewer window for console/batch runs. This complements the high quality POV-Ray ray-traced based img/animation that ObjexxSISAME generates.
- A new YAML-structured input file format for human readability/editability and fast parsing.
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.