Hi Axel and LAMMPS users,
Thanks so much for the valuable clue long time ago. I just gained a bit of cplus knowledge and went back to this project. Please let me ask more specifically.
During a verlet run within a “pair” function “compute_force()”, I would like to calculate the pressure (i.e. P=sum(fpair*dx)/Voronoi volume per atom), also I would like to call the Voronoi face area each neighbour pair for further use. The belows are what I have done:
=========for Voronoi volume and Question 1 ===========
In the pair calculation, I added the ptr for the Voronoi calculation:
Then further call it through:
In input file I just add: compute voroinfo all Voronoi/atom
Until here results show it is all good;
Since, as you said, the “compute_***.h” actually happens after a verlet run(normally when output dump needed), also I indeed feel the simulation is slowed down. So in this way, if here I manually call it during a verlet run, will it actually be called twice? If so, it do severely slow down the simulation, may I ask in which file I can skip off the extra calculation of voronoi?
============for Voronoi face area per pair and Question 2======================
In the “compute.h” I added the container:
std::vector<std::vector> v_face_areas;//to store voro face area of each neighbour pair
std::vector<std::vector> v_neighbors;//to store id of neighbours of each target atom
std::vectorid_target;//to store id of each target atom
Then in the compute_voronoi_atom.cpp;
In function loopCells():
In function processCell():
During the pair calculation;
I call the container using the ptr (mentioned in the voro volume part) as below:
#include “compute.h” and I think they are all in namespace LAMMPS_NS
However, segmentation fault happens here, it shows the address not mapped, which means the ptr seems not work. Could you please provide some suggestions on how this Voronoi information (in “compute_voronoi_atom.cpp”, neigh and narea) can be stored and called outside the Voronoi compute? Or is there anything I can improve for the may I am on?