mirror of
https://github.com/paboyle/Grid.git
synced 2026-05-25 03:24:16 +01:00
Test_reduction: use separate float and double grids
Float fields require a grid constructed with vComplexF::Nsimd(); using a double grid causes grid->_gsites to undercount the sites in float vobjF, making the constant-field expected value wrong. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -135,22 +135,25 @@ int main(int argc, char **argv)
|
|||||||
Grid_init(&argc, &argv);
|
Grid_init(&argc, &argv);
|
||||||
|
|
||||||
Coordinate latt = GridDefaultLatt();
|
Coordinate latt = GridDefaultLatt();
|
||||||
Coordinate simd = GridDefaultSimd(Nd, vComplexD::Nsimd());
|
|
||||||
Coordinate mpi = GridDefaultMpi();
|
Coordinate mpi = GridDefaultMpi();
|
||||||
|
|
||||||
GridCartesian *grid = SpaceTimeGrid::makeFourDimGrid(latt, simd, mpi);
|
GridCartesian *UGrid = SpaceTimeGrid::makeFourDimGrid(latt, GridDefaultSimd(Nd, vComplexD::Nsimd()), mpi);
|
||||||
GridParallelRNG rng(grid);
|
GridCartesian *UGrid_f = SpaceTimeGrid::makeFourDimGrid(latt, GridDefaultSimd(Nd, vComplexF::Nsimd()), mpi);
|
||||||
|
|
||||||
|
GridParallelRNG rng(UGrid);
|
||||||
rng.SeedFixedIntegers({1, 2, 3, 4});
|
rng.SeedFixedIntegers({1, 2, 3, 4});
|
||||||
|
GridParallelRNG rng_f(UGrid_f);
|
||||||
|
rng_f.SeedFixedIntegers({1, 2, 3, 4});
|
||||||
|
|
||||||
std::cout << GridLogMessage << "Lattice : " << latt << std::endl;
|
std::cout << GridLogMessage << "Lattice : " << latt << std::endl;
|
||||||
std::cout << GridLogMessage << "Volume : " << grid->_gsites << std::endl;
|
std::cout << GridLogMessage << "Volume : " << UGrid->_gsites << std::endl;
|
||||||
|
|
||||||
testReduction<LatticeComplexF> (grid, rng, "LatticeComplexF", 1 );
|
testReduction<LatticeComplexF> (UGrid_f, rng_f, "LatticeComplexF", 1 );
|
||||||
testReduction<LatticeComplexD> (grid, rng, "LatticeComplexD", 1 );
|
testReduction<LatticeComplexD> (UGrid, rng, "LatticeComplexD", 1 );
|
||||||
testReduction<LatticeColourMatrixF> (grid, rng, "LatticeColourMatrixF", Nc );
|
testReduction<LatticeColourMatrixF> (UGrid_f, rng_f, "LatticeColourMatrixF", Nc );
|
||||||
testReduction<LatticeColourMatrixD> (grid, rng, "LatticeColourMatrixD", Nc );
|
testReduction<LatticeColourMatrixD> (UGrid, rng, "LatticeColourMatrixD", Nc );
|
||||||
testReduction<LatticePropagatorF> (grid, rng, "LatticePropagatorF", Ns*Nc );
|
testReduction<LatticePropagatorF> (UGrid_f, rng_f, "LatticePropagatorF", Ns*Nc );
|
||||||
testReduction<LatticePropagatorD> (grid, rng, "LatticePropagatorD", Ns*Nc );
|
testReduction<LatticePropagatorD> (UGrid, rng, "LatticePropagatorD", Ns*Nc );
|
||||||
|
|
||||||
std::cout << GridLogMessage << "==============================" << std::endl;
|
std::cout << GridLogMessage << "==============================" << std::endl;
|
||||||
std::cout << GridLogMessage << passed << " PASSED " << failed << " FAILED" << std::endl;
|
std::cout << GridLogMessage << passed << " PASSED " << failed << " FAILED" << std::endl;
|
||||||
|
|||||||
Reference in New Issue
Block a user