#include ; #include ; #include ; //------------------------------------------------------------------ //definition of Sequence class functions //------------------------------------------------------------------ Sequence::InitializeVoltages(int Num) { for(int i=0; i::Add(); } VoltagesNum = Num; } Sequence::AddCharge(Charge qq) { TList::Add(); LCharge * ptr = TList::Get(); (ptr->x) = qq.x; (ptr->y) = qq.y; (ptr->z) = qq.z; (ptr->q) = qq.q; ChargesNum++; (ptr->Id) = ChargesNum; } Sequence::RenumCharges() { int num = ChargesNum; const Link * pc = TList::GetHead(); while ( pc != 0 ) { ((LCharge*)pc)->SetId(num); num--; pc = ( pc -> Next() ); } } //------------------------------------------------------------------ //definition for potential of n electric charges PT( , , ) //------------------------------------------------------------------ double Sequence::Potential(double x, double y, double z) { double GAMMA=1; double PT = 0; const Link * cp = TList::GetHead(); while ( cp != 0 ) { double cx = (((LCharge*)cp) ->x); double cy = (((LCharge*)cp) ->y); double cz = (((LCharge*)cp) ->z); double cq = (((LCharge*)cp) ->q); double delta = sqrt( pow( (x-cx), 2) +pow( (y-cy), 2) +pow( (z-cz), 2 )); PT = PT + (GAMMA*cq)/(delta); // ((LCharge*)pc)->SetId(num); cp = ( cp -> Next() ); } return PT; } //------------------------------------------------------------------ //definition of Mapping class functions //------------------------------------------------------------------ Mapping::AddSequence() { TList::Add(); LSequence * ptr = TList::Get(); ptr -> InitializeVoltages(5); }