1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-10 07:55:35 +00:00
Commit Graph

3566 Commits

Author SHA1 Message Date
Daniel Richtmann
0f6009a29f
WilsonMG: Huge refactor into something that could be considered an algorithm 2018-03-23 19:55:43 +01:00
Daniel Richtmann
1cfed3de7c
WilsonMG: Add new logger for MG 2018-03-23 19:55:16 +01:00
Daniel Richtmann
edbc0d49d7
WilsonMG: Get rid of explicit GridTypeMappers in CoarsenedMatrix 2018-03-22 16:38:24 +01:00
Daniel Richtmann
ee5cf6c8c5
WilsonMG: Some minor changes to GMRES implementations 2018-03-16 13:10:45 +01:00
Daniel Richtmann
a66cecc509
WilsonMG: Fix invalid call to MR ctor 2018-03-09 17:34:29 +01:00
Daniel Richtmann
0f6cdf3d4b
WilsonMG: Implement missing parts of CoarsenedMatrix 2018-03-09 16:56:16 +01:00
Daniel Richtmann
1e63b73a14
WilsonMG: Some cleanup/formatting 2018-03-09 16:50:19 +01:00
Daniel Richtmann
6ab60c5b70
Merge remote-tracking branch 'upstream/develop' into feature/wilsonmg 2018-02-08 23:59:07 +01:00
Daniel Richtmann
8c692b7ffd
WilsonMG: Comment assertion on hermiticity of coarse operator for now
TODO: Think of a way to not break dwf_hdcr by doing that. It's only an assertion
but it still interferes with it.
2018-02-08 23:55:05 +01:00
Daniel Richtmann
2976132bdd
Add first version of multigrid for wilson clover analogous to wilson one
Just like the wilson one, this algorithm

• is currently only a 2-level method since I don't have correct implementations
  for Mdir and Mdiag in CoarsenedMatrix yet (needed for further coarsening)
• needs levelization and refactoring into a proper algorithm
2018-02-08 23:52:10 +01:00
Daniel Richtmann
48177f2f2d
Add tests for all MR|GMRES solvers with wilson clover action 2018-02-08 23:52:09 +01:00
Daniel Richtmann
c4ce70a821
WilsonMG: Major cleanup 2018-02-08 23:52:08 +01:00
Daniel Richtmann
a3e009ba54
Add tests for CAGMRES solvers with staggered action 2018-02-08 17:46:28 +01:00
Daniel Richtmann
eb7cf239d9
Print warning messages in CAGMRES solvers
Currently, the implementation of these algorithms doesn't differ from their non
communication-avoiding versions.
2018-02-08 17:43:47 +01:00
Daniel Richtmann
13ae371ef8
Make solver parameters match in all MR|GMRES solver tests 2018-02-08 17:33:10 +01:00
Daniel Richtmann
9f79a87102
Fix bugs in Flexible GMRES solvers
Somehow I got the left and right-preconditioned versions of GMRES mixed up. As
of now this is right-preconditioned version, which is what we want.
2018-02-08 16:00:31 +01:00
Daniel Richtmann
4ded1ceeb0
Make GMRES solvers perform no more than MaxIterations steps
I noticed that it was possible to overrun this number.
2018-02-08 15:29:44 +01:00
Daniel Richtmann
8bc12e0ce1
Remove superfluous comments in MR solver 2018-02-07 18:09:09 +01:00
Daniel Richtmann
cc2f00f827
Remove test for MR solver with dwf action as it doesn't converge 2018-02-07 18:09:08 +01:00
Daniel Richtmann
cd61e2e6d6
Increase max iterations in test of MR solver with staggered action 2018-02-07 18:09:07 +01:00
Daniel Richtmann
323ed1a588
Add an overrelaxation parameter to the MR solver 2018-02-07 18:09:06 +01:00
Daniel Richtmann
68c66d2e4b
Remove empty line in output of *Residual* solvers 2018-02-07 18:08:56 +01:00
Daniel Richtmann
1671adfd49
WilsonMG: Add some tests for linear operators 2018-02-07 17:15:22 +01:00
Peter Boyle
896f3a8002 Fix to MPI for Hokusai system 2018-02-01 18:51:51 +00:00
Daniel Richtmann
871649238c
WilsonMG: Stricter naming for linear operators 2018-02-01 14:43:08 +01:00
Daniel Richtmann
7c86d2085b
WilsonMG: Some minor cleanup 2018-02-01 12:24:16 +01:00
Daniel Richtmann
9292be0b69
WilsonMG: Add check for Mdiag + Σ Mdir == M
Need to test my implementations of CoarsenedMatrix::Mdiag &
CoarsenedMatrix::Mdir.
2018-01-31 14:03:30 +01:00
Guido Cossu
f0fcdf75b5
Update README.md 2018-01-30 12:44:20 +01:00
Guido Cossu
53bffb83d4
Updating README with new SKL target 2018-01-30 12:42:36 +01:00
Daniel Richtmann
10141f90c9
WilsonMG: Rename test file 2018-01-30 10:25:09 +01:00
Guido Cossu
cd44e851f1 Fixing compilation error in FundtoHirep 2018-01-30 06:04:30 +01:00
Daniel Richtmann
a414430817
Merge remote-tracking branch 'upstream/develop' into feature/ddalphaamg 2018-01-29 18:32:31 +01:00
Daniel Richtmann
f20728baa9
WilsonMG: Some further steps towards a three level method
Currently this is very "manual" as we are still testing stuff. Will refactor
and make it an algorithm once everything works.

What currently does work:

  - All tests in MultiGridPreconditioner::runChecks for the first coarse grid
  - The tests for the intergrid operators going from the first to the second
    coarse grid
    - (1 - P R) v   == 0
    - (1 - R P) v_c == 0
  - A full solve with VPGCR and a two-level MG preconditioner

What hinders the rest of the tests from passing with a three-level method is the
absence of implementations of CoarsenedMatrix::Mdir and CoarsenedMatrix::Mdiag.
2018-01-29 18:29:49 +01:00
Daniel Richtmann
d2e68c4355
WilsonMG: Perform some minor cleanup 2018-01-29 18:07:10 +01:00
Daniel Richtmann
1cb745c8dc
Add function to return full type as std::string
Also works for nested templates. I find it useful for debugging.
Possible usage:

std::cout << "getTypename<AType>() = " << getTypename<Atype>() << std::endl;
std::cout << "getTypename<decltype(AnInstance)>() = " << getTypename<decltype(AnInstance)>() << std::endl;
2018-01-29 17:39:19 +01:00
Daniel Richtmann
faf4278019
Use 2 passes of GS in coarse operator construction 2018-01-29 17:21:42 +01:00
Daniel Richtmann
194e4b94bb
Make MG checking function work level-wise 2018-01-29 17:18:20 +01:00
Daniel Richtmann
bfc1411c1f
Use more iterations in subspace creation 2018-01-29 17:11:29 +01:00
Daniel Richtmann
161637e573
Turn on orthogonality checking temporarily 2018-01-29 17:10:05 +01:00
Guido Cossu
fb24e3a7d2 Adding utilities for perf profiling 2018-01-29 11:11:45 +01:00
Guido Cossu
655a69259a Added support for GCC compilation for Skylake AVX512 2018-01-28 17:02:46 +01:00
Guido Cossu
507c4e9efc Correcting an missing semicolumn in avx512 2018-01-27 10:59:55 +01:00
Guido Cossu
f8a5194c70 Merge branch 'develop' of https://github.com/paboyle/Grid into develop 2018-01-25 13:46:37 +01:00
Guido Cossu
cff3bae155 Adding support for general Nc in the benchmark outputs 2018-01-25 13:46:31 +01:00
6e3ce7423e Hadrons: don't display module list at startup (too long) 2018-01-22 20:04:05 +00:00
15f15a7cfd Merge branch 'develop' into feature/hadrons
# Conflicts:
#	extras/Hadrons/Modules.hpp
#	extras/Hadrons/modules.inc
2018-01-22 20:03:36 +00:00
0e5f626226 Hadrons: module for scalar operator divergence 2018-01-22 19:38:19 +00:00
Daniel Richtmann
04f92ccddf
WilsonMG: Provide a fix for the previous commit; compiles and runs successfully now
I don't like the solution with the temporary very much though ...
2018-01-22 14:56:48 +01:00
Daniel Richtmann
3b2d805398
WilsonMG: Some first steps towards coarse spin dofs; not compiling yet
A failing conversion from the innermost type (Grid::Simd<...>) to a coarse
scalar (triple iScalar) in blockPromote prohibits this commit from working.
2018-01-22 12:45:51 +01:00
Daniel Richtmann
9dc885d297
Fix a bug in Wilson MG
The calculation of the lattice size of a second coarse level was incorrect.
2018-01-18 17:02:04 +01:00