Gromacs  2025.0-dev-20241009-5c23d5f
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Typedefs | Functions | Variables
pmesolvetest.cpp File Reference
#include "gmxpre.h"
#include <cmath>
#include <cstdint>
#include <algorithm>
#include <map>
#include <optional>
#include <string>
#include <tuple>
#include <vector>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "gromacs/ewald/pme.h"
#include "gromacs/ewald/pme_gpu_internal.h"
#include "gromacs/ewald/pme_output.h"
#include "gromacs/math/gmxcomplex.h"
#include "gromacs/math/vectypes.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/enumerationhelpers.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/message_string_collector.h"
#include "gromacs/utility/range.h"
#include "gromacs/utility/real.h"
#include "gromacs/utility/stringutil.h"
#include "testutils/refdata.h"
#include "testutils/test_hardware_environment.h"
#include "testutils/testasserts.h"
#include "testutils/testinit.h"
#include "pmetestcommon.h"
+ Include dependency graph for pmesolvetest.cpp:

Description

Implements PME solving tests.

Author
Aleksei Iupinov a.yup.nosp@m.inov.nosp@m.@gmai.nosp@m.l.co.nosp@m.m
Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Classes

class  gmx::test::anonymous_namespace{pmesolvetest.cpp}::SolveTest
 Test fixture. More...
 
class  gmx::test::anonymous_namespace{pmesolvetest.cpp}::SolveTestBody
 Test case whose body checks that spline and spread work. More...
 

Typedefs

typedef std::tuple
< std::string, IVec,
std::string, double, double,
double, PmeSolveAlgorithm,
GridOrdering, bool, int > 
gmx::test::anonymous_namespace{pmesolvetest.cpp}::SolveInputParameters
 Convenience typedef of the test input parameters. More...
 

Functions

const char * gmx::test::anonymous_namespace{pmesolvetest.cpp}::enumValueToString (PmeSolveAlgorithm enumValue)
 
const char * gmx::test::anonymous_namespace{pmesolvetest.cpp}::enumValueToString (GridOrdering enumValue)
 
std::string gmx::test::anonymous_namespace{pmesolvetest.cpp}::nameOfTest (const testing::TestParamInfo< SolveInputParameters > &info)
 Help GoogleTest name our test cases. More...
 
std::string gmx::test::anonymous_namespace{pmesolvetest.cpp}::fullNameOfTest (const testing::TestParamInfo< SolveInputParameters > &info, const std::string &testName)
 Help GoogleTest name our test cases. More...
 
void gmx::test::registerDynamicalPmeSolveTests (const Range< int > hardwareContextIndexRange)
 

Variables

std::vector< IVec > const gmx::test::anonymous_namespace{pmesolvetest.cpp}::c_inputGridSizes { IVec{ 16, 12, 28 }, IVec{ 9, 7, 23 } }
 A couple of valid inputs for grid sizes.
 
const std::map< std::string,
SparseComplexGridValuesInput > 
gmx::test::anonymous_namespace{pmesolvetest.cpp}::c_inputGridValues
 Two input complex grids - only non-zero values have to be listed. More...
 
const auto gmx::test::anonymous_namespace{pmesolvetest.cpp}::c_inputBoxNames = ::testing::Values("rect", "tric")
 Moved out from instantiations for readability.
 
const auto gmx::test::anonymous_namespace{pmesolvetest.cpp}::c_inputGridNames = ::testing::Values("first", "second")
 Moved out from instantiations for readability.
 
const auto gmx::test::anonymous_namespace{pmesolvetest.cpp}::c_inputEpsilon_r = ::testing::Values(1.2)
 Moved out from instantiations for readability.
 
const auto gmx::test::anonymous_namespace{pmesolvetest.cpp}::c_inputEwaldCoeff_q = ::testing::Values(2.0)
 Moved out from instantiations for readability.
 
const auto gmx::test::anonymous_namespace{pmesolvetest.cpp}::c_inputEwaldCoeff_lj = ::testing::Values(0.7)
 Moved out from instantiations for readability.
 
const auto gmx::test::anonymous_namespace{pmesolvetest.cpp}::c_inputMethods = ::testing::Values(PmeSolveAlgorithm::Coulomb, PmeSolveAlgorithm::LennardJones)
 Moved out from instantiations for readability.
 
const auto gmx::test::anonymous_namespace{pmesolvetest.cpp}::c_gridOrderings = ::testing::Values(GridOrdering::XYZ, GridOrdering::YZX)
 Moved out from instantiations for readability.