Tissue Forge C++ 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
tfEngineConfig.h
1/*******************************************************************************
2 * This file is part of Tissue Forge.
3 * Copyright (c) 2022-2024 T.J. Sego
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published
7 * by the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 ******************************************************************************/
19
20#ifndef _SOURCE_CUDA_TFENGINECONFIG_H_
21#define _SOURCE_CUDA_TFENGINECONFIG_H_
22
23#include <tf_cuda.h>
24
25
26namespace TissueForge::cuda {
27
28
43 struct CAPI_EXPORT EngineConfig {
44
46 ~EngineConfig() {}
47
54 bool onDevice();
55
63 int getDevice();
64
73 HRESULT setDevice(int deviceId=0);
74
83
90
97
107 HRESULT setBlocks(unsigned int numBlocks, int deviceId=-1);
108
118 HRESULT setThreads(unsigned int numThreads, int deviceId=-1);
119
130
141
152
166
167 private:
168 bool on_device;
169 };
170
171};
172
173#endif // _SOURCE_CUDA_TFENGINECONFIG_H_
Tissue Forge GPU acceleration on CUDA-supporting devices.
Definition tfAngleConfig.h:26
CUDA runtime control interface for Tissue Forge engine.
Definition tfEngineConfig.h:43
HRESULT setBlocks(unsigned int numBlocks, int deviceId=-1)
Set the number of blocks of the CUDA configuration for a CUDA device.
HRESULT toDevice()
Send engine to device. If engine is already on device, then the call is ignored.
HRESULT refreshFluxes()
Update fluxes on a CUDA device.
HRESULT refreshBoundaryConditions()
Update boundary conditions on a CUDA device.
HRESULT setThreads(unsigned int numThreads, int deviceId=-1)
Set the number of threads of the CUDA configuration for a CUDA device.
HRESULT clearDevice()
Clear configured device for the engine.
HRESULT refresh()
Update the image of the engine on a CUDA device.
HRESULT fromDevice()
Pull engine from device. If engine is not on a device, then the call is ignored.
HRESULT refreshPotentials()
Update potentials on a CUDA device.
bool onDevice()
Check whether the engine is currently on a device.
int getDevice()
Get the id of the device running the engine.
HRESULT setDevice(int deviceId=0)
Set the id of the device for running the engine.
int32_t HRESULT
Definition tf_port.h:255