Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

COMPARISON ONLY #3

Open
wants to merge 70 commits into
base: master
Choose a base branch
from
Open

COMPARISON ONLY #3

wants to merge 70 commits into from

Conversation

kevinstratford
Copy link

Summary

Related Issue(s)

Author(s)

Licensing

By submitting this pull request, I agree, that my contribution will be included in LAMMPS and redistributed under either the GNU General Public License version 2 (GPL v2) or the GNU Lesser General Public License version 2.1 (LGPL v2.1).

Backward Compatibility

Implementation Notes

Post Submission Checklist

  • The feature or features in this pull request is complete
  • Licensing information is complete
  • Corresponding author information is complete
  • The source code follows the LAMMPS formatting guidelines
  • Suitable new documentation files and/or updates to the existing docs are included
  • The added/updated documentation is integrated and tested with the documentation build system
  • The feature has been verified to work with the conventional build system
  • The feature has been verified to work with the CMake based build system
  • Suitable tests have been added to the unittest tree.
  • A package specific README file has been included or updated
  • One or more example input decks are included

Further Information, Files, and Links

James Young and others added 30 commits October 7, 2020 17:53
…added to atom_vec_shperatom.cpp/.h. So far this atom style load in files and sets class specific arrays to hold the data specific to each spherical harmonic type. These arrays are then associated with each atom in set.cpp/.h. Currently arrays are directly copied across to each per_atom array.

The time integration scheme hasn't been tested yet nor has a contact model been developed. I also haven't finished the expansion factors method in the atom class.
…stigate whether the new atom style needs to be included in the main directory so as to work with set.cpp and others. Ignore the SphericalHarm folder, this contains older attempts. Relevant code is in USER-SPHERHARM.
…the cut_global in the atom_style just for testing.
…peratom to directly access array stored in the atom style (this may break using MPI, needs checking). Wrote a basic pair style based on the the overlap distance between gauss points and analytical radii of neighbouring particles (completely unphysical but could be useful for testing). Just uses F=-kx where the user specifies "k". Updated the input script in the Examples/User folder to use the new pair style.
…by the set command if all that is needed is to store the per_atom variable shtype.

Also fixed the pair style such that serial and 2-proc MPI give the same results. Problem was that I was calculating forces w.r.t atom j, when this should have been for atom i.
…by the set command if all that is needed is to store the per_atom variable shtype.

Also fixed the pair style such that serial and 2-proc MPI give the same results. Problem was that I was calculating forces w.r.t atom j, when this should have been for atom i.
# Conflicts:
#	examples/granular/in.pour.drum
#	src/atom.cpp
#	src/atom_vec.cpp
#	src/set.cpp
… access per-shape arrays. Per-shape arrays are not in the atom scope, but the memory for them are allocated within the atom style itself. The result is that they can be accessed via atom->shape_array.

Now referring to "shapes" instead of "shtypes" to avoid the confusion with the LAMMPS type.

Added flags to the pair_style so that it can switch between using the points of Gaussian quadrature and the patch approach. Both are flawed (contact is not equal and opposite due to the non-equal distance between surface points).
… the pair style. Also fixed the bug where the shape A radius was overwritten in the pair style.
… from the centre of the volume of overlap, which is an arbitrary guess as to where the moment should act from. About to implement Feng's method, which conserves energy and requires direct caclulation of the moment from integral form (rather than multiplying the force by the distance from the particle COM to the centre of the volume of overlap). Added documentation, but this is just for LAMMPS review rather than final documentation.
…m has two bugs. (1) The caps should not be calculated from the lens of sphere-sphere overlap but from the tangents of the spheres. (2) protruding contacts are not accounted for.
…h particles persepctive now converges. The force is incorrect for the second particle as y and z are swapped. Some problem with rotating back to the contact.
…the integration on the spherical cap takes place over the spherical cap that is rotated to the contact.
…the work done by the contact potential. Adding functions to implement flat wall boundaries (cylindrical boundary does not yet work)
… currently this is just used to access individual elements of the quaternion form the input script.
James Young and others added 29 commits November 16, 2021 15:50
…tyle

Removed pair_sh_resquared.h/cpp as this was just used to test ellipsoid particles generated by spherical harmonics. The pair style itself only worked for ellipsoids and was really only testing if the SH series generated the ellipsoids properly.

Removing the factorial math from math_spherharm and gaussquad_const. This seems to have been added to math_special, so just calling the method from here now.
Had to add "quat" to fields_border_vel in atom_vec_spherharm in order for the quaternion of atoms on different processors to be communicated

compute_efunction_spherharm needed to be updated as it was still loading mass based on types rather than rmass. This was resulting in a mass=0 and a divion by zero leading to NANS. This has been fixed.

Tidying up the pair_style:
Deleting the bisection gradient method as this is WIP and will only serve to confuse at present. Knock on effect of removing calc_nearest_point and skew_lines_check.

Removing get_contact_point_bounds as this seems not to be called anywhere. May be called in commented out code but that remains to be seen.
Deleting the write_ellipsoid method from pair_sh, it is not used at present.

Moved the spherharmunittest into its own package. This way BOOST is only required for the testing but not for the stand-alone spherharm package
Updates from Imaran with original names
kevinstratford pushed a commit that referenced this pull request Apr 19, 2024
Update to current develop and some cosmetic changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants