1 #ifndef OPENMM_PLATFORM_H_
2 #define OPENMM_PLATFORM_H_
38 #include "openmm/internal/windowsExport.h"
70 virtual const std::string& getName()
const = 0;
77 virtual double getSpeed()
const = 0;
82 virtual bool supportsDoublePrecision()
const = 0;
86 const std::vector<std::string>& getPropertyNames()
const;
94 virtual const std::string& getPropertyValue(
const Context& context,
const std::string& property)
const;
102 virtual void setPropertyValue(
Context& context,
const std::string& property,
const std::string& value)
const;
110 const std::string& getPropertyDefaultValue(
const std::string& property)
const;
118 void setPropertyDefaultValue(
const std::string& property,
const std::string& value);
126 virtual void contextCreated(ContextImpl& context,
const std::map<std::string, std::string>& properties)
const;
131 virtual void contextDestroyed(ContextImpl& context)
const;
140 void registerKernelFactory(
const std::string& name,
KernelFactory* factory);
148 bool supportsKernels(
const std::vector<std::string>& kernelNames)
const ;
161 Kernel createKernel(
const std::string& name, ContextImpl& context)
const;
165 static void registerPlatform(
Platform* platform);
169 static int getNumPlatforms();
173 static Platform& getPlatform(
int index);
177 static std::vector<std::string> getPluginLoadFailures();
182 static Platform& getPlatformByName(
const std::string& name);
190 static Platform& findPlatform(
const std::vector<std::string>& kernelNames);
203 static void loadPluginLibrary(
const std::string& file);
213 static std::vector<std::string> loadPluginsFromDirectory(
const std::string& directory);
221 static const std::string& getDefaultPluginsDirectory();
225 static const std::string& getOpenMMVersion();
230 ContextImpl& getContextImpl(
Context& context)
const;
234 const ContextImpl& getContextImpl(
const Context& context)
const;
237 std::map<std::string, KernelFactory*> kernelFactories;
238 std::map<std::string, std::string> defaultProperties;
239 static std::vector<Platform*>& getPlatforms();
240 static std::vector<std::string> pluginLoadFailures;
A Context stores the complete state of a simulation.
Definition: Context.h:67
A KernelFactory is an object that can create KernelImpls.
Definition: KernelFactory.h:45
A Kernel encapsulates a particular implementation of a calculation that can be performed on the data ...
Definition: Kernel.h:58
Definition: AndersenThermostat.h:40