@@ -466,38 +466,42 @@ calcCDDCubes fi es = do
466
466
Nothing -> " no"
467
467
Just _ -> " yes"
468
468
469
- cubeInfo <- case (fi ^. cddGenerator) of
469
+ -- Update the file info about available cubes
470
+ existingCubes <- findAllCubes (fi ^. outputPrefix)
471
+ let fiWithCubes = fi & cubeFiles .~ existingCubes
472
+
473
+ cubeInfo <- case (fiWithCubes ^. cddGenerator) of
470
474
Just REPA {} -> do
471
475
logMessage " CDD calculator" " REgular Parallel Arrays (neglecting all cross terms!)"
472
476
logMessage " Calculating CDDs for states" (show $ map (^. nState) es)
473
- logMessage " Orbital cubes available" (show $ map takeFileName <$> (fi ^. cubeFiles . orbCubes))
474
- logMessage " Natural orbital cubes available" (show $ map takeFileName <$> (fi ^. cubeFiles . natOrbCubes))
477
+ logMessage " Orbital cubes available" (show $ map takeFileName <$> (fiWithCubes ^. cubeFiles . orbCubes))
478
+ logMessage " Natural orbital cubes available" (show $ map takeFileName <$> (fiWithCubes ^. cubeFiles . natOrbCubes))
475
479
logInfo " Calculating CDDs in parallel using REPA. See \" REPA.log\" "
476
480
mapM_ (\ s -> do
477
- cddTriple <- CG.Exckel. calculateCDD fi s
481
+ cddTriple <- CG.Exckel. calculateCDD fiWithCubes s
478
482
case cddTriple of
479
483
Left e -> errMessage e
480
484
Right (i, (h, e, d)) -> do
481
485
T. writeFile
482
- ((fi ^. outputPrefix) ++ [pathSeparator] ++ " hole" ++ show i ++ " .cube" )
486
+ ((fiWithCubes ^. outputPrefix) ++ [pathSeparator] ++ " hole" ++ show i ++ " .cube" )
483
487
(CG.Exckel. writeCube h)
484
488
T. writeFile
485
- ((fi ^. outputPrefix) ++ [pathSeparator] ++ " electron" ++ show i ++ " .cube" )
489
+ ((fiWithCubes ^. outputPrefix) ++ [pathSeparator] ++ " electron" ++ show i ++ " .cube" )
486
490
(CG.Exckel. writeCube e)
487
491
T. writeFile
488
- ((fi ^. outputPrefix) ++ [pathSeparator] ++ " CDD" ++ show i ++ " .cube" )
492
+ ((fiWithCubes ^. outputPrefix) ++ [pathSeparator] ++ " CDD" ++ show i ++ " .cube" )
489
493
(CG.Exckel. writeCube d)
490
494
) es
491
- allCubes <- findAllCubes (fi ^. outputPrefix)
495
+ allCubes <- findAllCubes (fiWithCubes ^. outputPrefix)
492
496
return allCubes
493
497
Just MultiWFNCDD {} -> do
494
- logMessage " CDD calculator" (show $ fi ^. cddGenerator . _Just . cddExePath)
498
+ logMessage " CDD calculator" (show $ fiWithCubes ^. cddGenerator . _Just . cddExePath)
495
499
logMessage " Calculating CDDs for states" (show $ map (^. nState) es)
496
500
logInfo " Calculating CDDs. See \" MultiWFN.out\" and \" MultiWFN.err\" "
497
- CG.MWFN. calculateCDDs fi es
498
- allCubes <- findAllCubes (fi ^. outputPrefix)
501
+ CG.MWFN. calculateCDDs fiWithCubes es
502
+ allCubes <- findAllCubes (fiWithCubes ^. outputPrefix)
499
503
return allCubes
500
- Nothing -> return $ fi ^. cubeFiles
504
+ Nothing -> return $ fiWithCubes ^. cubeFiles
501
505
502
506
return $ fi
503
507
& cubeFiles . holeCubes .~ (cubeInfo ^. holeCubes)
@@ -517,31 +521,35 @@ doPlots fi = do
517
521
Nothing -> " no"
518
522
Just _ -> " yes"
519
523
520
- imageInfo <- case (fi ^. cubePlotter) of
524
+ -- Update the file info about available cubes
525
+ existingCubes <- findAllCubes (fi ^. outputPrefix)
526
+ let fiWithCubes = fi & cubeFiles .~ existingCubes
527
+
528
+ imageInfo <- case (fiWithCubes ^. cubePlotter) of
521
529
Just VMD {} -> do
522
530
-- Informations about the current settings
523
- logMessage " Orbital cubes to plot" $ show $ map takeFileName $ fi ^. cubeFiles . orbCubes . _Just
524
- logMessage " Hole density cubes to plot" $ show $ map takeFileName $ fi ^. cubeFiles . holeCubes . _Just
525
- logMessage " Electron density cubes to plot" $ show $ map takeFileName $ fi ^. cubeFiles . electronCubes . _Just
526
- logMessage " CDD cubes to plot" $ show $ map takeFileName $ fi ^. cubeFiles . cddCubes . _Just
527
- logMessage " Cube plotter" $ fi ^. cubePlotter . _Just . cpExePath
528
- logMessage " Cube renderer" $ fi ^. cubePlotter . _Just . cpRenderer . rExePath
531
+ logMessage " Orbital cubes to plot" $ show $ map takeFileName $ fiWithCubes ^. cubeFiles . orbCubes . _Just
532
+ logMessage " Hole density cubes to plot" $ show $ map takeFileName $ fiWithCubes ^. cubeFiles . holeCubes . _Just
533
+ logMessage " Electron density cubes to plot" $ show $ map takeFileName $ fiWithCubes ^. cubeFiles . electronCubes . _Just
534
+ logMessage " CDD cubes to plot" $ show $ map takeFileName $ fiWithCubes ^. cubeFiles . cddCubes . _Just
535
+ logMessage " Cube plotter" $ fiWithCubes ^. cubePlotter . _Just . cpExePath
536
+ logMessage " Cube renderer" $ fiWithCubes ^. cubePlotter . _Just . cpRenderer . rExePath
529
537
logMessage " VMD startup file with general settings" $ fromMaybe
530
538
" / (will try to use your \" .vmdrc\" )"
531
- (fi ^. cubePlotter . _Just . cpStartUp)
539
+ (fiWithCubes ^. cubePlotter . _Just . cpStartUp)
532
540
logMessage " VMD state file for perspective" $ fromMaybe
533
541
" / (will use default perspective)"
534
- (fi ^. cubePlotter . _Just . cpStateFile)
535
- let unwrappedRenderer = fromJust $ fi ^. cubePlotter
542
+ (fiWithCubes ^. cubePlotter . _Just . cpStateFile)
543
+ let unwrappedRenderer = fromJust $ fiWithCubes ^. cubePlotter
536
544
logMessage " Rendering resolution" $ show (unwrappedRenderer ^. cpRenderer . rResolution)
537
545
logMessage " Rendering image format" $ show (unwrappedRenderer ^. cpRenderer . rImageFormat)
538
546
logInfo " Calling VMD and Tachyon. See \" VMD.out\" , \" VMD.err\" , \" Tachyon.out\" and \" Tachyon.err\" "
539
547
CP.VMD. plotCubes fi
540
- allImages <- findAllImages (fi ^. outputPrefix)
548
+ allImages <- findAllImages (fiWithCubes ^. outputPrefix)
541
549
return allImages
542
- Nothing -> return $ fi ^. imageFiles
550
+ Nothing -> return $ fiWithCubes ^. imageFiles
543
551
544
- return (fi & imageFiles .~ imageInfo)
552
+ return (fiWithCubes & imageFiles .~ imageInfo)
545
553
546
554
547
555
0 commit comments