Swarm-NG  1.1
mvs_omp.hpp
Go to the documentation of this file.
1 /*************************************************************************
2  * Copyright (C) 2011 by Eric Ford and the Swarm-NG Development Team *
3  * *
4  * This program is free software; you can redistribute it and/or modify *
5  * it under the terms of the GNU General Public License as published by *
6  * the Free Software Foundation; either version 3 of the License. *
7  * *
8  * This program is distributed in the hope that it will be useful, *
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
11  * GNU General Public License for more details. *
12  * *
13  * You should have received a copy of the GNU General Public License *
14  * along with this program; if not, write to the *
15  * Free Software Foundation, Inc., *
16  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
17  ************************************************************************/
18 
25 #include "mvs_cpu.hpp"
26 #ifdef _OPENMP
27 #include <omp.h>
28 #endif
29 
30 namespace swarm { namespace cpu {
31 
32 #ifdef _OPENMP
33 
37 template< class Monitor >
38 class mvs_omp : public mvs_cpu<Monitor> {
39  public:
40  typedef mvs_cpu<Monitor> base;
41 
43  mvs_omp(const config& cfg): base(cfg){}
44 
46  virtual void launch_integrator() {
47 #pragma omp parallel for
48  for(int i = 0; i < base::_ens.nsys(); i++){
49  base::integrate_system(base::_ens[i]);
50  }
51  }
52 
53 
54 };
55 #endif
56 
57 } } // Close namespaces