Solubility of small molecules

GROMACS version: 2018.3

Hello!

While I was testing the solubility of some small organic molecules under charmm36, I found out the simulated solubility is far off from the experimental value.
For example, the documented solubility of benzene is ~20 mmol/L. However, in my simulations, none of the benzene molecules aggregate at 200 mmol/L. The same happened with heptane. Although phase separation happens with enough organic molecules.
What is the possible explanation?
Attached is the md run mdp file.

Thank you!!

define =
;refcoord_scaling =

; RUN CONTROL PARAMETERS
integrator = md
; Start time and timestep in ps
tinit = 0
dt = 0.0025
nsteps = 40000000
; For exact run continuation or redoing part of a run
init_step = 0
; Part index is updated automatically on checkpointing (keeps files separate)
simulation_part = 1
; mode for center of mass motion removal
comm-mode = linear
; number of steps for center of mass motion removal
nstcomm = 1
; group(s) for center of mass motion removal
comm-grps =

; OUTPUT CONTROL OPTIONS
; Output frequency for coords (x), velocities (v) and forces (f)
nstxout = 50000
nstvout = 50000
nstfout = 50000
; Output frequency for energies to log file and energy file
nstlog = 10000
nstcalcenergy = 1000
nstenergy = 10000
; Output frequency and precision for .xtc file
nstxout-compressed = 5000
compressed-x-precision = 1000
; This selects the subset of atoms for the compressed
; trajectory file. You can select multiple groups. By
; default, all atoms will be written.
compressed-x-grps =
; Selection of energy groups
;energygrps = MCH PFA Water Ion

; NEIGHBORSEARCHING PARAMETERS
; cut-off scheme (Verlet: particle based cut-offs, group: using charge groups)
cutoff-scheme = Verlet
; nblist update frequency
nstlist = 20
; ns algorithm (simple or grid)
ns_type = grid
; Periodic boundary conditions: xyz, no, xy
pbc = xyz
periodic_molecules = yes
; Allowed energy error due to the Verlet buffer in kJ/mol/ps per atom,
; a value of -1 means: use rlist
verlet-buffer-tolerance = 0.005
; nblist cut-off
rlist = 1.2

; OPTIONS FOR ELECTROSTATICS AND VDW
; Method for doing electrostatics
coulombtype = PME
coulomb-modifier = Potential-shift-Verlet
rcoulomb-switch = 0
rcoulomb = 1.2
; Relative dielectric constant for the medium and the reaction field
epsilon-r = 1
epsilon_rf = 1
; Method for doing Van der Waals
vdw-type = cut-off
vdw-modifier = Potential-switch
; cut-off lengths
rvdw-switch = 1.0
rvdw = 1.2
; Apply long range dispersion corrections for Energy and Pressure
DispCorr = no
; Extension of the potential lookup tables beyond the cut-off
table-extension = 1
; Separate tables between energy group pairs
energygrp-table =
; Spacing for the PME/PPPM FFT grid
fourierspacing = 0.12
; FFT grid size, when a value is 0 fourierspacing will be used
fourier_nx = 0
fourier_ny = 0
fourier_nz = 0
; EWALD/PME/PPPM parameters
pme_order = 4
ewald_rtol = 1e-05
ewald-rtol-lj = 0.001
lj-pme-comb-rule = Geometric
ewald_geometry = 3d
epsilon_surface = 0

; OPTIONS FOR WEAK COUPLING ALGORITHMS
; Temperature coupling
Tcoupl = Nose-Hoover
; Groups to couple separately
tc-grps = water non-water
; Time constant (ps) and reference temperature (K)
tau_t = 1.0 1.0
ref_t = 300 300
; Pressure coupling
Pcoupl = Parrinello-Rahman
Pcoupltype = isotropic
; Time constant (ps), compressibility (1/bar) and reference P (bar)
tau_p = 4.0
compressibility = 4.5e-5
ref-p = 1.0

; GENERATE VELOCITIES FOR STARTUP RUN
gen_vel = yes
gen_temp = 298
gen_seed = -1

; OPTIONS FOR BONDS
constraints = all-bonds
; Type of constraint algorithm
constraint-algorithm = Lincs
; Do not constrain the start configuration
continuation = no
; Use successive overrelaxation to reduce the number of shake iterations
Shake-SOR = no
; Relative tolerance of shake
shake-tol = 1e-04
; Highest order in the expansion of the constraint coupling matrix
lincs-order = 4
; Number of iterations in the final step of LINCS. 1 is fine for
; normal simulations, but use 2 to conserve energy in NVE runs.
; For energy minimization with constraints it should be 4 to 8.
lincs-iter = 1
; Lincs will write a warning to the stderr if in one step a bond
; rotates over more degrees than
lincs-warnangle = 30
; Convert harmonic bonds to morse potentials
morse = no