From e846c991ad371028ff17b032ed835c9ba00dd78f Mon Sep 17 00:00:00 2001
From: Henry Weller <http://cfd.direct>
Date: Mon, 28 Sep 2015 14:30:48 +0100
Subject: [PATCH] KinematicLookupTableInjection: Use 64bit integers to avoid
 overflow for large numbers of injectors.

---
 .../KinematicLookupTableInjection.C                         | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C
index 293fd7d740c..d53b781cdb4 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/KinematicLookupTableInjection/KinematicLookupTableInjection.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -187,7 +187,7 @@ void Foam::KinematicLookupTableInjection<CloudType>::setPositionAndCell
     }
     else
     {
-        injectorI = parcelI*injectorCells_.size()/nParcels;
+        injectorI = int64_t(parcelI)*int64_t(injectors_.size())/nParcels;
     }
 
     position = injectors_[injectorI].x();
@@ -206,7 +206,7 @@ void Foam::KinematicLookupTableInjection<CloudType>::setProperties
     typename CloudType::parcelType& parcel
 )
 {
-    label injectorI = parcelI*injectorCells_.size()/nParcels;
+    label injectorI = int64_t(parcelI)*int64_t(injectors_.size())/nParcels;
 
     // set particle velocity
     parcel.U() = injectors_[injectorI].U();
-- 
GitLab