diff options
author | Jens Verwiebe <info@jensverwiebe.de> | 2013-04-10 22:35:18 +0400 |
---|---|---|
committer | Jens Verwiebe <info@jensverwiebe.de> | 2013-04-10 22:35:18 +0400 |
commit | cbe9ae244e5af8b89e28a6fe03405bcb368ba83b (patch) | |
tree | 383220a82cfeea4845f96f298e34b98939014bf2 /intern | |
parent | ac224a64f408fcc8f90f7ea0124cbe4b9ef1e811 (diff) |
Add a gui control for setting omp threads in fluids
Diffstat (limited to 'intern')
-rw-r--r-- | intern/elbeem/extern/elbeem.h | 2 | ||||
-rw-r--r-- | intern/elbeem/intern/simulation_object.cpp | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/intern/elbeem/extern/elbeem.h b/intern/elbeem/extern/elbeem.h index 6df08ccebd2..bd50b6f08dc 100644 --- a/intern/elbeem/extern/elbeem.h +++ b/intern/elbeem/extern/elbeem.h @@ -99,6 +99,8 @@ typedef struct elbeemSimulationSettings { elbeemRunSimulationCallback runsimCallback; /* pointer passed to runsimCallback for user data storage */ void* runsimUserData; + /* simulation threads used by omp */ + int threads; } elbeemSimulationSettings; diff --git a/intern/elbeem/intern/simulation_object.cpp b/intern/elbeem/intern/simulation_object.cpp index 87828b26088..79b1a2ce635 100644 --- a/intern/elbeem/intern/simulation_object.cpp +++ b/intern/elbeem/intern/simulation_object.cpp @@ -19,6 +19,10 @@ #include "particletracer.h" #include "elbeem.h" +#if PARALLEL==1 +#include <omp.h> +#endif + #ifdef _WIN32 #else #include <sys/time.h> @@ -173,6 +177,7 @@ int SimulationObject::initializeLbmSimulation(ntlRenderGlobals *glob) mpLbm->initDomainTrafo( mpElbeemSettings->surfaceTrafo ); mpLbm->setSmoothing(1.0 * mpElbeemSettings->surfaceSmoothing, 1.0 * mpElbeemSettings->surfaceSmoothing); mpLbm->setIsoSubdivs(mpElbeemSettings->surfaceSubdivs); + omp_set_num_threads(mpElbeemSettings->threads); mpLbm->setSizeX(mpElbeemSettings->resolutionxyz); mpLbm->setSizeY(mpElbeemSettings->resolutionxyz); mpLbm->setSizeZ(mpElbeemSettings->resolutionxyz); |