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

Macro for fasterMulticolvar+named modes #1158

Draft
wants to merge 10 commits into
base: derivatives-from-backpropegation
Choose a base branch
from

Conversation

Iximiel
Copy link
Member

@Iximiel Iximiel commented Nov 19, 2024

@gtribello
I am starting to do some work to bring Multicolvar.h to be more compatible with the GPU

This first commit just aims to clearer the "mode" variable, and add a small layer of automatism to setting up a colvar to be compatible with a Multicolvar with a few macros. I think this could make it easier to change the function signatures faster.

For running on a GPU I may need to restart implementing #1092

@Iximiel
Copy link
Member Author

Iximiel commented Nov 20, 2024

Update:
I simplified the calculateCV interface for the output part, this will likely make it easier to manipulate how that will work with managing the output data without changing the function signature.

I also want to do something similar for the input variables, but I have to deal with the fact that some CVs, like the dipole one, use some of the input values as temporary values, so the signature changes with some input not set as const ref but as simple refs

setting up a (very complex) input variable

adding a builder pattern feature, that may be useful

runned atyle

adding tests for Input

set tests for baisc input

nearly everithing tested

simplifying the Input interface
@Iximiel
Copy link
Member Author

Iximiel commented Nov 22, 2024

Update: I set up also an Input helper with a test-guide.

I am working on changing the action atominstic ptr to something similar to the input/output classes
I was thinking on setting up something similar to the mode variable
The aim of this is to set up an object simple -and light- enough to be loaded on the GPU without excessive complications

@Iximiel
Copy link
Member Author

Iximiel commented Nov 27, 2024

@gtribello can you look at the Quaternion::calculateCV method?

in the //convert to quaternion section, the one with all the "ifthenelseif" blocks, in the first block S is a double in the others is a float, since everything else is double precision I fear that it is a copy-paste error

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.

1 participant