| 18 |
|
curX = getCoor(); |
| 19 |
|
curG.resize(ndim); |
| 20 |
|
|
| 21 |
< |
//preMove(); |
| 21 |
> |
shakeAlgo = new ShakeMinFramework(theInfo); |
| 22 |
> |
shakeAlgo->doPreConstraint(); |
| 23 |
|
} |
| 24 |
|
|
| 25 |
|
OOPSEMinimizer::~OOPSEMinimizer(){ |
| 39 |
|
double force[3]; |
| 40 |
|
double dAtomGrad[6]; |
| 41 |
|
int shakeStatus; |
| 42 |
+ |
|
| 43 |
+ |
status = 1; |
| 44 |
|
|
| 45 |
|
setCoor(x); |
| 46 |
|
|
| 47 |
< |
//if (nConstrained && bShake){ |
| 48 |
< |
// shakeStatus = shakeR(); |
| 49 |
< |
//} |
| 47 |
> |
if (bShake){ |
| 48 |
> |
shakeStatus = shakeAlgo->doShakeR(); |
| 49 |
> |
if(shakeStatus < 0) |
| 50 |
> |
status = -1; |
| 51 |
> |
} |
| 52 |
|
|
| 48 |
– |
shakeAlgo->doShakeR(); |
| 49 |
– |
|
| 53 |
|
calcForce(1, 1); |
| 54 |
< |
|
| 55 |
< |
//if (nConstrained && bShake){ |
| 56 |
< |
// shakeStatus |= shakeF(); |
| 57 |
< |
//} |
| 54 |
> |
|
| 55 |
> |
if (bShake){ |
| 56 |
> |
shakeStatus = shakeAlgo->doShakeF(); |
| 57 |
> |
if(shakeStatus < 0) |
| 58 |
> |
status = -1; |
| 59 |
> |
} |
| 60 |
|
|
| 56 |
– |
shakeAlgo->doShakeF(); |
| 57 |
– |
|
| 61 |
|
x = getCoor(); |
| 62 |
|
|
| 63 |
|
|
| 91 |
|
|
| 92 |
|
energy = tStats->getPotential(); |
| 93 |
|
|
| 91 |
– |
status = shakeStatus; |
| 94 |
|
} |
| 95 |
|
|
| 96 |
|
/** |
| 723 |
|
|
| 724 |
|
stepStatus = step(); |
| 725 |
|
|
| 726 |
+ |
if (bShake) |
| 727 |
+ |
shakeAlgo->doPreConstraint(); |
| 728 |
+ |
|
| 729 |
|
if (stepStatus < 0){ |
| 730 |
|
saveResult(); |
| 731 |
|
minStatus = MIN_LSERROR; |
| 738 |
|
writeOut(curX, curIter); |
| 739 |
|
} |
| 740 |
|
|
| 736 |
– |
//if (curIter == nextResetIter){ |
| 737 |
– |
// reset(); |
| 738 |
– |
// nextResetIter += resetFrq; |
| 739 |
– |
//} |
| 740 |
– |
|
| 741 |
|
convgStatus = checkConvg(); |
| 742 |
|
|
| 743 |
|
if (convgStatus > 0){ |