1 #include "ExtendedCompareForce.h"
2 #include "ScalarStructure.h"
3 #include "Vector3DBlock.h"
4 #include "GenericTopology.h"
5 
6 namespace ProtoMol {
7 
8   //_________________________________________________________________ ExtendedCompareForce
9 
ExtendedCompareForce(Force * actualForce,CompareForce * compareForce)10   ExtendedCompareForce::ExtendedCompareForce(Force* actualForce, CompareForce* compareForce):CompareForce(actualForce,compareForce){}
11 
evaluate(const GenericTopology * topo,const Vector3DBlock * positions,const Vector3DBlock * velocities,Vector3DBlock * forces,ScalarStructure * energies)12   void ExtendedCompareForce::evaluate(const GenericTopology* topo,
13 				      const Vector3DBlock* positions,
14 				      const Vector3DBlock* velocities,
15 				      Vector3DBlock* forces,
16 				      ScalarStructure* energies){
17     preprocess(positions->size());
18     (dynamic_cast<ExtendedForce*>(myActualForce))->evaluate(topo,
19 							    positions,
20 							    velocities,
21 							    myForces,
22 							    myEnergies);
23     postprocess(topo,forces,energies);
24   }
25 
parallelEvaluate(const GenericTopology * topo,const Vector3DBlock * positions,const Vector3DBlock * velocities,Vector3DBlock * forces,ScalarStructure * energies)26   void ExtendedCompareForce::parallelEvaluate(const GenericTopology* topo,
27 					      const Vector3DBlock* positions,
28 					      const Vector3DBlock* velocities,
29 					      Vector3DBlock* forces,
30 					      ScalarStructure* energies){
31     preprocess(positions->size());
32     (dynamic_cast<ExtendedForce*>(myActualForce))->parallelEvaluate(topo,
33 								    positions,
34 								    velocities,
35 								    myForces,
36 								    myEnergies);
37     postprocess(topo,forces,energies);
38   }
39 
40 }
41