what i wannt to do is applying this package to my lammps. I already installed and linked LAPACK and BLAS. I compiled with make -j4 and make install but folder in src makes errors like that HELP ME ASAP
GLOB mismatch!
– GLOB mismatch!
– GLOB mismatch!
– Running check for auto-generated files from make-based build system
– Could NOT find FFMPEG (missing: FFMPEG_EXECUTABLE)
– Checking for module ‘fftw3’
– No package ‘fftw3’ found
– Generating style headers…
– Generating package headers…
– Generating lmpinstalledpkgs.h…
– Could NOT find ClangFormat (missing: ClangFormat_EXECUTABLE) (Required is at least version “11.0”)
– The following tools and libraries have been found and configured:
Git
MPI
OpenMP
LAPACK
Threads
BLAS
JPEG
PNG
ZLIB
PkgConfig
Python3
– <<< Build configuration >>>
LAMMPS Version: 20240829 stable_29Aug2024_update1-modified
Operating System: Linux Ubuntu" 22.04
CMake Version: 3.22.1
Build type: RelWithDebInfo
Install path: /home/zonzalkoo/lammps/lammps-install
Generator: Unix Makefiles using /usr/bin/gmake
– Enabled packages: ELECTRODE;EXTRA-DUMP;EXTRA-FIX;KSPACE;MANYBODY;MOLECULE;REAXFF
– <<< Compilers and Flags: >>>
– C++ Compiler: /usr/bin/c++
Type: GNU
Version: 11.4.0
C++ Standard: 11
C++ Flags: -O2 -g -DNDEBUG
Defines: LAMMPS_SMALLBIG;LAMMPS_MEMALIGN=64;LAMMPS_OMP_COMPAT=4;LAMMPS_JPEG;LAMMPS_PNG;LAMMPS_GZIP;FFT_KISS
– C compiler: /usr/bin/cc
Type: GNU
Version: 11.4.0
C Flags: -O2 -g -DNDEBUG
– <<< Linker flags: >>>
– Executable name: lmp
– Static library flags:
– <<< MPI flags >>>
– MPI_defines: MPICH_SKIP_MPICXX;OMPI_SKIP_MPICXX;_MPICC_H
– MPI includes: /usr/lib/x86_64-linux-gnu/openmpi/include;/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi
– MPI libraries: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so;/usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so;
– <<< FFT settings >>>
– Primary FFT lib: KISS
– Using double precision FFTs
– Using non-threaded FFTs
– Using builtin distributed FFT algorithms
– Configuring done
– Generating done
– Build files have been written to: /home/zonzalkoo/lammps/lammps/build
[ 0%] Built target angle.h
[ 0%] Built target atom.h
[ 0%] Built target fmt_format.h
– Git Directory: /home/zonzalkoo/lammps/lammps/.git
– Generating lmpgitversion.h…
[ 0%] Built target citeme.h
[ 0%] Built target bond.h
[ 0%] Built target comm.h
[ 0%] Built target gitversion
[ 0%] Built target compute.h
[ 0%] Built target dihedral.h
[ 0%] Built target command.h
[ 1%] Built target domain.h
[ 2%] Built target fix.h
[ 2%] Built target exceptions.h
[ 2%] Built target error.h
[ 2%] Built target force.h
[ 2%] Built target group.h
[ 2%] Built target improper.h
[ 2%] Built target input.h
[ 3%] Built target info.h
[ 3%] Built target lammps.h
[ 3%] Built target kspace.h
[ 3%] Built target lattice.h
[ 3%] Built target library.h
[ 3%] Built target lmppython.h
[ 3%] Built target lmptype.h
[ 3%] Built target memory.h
[ 3%] Built target modify.h
[ 4%] Built target neigh_list.h
[ 4%] Built target neighbor.h
[ 4%] Built target output.h
[ 4%] Built target pair.h
[ 4%] Built target pointers.h
[ 4%] Built target platform.h
[ 5%] Built target region.h
[ 5%] Built target timer.h
[ 5%] Built target universe.h
[ 5%] Built target utils.h
[ 5%] Built target update.h
[ 6%] Built target variable.h
[ 6%] Built target fmt_core.h
Consolidate compiler generated dependencies of target lammps
[ 6%] Building CXX object CMakeFiles/lammps.dir/home/zonzalkoo/lammps/lammps/src/fix_conp.cpp.o
[ 7%] Building CXX object CMakeFiles/lammps.dir/home/zonzalkoo/lammps/lammps/src/lammps.cpp.o
[ 7%] Building CXX object CMakeFiles/lammps.dir/home/zonzalkoo/lammps/lammps/src/modify.cpp.o
/home/zonzalkoo/lammps/lammps/src/fix_conp.cpp: In constructor ‘LAMMPS_NS::FixConp::FixConp(LAMMPS_NS::LAMMPS*, int, char**)’:
/home/zonzalkoo/lammps/lammps/src/fix_conp.cpp:70:19: error: expected primary-expression before ‘->’ token
70 | everynum = utils->numeric(FLERR,arg[3],false,lmp);
| ^~
/home/zonzalkoo/lammps/lammps/src/fix_conp.cpp:71:14: error: expected primary-expression before ‘->’ token
71 | eta = utils->numeric(FLERR,arg[4],false,lmp);
| ^~
/home/zonzalkoo/lammps/lammps/src/fix_conp.cpp:72:17: error: expected primary-expression before ‘->’ token
72 | molidL = utils->inumeric(FLERR,arg[5],false,lmp);
| ^~
/home/zonzalkoo/lammps/lammps/src/fix_conp.cpp:73:17: error: expected primary-expression before ‘->’ token
73 | molidR = utils->inumeric(FLERR,arg[6],false,lmp);
| ^~
/home/zonzalkoo/lammps/lammps/src/fix_conp.cpp:74:13: error: expected primary-expression before ‘->’ token
74 | vL = utils->numeric(FLERR,arg[7],false,lmp);
| ^~
/home/zonzalkoo/lammps/lammps/src/fix_conp.cpp:75:13: error: expected primary-expression before ‘->’ token
75 | vR = utils->numeric(FLERR,arg[8],false,lmp);
| ^~
make[2]: *** [CMakeFiles/lammps.dir/build.make:1980: CMakeFiles/lammps.dir/home/zonzalkoo/lammps/lammps/src/fix_conp.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs…
make[1]: *** [CMakeFiles/Makefile2:171: CMakeFiles/lammps.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Well, I have no way of knowing if the “LAMMPS-CONP” you’re working with is exactly what’s in my GitHub, but what’s in my GitHub is hopelessly outdated.
Most functionalities of that package are now in the ELECTRODE package (fix electrode/conp command — LAMMPS documentation) so use that. Otherwise, you should be able to compile the USER-CONP2 package with an older version of LAMMPS.
we are south korean high school students doing research activity.
what I am currently making is simulation of Ion movement arround electrode that is considering absorption. (like gold plating) so we are going to modify your CONP package so that we can calculate some potentials and analyze the formation of EDL.
so could you please suggest me some methods that could combine absorption of ions with ELECTRODE package?
I am very excited for you! Welcome to the LAMMPS forum. I am always especially happy to welcome school students since it is good to introduce people to science early in their education and computational science is becoming more accessible and powerful every day.
Let’s keep talking in this thread – as a rule it’s good to have these discussions in the open so that everyone can learn from them!
When you say:
I am not sure what you mean by “absorption”? There are three broad kinds of changes that happen when a salt solution is near a charged metal surface:
The ions are attracted to the surface because of the electrostatic force, both from the surface and from each other.
The water (especially hydrogen) can start chemically bonding with the surface – that’s the start of how water electrolysis can occur!
With enough local energy the metal atoms can rearrange themselves into more favourable structures (called “restructuring”).
Investigating 2 and 3 are very challenging projects to do correctly because they involve actual quantum details of how electron orbitals are shaped – not just point or Gaussian charges like what MD programs use. So I would recommend not considering those.
If by “gold plating” you mean electrodeposition – that is, having gold ions reach the cathode and be reduced to solid gold – that is a challenging project. You may be able to achieve some qualitative results, but it may be hard for you to run simulations for long enough to get usable statistics.
You would first have to find a way to correctly represent metal ions in water. There are “force fields” for that, but the realism of your simulation will be limited to how accurate or inaccurate those force fields are.
Now, how to simulate the electrodeposition itself? Here is an idea:
In LAMMPS you can create a variable with count(group, region) to count how many particles from a particular group are in a particular region. If you set a group for the dissolved metal ions and a region that covers the electrode and a small “interaction zone” in front of the electrode, you can count how many ions are very near the electrode.
LAMMPS also has a “fix halt” command to stop a simulation when a condition is reached. So you could stop the simulation whenever the variable (from 1) tells you that there is a metal ion close to the electrode.
You can then alter the simulation setup and manually change the metal ion into the same type as the electrode and include it into the electrode group, as well as move its position to match the existing lattice arrangement of the metal. (Note that you have to work out how to keep the solution charge-neutral. Either you have to randomly reintroduce another metal ion to compensate, or remove enough counter ions to compensate.)
By repeating this enough times you can simulate metal being slowly deposited on the electrode. (When the surface becomes less smooth, you will have to think about how the region from (1) is defined.)
This would need some attention to detail from you, but it can be straightforwardly done without modifying the LAMMPS software. Equally well, you can focus your efforts just on simulating the EDL – there is still a lot to discover!
Ah – that’s the very original! Both my USER-CONP2 and ultimately ELECTRODE are descended from it, of course with much subsequent development.
But I did not realise the original repo has had one commit added to it. CONP was first published with code in 2014 so a lot of what doesn’t work in that repo will probably be due to changes in LAMMPS’s internal classes since then (for example the change from force->inumeric to utils->inumeric).