Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

GROMACS: included topology files (force-field folders such as min.ff/) are not collected

Abierto
#260 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
cpp
Área
desktop

Línea de trabajo

Start with src/wxgui/mdtools/GromacsInputsPanel.C, where include files are attached one at a time and stored by file name only, and trace how the launch check reports grompp's error. The change needs recursive #include discovery relative to each including file, kept paths in the run directory, and a missing-files state that blocks launch. Done means the tests/gromacs_md case with a nested local force field passes both the launch check and the job script.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

A GROMACS topology that includes local files, here a force field in a folder next to it, cannot be run:

grompp rejected the inputs, so the job was not submitted.
  command: /usr/bin/gmx grompp -f gromacs.mdp -c conf.gro -r conf.gro -p topol.top ...
Fatal error:
Topology include file "min.ff/forcefield.itp" not found

The topology (a MINFF clay system):

#include "min.ff/forcefield.itp"
#include "Cu2_MMT1.itp"
#include "Cu2_MMT2.itp"
#include "Cu2_MMT3.itp"
#include "min.ff/ions.itp"
#include "min.ff/opc3.itp"

min.ff/ holds about 15 more files, which forcefield.itp includes in turn.

Cause: the GROMACS Inputs panel (src/wxgui/mdtools/GromacsInputsPanel.C) takes only what is attached by hand.

  • Include files are attached one at a time ("Attach an include file").
  • They are stored as auxiliary inputs by file name only, so a relative path such as min.ff/ is lost.
  • Nothing reads the topology's #include lines, and the launch check only reports grompp's error.

Proposed fix

  • On attaching a topology, follow its #include directives recursively, relative to each including file. Honour #ifdef only as far as is needed to find the files: collect every include in either branch.
  • Attach every file that exists, keeping its path relative to the topology (min.ff/forcefield.itp), and recreate those subfolders in the run directory.
  • Skip includes that GROMACS resolves itself: its own force fields under share/gromacs/top or GMXLIB, e.g. amber99sb-ildn.ff/forcefield.itp.
  • Show what was found: list the attached includes in the panel (count and tree), and the ones not found as "missing".
  • Not ready to run until nothing is missing, naming the missing files, so the launch check is not the first place this shows up.
  • Attach folder… as an alternative to attaching files one by one.

Test: a small topology with a local x.ff/forcefield.itp folder and a nested include, run through the launch check and the job script, like the restrained case in tests/gromacs_md (#253).

Workaround until then: use a preprocessed topology (gmx grompp ... -pp processed.top), which has every include expanded; it works since #253.

Lenguaje dominante
C
Estrellas
10
Forks
8
Merge medio
21 min
PR fusionados (30 d)
1

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de FriendsofECCE/ECCE

Todos los issues de FriendsofECCE/ECCE

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.