Gromacs
2020.4
|
#include "gmxpre.h"
#include <string>
#include <gmock/gmock.h>
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/utility/stringutil.h"
#include "testutils/refdata.h"
#include "testutils/testasserts.h"
#include "pmetestcommon.h"
Implements PME spline computation and charge spreading tests.
Classes | |
class | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::PmeSplineAndSpreadTest |
Test fixture for testing both atom spline parameter computation and charge spreading. These 2 stages of PME are tightly coupled in the code. More... | |
Typedefs | |
typedef std::tuple< Matrix3x3, int, IVec, CoordinatesVector, ChargesVector > | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::SplineAndSpreadInputParameters |
Convenience typedef of input parameters - unit cell box, PME interpolation order, grid dimensions, particle coordinates, particle charges TODO: consider inclusion of local grid offsets/sizes or PME nodes counts to test the PME DD. | |
Enumerations | |
enum | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::PmeSplineAndSpreadOptions { SplineOnly, SpreadOnly, SplineAndSpreadUnified } |
PME spline and spread code path being tested. | |
Functions | |
CoordinatesVector const | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_sampleCoordinates1 (c_sampleCoordinatesFull.begin(), c_sampleCoordinatesFull.begin()+1) |
1 coordinate vector | |
CoordinatesVector const | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_sampleCoordinates2 (c_sampleCoordinatesFull.begin()+1, c_sampleCoordinatesFull.begin()+3) |
2 coordinate vectors | |
CoordinatesVector const | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_sampleCoordinates13 (c_sampleCoordinatesFull.begin()+3, c_sampleCoordinatesFull.begin()+16) |
13 coordinate vectors | |
Variables | |
std::vector< Matrix3x3 > const | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_sampleBoxes |
A couple of valid inputs for boxes. More... | |
std::vector< IVec > const | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_sampleGridSizes { IVec{ 16, 12, 14 }, IVec{ 19, 17, 11 } } |
A couple of valid inputs for grid sizes. | |
std::vector< real > const | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_sampleChargesFull |
Random charges. More... | |
auto const | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_sampleCharges1 = ChargesVector(c_sampleChargesFull).subArray(0, 1) |
1 charge | |
auto const | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_sampleCharges2 = ChargesVector(c_sampleChargesFull).subArray(1, 2) |
2 charges | |
auto const | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_sampleCharges13 = ChargesVector(c_sampleChargesFull).subArray(3, 13) |
13 charges | |
CoordinatesVector const | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_sampleCoordinatesFull |
Random coordinate vectors. More... | |
auto | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_inputBoxes = ::testing::ValuesIn(c_sampleBoxes) |
moved out from instantiantions for readability | |
auto | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_inputPmeOrders = ::testing::Range(3, 5 + 1) |
moved out from instantiantions for readability | |
auto | gmx::test::anonymous_namespace{pmesplinespreadtest.cpp}::c_inputGridSizes = ::testing::ValuesIn(c_sampleGridSizes) |
moved out from instantiantions for readability | |