|
|
LAMMPS is a classical molecular dynamics simulation code with a focus in materials modeling.
|
|
|
It is written using C++.
|
|
|
The most object-oriented aspects of C++ are used at a high-level to help structure and organize the code, while critical kernels are written using C-style code.
|
|
|
|
|
|
This repository contains an implementation of the `PairLJCharmmCoulLong::compute` function (which belongs to the *lj/charmm/coul/charmm* *pair_style*) optimized for the EPI vector accelerator, which uses the RISC-V vector extension 0.7.
|
|
|
|
|
|
This function is called each timestep when using the [rhodopsin](https://www.lammps.org/bench.html#rhodo) input, which can be downloaded in the same page under the label [bench_protein.tar.gz](https://www.lammps.org/bench/bench_protein.tar.gz).
|
|
|
The input contains two files:
|
|
|
|
|
|
- `in.protein`: the "script" file, which contains the simulation settings.
|
|
|
- `run 100`: change 100 for *N* to run *N* timesteps.
|
|
|
- `pair_style lj/charmm/coul/long 8.0 10.0` This is the line that specifies that we are using the *lj/charmm/coul/charmm* *pair_style*. If a different *pair_style* was selected, then `PairLJCharmmCoulLong::compute` would not be executed, and the optimizations would not have any impact. Moreover, the `8.0`and `10.0` represent the *cutoff distances*, which can have an impact to the execution of the function. For more information, check the LAMMPS [documentation](https://docs.lammps.org/pair_charmm.html#pair-style-lj-charmm-coul-long-command).
|
|
|
- `data.protein`: contains the initial data for the atoms in the simulation and their properties
|
|
|
|