JavaScript is not enabled in your browser
Objexx Engineering

Recent Projects at Objexx


EnergyPlus QSS Solver

Objexx is developing the Quantized State System (QSS) solver for the next-generation EnergyPlus under contract to the US Dept. of Energy and the Lawrence Berkeley National Laboratory.

QSS offers potential scalability advantages for models with dependency sparsity and a mix of fast and slow dynamics, such as the large-scale EnergyPlus models.

  • The QSS solver works with Modelon's Optimica Toolkit to simulate Modelica models representing EnergyPlus model HVAC systems.
  • The QSS solver uses FMUs built by Optimica from the Modelica models via the FMI API.
  • Performing QSS simulation over Modelica FMUs presents challenges as the FMUs are built assuming a traditional solver with uniform time stepping and detected, rather than predicted, zero-crossing events.
  • First, second, and third order QSS methods are provided as well as Linearly Implicit QSS (LIQSS) variants for stiff problems.
  • The QSS solver is built in modern C++.
  • A suite of Modelica models has been developed to help test and refine the QSS solver.

Modelica HVAC Model

 

Modelica PV Cooling Model

 

Modelica QSS Simulation Temperature Plot


Building HVAC and Sprinkler Design

Objexx converted building HVAC and sprinkler system design applications from Fortran to Python for an Australian company in 2022.

  • The applications consisted of 7.4 MB of Fortran 95 source code.
  • A thorough testing/debugging phase was conducted on the Fortran prior to conversion.
  • Objexx provided the client recommendations and support for increasing the performance of the Python versions.
Building HVAC Design

SCADA Control System

Objexx converted a smart grid SCADA operations control system from legacy Fortran 77 to C++ for Survalent Technology Corporation in 2022.

SCADA Control System

Hydrodynamic Wave Modeling

Objexx converted four coastal hydrodynamic wave and tidal modeling applications from Fortran to C++ in 2021 for a research project at the National Kaohsiung University of Science and Technology Department of Marine Environmental Engineering.

  • The application code was a mix of legacy Fortran 77 (using common blocks and implicit declarations) and modern Fortran (using modules and derived types).
  • Array bound violations, use-before-initialization, argument mismatch, and other bugs were found and fixed.
  • Compilation options for Fortran and C++ were adjusted for one application that demonstrated sensitivity to floating point optimizations.
  • NetCDF Fortran API usage in one of the applications was ported to the NetCDF C API.
Hydrodynamic Wave Modeling

EnergyPlus

Objexx converted the EnergyPlus building energy modeling application from Fortran to C++ under contract to Autodesk and with the partnership of US Dept. of Energy and the National Renewable Energy Laboratory.

The 30 MB of Fortran 90/2003 source code utilized many modern Fortran constructs, which were handled correctly by the Objexx conversion system and the accompanying ObjexxFCL.

Objexx has provided ongoing object-oriented design, performance optimization, and team support for the EnergyPlus project.

Building Energy Simulation

ObjexxSISAME

The ObjexxSISAME system for optimal design and simulation of structural impacts is under ongoing enhancement including:

  • 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 and fast parsing.
  • Addition of the ObjexxPlot high-performance plotting application.
ObjexxSISAME GUI

Falcon: Nuclear Fuel Rod Finite Element Modeling

Objexx reengineered the Falcon nuclear fuel rod FEM application for a major electric power industry research organization in collaboration with Structural Integrity Associates and the Paul Scherrer Institute.

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:

  • Python
  • NumPy
  • F2PY
  • Qt/PySide
  • PyTables/HDF5
  • matplotlib
  • YAML
  • Fortran
Fuel Rod Pellet

SIAM-xLPR and SIAM-PFM

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.

Nozzle

Rosetta

Objexx converted the acclaimed Rosetta software suite for protein structure identification and design from Fortran to C++ and helped the Rosetta academic consortium with the migration to a 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.

Protein

PHENIX

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.

X-Ray Crystallography and Molecular Structure

Aircraft Flight Software Migration

Objexx migrated over 600 Fortran 77 applications from the VAX/VMS environment to standard-compliant, portable Fortran 95 for a major aerospace corporation.

Jet