Daniel Richtmann
2881b3e8e5
WilsonMG: Remove unnecessary static assertions
2018-06-26 14:42:30 +02:00
Daniel Richtmann
cc5d025ea4
WilsonMG: Adapt staggered GMRES/MR tests to "new" constructor
2018-06-18 16:20:20 +02:00
Daniel Richtmann
49fdc324a0
WilsonMG: Make MG correctness checks abort on failing tests
2018-06-12 16:10:48 +02:00
Daniel Richtmann
f32714a2d1
WilsonMG: Make running MG correctness checks optional via commandline
2018-06-12 16:10:48 +02:00
Daniel Richtmann
66b7a0f871
WilsonMG: Move multigrid class to separate file
2018-06-12 16:10:48 +02:00
Daniel Richtmann
2ab9d4bc56
WilsonMG: Fix random behavior in GMRES
...
From time to time I saw random since the basis vectors were not initialized
properly.
2018-06-12 15:01:31 +02:00
Daniel Richtmann
11c4f5e32c
WilsonMG: Provide command line switch for reading in input xml + move default params to constructor of MultiGridParams
2018-06-12 15:01:31 +02:00
Daniel Richtmann
7564fedf68
WilsonMG: Set subspace to zero to avoid random behavior
2018-06-12 15:01:31 +02:00
Daniel Richtmann
6c27c72585
WilsonMG: Provide more sensible default values for MG parameters
2018-05-16 17:26:09 +02:00
Daniel Richtmann
9c003d2d72
WilsonMG: Base wilson mg preconditioner entirely on existing infrastructure
2018-05-16 17:26:09 +02:00
Daniel Richtmann
4b8710970c
WilsonMG: Switch to Galerkin coarsening in CoarsenedMatrix
2018-05-16 17:26:09 +02:00
Daniel Richtmann
68d686ec38
WilsonMG: Add functionality for applying G5 on coarse grids
2018-05-16 16:17:14 +02:00
Daniel Richtmann
c48b69ca81
WilsonMG: Implement Mdir & Mdiag in CoarsenedMatrix
2018-05-16 16:08:05 +02:00
Daniel Richtmann
df8c208f5c
WilsonMG: Revert CoarsenedMatrix.h and Lattice_transfer.h back to state of develop branch
2018-05-16 16:02:54 +02:00
Daniel Richtmann
61812ab7f1
Merge remote-tracking branch 'upstream/develop' into feature/wilsonmg
2018-05-15 14:57:18 +02:00
Daniel Richtmann
73ced656eb
Merge remote-tracking branch 'upstream/develop' into feature/wilsonmg
2018-04-03 17:51:11 +02:00
Daniel Richtmann
f69008edf1
WilsonMG: Add functionality to report timings to MG preconditioner
2018-04-03 17:26:49 +02:00
Daniel Richtmann
57a49ed22f
WilsonMG: Read in MG parameters from xml in test
2018-04-03 16:03:11 +02:00
Daniel Richtmann
ff6413a764
WilsonMG: Make number of levels chooseable at runtime
...
I don't like this solution though :(
2018-04-03 15:57:33 +02:00
Daniel Richtmann
2530bfed01
WilsonMG: Move params instance from global scope to test main function
2018-04-03 14:50:48 +02:00
Daniel Richtmann
74f79c5ac7
Revert "Add function to return full type as std::string"
...
This reverts commit 1cb745c8dc .
2018-03-29 12:03:50 +02:00
Daniel Richtmann
58c30c0cb1
WilsonMG: Add conformability checks in MG preconditioner
2018-03-28 13:24:39 +02:00
Daniel Richtmann
917a92118a
WilsonMG: Move operator test to MG testing routine
2018-03-28 12:19:25 +02:00
Daniel Richtmann
04f9cf088d
WilsonMG: Add more parameters to MultiGridParams struct
2018-03-27 17:13:11 +02:00
Daniel Richtmann
99107038f9
WilsonMG: Rationalize the level counting strategy
2018-03-27 17:06:33 +02:00
Daniel Richtmann
b78456bdf4
WilsonMG: Get rid of explicit include of GCR header
2018-03-26 15:41:53 +02:00
Daniel Richtmann
08543b6b11
WilsonMG: Provide a switch between V- and K-cycle
2018-03-26 15:37:17 +02:00
Daniel Richtmann
63ba33371f
WilsonMG: Some minor refactoring
2018-03-26 15:34:53 +02:00
Daniel Richtmann
683a7d2ddd
WilsonMG: Move comment to make clang-format happy
2018-03-26 14:59:40 +02:00
Daniel Richtmann
afdcbf79d1
Merge remote-tracking branch 'upstream/develop' into feature/wilsonmg
2018-03-23 21:13:50 +01:00
Daniel Richtmann
3c3ec4e267
WilsonMG: Move tests for Wilson & WilsonClover into the same file
2018-03-23 21:12:27 +01:00
Daniel Richtmann
bbe1d5b49e
WilsonMG: Temporarily use GMRES in construction of basis vectors
...
This can go back to CG once Mdag in CoarsenedMatrix works.
2018-03-23 20:02:27 +01:00
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 and Daniel Richtmann
1671adfd49
WilsonMG: Add some tests for linear operators
2018-02-07 17:15:22 +01: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
Daniel Richtmann
10141f90c9
WilsonMG: Rename test file
2018-01-30 10:25:09 +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
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
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
Daniel Richtmann
a70c1feecc
Remove some unnecessary stuff in Wilson MG
2018-01-18 15:48:28 +01:00
Daniel Richtmann
38328100c9
Implement correctness checks for Wilson MG
2018-01-18 15:43:15 +01:00
Daniel Richtmann
9732519c41
Apply clang-format to Wilson MG
...
I can provide the configuration file I used if people want that.
2018-01-18 15:14:37 +01:00
Daniel Richtmann
fa4eeb28c4
Save current state in Wilson MG test file
2018-01-17 17:56:34 +01:00
Daniel Richtmann
10f7a17ae4
Make timing in VPGCR more detailed
2018-01-11 13:42:18 +01:00
Daniel Richtmann
26f14d7dd7
Adapt output format of non-herm solvers to the one of VPGCR
2018-01-11 13:36:30 +01:00
Daniel Richtmann
73434db636
Merge remote-tracking branch 'upstream/develop' into feature/ddalphaamg
2018-01-09 10:43:33 +01:00
Daniel Richtmann
c6411f8514
Merge remote-tracking branch 'upstream/develop' into feature/ddalphaamg
2018-01-08 10:37:10 +01:00
Daniel Richtmann
6cf635d61c
Remove some old code in Wilson MG
2017-12-22 13:20:09 +01:00
Daniel Richtmann
39558cce52
Multiply TVs in Wilson MG with G5 instead of G5R5
2017-12-22 13:07:56 +01:00
Daniel Richtmann
df152648d6
Fix error in MR code when compiling for single precision
2017-12-06 18:00:58 +01:00
Daniel Richtmann
4e965c168e
Implement analogon to test vector analysis in WMG codebase
2017-11-29 15:05:27 +01:00
Daniel Richtmann
f260af546e
Save current state
2017-11-28 15:03:02 +01:00
Daniel Richtmann
649b8c9aca
Save current state
2017-11-24 10:46:20 +01:00
Daniel Richtmann
0afa22747d
Merge remote-tracking branch 'upstream/develop' into feature/new-solver-algorithms
2017-11-24 10:11:42 +01:00
Daniel Richtmann
fa43206c79
Remove some empty lines
2017-11-10 13:48:38 +01:00
Daniel Richtmann
a367835bf2
Set everything up for the implementation of FCAGMRES
...
The current implementation is the exact same code as normal FGMRES. This commit
only sets up the "framework" for the implementation of FCAGMRES, i.e., a test
and an include in the algorithms header file.
2017-11-09 17:30:41 +01:00
Daniel Richtmann
d7743591ea
Fix some minor formatting errors
2017-11-09 17:28:19 +01:00
Daniel Richtmann
c6cbe533ea
Set everything up for the implementation of CAGMRES
...
The current implementation is the exact same code as normal GMRES. This commit
only sets up the "framework" for the implementation of CAGMRES, i.e., a test and
an include in the algorithms header file.
2017-11-09 17:14:44 +01:00
Daniel Richtmann
8402ab6cf9
Some minor formatting improvements
2017-11-09 12:52:04 +01:00
Daniel Richtmann
c63095345e
Remove some superfluous comments
2017-11-09 12:47:20 +01:00
Daniel Richtmann
a7ae46b61e
Remove some comments
2017-11-08 16:58:20 +01:00
Daniel Richtmann
cd63052205
Remove everything preconditioner-related in GMRES code
2017-11-08 16:57:40 +01:00
Daniel Richtmann
699d537cd6
Add FGMRES test with staggered fermions
2017-11-08 16:56:42 +01:00
Daniel Richtmann
9031f0ed95
Fix a filename in a file header
2017-11-08 16:42:26 +01:00
Daniel Richtmann
26b3d441bb
Check in forgotten FGMRES test with wilson Fermions
2017-11-08 16:39:11 +01:00
Daniel Richtmann
99bc4cde56
Fix an implementation error in FGMRES
2017-11-08 16:38:34 +01:00
Daniel Richtmann
e843d83d9d
Make z in FGMRES a single Field
2017-11-08 16:38:16 +01:00
Daniel Richtmann
0f75ea52b7
First version of FGMRES; not working yet
2017-11-08 16:17:18 +01:00
Daniel Richtmann
8107b785cc
Rename misunderstood "rsd_sq" to "rsq" in GMRES code
2017-11-08 14:40:03 +01:00
Daniel Richtmann
37b777d801
Add test for GMRES solver with staggered fermions
2017-11-08 14:28:48 +01:00
Daniel Richtmann
7382787856
Some minor changes
2017-11-08 14:23:55 +01:00
Daniel Richtmann
781c611ca0
Perform minor code style fix
2017-11-08 14:22:38 +01:00
Daniel Richtmann
b069090b52
Remove a superfluous comment
2017-11-08 13:58:02 +01:00
Daniel Richtmann
0c1c1d9900
Set precision and formatting only once in MR code
2017-11-08 13:57:06 +01:00
Daniel Richtmann
7f4ed6c2e5
First working version of GMRES + a test for Wilson fermions
2017-11-08 13:56:41 +01:00
Daniel Richtmann
56d32a4afb
Rename misunderstood "rsd_sq" to "rsq" in MR code
2017-11-08 13:51:08 +01:00
Daniel Richtmann
b8ee496ed6
Print some info at start of GMRES
2017-11-08 13:23:41 +01:00
Daniel Richtmann
b87416dac4
Fix error with conformable
2017-11-07 15:00:08 +01:00
Daniel Richtmann
176bf37372
Remove some commented stuff
2017-11-07 14:57:36 +01:00
Daniel Richtmann
b3d342ca22
Remove old implementation of GMRES operator
2017-11-07 10:24:49 +01:00
Daniel Richtmann
e1f928398d
Save current state
2017-11-07 10:22:41 +01:00
Daniel Richtmann
8c579d2d4a
Save current state
2017-11-06 18:09:48 +01:00
Daniel Richtmann
fc7d07ade0
Correct function signature of body of GMRES outer loop
2017-11-06 17:12:38 +01:00
Daniel Richtmann
b3be9195b4
Save one lattice fermion in GMRES code
2017-11-06 17:12:23 +01:00
Daniel Richtmann
9e3c187a4d
Save current state
2017-11-06 17:05:25 +01:00