-
Notifications
You must be signed in to change notification settings - Fork 15
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
Rotation calculated for spherical particles #274
Rotation calculated for spherical particles #274
Conversation
Other optimizations may also be implemented 👉 Do NOT merge yet! |
In a separate, very naive sequential test using C++/gcc, avoiding 100M calls to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, it looks good besides a few smaller issues.
You could also have a look at a simulation with spherical particles using a profiler, e.g. valgrind, to identify the Quaternion functions with the highest impact.
Using the GNU profiler (gprof) for the argon example (
Reverting the change of |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some small cmake stuff
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice
Description
Optimize rotation of zero vectors (spherical molecule simulations).
$\forall q\in\mathbb{H}:rotate(q,\vec{\scriptstyle 0})=\vec{\scriptstyle 0}$
This case is handled explicitly to reduce the number of multiplications that are performed.
For$\forall q\in\mathbb{H}:differentiate(q,\vec{\scriptstyle 0})=\vec{\scriptstyle 0}$
Quaternion::differentiate
all summands in all equations have a factor from the input vector.Thus,
Resolved Issues
How Has This Been Tested?
As described in #267, the Argon and CO2 simulations were run using both the original and modified codes generating .xyz-files.
There was no difference between the .xyz-files which indicates that output of the computations is unchanged.