- An MR ENANTIOMORPH decision is taken into the answer's label only as --model takes a model's enantiomorph: ValidateAgainstModel runs on the placed model (in a scratch directory, removed after) and its adopted_model_enantiomorph - fit over its null, anomalous map at the atoms not inverted - decides; otherwise ENANTIOMORPH_VETOED. The hand-check numbers go to the MODEL PRIOR section. - Rotation and translation functions on the GPU (MolecularReplacementGPU.cu): one block per orientation for the rotation function; per orientation the copies, the bin weights, a gather of the Crowther-Blow coefficients (CSR lists, fixed order, no atomics) and a cuFFT C2R, block-reduced statistics finished on the host in a fixed order. The CPU path (FFTW) is unchanged in what it computes; the orientation-independent part of the translation function (TranslationSetup) is now built once per group on either path. - Rescoring: a placement clashing with its mates over twice the limit is not refined, one rigid-body engine per group, and the null is built only for the candidate the choice falls on. Measured MR step on the RTX 5080 (before -> after, seconds; hand check extra where it runs): 3r6o 1.77 -> 0.67, neg 2.14 -> 0.37, 11if 1.20 -> 0.51 (+0.6 hand check), 7ris 1.46 -> 0.56 (+0.6), 9zmu 4.71 -> 1.07 (+0.9). Rotation 0.50 -> 0.02 s and translation 1.17 -> 0.13 s on 9zmu. Mirrored-detector runs of two anomalous lysozyme sets: the hand check vetoes (map inverted at the model's atoms); the unmirrored runs adopt. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
23 lines
1.2 KiB
CMake
23 lines
1.2 KiB
CMake
ADD_LIBRARY(JFJochStructureRefinement STATIC
|
|
ModelFFT.cpp ModelFFT.h
|
|
ModelGrid.cpp ModelGrid.h
|
|
ModelScaling.cpp ModelScaling.h
|
|
MolecularReplacement.cpp MolecularReplacement.h
|
|
$<$<BOOL:${JFJOCH_CUDA_AVAILABLE}>:MolecularReplacementGPU.cu> MolecularReplacementGPU.h
|
|
ModelValidation.cpp ModelValidation.h
|
|
RigidBodyRefine.cpp RigidBodyRefine.h
|
|
$<$<BOOL:${JFJOCH_CUDA_AVAILABLE}>:RigidBodyGPU.cpp>
|
|
$<$<BOOL:${JFJOCH_CUDA_AVAILABLE}>:RigidBodyGPU.cu>
|
|
RigidBodyGPU.h RigidBodyGPUEngine.h
|
|
$<$<BOOL:${JFJOCH_CUDA_AVAILABLE}>:ModelDensityGPU.cu> ModelDensityGPU.h
|
|
$<$<BOOL:${JFJOCH_CUDA_AVAILABLE}>:ModelMaskGPU.cu> ModelMaskGPU.h
|
|
$<$<BOOL:${JFJOCH_CUDA_AVAILABLE}>:ModelStructureFactorsGPU.cpp>
|
|
$<$<BOOL:${JFJOCH_CUDA_AVAILABLE}>:ModelStructureFactorsGPU.cu>
|
|
ModelStructureFactorsGPU.h ModelStructureFactorsGPUEngine.h
|
|
$<$<BOOL:${JFJOCH_CUDA_AVAILABLE}>:ModelScaleGPU.cu> ModelScaleGPU.h
|
|
SigmaA.cpp SigmaA.h)
|
|
|
|
# JFJochIndexing for CUDAMemHelpers.h and, under CUDA, to put cuFFT (RigidBodyGPU.cu) after these
|
|
# objects on the link line.
|
|
TARGET_LINK_LIBRARIES(JFJochStructureRefinement JFJochScaleMerge JFJochIndexing JFJochCommon gemmi fftw3f)
|