ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Rattle.hpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/Rattle.hpp (file contents):
Revision 1248 by tim, Fri Jun 4 19:30:05 2004 UTC vs.
Revision 1254 by tim, Wed Jun 9 16:16:33 2004 UTC

# Line 7 | Line 7
7   //Rattle Constraint Algorithn
8   //Reference
9   //H.C. Andersen, J. Comput. Phys. 54, 24(1983)
10 //RattleA and Shake are identical
11 typedef Shake RattleA;
10  
11 + class DCRattleAFunctor : public CallbackFunctor{
12 +  public:
13 +    DCRattleAFunctor(SimInfo* rhs) : CallbackFunctor(rhs){}
14 +  protected:
15 +    virtual int operator()(ConstraintAtom* consAtom1, ConstraintAtom* consAtom2);
16 +    virtual int operator()(ConstraintAtom* consAtom,ConstraintRigidBody* consRB);
17 +    virtual int operator()(ConstraintRigidBody* consRB1, ConstraintRigidBody* consRB2);
18 + };
19 +
20 + class JCRattleAFunctor : public CallbackFunctor{
21 +  public:
22 +    JCRattleAFunctor(SimInfo* rhs) : CallbackFunctor(rhs){}  
23 +  protected:
24 +    virtual int operator()(ConstraintAtom* consAtom1, ConstraintAtom* consAtom2);
25 +    virtual int operator()(ConstraintAtom* consAtom,ConstraintRigidBody* consRB);
26 +    virtual int operator()(ConstraintRigidBody* consRB1, ConstraintRigidBody* consRB2);
27 + };
28 +
29 +
30 + //SHAKE constraint algorithm
31 + //Reference:
32 + //[1] J.P. Ryckaert, G.Ciccotti and H.J.C. Berendsen, J. Comput. Phys., 23, 327 (1977)
33 + //[2]
34 + //[3]
35 + class RattleA : public ConstraintAlgorithm{
36 +  public:
37 +    RattleA(SimInfo* rhs) : ConstraintAlgorithm(rhs){
38 +      registerCallback(typeid(DistanceConstraintPair), new DCRattleAFunctor(rhs));  
39 +      registerCallback(typeid(JointConstraintPair), new JCRattleAFunctor(rhs));  
40 +    }  
41 + };
42 +
43   ////////////////////////////////////////////////////////////////////////////////
44   //Declaration of DCRattleBFunctor
45   ////////////////////////////////////////////////////////////////////////////////
# Line 49 | Line 79 | class RattleFramework : public ConsAlgoFramework{
79   //Declaration of RattleAlgorithm
80   ////////////////////////////////////////////////////////////////////////////////
81   //class RattleAlgorithm will encapsulate preConstraint, RattleA and RattleB
82 + //actually, we could use factory pattern to seperate the creation process
83   class RattleFramework : public ConsAlgoFramework{
84    public:
85      RattleFramework(SimInfo* rhs) : ConsAlgoFramework(rhs){

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines