00001 00007 #ifndef COMPUTECYLINDRICALBC_H 00008 #define COMPUTECYLINDRICALBC_H 00009 00010 #include "ComputeHomePatch.h" 00011 #include "ReductionMgr.h" 00012 00013 class ComputeCylindricalBC : public ComputeHomePatch 00014 { 00015 private: 00016 char axis; // 'x', 'y', or 'z' 00017 BigReal r1; // Radius of first cylinder 00018 BigReal r1_2; // Radius of first cylinder squared 00019 BigReal l1; // Length of First cylinder 00020 BigReal l1_2; // Length of first cylinder, squared 00021 BigReal k1; // First force constant 00022 BigReal r2; // Radius of second cylinder (-1 if inactive) 00023 BigReal r2_2; // Raidus of second cylinder squared 00024 BigReal k2; // Second force constant 00025 BigReal l2; // Length of second cylinder 00026 BigReal l2_2; // Length of second cylinder, squared 00027 int exp1; // Exponent for first boundary condition 00028 int exp2; // Exponent for second boundary condition 00029 Bool twoForces; // Are there two potentials or just one 00030 Vector center; // Center of cylinder 00031 00032 public: 00033 ComputeCylindricalBC(ComputeID c, PatchID pid); // Constructor 00034 virtual ~ComputeCylindricalBC(); // Destructor 00035 00036 virtual void doForce(FullAtom* p, Results* r); 00037 SubmitReduction *reduction; 00038 00039 }; 00040 00041 #endif 00042
1.3.9.1