Skip to content

Commit 9d0d968

Browse files
authored
Merge pull request #4711 from QMCPACK/rc_3171
Rc 3171
2 parents 9049a90 + d8705ed commit 9d0d968

File tree

6 files changed

+46
-10
lines changed

6 files changed

+46
-10
lines changed

CHANGELOG.md

+11
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22

33
Notable changes to QMCPACK are documented in this file.
44

5+
## [3.17.1] - 2023-08-25
6+
7+
This minor release is recommended for all users and includes a couple of build fixes and a NEXUS improvement.
8+
9+
* Improved HDF5 detection. Fixes cases where HDF5 was not identified by CMake, including on FreeBSD (thanks @yurivict for the report). [#4708](https://github.com/QMCPACK/qmcpack/pull/4708)
10+
* Fix for building with BUILD_UNIT_TESTS=OFF. [#4709](https://github.com/QMCPACK/qmcpack/pull/4709)
11+
* Add timer for orbital rotations. [#4706](https://github.com/QMCPACK/qmcpack/pull/4706)
12+
13+
### NEXUS
14+
15+
* NEXUS: Support for spinor inputs. [#4707](https://github.com/QMCPACK/qmcpack/pull/4707)
516
## [3.17.0] - 2023-08-18
617

718
This is a recommended release for all users. Thanks to everyone who contributed directly, reported an issue, or suggested an

CMakeLists.txt

+8-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ endif()
1515
######################################################################
1616
project(
1717
qmcpack
18-
VERSION 3.17.0
18+
VERSION 3.17.1
1919
LANGUAGES C CXX)
2020

2121
# add the automatically determined parts of the RPATH
@@ -658,9 +658,15 @@ else()
658658
set(HDF5_USE_STATIC_LIBRARIES off)
659659
endif()
660660

661-
find_package(HDF5 1.10 COMPONENTS C)
661+
find_package(HDF5 COMPONENTS C) # Note: minimum version check is done below to bypass find_package
662+
# and HDF5 version compatibility subtleties
662663

663664
if(HDF5_FOUND)
665+
if(HDF5_VERSION)
666+
if (HDF5_VERSION VERSION_LESS 1.10.0)
667+
message(FATAL_ERROR "QMCPACK requires HDF5 version >= 1.10.0")
668+
endif()
669+
endif(HDF5_VERSION)
664670
if(HDF5_IS_PARALLEL)
665671
if(HAVE_MPI)
666672
message(STATUS "Parallel HDF5 library found")

nexus/lib/qmcpack_input.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -1810,10 +1810,10 @@ class simulationcell(QIxml):
18101810
#end class simulationcell
18111811

18121812
class particleset(QIxml):
1813-
attributes = ['name','size','random','random_source','randomsrc','charge','source']
1813+
attributes = ['name','size','random','random_source','randomsrc','charge','source','spinor']
18141814
elements = ['group','simulationcell']
18151815
attribs = ['ionid','position']
1816-
write_types= obj(random=yesno)
1816+
write_types= obj(random=yesno,spinor=yesno)
18171817
identifier = 'name'
18181818
#end class particleset
18191819

@@ -2319,15 +2319,15 @@ class dm1b(QIxml): # legacy
23192319
tag = 'estimator'
23202320
identifier = 'type'
23212321
attributes = ['type','name','reuse']#reuse is a temporary dummy keyword
2322-
parameters = ['energy_matrix','basis_size','integrator','points','scale','basis','evaluator','center','check_overlap','check_derivatives','acceptance_ratio','rstats','normalized','volume_normed']
2322+
parameters = ['energy_matrix','basis_size','integrator','points','scale','basis','evaluator','center','check_overlap','check_derivatives','acceptance_ratio','rstats','normalized','volume_normed','samples']
23232323
write_types = obj(energy_matrix=yesno,check_overlap=yesno,check_derivatives=yesno,acceptance_ratio=yesno,rstats=yesno,normalized=yesno,volume_normed=yesno)
23242324
#end class dm1b
23252325

23262326
class onebodydensitymatrices(QIxml): # batched
23272327
tag = 'estimator'
23282328
identifier = 'type'
23292329
attributes = ['type','name','reuse']#reuse is a temporary dummy keyword
2330-
parameters = ['energy_matrix','basis_size','integrator','points','scale','basis','evaluator','center','check_overlap','check_derivatives','acceptance_ratio','rstats','normalized','volume_normed']
2330+
parameters = ['energy_matrix','basis_size','integrator','points','scale','basis','evaluator','center','check_overlap','check_derivatives','acceptance_ratio','rstats','normalized','volume_normed','samples']
23312331
write_types = obj(energy_matrix=yesno,check_overlap=yesno,check_derivatives=yesno,acceptance_ratio=yesno,rstats=yesno,normalized=yesno,volume_normed=yesno)
23322332
#end class onebodydensitymatrices
23332333

@@ -2536,6 +2536,7 @@ class vmc(QIxml):
25362536
'blocks','steps','substeps','timestep','maxcpusecs','rewind',
25372537
'storeconfigs','checkproperties','recordconfigs','current',
25382538
'stepsbetweensamples','samplesperthread','samples','usedrift',
2539+
'spinmass',
25392540
'walkers','nonlocalpp','tau','walkersperthread','reconfiguration', # legacy - batched
25402541
'dmcwalkersperthread','current','ratio','firststep',
25412542
'minimumtargetwalkers','max_seconds']
@@ -2558,6 +2559,7 @@ class dmc(QIxml):
25582559
'stepsbetweensamples','samplesperthread','samples','reconfiguration',
25592560
'nonlocalmoves','maxage','alpha','gamma','reserve','use_nonblocking',
25602561
'branching_cutoff_scheme','feedback','sigmabound',
2562+
'spinmass',
25612563
'walkers','nonlocalmove','pop_control','targetwalkers', # legacy - batched
25622564
'minimumtargetwalkers','energybound','feedback','recordwalkers',
25632565
'fastgrad','popcontrol','branchinterval','usedrift','storeconfigs',
@@ -2812,6 +2814,7 @@ class gen(QIxml):
28122814
l2_diffusion = 'L2_diffusion',
28132815
maxage = 'MaxAge',
28142816
sigmabound = 'sigmaBound',
2817+
spinmass = 'spinMass',
28152818
)
28162819
# afqmc names
28172820
Names.set_afqmc_expanded_names(

src/Estimators/CMakeLists.txt

+3-1
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,6 @@ endif()
4747
target_include_directories(qmcestimators PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
4848
target_link_libraries(qmcestimators PUBLIC containers qmcham qmcparticle qmcutil)
4949

50-
add_subdirectory(tests)
50+
if(BUILD_UNIT_TESTS)
51+
add_subdirectory(tests)
52+
endif()

src/QMCWaveFunctions/RotatedSPOs.cpp

+14-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@
2020
namespace qmcplusplus
2121
{
2222
RotatedSPOs::RotatedSPOs(const std::string& my_name, std::unique_ptr<SPOSet>&& spos)
23-
: SPOSet(my_name), OptimizableObject(my_name), Phi(std::move(spos)), nel_major_(0), params_supplied(false)
23+
: SPOSet(my_name),
24+
OptimizableObject(my_name),
25+
Phi(std::move(spos)),
26+
nel_major_(0),
27+
params_supplied(false),
28+
apply_rotation_timer_(createGlobalTimer("RotatedSPOs::apply_rotation", timer_level_fine))
2429
{
2530
OrbitalSetSize = Phi->getOrbitalSetSize();
2631
}
@@ -408,7 +413,10 @@ void RotatedSPOs::apply_rotation(const std::vector<RealType>& param, bool use_st
408413
Finally, apply unitary matrix to orbs.
409414
*/
410415
exponentiate_antisym_matrix(rot_mat);
411-
Phi->applyRotation(rot_mat, use_stored_copy);
416+
{
417+
ScopedTimer local(apply_rotation_timer_);
418+
Phi->applyRotation(rot_mat, use_stored_copy);
419+
}
412420
}
413421

414422
void RotatedSPOs::applyDeltaRotation(const std::vector<RealType>& delta_param,
@@ -419,7 +427,10 @@ void RotatedSPOs::applyDeltaRotation(const std::vector<RealType>& delta_param,
419427
ValueMatrix new_rot_mat(nmo, nmo);
420428
constructDeltaRotation(delta_param, old_param, m_act_rot_inds, m_full_rot_inds, new_param, new_rot_mat);
421429

422-
Phi->applyRotation(new_rot_mat, true);
430+
{
431+
ScopedTimer local(apply_rotation_timer_);
432+
Phi->applyRotation(new_rot_mat, true);
433+
}
423434
}
424435

425436
void RotatedSPOs::constructDeltaRotation(const std::vector<RealType>& delta_param,

src/QMCWaveFunctions/RotatedSPOs.h

+3
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,9 @@ class RotatedSPOs : public SPOSet, public OptimizableObject
437437
/// Full set of rotation matrix parameters for use in global rotation method
438438
opt_variables_type myVarsFull;
439439

440+
/// timer for apply_rotation
441+
NewTimer& apply_rotation_timer_;
442+
440443
/// List of previously applied parameters
441444
std::vector<std::vector<RealType>> history_params_;
442445

0 commit comments

Comments
 (0)