From 657b42a8c0eb048743ba8a3da06f33dddbb5814c Mon Sep 17 00:00:00 2001 From: Giovanni Bussi <giovanni.bussi@gmail.com> Date: Wed, 16 Jan 2013 17:51:43 +0100 Subject: [PATCH] Some better check for input errors --- src/colvar/PathMSDBase.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/colvar/PathMSDBase.cpp b/src/colvar/PathMSDBase.cpp index 945f40b11..6a3f23198 100644 --- a/src/colvar/PathMSDBase.cpp +++ b/src/colvar/PathMSDBase.cpp @@ -56,6 +56,8 @@ nframes(0) // open the file FILE* fp=fopen(reference.c_str(),"r"); + unsigned nat=0; + std::vector<AtomNumber> aaa; if (fp!=NULL) { log<<"Opening reference file "<<reference.c_str()<<"\n"; @@ -66,6 +68,11 @@ nframes(0) do_read=mypdb.readFromFilepointer(fp,plumed.getAtoms().usingNaturalUnits(),0.1/atoms.getUnits().getLength()); if(do_read){ nframes++; + if(mypdb.getAtomNumbers().size()==0) error("number of atoms in a frame should be more than zero"); + if(nat==0) nat=mypdb.getAtomNumbers().size(); + if(nat!=mypdb.getAtomNumbers().size()) error("frames should have the same number of atoms"); + if(aaa.empty()) aaa=mypdb.getAtomNumbers(); + if(aaa!=mypdb.getAtomNumbers()) error("frames should contain same atoms in same order"); log<<"Found PDB: "<<nframes<<" containing "<<mypdb.getAtomNumbers().size()<<" atoms\n"; pdbv.push_back(mypdb); // requestAtoms(mypdb.getAtomNumbers()); // is done in non base classes @@ -78,6 +85,7 @@ nframes(0) } fclose (fp); log<<"Found TOTAL "<<nframes<< " PDB in the file "<<reference.c_str()<<" \n"; + if(nframes==0) error("at least one frame expected"); } if(neigh_stride>0. || neigh_size>0){ if(neigh_size>nframes){ -- GitLab