Gromacs  2025-dev-20240717-76b059a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Typedefs | Enumerations | Functions | Variables
domain_decomposition.cpp File Reference
#include "gmxpre.h"
#include <algorithm>
#include <mutex>
#include <string>
#include <unordered_map>
#include <gtest/gtest.h>
#include "gromacs/hardware/hw_info.h"
#include "gromacs/utility/enumerationhelpers.h"
#include "gromacs/utility/message_string_collector.h"
#include "gromacs/utility/stringutil.h"
#include "testutils/cmdlinetest.h"
#include "testutils/mpitest.h"
#include "testutils/testasserts.h"
#include "testutils/testfilemanager.h"
#include "moduletest.h"
+ Include dependency graph for domain_decomposition.cpp:

Description

Tests special cases in domain decomposition.

Author
Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m

Classes

class  anonymous_namespace{domain_decomposition.cpp}::DomDecSpecialCasesTest
 Test fixture for domain decomposition special cases. More...
 

Typedefs

using anonymous_namespace{domain_decomposition.cpp}::NonbondedFlavor = OffloadFlavor
 
using anonymous_namespace{domain_decomposition.cpp}::UpdateFlavor = OffloadFlavor
 
using anonymous_namespace{domain_decomposition.cpp}::PmeFlavor = OffloadFlavor
 
using anonymous_namespace{domain_decomposition.cpp}::MdpFlavor = std::tuple< ElectrostaticsFlavor, CouplingFlavor >
 Tuple containing parameters for MDP/TPR file generation.
 
using anonymous_namespace{domain_decomposition.cpp}::RuntimeFlavor = std::tuple< NonbondedFlavor, PmeFlavor, UpdateFlavor, SeparatePmeRankFlavor >
 Tuple containing parameters for mdrun command line.
 
using anonymous_namespace{domain_decomposition.cpp}::DomDecSpecialCasesTestParameters = std::tuple< MdpFlavor, RuntimeFlavor >
 Parameters for parametrized test fixture.
 

Enumerations

enum  ElectrostaticsFlavor : int { ReactionField, Pme, Count }
 
enum  CouplingFlavor : int { No, TemperatureAndPressure, Count }
 
enum  OffloadFlavor : int { Cpu, Gpu, Count }
 
enum  SeparatePmeRankFlavor : int { None = 0, One = 1, Two = 2, Count }
 

Functions

const char * anonymous_namespace{domain_decomposition.cpp}::enumValueToString (const ElectrostaticsFlavor enumValue)
 
const char * anonymous_namespace{domain_decomposition.cpp}::enumValueToString (const CouplingFlavor enumValue)
 
const char * anonymous_namespace{domain_decomposition.cpp}::enumValueToString (const OffloadFlavor enumValue)
 
std::optional< std::string > anonymous_namespace{domain_decomposition.cpp}::reasonsTestIsInvalid (MdpFlavor mdpFlavor, RuntimeFlavor runtimeFlavor, bool gmx_unused haveCompatibleDevices)
 Verify whether the test configuration is valid and worth running.
 
std::string anonymous_namespace{domain_decomposition.cpp}::nameOfTest (const testing::TestParamInfo< DomDecSpecialCasesTestParameters > &info)
 Help GoogleTest name our tests.
 
std::string anonymous_namespace{domain_decomposition.cpp}::buildMdpInputFileContent (MdpFlavor mdpFlavor)
 Generate the contents of the MDP file.
 
gmx::test::CommandLine anonymous_namespace{domain_decomposition.cpp}::buildMdrunCommandLine (RuntimeFlavor runtimeFlavor)
 Generate the mdrun command line.
 

Variables

constexpr std::array
< MdpFlavor, 4 > 
anonymous_namespace{domain_decomposition.cpp}::sc_mdpFlavors
 
constexpr std::array
< OffloadFlavor, 1 > 
anonymous_namespace{domain_decomposition.cpp}::sc_offloadFlavors { OffloadFlavor::Cpu }