-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
update master branch #826
Merged
update master branch #826
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Switch to latest elpa-2022.11.001.rc2
No change in the code logic, just renaming namespace and classes.
Move MPI-related code to mpi:: namespace and refactor. No change in code logic.
* all docker files are stored in ./dockerfile folder * remove unused files * added base container for OpenMPI + gcc-12 * fixed interface to OpenMPI (roll back from `static constexp auto kind = ..` to `static auto kind()`)
use `operator MPI_Datatype() const noexcept construct` to avoid ::kind() static member function
* update numpy types * python api: uncomment wrapper for mdarray<double,2>
Move FFT related code to fft:: namespace. No change in code logic.
* move BLACS_grid, dmatrix, Eigensolver under the la:: namespace * linalg_cost<T> is renamed to constant<T> * linalg_t is renamed to lib_t * linalg class is renamed to wrap For example, now the call to gemm() wrapper looks the following: la::wrap(la::lib_t::blas).gemm(...) The code logic is unchanged.
This PR addresses the problem of finding symmetries of a lattice with very small distrotion of a high-symmetry phase. More error checks are intoroduces. In case of failure, the control:spglib_tolerance must be decreased. The following has been done: * pass unit cell lattice tolerance to G-vectors to be used in find_lat_sym() * introduce a check in find_lat_sym() to test if a set of lattice operations form a group * find G-shells based on symmetry consideration; intoroduce more checks there * find G-vector shell length using average value of G-vector lengths * remove lurked obsolete code ### What has not been addressed yet Ths most of the symmetry issues come from the ill defined lattices. Typical use case is a small distortion of the high-symmetry lattice to break the symmetry and perform lattice relaxation. In that case it can make sense to not use symmetry at all. When the distorion is small, spglib can overshoot the symmetry detection and find a higher-symmetry solution (even if spglib_tolerance is relatively small). That made us introduce the addition check in find_lat_sym(). But if you just remove the symmetries that transfrom metric tensor with some threshold error, you may end up with a set of symmetry operations that do not form a group. The search for a better solution to this problem continues.
* MPI grid of the band parallelisation is used to setup parallel FFT communcators * wave-function reshuffling is changed to take into account the muffin-tin part of LAPW wave-functions * get rid of comm_band_ortho_fft_coarse_ member
Modify the code to run large plane-wave cutoffs. In this case even local number of G-vectors has to be split in chunks such that augmentation operator can fit in the GPU memory. * local G-vector chunk size is controlled with input parameter * augmentation operator was simplified; prepare() and dismiss() functions were removed * augmentation operator derivative class was incorporated in the Augmentation_operator class With this modifications it was possible to run Au-surf example on 400 nodes of Piz Daint (pw cutoff: 60 a.u.^-1, gk cutoff 25 a.u.^-1)
…olerance [fix] Change spglib tolerance from 1e-4 to 1e-6
…s out of bounds (#817)
use CMAKE_CUDA_ARCHITECTURES instead provided by enable_language(CUDA), these archs are automatically added to .cu compilation
* Remove shadow variable * expose sirius version to cmake
- use CMAKE_CUDA_ARCHITECTURES instead provided by enable_language(CUDA), these archs are automatically added to .cu compilation - update readme accordingly
- remove undefined targets - use option instead of set for the cmake compilation options
rely on `CMAKE_CUDA_ARCHITECTURES` / enable_language(HIP)
update python module API
* switch to CSCS ci/cd for building base container images * ROCm container is also built on the build-farm
Introduce a set of spherical functions and symmetrization of the set. The first use case is the PAW Vxc and Exc functions. Now the potential is computed first, then symmetrized and only then the contribution to total energy is computed. As by-product, the PAW code itself is cleaned up and simplified a little bit.
Summary of changes: * most of the builds are done on K8S farm * github only tests a simple cpu and simple gpu builds * Dockerfiles for CI/CD are updates
Summary of the PR: * use overloaded copy() function to copy objects; mdarray uses the same; operator>> is removed * Periodic_function is now a composition of two objects: Smooth_periodic_function (defined on the FFT grid) and Spheric_function_set (defined for the muffin-tin part) * Wrappers for external pointers to MT and RG parts of the Periodic_function are introduced * API functions to set and get Periodic_function are changed to handle the dimensions of the functions correctly * strong type lmax_t is introduced * SDDK/type_definition.hpp header is removed * strong_type.hpp header is introduced * unused commented code in symmetrize.hpp is removed * Density::magnetisation() renamed to Density::mag() to be consistent with Density::rho() * use auto keyword in more places * copy(), scale() and axpy() are introduced for mixing Periodic_functions * minor clean-ups
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.