• Oil and Gas

    Our primary expertise lies in the development of numerical models and implementation of engineering software for well cementing – the process in the construction of a wellbore whereby cement is placed between the casing and the formation. The primary objective of well cementing is to achieve zonal isolation so that the fluids from one formation zone (such as oil or gas) do not migrate to another zone or the surface. Failure to achieve it may lead to many serious problems: gas or oil can flow to the surface causing a blowout, with consequent environmental damage and a possible loss of life. Reservoir fluids may migrate into a subsurface aquifer causing contamination of drinking water, or affecting near-wellbore ecology. Finally, reservoir pressure can be significantly decreased resulting in the loss of productivity.

    Whilst the majority of our projects deal with the primary cementing, they have significant application to and commonality with remedial cementing, fracturing and drilling. The fluids and equipment used, well description and risk factors are in many instances common with models that can be readily shared or adopted for these other uses.


    • Placement Job Design. An important part of the job design for primary and remedial cementing is computing fluid volumes for fluids to be pumped during the job. Fluid compressibility, effect of temperature and valve placement are considered when computing these volumes. For plug cementing jobs where the casing is withdrawn from the well after the cement is placed, a hydrostatic balancing calculation is required to ensure level fluid interfaces at the end of the pull out to avoid contamination of cement with other fluids. 
    • Dynamic Hydraulic Simulation. Simulation of displacement flow of multiple compressible fluids in the well as part of the cementing process. Given the pumping schedule of fluids with volumes and flow rates defined, compute the flow rates and pressures throughout the well to the end of the job. The primary goal of the calculations is to establish dynamic well security – that is the pressure in the well is above the formation pore pressure and below the fracture pressure. Additionally, risk factors such as casing burst/collapse, volume of losses to formation and well security in cases of loss of well control are computed. The fluid positions at the end of placement can be also compared with the design goals. 
    • Foam Placements. In some cases, a gas (typically nitrogen) is injected into the cement slurry as it is being pumped into the well primarily to reduce the effective density of the cement and thus to reduce pressure in the well during cement placement. As the volumetric ratios of gas to liquid can be as high as 250 at atmospheric conditions such foams are highly energetic - they expand in volume by many times with pressure variations. This in turn can lead to drastic variations in flow velocities making fluid positions hard to predict and even compromising well security if the placement is not controlled. We have experience of implementing static and dynamic simulations of foam job design and placement to assess well security, ensure final interface positions and calculate maximum foam quality (ratio of gas to foam) so as not to exceed a maximum beyond which the foam loses its integrity. 
    • Temperature Simulation. Temperature in the well can vary by several hundred degrees between the surface and bottomhole conditions. This can significantly affect the density and rheology of the drilling and cementing fluids. Because of this, simulation of temperature both inside the fluids during their placement and in the formation is crucial for an accurate fluid placement simulation. We have experience of modelling and implementing such temperature simulations, coupling the results to other temperature-dependent static and dynamic fluid simulators. 
    • Fluid Interface Stability. As the sequence of fluids are pumped into the well and travel down the pipe or through the annular gap, the interface between each pair of fluids shifts. Dispersion, mixing and diffusion effects and lead to significant zones of mixed fluids or fluid channels at the end of placement. After hydration, these areas can remain permeable to gas migration and can pose a significant risk if not quantified. We have experience of modelling displacement flow of non-Newtonian fluids in pipe and annulus to simulate the interface evolution and to ascertain the effect of centralizers and mechanical separators on improving the quality of placement. 
    • Non-Newtonian Fluids. Many fluids used in cementing, drilling and production are non-Newtonian – that is they exhibit a non-constant viscosity and a non-zero shear stress at low shear rates. Typically, these are characterized with a Herschel-Bulkley rheology model which can in turn vary significantly with pressure and temperature. We have experience in implementing a variety of pressure and temperature variable rheological models based on experimental readings or fluid composition and using these models in dynamic fluid simulations. 
    • Cement Sheath Stress Analysis. After placement and setting of the cement, the well can be subjected to temperature and pressure variations – for example during its production life, further cementing operations or well stimulation. These variations can place significant mechanical stresses on the cement sheath and can potentially lead to material failure – through traction, compression or a formation of a gap. This in turn leads to loss of zonal isolation. We have experience of modelling and implementing simulations computing material stresses in multi-casing cement wells due to pressure and temperature variations to assess the risk of mechanical failure or gap formation.
  • Financial Modelling


    • Yield Curve Construction - Construction of yield curves from a combination of various financial instruments.
      • Interest rate modelling with multiple yield curves.
    • Pricing - Pricing algorithms for numerous financial instrument types including:
      • Futures and Forward Rate Agreements
      • Interest Rate and Credit Default Swaps.
      • Bonds.
      • Interest Rate Options - including Binomial and Black-Scholes models.
      • Indices - index products built on a variety of different asset classes.
    • Risk mechanics - Calculation and analysis of a variety of risk metrics:
      • Market risk mechanics, for example the “Greeks”.
      • Credit risk mechanics.


    • Primary fixed-income pricing and risk library - Several years experience developing and supporting the primary fixed income pricing and risk library for a Tier-1 investment bank. This library supported:
      • Back-office operations - the library formed the basis of a number of the bank’s back-office operations.
      • Front-office operations - the library was also delivered as an Excel plugin used directly by the front office.

      We were involved in a number of major improvements to this library. One of these was the replacement of the existing monolithic library by a new, more flexible, approach. A much smaller library core library was produced supporting the minimum required feature set with additional functionality provided through plug-ins.

      This improved the flexibility of the system and allowed the release cycle for the product to be more responsive to business requirements rather than being tied to a three month cadence.

      Another improvement was the development of an innovative new approach for the rapid integration of new instruments by extending the primary pricing library’s interaction with Excel.

      The new system allowed the library to use Excel workbooks to price trades with the Excel workbooks themselves able to concurrently use the library to access market data and other services.

      This allows new instruments to be integrated with the automated portfolio valuation and risk calculations provided by the library much more quickly as the software development team is not required to develop new code. Faster integration reduces the risk associated with such new instruments.

    • Credit default swap indices- Design and implementation of the business logic for pricing a new class of indices based on credit default swaps.

      Due to the turbulent credit market in 2007-2008 this was a major new product with significant interest from many parties inside and outside the organization. The project involved close collaboration with the indices desk to analyse the business logic and delivering an efficient solution within the existing framework.

    • Bond software library - Replacement of a monolithic legacy code base which was expensive to maintain.

      Development of pricing algorithms and systems for interfacing with market data sources.

      Design and development of a flexible and generic format for the definition of bond instruments. This allowed the development of thin layers to interface with a wide variety of both internal and external market data sources.

      Re-write of existing monolithic pricing logic to produce a modular system, which was simple to maintain and extend.

    • Overnight indices batch system replacement - Development of an event-driven replacement for an existing overnight indices batch processing system.

      Replacement of the existing system became necessary due to the increasing number, complexity and diversity of indices that we were required to support.

      An event driven multi-threaded replacement was designed, and was implemented as a windows service using TIBCO SmartSockets to provide the required messaging functionality. This project involved close collaboration with both the business and the web team, to ensure support for the web interface.

  • Urban Planning


    Development of a range of urban planning and real estate asset management technologies in collaboration with HCL, which include:

    • 3D and 2D drawing and visualizations of large scale urban layout - use of DirectX to visualize complex geometries in a dynamic 3D view, shading with computed parameters such as liveability or financial viability.
    • Integrated parametric modelling - parametric definition of an urban layout, the geometry of which together with key statistics such as massing, costs and values and movement and liveability analysis is computed in real time as the model is adjusted by the user.
    • Environmental, Liveability and Movement analysis - key liveability indicators such as proximity to open spaces and amenities, active frontage and unit mix by land use. Analysis of energy and other resource consumption, refuse generation, CO2 emissions, parking provision and a simple model for trip generation analysis.
    • Appraisal costs and value analysis - financial appraisal of the development with the computation of construction, sale and rental costs. Capitalisation and timing – with costs spread over the different phases of development, residualization analysis.


    CASS Facilities Planning Tool

    CASS was designed in collaboration with the Children’s Hospital of Philadelphia, and is currently in use by their facilities planning department. It combines an intuitive 3D visualization with sophisticated data management and analysis features, allowing different arrangements of space uses within buildings and changes over time to be modelled and analysed in a single application.

    The tool integrates a user access system with a centralized database of land uses, case scenarios and settings with a modified version of the CityCAD CAD package. Once logged in, the user can review, create or modify a scenario for a time-dependent plan for campus facilities. Buildings can be created, modified and demolished at various points in time – with a time slider allowing the user to modify the overall model at different stages. The user can keep track of data and view charts – for example how the quantity of a given space use varies over time.

    As well as a rich array of customisable graphs, 3D overlays and shading, the tool generates full HD animations highlighting facility development over time and PDF reports. Side by side comparison of alternative facility development options and sensitivity analysis of key financial parameters provide more in-depth functionality.

    Abu Dhabi USDM Online Street Design Tool

    We worked with the Abu Dhabi Urban Planning Council (UPC) and Otak International to deliver an online street design tool, now used by engineers and planners to create street designs and analyse them against the background of Abu Dhabi's new street design policies.

    The tool provides an intuitive online interface for the planners to design their own street layout or pick from a catalogue of established layouts which can then be modified. The user can then add or edit various elements such as travel lanes, medians, parking, pedestrian areas, transit lanes, stations, trees and street furniture. A collection of 2D plan and cross-section views with optional animation is updated in real time with user input.

    The tool performs computations to check compliance of the user-defined road layout with USDM guidelines, highlighting any issues. Street design information and computed parameters can be exported to XML, DXF (CAD drawing), PDF (one-page summary) and CSV (Excel data). The entire UI has full bi-lingual functionality with easy switching between English and Arabic.

  • Mathematical Modelling


    We have applied mathematical modelling techniques to a wide variety of systems including:

    • 1D Fluid mechanics - 1D modelling of compressible dynamic fluid flows using finite volume discretisation for a compressible, temperature-dependent hydraulics model for non-Newtonian fluids. Static models for compressible hydrostatic fluid balance. 
    • 2D Fluid mechanics - 2D flow of non-Newtonian fluids in an annular geometry. Iterative solution of Poisson equation, Flux-Corrected Transport scheme for time advance.
    • Solid mechanics - Analysis of stress and material failure in multi-layer solids subject to pressure and temperature variations.
    • Temperature simulation - Time-dependent simulation of temperature in solids and liquids using Finite Element method with heat sources, state changes and fluid advection.
    • Variation analysis - Sensitivity calculations, optimisation of multi-parameter non-linear functions using simplex and projection-correction methods.
    • Geometry optimisation. - Irregular domain meshing, packing algorithms, optimised geometry mesh creation.
    • 3D Radiative Transfer - Monte Carlo simulation of radiative transfer including photon propagation and absorption/emission.
    • Fourier Analysis - Serial and massively parallel GPGPU implementations of the Fast Fourier Transform (FFT).
  • Software Development


    We work with a wide variety of programming languages including:

    • C++ for computationally intensive tasks - development of highly optimized simulators and components, profiling and optimization of existing code, translation and clean up of legacy Fortran/C/Matlab code.
    • C# .NET for User Interfaces and server side components - development of components, plugin interfaces, integration with third party components, graphs, custom diagrams, 2D/3D visualization, context-sensitive help, interactive tutorials and server side web components.
    • Fortran/Matlab for academic/legacy code - significant amount of the code we work with, especially that developed in academic circles, is supplied in these languages. We have a solid practical knowledge of both, having used them on multiple projects.
    • Python for rapid prototyping - analysis and validation of existing financial modelling code and development of new models.
    • Java for mobile development and server side components - development of mobile applications and server side web components.
    • HTML, C# (ASP), PHP and JavaScript for web development - development of client side web components.
    • SQL for database integration - development of software interfacing with databases including SQL Server, MySQL, PostgreSQL and SQLite. Experience with object-relational mapping via Linq and NHibernate.

    In addition, we utilize a number of popular APIs for parallel programming to parallelize existing or new mathematical models. These include:

    • Intel Threading Building Blocks for thread parallel programming on the CPU - development of multi-threaded code to run on the CPU.
    • OpenMP 4 and Intel Intrinsics for vectorization - development of vectorized code to run on the CPU.
    • Open CL/CUDA for GPU Compute - development of massively parallel code to run on both professional and consumer level GPUs.

    Finally, we employ several of the popular hardware accelerated 2D and 3D rendering APIs including:

    • DirectX 9, 11 and 12 - development of 2D & 3D rendering code for Microsoft Windows devices
    • OpenGL & WebGL - development of cross-platform and web based 2D & 3D rendering code
    • Vulcan - development of low CPU overhead, high performance, cross-platform 3D rendering code

    These are used to provide optimized rendering of complex geometries and visualization of computed simulation results. We make extensive use of the latest shader-based techniques for high visual impact, robustness and low end-user system requirements.

  • Operations


    • Agile Development - use of popular agile development frameworks including Scrum and Kanban.
    • Test Driven Development (TDD) - use of the TDD software development process and popular testing and mocking frameworks including:
      • NUnit
      • CPPUnit
      • Google Test
      • Google Mock
    • TFS & Atlassian Stack - use of both for source control, continuous integration, issue tracking and build & release processes.
    • Source Control - use of TFS, Git (including Bitbucket & GitHub) and SVN source control systems hosted locally, in the cloud and on client site.
    • Issue Tracking - use of TFS and Jira issue tracking systems hosted locally, in the cloud and on client site.
    • Continuous Integration - use of TFS, Bamboo and TeamCity continuous integration systems for build and unit and regression testing.
    • Server infrastructure - use of Azure Virtual Machines and, for less demanding cases, shared hosting to deliver online solutions we have implemented. We have a fair amount of experience in setting up and running a Microsoft IIS or an Apache web server – with either Azure cloud service, one set up using a dedicated provider or run by our clients.


    • Integration with client teams, systems and procedures - a history of successfully developing projects solo or as part of client's team.
      • Working with client development teams of between 2 and 10 developers.
      • Interfacing remotely with client systems - source control, documentation, export certification and acceptance procedures.
      • Developing new projects and sustaining existing ones.
      • Directly supporting clients' customers.
    • Security - robust digital and physical security procedures.
    • Legal - registered in the UK with professional indemnity insurance of £2m and product liability insurance of £1m.