Skip to content

Commit

Permalink
Merge pull request #4711 from QMCPACK/rc_3171
Browse files Browse the repository at this point in the history
Rc 3171
  • Loading branch information
prckent authored Aug 25, 2023
2 parents 9049a90 + d8705ed commit 9d0d968
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 10 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

Notable changes to QMCPACK are documented in this file.

## [3.17.1] - 2023-08-25

This minor release is recommended for all users and includes a couple of build fixes and a NEXUS improvement.

* 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)
* Fix for building with BUILD_UNIT_TESTS=OFF. [#4709](https://github.com/QMCPACK/qmcpack/pull/4709)
* Add timer for orbital rotations. [#4706](https://github.com/QMCPACK/qmcpack/pull/4706)

### NEXUS

* NEXUS: Support for spinor inputs. [#4707](https://github.com/QMCPACK/qmcpack/pull/4707)
## [3.17.0] - 2023-08-18

This is a recommended release for all users. Thanks to everyone who contributed directly, reported an issue, or suggested an
Expand Down
10 changes: 8 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ endif()
######################################################################
project(
qmcpack
VERSION 3.17.0
VERSION 3.17.1
LANGUAGES C CXX)

# add the automatically determined parts of the RPATH
Expand Down Expand Up @@ -658,9 +658,15 @@ else()
set(HDF5_USE_STATIC_LIBRARIES off)
endif()

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

if(HDF5_FOUND)
if(HDF5_VERSION)
if (HDF5_VERSION VERSION_LESS 1.10.0)
message(FATAL_ERROR "QMCPACK requires HDF5 version >= 1.10.0")
endif()
endif(HDF5_VERSION)
if(HDF5_IS_PARALLEL)
if(HAVE_MPI)
message(STATUS "Parallel HDF5 library found")
Expand Down
11 changes: 7 additions & 4 deletions nexus/lib/qmcpack_input.py
Original file line number Diff line number Diff line change
Expand Up @@ -1810,10 +1810,10 @@ class simulationcell(QIxml):
#end class simulationcell

class particleset(QIxml):
attributes = ['name','size','random','random_source','randomsrc','charge','source']
attributes = ['name','size','random','random_source','randomsrc','charge','source','spinor']
elements = ['group','simulationcell']
attribs = ['ionid','position']
write_types= obj(random=yesno)
write_types= obj(random=yesno,spinor=yesno)
identifier = 'name'
#end class particleset

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

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

Expand Down Expand Up @@ -2536,6 +2536,7 @@ class vmc(QIxml):
'blocks','steps','substeps','timestep','maxcpusecs','rewind',
'storeconfigs','checkproperties','recordconfigs','current',
'stepsbetweensamples','samplesperthread','samples','usedrift',
'spinmass',
'walkers','nonlocalpp','tau','walkersperthread','reconfiguration', # legacy - batched
'dmcwalkersperthread','current','ratio','firststep',
'minimumtargetwalkers','max_seconds']
Expand All @@ -2558,6 +2559,7 @@ class dmc(QIxml):
'stepsbetweensamples','samplesperthread','samples','reconfiguration',
'nonlocalmoves','maxage','alpha','gamma','reserve','use_nonblocking',
'branching_cutoff_scheme','feedback','sigmabound',
'spinmass',
'walkers','nonlocalmove','pop_control','targetwalkers', # legacy - batched
'minimumtargetwalkers','energybound','feedback','recordwalkers',
'fastgrad','popcontrol','branchinterval','usedrift','storeconfigs',
Expand Down Expand Up @@ -2812,6 +2814,7 @@ class gen(QIxml):
l2_diffusion = 'L2_diffusion',
maxage = 'MaxAge',
sigmabound = 'sigmaBound',
spinmass = 'spinMass',
)
# afqmc names
Names.set_afqmc_expanded_names(
Expand Down
4 changes: 3 additions & 1 deletion src/Estimators/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,6 @@ endif()
target_include_directories(qmcestimators PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
target_link_libraries(qmcestimators PUBLIC containers qmcham qmcparticle qmcutil)

add_subdirectory(tests)
if(BUILD_UNIT_TESTS)
add_subdirectory(tests)
endif()
17 changes: 14 additions & 3 deletions src/QMCWaveFunctions/RotatedSPOs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,12 @@
namespace qmcplusplus
{
RotatedSPOs::RotatedSPOs(const std::string& my_name, std::unique_ptr<SPOSet>&& spos)
: SPOSet(my_name), OptimizableObject(my_name), Phi(std::move(spos)), nel_major_(0), params_supplied(false)
: SPOSet(my_name),
OptimizableObject(my_name),
Phi(std::move(spos)),
nel_major_(0),
params_supplied(false),
apply_rotation_timer_(createGlobalTimer("RotatedSPOs::apply_rotation", timer_level_fine))
{
OrbitalSetSize = Phi->getOrbitalSetSize();
}
Expand Down Expand Up @@ -408,7 +413,10 @@ void RotatedSPOs::apply_rotation(const std::vector<RealType>& param, bool use_st
Finally, apply unitary matrix to orbs.
*/
exponentiate_antisym_matrix(rot_mat);
Phi->applyRotation(rot_mat, use_stored_copy);
{
ScopedTimer local(apply_rotation_timer_);
Phi->applyRotation(rot_mat, use_stored_copy);
}
}

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

Phi->applyRotation(new_rot_mat, true);
{
ScopedTimer local(apply_rotation_timer_);
Phi->applyRotation(new_rot_mat, true);
}
}

void RotatedSPOs::constructDeltaRotation(const std::vector<RealType>& delta_param,
Expand Down
3 changes: 3 additions & 0 deletions src/QMCWaveFunctions/RotatedSPOs.h
Original file line number Diff line number Diff line change
Expand Up @@ -437,6 +437,9 @@ class RotatedSPOs : public SPOSet, public OptimizableObject
/// Full set of rotation matrix parameters for use in global rotation method
opt_variables_type myVarsFull;

/// timer for apply_rotation
NewTimer& apply_rotation_timer_;

/// List of previously applied parameters
std::vector<std::vector<RealType>> history_params_;

Expand Down

0 comments on commit 9d0d968

Please sign in to comment.