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

Comparing trunk/OOPSE/libmdtools/Roll.hpp (file contents):
Revision 1254 by tim, Wed Jun 9 16:16:33 2004 UTC vs.
Revision 1452 by tim, Mon Aug 23 15:11:36 2004 UTC

# Line 8 | Line 8 | class DCRollAFunctor : public DCRattleAFunctor{
8   class DCRollAFunctor : public DCRattleAFunctor{
9    public:
10      DCRollAFunctor(SimInfo* info) : DCRattleAFunctor(info) {}
11 <    //virtual int operator()(ConstraintAtom* consAtom1, ConstraintAtom* consAtom2);
12 <    //virtual int operator()(ConstraintAtom* consAtom,ConstraintRigidBody* consRB);
11 >    virtual int operator()(ConstraintAtom* consAtom1, ConstraintAtom* consAtom2);
12 >    virtual int operator()(ConstraintAtom* consAtom,ConstraintRigidBody* consRB) {return consElemHandlerFail;}
13      virtual int operator()(ConstraintRigidBody* consRB1, ConstraintRigidBody* consRB2);
14    private:
15 <    void getEffInvMassVec(ConstraintRigidBody* consRB, const Vector3d& bondDir, Vector3d& invMassVec);
16 <    void integrate(ConstraintRigidBody* consRB, const Vector3d& force);
15 >
16 >    void calcZeta(ConstraintAtom* consAtom, const Vector3d& bondDir, Vector3d&zeta);
17 >    void integrate(ConstraintAtom* consAtom, const Vector3d& force);
18 >    
19 >    void calcZeta(ConstraintRigidBody* consRB, const Vector3d& bondDir, Vector3d& zeta);
20 >    void integrate(ConstraintRigidBody* consRB, const Vector3d& consForce);
21      void rotationPropagation(StuntDouble* sd, double ji[3]);
22      void rotate(int axes1, int axes2, double angle, double ji[3], double A[3][3]);
23   };
# Line 46 | Line 50 | class DCRollBFunctor : public DCRattleBFunctor{
50   class DCRollBFunctor : public DCRattleBFunctor{
51    public:
52      DCRollBFunctor(SimInfo* info) : DCRattleBFunctor(info) {}
53 <    //virtual int operator()(ConstraintAtom* consAtom1, ConstraintAtom* consAtom2);
54 <    //virtual int operator()(ConstraintAtom* consAtom,ConstraintRigidBody* consRB);
53 >    virtual int operator()(ConstraintAtom* consAtom1, ConstraintAtom* consAtom2){return consElemHandlerFail;}
54 >    virtual int operator()(ConstraintAtom* consAtom,ConstraintRigidBody* consRB){return consElemHandlerFail;}
55      virtual int operator()(ConstraintRigidBody* consRB1, ConstraintRigidBody* consRB2);
56    private:
57 <    void getEffInvMassVec(ConstraintRigidBody* consRB, const Vector3d& bondDir, Vector3d& invMassVec);
58 <    void integrate(ConstraintRigidBody* consRB, const Vector3d& force);
57 >    //void getZeta(ConstraintAtom* consAtom, const Vector3d& bondDir, Vector3d& zeta);
58 >    //void integrate(ConstraintAtom* consAtom, const Vector3d& consForce);
59 >    
60 >    void getZeta(ConstraintRigidBody* consRB, const Vector3d& bondDir, Vector3d& zeta);
61 >    void integrate(ConstraintRigidBody* consRB, const Vector3d& consForce);
62   };
63  
64   ////////////////////////////////////////////////////////////////////////////////
# Line 81 | Line 88 | class RollB : public ConstraintAlgorithm{
88   ////////////////////////////////////////////////////////////////////////////////
89   //class RattleAlgorithm will encapsulate preConstraint, RattleA and RattleB
90   //actually, we could use factory pattern to seperate the creation process
91 < class RollFramework : public ConsAlgoFramework{
91 > class RollFramework : public VelVerletConsFramework{
92    public:
93 <    RollFramework(SimInfo* rhs) : ConsAlgoFramework(rhs){
93 >    RollFramework(SimInfo* rhs) : VelVerletConsFramework(rhs){
94        raAlgo = new RollA(rhs);
95        rbAlgo = new RollB(rhs);      
96      }
# Line 93 | Line 100 | class RollFramework : public ConsAlgoFramework{
100        delete rbAlgo;
101      }
102      
103 <    int doRollA(){
103 >    virtual int doConstrainA(){
104        raAlgo->doConstrain();
105        return raAlgo->haveError()? -1 : 1;
106  
107      }
108      
109 <   int doRollB(){
109 >   virtual int doConstrainB(){
110        rbAlgo->doConstrain();
111        return rbAlgo->haveError()? -1 : 1;
112  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines