imp
imp copied to clipboard
Add ability to have BD reject moves that cause collisions
- Use a Predicate to verify collisions so that RigidBodies can be used.
- maintain a ClosePairContainer and use something like Distribute to divide up list of particles so checking is efficient. @nkhuri
Add a list of predicates that must be satisfied to accept a move. We can then implement a SingletonPredicate that applies a PairPredicate to close pairs. Need to implement
- changes in BD
- expose a ScoreState that allows fetching of near neighbors of particles
- a few PairPredicates to check for collisions (RB based and single particle)
- a SingletonPredicate that implements the above.
A problem with that general approach is making sure that the ScoreState is updated properly. There are two aspects to this
- we don't want to have to update the NN list during the BD move, but we don't know how far things can move outside of it (although we can do it probabilistically)
- naively at least, nothing depends on the NN list during evaluate and so it won't necessarily get updated. Making optimizers and optimizer states ModelObjects might help with this.
Sometimes there are core dumps after running a while. /netapp/sali/nkhuri/HEMOGLOBIN/submit/new_run.sh