public int Minimize_ConjugateGradient(List <ForceField.IForceField> frcflds , string logpath = "" , int iterInitial = 0 , double?k = null , int?max_iteration = null , double max_atom_movement = 0.1 , double threshold = 0.001 , int randomPurturb = 0 , bool[] atomsMovable = null , InfoPack extra = null ) { IMinimizeLogger logger = new MinimizeLogger_PrintEnergyForceMag(logpath); return(Minimize_ConjugateGradient_v1(iterInitial, frcflds, k, max_atom_movement, max_iteration, threshold, randomPurturb, atomsMovable, logger, extra, null)); }
public int MinimizeHydrogens(List <ForceField.IForceField> frcflds , string logpath = "" , InfoPack extra = null ) { bool[] atomsMovable = new bool[size]; for (int i = 0; i < size; i++) { atomsMovable[i] = atoms[i].IsHydrogen(); } double k = 0.001; double threshold = 0.001; double max_atom_movement = 0.1; IMinimizeLogger logger = new MinimizeLogger_PrintEnergyForceMag(logpath); // null int randomPurturb = 0; // no random purturbation return(Minimize_ConjugateGradient_v1(0, frcflds, k, max_atom_movement, null, threshold, randomPurturb, atomsMovable, logger, extra, null)); }