Energy minimization works with steepest descent but not conjugate gradient

GROMACS version: 2020.4
GROMACS modification: No

Hey everyone.

I’m just learning energy minimization, and have been following online tutorials and working with a structure I have that I know is not minimized. After going through all of the steps to generate a box/solvate/add ions etc., I’m attempting to minimize the structure with steepest descent followed by conjugate gradient. I am able to minimize with steepest descent, however the conjugate gradient step does not minimize the structure at all (saying it converges in 0 steps). When trying conjugate gradient on its own, the same problem occurs and it ‘converges’ in 0 steps, always generating the comment:

"Energy minimization has stopped, but the forces have not converged to the
requested precision Fmax < 1000 (which may not be possible for your system).
It stopped because the algorithm tried to make a new step whose size was too
small, or there was no change in the energy since last step. Either way, we
regard the minimization as converged to within the available machine
precision, given your starting configuration and EM parameters.
Double precision normally gives you higher accuracy, but this is often not
needed for preparing to run molecular dynamics.

writing lowest energy coordinates.

Back Off! I just backed up em1.gro to ./#em1.gro.1#

Polak-Ribiere Conjugate Gradients converged to machine precision in 0 steps,
but did not reach the requested Fmax < 1000.
Potential Energy = 4.3005074e+11
Maximum force = 6.8827916e+13 on atom 31992
Norm of force = 8.3174181e+10"

I’ve tried a range of different parameters, none of which have changed anything. The most recent parameters I tried (which included the recommended parameters for the Charmm forcefield from Force fields in GROMACS — GROMACS 2021.2 documentation, as well as ‘define = -DFLEXIBLE’ as recommended Energy Minimization — GROMACS 2019 documentation) were:

integrator = cg
emtol = 1000.0
emstep = 0.01
nsteps = 50000
define = -DFLEXIBLE

nstlist = 1
constraints = h-bonds
cutoff-scheme = Verlet
vdwtype = cutoff
vdw-modifier = force-switch
rlist = 1.2
rvdw = 1.2
rvdw-switch = 1.0
coulombtype = PME
rcoulomb = 1.2
DispCorr = no
pbc = xyz

Are there specific parameters that need to be used for conjugate gradient to work? Do I have parameters included that could be preventing it from working? Is there a reason why steepest descent begins minimizing this structure, but conjugate gradient doesn’t even begin? This structure is not minimized and so there should be some changes from attempting to minimize, even if it doesn’t converge to my desired level.

Thanks for any help in advance! Apologies if this is a dumb question, I’m very new to gromacs/energy minimization.