CompPhysVienna / n2p2

n2p2 - A Neural Network Potential Package
https://compphysvienna.github.io/n2p2/
GNU General Public License v3.0
214 stars 81 forks source link

undefined reference to `nnp::Log::registerCFilePointer(_IO_FILE** const&)' while building with lammps #168

Open fireballpoint1 opened 2 years ago

fireballpoint1 commented 2 years ago

The question I am trying to install LAMMPS patched with n2p2 and plumed on an hpc node. However, while doing a make mpi, I am running in these error logs:

./liblammps_mpi.a(pair_nnp.o): In function `LAMMPS_NS::PairNNP::init_style()':
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:217: undefined reference to `nnp::Log::registerCFilePointer(_IO_FILE** const&)'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:219: undefined reference to `nnp::Log::registerCFilePointer(_IO_FILE** const&)'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:233: undefined reference to `nnp::InterfaceLammps::initialize(char const* const&, char const* const&, bool, bool, int, int, double, double, double, int, int)'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:237: undefined reference to `nnp::InterfaceLammps::getMaxCutoffRadius() const'
./liblammps_mpi.a(pair_nnp.o): In function `LAMMPS_NS::PairNNP::PairNNP(LAMMPS_NS::LAMMPS*)':
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:24: undefined reference to `nnp::InterfaceLammps::InterfaceLammps()'
./liblammps_mpi.a(pair_nnp.o): In function `LAMMPS_NS::PairNNP::transferNeighborList()':
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:319: undefined reference to `nnp::InterfaceLammps::addNeighbor(int, int, long, int, double, double, double, double)'
./liblammps_mpi.a(pair_nnp.o): In function `LAMMPS_NS::PairNNP::handleExtrapolationWarnings()':
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:329: undefined reference to `nnp::Mode::getNumExtrapolationWarnings() const'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:359: undefined reference to `nnp::InterfaceLammps::extractEWBuffer(char const* const&, int)'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:363: undefined reference to `nnp::InterfaceLammps::writeExtrapolationWarnings()'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:413: undefined reference to `nnp::InterfaceLammps::clearExtrapolationWarnings()'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:367: undefined reference to `nnp::InterfaceLammps::getEWBufferSize() const'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:370: undefined reference to `nnp::InterfaceLammps::fillEWBuffer(char* const&, int) const'
./liblammps_mpi.a(pair_nnp.o): In function `LAMMPS_NS::PairNNP::compute(int, int)':
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:44: undefined reference to `nnp::InterfaceLammps::setLocalAtoms(int, int const*)'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:48: undefined reference to `nnp::InterfaceLammps::setLocalTags(int const*)'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:54: undefined reference to `nnp::InterfaceLammps::process()'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:62: undefined reference to `nnp::InterfaceLammps::getForces(double* const* const&) const'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:71: undefined reference to `nnp::InterfaceLammps::getAtomicEnergy(int) const'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../pair_nnp.cpp:66: undefined reference to `nnp::InterfaceLammps::getEnergy() const'
./liblammps_mpi.a(pair_nnp.o): In function `~Mode':
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../../lib/nnp/include/Mode.h:82: undefined reference to `vtable for nnp::Mode'
/home/iiit/atirek.kumar/mylammps/src/Obj_mpi/../../lib/nnp/include/Mode.h:82: undefined reference to `vtable for nnp::Mode'
./liblammps_mpi.a(pair_nnp.o):(.rodata._ZTIN3nnp15InterfaceLammpsE[_ZTIN3nnp15InterfaceLammpsE]+0x10): undefined reference to `typeinfo for nnp::Mode'
./liblammps_mpi.a(pair_nnp.o):(.rodata._ZTVN3nnp15InterfaceLammpsE[_ZTVN3nnp15InterfaceLammpsE]+0x10): undefined reference to `nnp::Mode::setupElementMap()'
./liblammps_mpi.a(pair_nnp.o):(.rodata._ZTVN3nnp15InterfaceLammpsE[_ZTVN3nnp15InterfaceLammpsE]+0x18): undefined reference to `nnp::Mode::setupElements()'
./liblammps_mpi.a(pair_nnp.o):(.rodata._ZTVN3nnp15InterfaceLammpsE[_ZTVN3nnp15InterfaceLammpsE]+0x20): undefined reference to `nnp::Mode::setupSymmetryFunctions()'
./liblammps_mpi.a(pair_nnp.o):(.rodata._ZTVN3nnp15InterfaceLammpsE[_ZTVN3nnp15InterfaceLammpsE]+0x28): undefined reference to `nnp::Mode::setupSymmetryFunctionScaling(std::string const&)'
./liblammps_mpi.a(pair_nnp.o):(.rodata._ZTVN3nnp15InterfaceLammpsE[_ZTVN3nnp15InterfaceLammpsE]+0x30): undefined reference to `nnp::Mode::setupSymmetryFunctionGroups()'
./liblammps_mpi.a(pair_nnp.o):(.rodata._ZTVN3nnp15InterfaceLammpsE[_ZTVN3nnp15InterfaceLammpsE]+0x38): undefined reference to `nnp::Mode::setupSymmetryFunctionCache(bool)'
./liblammps_mpi.a(pair_nnp.o):(.rodata._ZTVN3nnp15InterfaceLammpsE[_ZTVN3nnp15InterfaceLammpsE]+0x40): undefined reference to `nnp::Mode::setupNeuralNetwork()'
./liblammps_mpi.a(pair_nnp.o):(.rodata._ZTVN3nnp15InterfaceLammpsE[_ZTVN3nnp15InterfaceLammpsE]+0x48): undefined reference to `nnp::Mode::setupNeuralNetworkWeights(std::string const&, std::string const&)'
collect2: error: ld returned 1 exit status
make[1]: *** [../lmp_mpi] Error 1

What did you already try? I followed these steps for the installation:

git clone https://github.com/CompPhysVienna/n2p2.git
cd n2p2/src 
make libnnpif MODE=shared
export LD_LIBRARY_PATH=~/n2p2/lib:${LD_LIBRARY_PATH}
cd ~/mylammps/
ln -s ~/n2p2/ lib/nnp
cd ~/n2p2/
cp -r src/interface/LAMMPS/src/USER-NNP/ ~/mylammps/src/
cd ~/mylammps/src/
make yes-user-nnp
make lib-plumed args="-b"
make yes-plumed
make mpi

Background It is a linux node on an hpc cluster. I am using openmpi/4.0.1 g++ version is 4.5.2