Gromacs  2021.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Typedefs | Enumerations | Functions | Variables
pmesplinespreadtest.cpp File Reference
#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/test_hardware_environment.h"
#include "testutils/testasserts.h"
#include "pmetestcommon.h"
+ Include dependency graph for pmesplinespreadtest.cpp:

Description

Implements PME spline computation and charge spreading tests.

Author
Aleksei Iupinov a.yup.nosp@m.inov.nosp@m.@gmai.nosp@m.l.co.nosp@m.m

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