void NmssmSusy::setSusy(const NmssmSusy & s) { MssmSusy::setSusy(s); setLambda(s.displayLambda()); setKappa(s.displayKappa()); setSvev(s.displaySvev()); setMupr(s.displayMupr()); setXiF(s.displayXiF()); }
void InteriorPointsConstructor::ForceDirectedAlgorithm2() { //Clone the data structure, and initialize it to 0; int n = _contourArray->length()/2; computeNumberVertices(); _interiorDisplacementArray = new AcArray<AcGePoint3d>[n+1]; int i,j, vIter; //int i,j,vIter; AcGePoint3d delta; //int vIter; double Volume = (maxX() - minX())*(maxY() - minY())*(maxZ() - minZ()); double surface = (maxX() - minX())*(maxY() - minY()); double kappa; if (Volume) kappa = sqrt(Volume/_numVertices); else kappa = sqrt(surface/_numVertices); setKappa(kappa); //acutPrintf(_T("Proceeding...\n")); vector<pair<int, int>> v; vector<pair<int, int>>::iterator it; for (vIter = 0; vIter<2; vIter++) { //Calculate repulsive forces for (i = 0; i < _contourArray->length()/2+1; i++) { for (j = 0; j < _interiorArray[i].length(); j++) { if (vIter == 0) { AcGePoint3d * newPoint = new AcGePoint3d; newPoint->x = 0.0; newPoint->y = 0.0; newPoint->z = 0.0; _interiorDisplacementArray[i].append(*newPoint); } else { _interiorDisplacementArray[i][j].x = 0.0; _interiorDisplacementArray[i][j].y = 0.0; _interiorDisplacementArray[i][j].z = 0.0; } } } //acutPrintf(_T("Proceeding...attractive ...\n")); //Calculate attractive forces; for (i = 0; i < _contourArray->length()/2; i++) { for (j = 0; j < _interiorArray[i].length(); j++) { if ((i != 0) && (j!=_interiorArray[i].length() - 1) && (j!=0) && (i!=_contourArray->length()/2)) { arrayNeighbour(v, i, j); for (it = v.begin(); it!=v.end(); it++) { delta.x = _interiorArray[(*it).first][(*it).second].x - _interiorArray[i][j].x; delta.y = _interiorArray[(*it).first][(*it).second].y - _interiorArray[i][j].y; delta.z = _interiorArray[(*it).first][(*it).second].z - _interiorArray[i][j].z; _interiorDisplacementArray[i][j].x = _interiorDisplacementArray[i][j].x + F_attractive(delta.x); _interiorDisplacementArray[i][j].y = _interiorDisplacementArray[i][j].y + F_attractive(delta.y); _interiorDisplacementArray[i][j].z = _interiorDisplacementArray[i][j].z + F_attractive(delta.z); } } } } //Limit the fluctuations first step: for (i = 0; i < _contourArray->length()/2+1; i++) { for (j = 0; j < _interiorArray[i].length(); j++) { _interiorArray[i][j].x = _interiorArray[i][j].x + _interiorDisplacementArray[i][j].x; _interiorArray[i][j].y = _interiorArray[i][j].y + _interiorDisplacementArray[i][j].y; _interiorArray[i][j].z = _interiorArray[i][j].z + _interiorDisplacementArray[i][j].z; } } } acutPrintf(_T("\nVolume: %f, numPoints: %d, kappa: %f\n"), Volume, _numVertices, _kappa); }