Skip to content
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

Complex triangular #276

Open
wants to merge 671 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
671 commits
Select commit Hold shift + click to select a range
51939a3
removed assertion no longer valid
gbalduzz Jan 17, 2020
f1ea2bb
changed the default value of the interacting orbital parameter.
gbalduzz Jan 22, 2020
5211f23
Perform validation on CPU and verification on GPU if available.
gbalduzz Jan 31, 2020
3e8a08a
4x4 lattice
gbalduzz Feb 4, 2020
6fea43d
twoband ctaux and ctint validation test.
gbalduzz Feb 4, 2020
15548c5
added bilayer ctint verification.
gbalduzz Feb 5, 2020
93854ce
Fixed race coondition in CT-AUX gpu walker!
gbalduzz Feb 5, 2020
754463a
WIP option to run ctint in single precision.
gbalduzz Feb 10, 2020
53d041e
Template walker
gbalduzz Feb 11, 2020
0f50c0d
Silenced cuda warning
gbalduzz Feb 11, 2020
de7a2ec
it compiles
gbalduzz Feb 11, 2020
04073a4
Fixed test duplication.
gbalduzz Feb 11, 2020
7c67133
Fixed coeff copy.
gbalduzz Feb 11, 2020
bc5d1eb
Fixed duplication and renamed the ct_int walker tools tests.
gbalduzz Feb 11, 2020
d105443
Fixed test linkage.
gbalduzz Feb 11, 2020
079e2ba
fixed single precision tests.
gbalduzz Feb 12, 2020
c018cbc
fixup
gbalduzz Feb 18, 2020
6a62eca
adjust alpha at every iter
gbalduzz Feb 18, 2020
0f8a915
Write configuration stamps.
gbalduzz Feb 24, 2020
afc18ed
Shrink configuration storage.
gbalduzz Feb 24, 2020
9e848a7
parallelized ED computation of G.
gbalduzz Feb 25, 2020
951b595
distributed ED computation of G.
gbalduzz Feb 25, 2020
8dee87a
Updated parameter test and parameters wiki.
gbalduzz Feb 25, 2020
1f95bcb
Merge remote-tracking branch 'origin/master' into ct_int
gbalduzz Feb 26, 2020
78e1223
Merge remote-tracking branch 'myprivate/ct_int-single_precision' into…
gbalduzz Feb 27, 2020
404a247
Merge remote-tracking branch 'mypublic/ct_int-walker' into ct_int
gbalduzz Feb 27, 2020
2d021b6
Increased tolerance in double precision for ctint square lattice gpu …
gbalduzz Feb 27, 2020
a841c14
Changed MatrixConfiguration assignment operator.
gbalduzz Feb 27, 2020
cce25fe
Merge branch 'parallel_ed' into ct_int
gbalduzz Feb 27, 2020
3ccd4b0
Merge remote-tracking branch 'mypublic/generic_container' into ct_int
gbalduzz Feb 27, 2020
9552ae8
Merge branch 'optimize_sp_accum' into ct_int
gbalduzz Feb 27, 2020
f06e082
Merge remote-tracking branch 'mypublic/single_precision_ctaux' into c…
gbalduzz Feb 27, 2020
1664ff9
fixup! Merge remote-tracking branch 'mypublic/optimize_ctaux' into ct…
gbalduzz Feb 29, 2020
344b299
Merge branch 'optimize_sp_accum' into ct_int
gbalduzz Feb 29, 2020
0ba70fe
Merge branch 'optimize_ctaux' into ct_int
gbalduzz Feb 29, 2020
1bff2f9
Merge remote-tracking branch 'origin/master' into ct_int
gbalduzz Mar 1, 2020
7597b0f
Merge remote-tracking branch 'origin/master' into generic_container
gbalduzz Mar 2, 2020
ca484d8
Merge branch 'generic_container' into autocorrelation
gbalduzz Mar 2, 2020
ed6d3ce
Keep hdf5 groups open to allow entering into one multuiple times.
gbalduzz Mar 2, 2020
106d2b9
Option to write autocorrelation of expansion order and G at every DCA…
gbalduzz Mar 2, 2020
b8da6bb
silenced cuda warning
gbalduzz Mar 2, 2020
d6267c2
Ignore deallocation errors during application teardown.
gbalduzz Mar 2, 2020
7bb6d95
correctly thread zero size case.
gbalduzz Mar 2, 2020
41492b2
fixed MultiVector copy to device.
gbalduzz Mar 2, 2020
9120f1c
Fixed g0 initialization in ctaux.
gbalduzz Mar 2, 2020
abfcc3c
Allow autocorrelation measurement on the CPU.
gbalduzz Mar 3, 2020
05e1e5c
delay allocation of static vector.
gbalduzz Mar 4, 2020
5c31983
remove unused cmake file
gbalduzz Mar 4, 2020
44624ae
Updated sign of J in FeAs model and added CMAKE option for this model.
gbalduzz Mar 2, 2020
097a0d0
Avoid potential calls to cudaMemset when instantiating static matrice…
gbalduzz Mar 4, 2020
a7d1f04
Merge branch 'autocorrelation' into write_config_timestamps
gbalduzz Mar 5, 2020
f845f7c
Write walker data to file.
gbalduzz Mar 5, 2020
55c8961
Merge branch 'autocorrelation' into write_config_timestamps
gbalduzz Mar 5, 2020
a892b0d
Write configuration stamps to the same output file. (rank 0 only).
gbalduzz Mar 5, 2020
8e8e103
updated Parameters.md
gbalduzz Mar 5, 2020
066bafb
Merge branch 'autocorrelation' into ct_int
gbalduzz Mar 5, 2020
6b3c931
Use the CudaStream wrapper in Vector and Matrix function members.
gbalduzz Mar 5, 2020
8f64555
Merge branch 'autocorrelation' into ct_int
gbalduzz Mar 5, 2020
fb2faa2
Reduced number of threads per block in updateG4Kernel.
gbalduzz Mar 5, 2020
e6617f8
fixed double removal with empty list
gbalduzz Mar 6, 2020
cc54956
Allow HDF5 datasets to be overwritten. Writer cleanup.
gbalduzz Mar 6, 2020
089184c
Close output file upon receiving sigint.
gbalduzz Mar 6, 2020
4a73fb8
Merge branch 'hdf5_cleanup' into write_config_timestamps
gbalduzz Mar 7, 2020
08ab30e
Merge branch 'write_checkpoints' into write_config_timestamps
gbalduzz Mar 8, 2020
36b9983
Merge branch 'write_checkpoints' into write_config_timestamps
gbalduzz Mar 8, 2020
15eb9ab
Merge branch 'write_checkpoints' into write_config_timestamps
gbalduzz Mar 8, 2020
98ba680
Merge branch 'write_config_timestamps' into ct_int
gbalduzz Mar 8, 2020
886ec82
Read number of measurments as a vector with one entry per dca iteration.
gbalduzz Mar 4, 2020
fe24963
Allows chains with different measurements to be collected.
gbalduzz Mar 8, 2020
7fb0653
Allows chains with different measurements to be collected.
gbalduzz Mar 8, 2020
05832db
Merge branch 'autocorrelation' into ct_int
gbalduzz Mar 9, 2020
05647d8
wrote FeAs statistical test. Tets double insertion/removal.
gbalduzz Mar 10, 2020
b85db59
Merge branch 'ct_int' of https://github.com/gbalduzz/DCA into ct_int
gbalduzz Mar 11, 2020
082843c
Merge branch 'hdf5_cleanup' into ct_int
gbalduzz Mar 12, 2020
d196c98
fixup! wrote FeAs statistical test. Tets double insertion/removal.
gbalduzz Mar 12, 2020
cd7ea1c
Merge branch 'hdf5_cleanup' into ct_int
gbalduzz Mar 12, 2020
0f48d4f
Merge branch 'write_checkpoints' into ct_int
gbalduzz Mar 13, 2020
595d927
Merge branch 'write_checkpoints' into ct_int
gbalduzz Mar 13, 2020
208da8d
Merge branch 'write_checkpoints' into ct_int
gbalduzz Mar 13, 2020
93f2452
Fixed detection of recently added.
gbalduzz Mar 18, 2020
63be8f2
fixed double insertion factor.
gbalduzz Mar 18, 2020
c438faf
cleanup
gbalduzz Mar 18, 2020
0aecba4
Test submatrix walker with fixed rng order. Change submatrix walker c…
gbalduzz Mar 18, 2020
719de98
Merge branch 'ct_int-submatrix_walker' into ct_int
gbalduzz Mar 18, 2020
ecef10c
updated ct_int no-change baselines (changed rng order).
gbalduzz Mar 18, 2020
ebb717f
cleaned double insertion proposal
gbalduzz Mar 18, 2020
759cdea
Merge branch 'ct_int-submatrix_walker' into ct_int
gbalduzz Mar 19, 2020
4522a53
Merge branch 'ct_int-submatrix_walker' into ct_int
gbalduzz Mar 19, 2020
7a89519
Merge branch 'hdf5_cleanup' into ct_int
gbalduzz Mar 25, 2020
c01daed
fixup! Merge branch 'ct_int-submatrix_walker' into ct_int
gbalduzz Mar 25, 2020
5001051
Merge branch 'ct_int-submatrix_walker' into ct_int
gbalduzz Mar 27, 2020
d126e30
Test submatrix walker against non submatrix
gbalduzz Mar 27, 2020
e5e3d41
updated hdf5 ed check.
gbalduzz Mar 31, 2020
29aff33
fixup! Support double insertion/rejection in CT-INT walkers.
gbalduzz Mar 31, 2020
482f638
added Jp parameter to FeAs Hamiltonian.
gbalduzz Mar 31, 2020
0dc13ac
Update FeAs statistical test.
gbalduzz Mar 31, 2020
d667219
Merge remote-tracking branch 'origin/master' into ct_int
gbalduzz Mar 31, 2020
270d6dd
update rng selection in unit test
gbalduzz Apr 1, 2020
b3f819e
Mantain same rng usage between submatrix and non-submatrix walkers, w…
gbalduzz Apr 1, 2020
46797bb
updated ctitn hdf5 baseline.
gbalduzz Apr 1, 2020
b3cb42c
Merge branch 'fix_141' into ct_int
gbalduzz Apr 1, 2020
38c7506
Merge branch 'hdf5_cleanup' into ct_int
gbalduzz Apr 1, 2020
02cb870
Merge remote-tracking branch 'origin/master' into ct_int
gbalduzz Apr 5, 2020
7c57062
Store mc weight.
gbalduzz Mar 31, 2020
f8b5c7e
Cleaner accumulation of autocorrelation.
gbalduzz Apr 5, 2020
e90940c
write CT-INT configuration
gbalduzz Apr 5, 2020
9c75895
Compute mc weight in CT-AUX. Fix initialization sign.
gbalduzz Apr 5, 2020
5fba154
log configuration fixup
gbalduzz Apr 5, 2020
12b6a1c
MC weight fixup.
gbalduzz Apr 5, 2020
4abf051
Log determinant methods.
gbalduzz Apr 6, 2020
ee80141
compute log MC weight.
gbalduzz Apr 6, 2020
362a828
fixed initialization of Submatrix Walker.
gbalduzz Apr 6, 2020
3a2cff6
Added parameter to turn off the computation of G(r = 0, t = 0) if dev…
gbalduzz Apr 6, 2020
b4aa999
hund stat test fixup.
gbalduzz Apr 6, 2020
a327458
Merge branch 'ct_int-autocorrelation' into ct_int
gbalduzz Apr 6, 2020
6e8cafd
default initial configuration size set to zero.
gbalduzz Apr 6, 2020
1a4ba98
fixed initialization of Submatrix Walker.
gbalduzz Apr 6, 2020
7728ec3
Added parameter to turn off the computation of G(r = 0, t = 0) if dev…
gbalduzz Apr 6, 2020
929c58d
updated no-change baseline due to slight differences in M.
gbalduzz Apr 6, 2020
687d101
Merge branch 'ct_int-autocorrelation' into ct_int
gbalduzz Apr 6, 2020
3722c11
Merge branch 'single_precision_ctaux'
gbalduzz Apr 7, 2020
7ee433b
Compute MC log weight and recompute configuration at initialization a…
gbalduzz Apr 7, 2020
35e0488
Updated hdf5 no-change baseline.
gbalduzz Apr 7, 2020
7135d58
fixup! updated no-change baseline due to slight differences in M.
gbalduzz Apr 7, 2020
8ea39f8
Created a map with random sampling capabilities.
gbalduzz Apr 3, 2020
f917dd6
Updated ctint configuration.
gbalduzz Apr 3, 2020
06f14b4
use map for partners tags
gbalduzz Apr 7, 2020
36f4bd4
reorganized util folder and minor cleanup
gbalduzz Apr 7, 2020
77f7406
Created performance test.
gbalduzz Apr 7, 2020
db1a7d9
Implemented set in terms of map.
gbalduzz Apr 7, 2020
0c81bf9
Created and used random access set.
gbalduzz Apr 7, 2020
ee31439
Added the google benchmark library.
gbalduzz Apr 7, 2020
acc0ed9
perf test cleanup
gbalduzz Apr 7, 2020
6d6580a
updated walker submatri test to use the same random numbers.
gbalduzz Apr 7, 2020
43f8963
Merge branch 'rb_tree' into ct_int
gbalduzz Apr 7, 2020
13737dc
updated hdf5 no-change ctint baseline
gbalduzz Apr 7, 2020
145f5a2
Merge branch 'generic_container'
gbalduzz Apr 8, 2020
a452f3b
Merge branch 'fix_184'
gbalduzz Apr 8, 2020
72f9647
unified async and synchronous ctaux interpolation.
gbalduzz Apr 8, 2020
c530daf
Option to compute autocorrelation of some observables. Option to writ…
gbalduzz Apr 7, 2020
a2e597a
silenced warning in test.
gbalduzz Apr 7, 2020
9c5ce62
Avoid potential calls to cudaMemset when instantiating static matrice…
gbalduzz Mar 4, 2020
12ac243
solved namescpace conflict
gbalduzz Apr 8, 2020
28076e4
store MC weight instead of effective energy.
gbalduzz Apr 8, 2020
1179432
Merge branch 'autocorrelation' into ct_int
gbalduzz Apr 8, 2020
09fe634
Fixed interpolation data inclusion.
gbalduzz Apr 8, 2020
3e41ec9
Fixed interpolation data inclusion.
gbalduzz Apr 8, 2020
f0b40fa
const correctness fixup
gbalduzz Apr 8, 2020
b2b22bc
imported changes to vertex_pair.
gbalduzz Apr 8, 2020
c8da3a1
Merge branch 'write_checkpoints' into autocorrelation
gbalduzz Apr 8, 2020
4d8f2e4
Move ctint g0 interpolation to shared tools.
gbalduzz Apr 8, 2020
07f101d
fixup! Merge branch 'fix_184'
gbalduzz Apr 8, 2020
a9203ea
Ignore deallocation errors during application teardown.
gbalduzz Mar 2, 2020
e0b30bf
small cleanup of g0 initialization.
gbalduzz Apr 9, 2020
04fee45
scalar type fixup
gbalduzz Apr 9, 2020
70c844e
Merge branch 'autocorrelation' into ct_int
gbalduzz Apr 9, 2020
5c7b407
fixup! Merge branch 'rb_tree' into ct_int
gbalduzz Apr 9, 2020
1f9024d
fixup! Merge branch 'autocorrelation' into ct_int
gbalduzz Apr 9, 2020
56eb3cf
naming fixup.
gbalduzz Apr 9, 2020
78b4528
fixup! fixup! Merge branch 'autocorrelation' into ct_int
gbalduzz Apr 9, 2020
d598be7
no-op helper when missing cuda.
gbalduzz Apr 9, 2020
c1a2040
no-op helper when missing cuda.
gbalduzz Apr 9, 2020
be9df42
Merge branch 'generic_container' into autocorrelation
gbalduzz Apr 9, 2020
7ab75dd
Merge branch 'autocorrelation' into ct_int
gbalduzz Apr 9, 2020
5583ada
Merge branch 'generic_container' into autocorrelation
gbalduzz Apr 9, 2020
31daac3
Merge branch 'autocorrelation' into ct_int
gbalduzz Apr 9, 2020
29e15ce
fixed cuda flags from CPU correlator.
gbalduzz Apr 9, 2020
aad552a
Converted hdf5 files.
gbalduzz Apr 10, 2020
12b0823
Merge branch 'optimize_ctaux' into ct_int
gbalduzz Apr 10, 2020
6dded1a
Merge branch 'optimize_ctaux' into ct_int
gbalduzz Apr 10, 2020
8228186
added autocorrelation unit test.
gbalduzz Apr 10, 2020
52e07e5
store configurations only on the last iteration.
gbalduzz Apr 11, 2020
e65722f
turn off HDF5 automatic error messages for all calling threads.
gbalduzz Apr 11, 2020
f96f12d
store configurations only on the last iteration.
gbalduzz Apr 11, 2020
d5cc2e8
turn off HDF5 automatic error messages for all calling threads.
gbalduzz Apr 11, 2020
0f2e43a
fixed weight initial value. Extended comparison test to check direct …
gbalduzz Apr 21, 2020
c465e4f
Fixed initialization of weight.
gbalduzz Apr 21, 2020
99ae97a
Merge branch 'default_config' into ct_int
gbalduzz Apr 21, 2020
b7dce40
Merge remote-tracking branch 'origin/master' into autocorrelation
gbalduzz Apr 22, 2020
73f5abe
Merge branch 'write_checkpoints' into autocorrelation
gbalduzz Apr 22, 2020
3cbeb9d
Merge branch 'autocorrelation' into ct_int
gbalduzz Apr 22, 2020
55bbb62
Pass writer as a shared pointer around.
gbalduzz Apr 22, 2020
aa06c66
default compute-G-correlation is false (MC weightn is usually a good …
gbalduzz Apr 22, 2020
3f3bdd4
Merge branch 'autocorrelation' into ct_int
gbalduzz Apr 22, 2020
1d46664
Store one configuration sample between dca runs, if store-configurati…
gbalduzz Apr 21, 2020
f249b1b
properly solve conflicts between config store and read/write director…
gbalduzz Apr 23, 2020
6815f18
Merge branch 'autocorrelation' into ct_int
gbalduzz Apr 24, 2020
6f9cbdc
Store all weights and signs (print on master rank)
gbalduzz Apr 13, 2020
9c6a06b
avoid printing empty line.
gbalduzz Apr 24, 2020
8a8fecb
unified Configuration and Configurations names.
gbalduzz Apr 25, 2020
5946036
Fixed twoband_Cu symmetry.
gbalduzz Jul 9, 2020
8d3c604
Fix mci parameters check.
gbalduzz Jul 28, 2020
d0068cd
fixed ringG input test.
gbalduzz Jul 28, 2020
7f57005
Merge branch 'ct_int-solver' into ct_int
gbalduzz Jul 28, 2020
b5857fd
Specify only precision from cmake.
gbalduzz Jul 28, 2020
1829879
Select MCScalar
gbalduzz Jul 28, 2020
8555301
Use MC scalar in DCA solver.
gbalduzz Aug 7, 2020
4bdf5dc
implementex complex fftw finalization.
gbalduzz Aug 8, 2020
d213686
fixed gpu implementation of complex accumulation.
gbalduzz Aug 11, 2020
bff94c7
Implemented Rasha-Hubbard model and fixed CPU 2D time transform.
gbalduzz Aug 12, 2020
2845bdc
automatically detect presence of initializeNonDensityInteraction method.
gbalduzz Aug 12, 2020
1a15943
Spin symmetrization depends on lattice class.
gbalduzz Aug 13, 2020
233ad87
fixups
gbalduzz Aug 14, 2020
e39220c
better imaginary part check
gbalduzz Aug 14, 2020
63afa6a
Larger Rashba-Hubbard test.
gbalduzz Aug 17, 2020
b38200f
Implemented non spin symmetric accumulation on the device.
gbalduzz Aug 18, 2020
e628d72
Complex phase instead of sign.
gbalduzz Aug 18, 2020
20e46f5
added Rashba-Hubbard model to cmake options
gbalduzz Aug 20, 2020
7690cc1
Fixed tp accumulation and density computation for complex models.
gbalduzz Aug 21, 2020
e76d9c0
split type_utils.hpp and print_type.hpp to remove c++17 from the former.
gbalduzz Aug 23, 2020
e8ea0e2
Updated ct-int solver. Delegate phase update to specific class.
gbalduzz Aug 24, 2020
2154583
Merge branch 'master' into ct_int
gbalduzz Aug 31, 2020
e966e0f
fixed argument order in tp accumulation
gbalduzz Sep 7, 2020
8368a73
Fixed and tested complex phase.
gbalduzz Sep 7, 2020
154d20a
Merge remote-tracking branch 'origin/master' into ct_int
gbalduzz Sep 8, 2020
18d9f92
ctaux self energy cleanup.
gbalduzz Sep 17, 2020
c348767
switch up and down sector for consistancy.
gbalduzz Sep 17, 2020
f5915ed
Merge remote-tracking branch 'origin/master' into ct_int
gbalduzz Sep 18, 2020
1921081
Merge remote-tracking branch 'origin/master' into complex_g0
gbalduzz Sep 17, 2020
35c86a2
Merge branch 'ct_int' into complex_g0
gbalduzz Sep 18, 2020
cf81b8c
fixup! ctaux self energy cleanup.
gbalduzz Sep 18, 2020
5038801
fixup! switch up and down sector for consistancy.
gbalduzz Sep 18, 2020
1bb9781
Do not average G4 over spin.
gbalduzz Sep 18, 2020
8104bd0
cleanup
gbalduzz Sep 21, 2020
886c49e
Flush output before aborting.
gbalduzz Sep 24, 2020
d528f4c
Rewrite json reader/writer to allow entries updates.
gbalduzz Sep 23, 2020
21be813
Removed autoresume dependency on HDF5
gbalduzz Sep 29, 2020
1260ed5
include fixup
gbalduzz Sep 29, 2020
be8bcb3
fixed analysis input
gbalduzz Sep 29, 2020
e74eb5e
WIP Avoid exception upon type conversion failure and cleaned up conve…
gbalduzz Sep 30, 2020
a0ba1a6
fixup! Do not average G4 over spin. Test tp accumulation.
gbalduzz Oct 2, 2020
482a7dd
fixup! fixup! Do not average G4 over spin. Test tp accumulation.
gbalduzz Oct 3, 2020
96d09f7
Fixed complex ctint build.
gbalduzz Oct 11, 2020
00bb277
Merge remote-tracking branch 'origin/master' into complex_g0
gbalduzz Oct 29, 2020
b731111
Merge branch 'json_writer' into complex_g0
gbalduzz Oct 29, 2020
080965e
fixed clang compilation.
gbalduzz Nov 2, 2020
93ae358
silenced some clang warnings
gbalduzz Nov 2, 2020
df0a86b
Use PointGroup in Rashba
gbalduzz Nov 2, 2020
ff47e75
replaced fabs with abs
gbalduzz Nov 10, 2020
180460a
fixed linking
gbalduzz Nov 10, 2020
240768e
fixup! Use PointGroup in Rashba
gbalduzz Nov 10, 2020
5f5f634
test fixup
gbalduzz Nov 10, 2020
de6392d
link to filesystem only if separate library
gbalduzz Nov 10, 2020
c612f93
Merge branch 'json_writer' into complex_g0
gbalduzz Nov 12, 2020
c84947e
CPU G4 implementation for rashba model.
gbalduzz Nov 16, 2020
5022a3d
fix DcaLoop initialization.
gbalduzz Dec 8, 2020
7582fbf
Merge branch 'complex_g0' of https://github.com/gbalduzz/DCA into com…
maierta Dec 16, 2020
95e2ba4
new branch complexG0_fix with bug fixes for Giovanni's complexG0 branch
maierta Apr 21, 2021
cbabcec
triangular lattice for complex code added
May 11, 2022
6e3af11
GPU changes
skarakuzu Jan 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 6 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ set(DCA_LIBS
ctaux
ctint
ss_ct_hyb
g0_interpolation
function_transform
gaussian_quadrature
nfft
Expand All @@ -140,21 +141,24 @@ set(DCA_LIBS
quantum_domains
time_and_frequency_domains
signals
symmetrization
coarsegraining
${DCA_CONCURRENCY_LIB}
${DCA_THREADING_LIBS}
lapack
cuda_utils
)

if(TARGET stdc++fs) # std::filesystem
list(APPEND DCA_LIBS stdc++fs)
endif()

if (DCA_HAVE_CUDA)
list(APPEND DCA_LIBS
blas_kernels
dnfft_kernels
lapack_kernels
mc_kernels
special_transform_kernels
cuda_utils
${DCA_CUDA_LIBS})
endif()

Expand Down
2 changes: 1 addition & 1 deletion applications/cluster_solver_check/cluster_solver_check.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ int main(int argc, char** argv) {
ed_solver.finalize(dca_loop_data);

const auto Sigma_ed(dca_data_imag.Sigma);
const int tested_frequencies = 10;
const int tested_frequencies = 5;
const auto G_ed(dca::math::util::cutFrequency(dca_data_imag.G_k_w, tested_frequencies));

if (concurrency.id() == concurrency.first()) {
Expand Down
1 change: 1 addition & 0 deletions applications/dca/main_dca.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include "dca/util/git_version.hpp"
#include "dca/util/modules.hpp"
#include "dca/util/signal_handler.hpp"
#include "dca/application/dca_loop_dispatch.hpp"

int main(int argc, char** argv) {
if (argc < 2) {
Expand Down
3 changes: 3 additions & 0 deletions build-aux/summit.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,6 @@ set(MAGMA_DIR $ENV{OLCF_MAGMA_ROOT} CACHE PATH
# FFTW paths.
set(FFTW_INCLUDE_DIR $ENV{OLCF_FFTW_ROOT}/include CACHE PATH "Path to fftw3.h.")
set(FFTW_LIBRARY $ENV{OLCF_FFTW_ROOT}/lib/libfftw3.so CACHE FILEPATH "The FFTW3(-compatible) library.")

# Flags for summit.
set(CMAKE_CXX_FLAGS -march=power9)
37 changes: 11 additions & 26 deletions cmake/dca_config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,9 @@ endif()

# Lattice type
set(DCA_LATTICE "square" CACHE STRING "Lattice type, options are: bilayer | square | triangular |
hund | twoband_Cu | threeband | FeAs.")
hund | twoband_Cu | threeband | FeAs | Rashba.")
set_property(CACHE DCA_LATTICE PROPERTY STRINGS bilayer square triangular hund twoband_Cu threeband
FeAs)
FeAs Rashba)

if (DCA_LATTICE STREQUAL "bilayer")
set(DCA_LATTICE_TYPE dca::phys::models::bilayer_lattice<PointGroup>)
Expand All @@ -99,22 +99,24 @@ elseif (DCA_LATTICE STREQUAL "threeband")
set(DCA_LATTICE_INCLUDE
"dca/phys/models/analytic_hamiltonians/threeband_hubbard.hpp")

elseif (DCA_LATTICE STREQUAL "twoband_chain")
set(DCA_LATTICE_TYPE dca::phys::models::twoband_chain<dca::phys::domains::no_symmetry<1>>)
set(DCA_LATTICE_INCLUDE
"dca/phys/models/analytic_hamiltonians/hund_lattice.hpp")
elseif (DCA_LATTICE STREQUAL "FeAs")
set(DCA_LATTICE_TYPE dca::phys::models::FeAsLattice<PointGroup>)
set(DCA_LATTICE_INCLUDE
"dca/phys/models/analytic_hamiltonians/fe_as_lattice.hpp")

elseif (DCA_LATTICE STREQUAL "twoband_Cu")
set(DCA_LATTICE_TYPE dca::phys::models::TwoBandCu<PointGroup>)
set(DCA_LATTICE_INCLUDE
"dca/phys/models/analytic_hamiltonians/twoband_Cu.hpp")

elseif (DCA_LATTICE STREQUAL "Rashba")
set(DCA_LATTICE_TYPE dca::phys::models::RashbaHubbard<PointGroup>)
set(DCA_LATTICE_INCLUDE
"dca/phys/models/analytic_hamiltonians/rashba_hubbard.hpp")

else()
message(FATAL_ERROR "Please set DCA_LATTICE to a valid option: bilayer | square | triangular |
hund | twoband_Cu | threeband | FeAs.")
hund | twoband_Cu | threeband | FeAs | Rashba.")
endif()

# Model type
Expand Down Expand Up @@ -307,22 +309,14 @@ else()
endif()

option(DCA_WITH_SINGLE_PRECISION_MC "Perform Monte Carlo and measurements in single precision." OFF)
option(DCA_WITH_SINGLE_PRECISION_TP_MEASUREMENTS "Measure two particle function in single precision." OFF)

if (DCA_WITH_SINGLE_PRECISION_MC)
set(DCA_WITH_SINGLE_PRECISION_TP_MEASUREMENTS ON CACHE BOOL "Measure two particle function in single precision." FORCE)
set(MC_SCALAR float)
else()
set(MC_SCALAR double)
endif()

if (DCA_WITH_SINGLE_PRECISION_TP_MEASUREMENTS)
set(TP_ACCUMULATION_SCALAR float)
set(MC_SINGLE_PRECISION true)
else()
set(TP_ACCUMULATION_SCALAR double)
set(MC_SINGLE_PRECISION false)
endif()


option(DCA_WITH_MANAGED_MEMORY "Use managed memory allocator." OFF)
mark_as_advanced(DCA_WITH_MANAGED_MEMORY)
if (DCA_WITH_MANAGED_MEMORY)
Expand All @@ -335,15 +329,6 @@ configure_file("${PROJECT_SOURCE_DIR}/include/dca/config/mc_options.hpp.in"
"${CMAKE_BINARY_DIR}/include/dca/config/mc_options.hpp" @ONLY)


################################################################################
# Symmetrization
option(DCA_SYMMETRIZE "Apply cluster, time and frequency symmetries to single particle functions."
ON)

if(DCA_SYMMETRIZE)
add_compile_definitions(DCA_WITH_SYMMETRIZATION)
endif()

################################################################################
# Generate applications' config files.
configure_file("${PROJECT_SOURCE_DIR}/include/dca/config/analysis.hpp.in"
Expand Down
1 change: 1 addition & 0 deletions cmake/dca_cuda.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ if (CUDA_FOUND)
list(APPEND DCA_CUDA_LIBS ${CUDA_LIBRARIES} ${CUDA_cusparse_LIBRARY} ${CUDA_cublas_LIBRARY})
CUDA_INCLUDE_DIRECTORIES(${CUDA_INCLUDE_DIRS})
set(CUDA_SEPARABLE_COMPILATION ON)
list(APPEND CUDA_NVCC_FLAGS "--expt-relaxed-constexpr")

set(CVD_LAUNCHER "" CACHE INTERNAL "launch script for setting the Cuda visible devices.")
# Use the following script for systems with multiple gpus visible from a rank.
Expand Down
1 change: 1 addition & 0 deletions cmake/dca_external_libs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ if (NOT HDF5_FOUND)
find_package(HDF5 REQUIRED COMPONENTS C CXX)
endif()

find_package(HDF5 REQUIRED COMPONENTS C CXX)
list(APPEND DCA_EXTERNAL_LIBS ${HDF5_LIBRARIES})
list(APPEND DCA_EXTERNAL_INCLUDE_DIRS ${HDF5_INCLUDE_DIRS})

Expand Down
2 changes: 0 additions & 2 deletions include/dca/config/cmake_options.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,10 @@ struct CMakeOptions {
static const std::string dca_with_autotuning;
static const std::string dca_with_gnuplot;
static const std::string dca_with_single_precision_mc;
static const std::string dca_with_single_precision_tp_measurements;
static const std::string dca_with_memory_savings;
static const std::string dca_with_managed_memory;

static const std::string dca_with_qmc_bit;

static void print();
};

Expand Down
8 changes: 5 additions & 3 deletions include/dca/config/mc_options.hpp.in
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
#ifndef DCA_CONFIG_MC_OPTIONS_HPP
#define DCA_CONFIG_MC_OPTIONS_HPP

#include <complex>
#include <type_traits>
#ifdef DCA_HAVE_CUDA
#include "dca/linalg/util/allocators/device_allocator.hpp"
#include "dca/linalg/util/allocators/managed_allocator.hpp"
Expand All @@ -22,9 +24,9 @@ namespace config {
// dca::config::

struct McOptions {
using MCScalar = @MC_SCALAR@;

using TPAccumulationScalar = @TP_ACCUMULATION_SCALAR@;
static constexpr bool single_precision = @MC_SINGLE_PRECISION@;
using Real = std::conditional_t<single_precision, float, double>;
using Complex = std::complex<Real>;

static constexpr bool memory_savings = @MEMORY_SAVINGS@;

Expand Down
2 changes: 1 addition & 1 deletion include/dca/function/domains/dmn.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include <string>
#include <vector>

#include "dca/util/type_utils.hpp" // for dca::util::type_name
#include "dca/util/print_type.hpp" // for dca::util::type_name

namespace dca {
namespace func {
Expand Down
48 changes: 38 additions & 10 deletions include/dca/function/function.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include "dca/function/set_to_zero.hpp"
#include "dca/util/pack_operations.hpp"
#include "dca/util/integer_division.hpp"
#include "dca/util/print_type.hpp"
#include "dca/util/type_utils.hpp"

namespace dca {
Expand Down Expand Up @@ -64,6 +65,8 @@ class function {
function(const function<scalartype, domain>& other, const std::string& name) : function(other) {
name_ = name;
}
template <typename Scalar2>
function(const function<Scalar2, domain>& other);

// Move constructor
// Constructs the function with elements and name of other using move semantics.
Expand All @@ -82,9 +85,9 @@ class function {
// Precondition: The other function has been resetted, if the domain had been initialized after
// the other function's construction.
// Postcondition: The function's name is unchanged.
function<scalartype, domain>& operator=(const function<scalartype, domain>& other);
function& operator=(const function& other);
template <typename Scalar2>
function<scalartype, domain>& operator=(const function<Scalar2, domain>& other);
function& operator=(const function<Scalar2, domain>& other);

// Move assignment operator
// Replaces the function's elements with those of other using move semantics.
Expand All @@ -105,7 +108,6 @@ class function {
const std::string& get_name() const {
return name_;
}
// TODO: Remove this method and use constructor parameter instead.
void set_name(const std::string& name) {
name_ = name;
}
Expand All @@ -120,6 +122,8 @@ class function {
void resize(std::size_t nb_elements_new) {
fnc_values_.resize(nb_elements_new);
}

// TODO: use a more standard method name.
// Returns the size of the leaf domain with the given index.
// Does not return function values!
int operator[](const int index) const {
Expand All @@ -140,10 +144,10 @@ class function {
auto end() {
return fnc_values_.end();
}
const auto begin() const {
auto begin() const {
return fnc_values_.begin();
}
const auto end() const {
auto end() const {
return fnc_values_.end();
}

Expand Down Expand Up @@ -190,7 +194,7 @@ class function {
// Enable only if all arguments are integral to prevent subind_to_linind(int*, int) to resolve to
// subind_to_linind(int...) rather than subind_to_linind(const int* const, int).
template <typename... Ts>
std::enable_if_t<util::if_all<std::is_integral<Ts>::value...>::value, int> subind_2_linind(
std::enable_if_t<util::ifAll(std::is_integral<Ts>::value...), int> subind_2_linind(
const Ts... subindices) const {
// We need to cast all subindices to the same type for dmn_variadic.
return dmn(static_cast<int>(subindices)...);
Expand Down Expand Up @@ -347,6 +351,24 @@ function<scalartype, domain>::function(const function<scalartype, domain>& other
throw std::logic_error("Copy construction from a not yet resetted function.");
}

template <typename scalartype, class domain>
template <typename Scalar2>
function<scalartype, domain>::function(const function<Scalar2, domain>& other)
: name_(other.get_name()),
function_type(__PRETTY_FUNCTION__),
dmn(),
Nb_sbdms(dmn.get_leaf_domain_sizes().size()),
size_sbdm(dmn.get_leaf_domain_sizes()),
step_sbdm(dmn.get_leaf_domain_steps()),
fnc_values_(dmn.get_size()) {
if (size() != other.size()) {
// The other function has not been resetted after the domain was initialized.
throw std::logic_error("Copy construction from a not yet resetted function.");
}

std::copy(other.begin(), other.end(), begin());
}

template <typename scalartype, class domain>
function<scalartype, domain>::function(function<scalartype, domain>&& other)
: name_(std::move(other.name_)),
Expand All @@ -362,8 +384,7 @@ function<scalartype, domain>::function(function<scalartype, domain>&& other)
}

template <typename scalartype, class domain>
function<scalartype, domain>& function<scalartype, domain>::operator=(
const function<scalartype, domain>& other) {
function<scalartype, domain>& function<scalartype, domain>::operator=(const function& other) {
if (this != &other) {
if (dmn.get_size() != other.dmn.get_size()) {
// Domain had not been initialized when the functions were created.
Expand All @@ -385,10 +406,17 @@ template <typename Scalar, class domain>
template <typename Scalar2>
function<Scalar, domain>& function<Scalar, domain>::operator=(const function<Scalar2, domain>& other) {
if (size() != other.size()) {
throw(std::logic_error("Function size does not match."));
// Domain had not been initialized when the functions were created.
// Reset this function and check again.
reset();
}

if (size() != other.size()) {
// The other function has not been resetted after the domain was initialized.
throw std::logic_error("Copy assignment from a not yet resetted function.");
}

fnc_values_ = other.fnc_values_;
std::copy(other.begin(), other.end(), begin());

return *this;
}
Expand Down
29 changes: 27 additions & 2 deletions include/dca/function/util/real_complex_conversion.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@

#include "dca/function/function.hpp"

#ifdef DCA_HAVE_MPI
#include <mpi.h>
#endif

namespace dca {
namespace func {
namespace util {
Expand All @@ -40,14 +44,35 @@ auto complex(const function<Scalartype, Dmn>& f) {
template <typename Scalartype, typename Dmn>
auto real(const function<std::complex<Scalartype>, Dmn>& f, const bool check_imaginary = false) {
function<Scalartype, Dmn> f_real;
Scalartype max_img = 0, rel_max = 0;

for (int i = 0; i < f_real.size(); ++i) {
if (check_imaginary && std::abs(f(i).imag()) > 500 * std::numeric_limits<Scalartype>::epsilon())
throw(std::logic_error("The function is not purely real."));
const auto val = std::abs(f(i).imag());
if (val > max_img) {
max_img = val;
rel_max = val / std::abs(f(i).real());
}

f_real(i) = f(i).real();
}

if (check_imaginary && max_img > 1e3 * std::numeric_limits<Scalartype>::epsilon()) {
// throw(std::logic_error("The function is not purely real."));

int id = 0;
#ifdef DCA_HAVE_MPI
int initialized;
MPI_Initialized(&initialized);
if (initialized) {
MPI_Comm_rank(MPI_COMM_WORLD, &id);
}
#endif // DCA_HAVE_MPI
if (id == 0) {
std::cerr << "WARNING: The function" << f.get_name() << " is not purely real. Max img "
<< max_img << " relative of max " << rel_max << std::endl;
}
}

return f_real;
}

Expand Down
Loading