17 template <
typename Material>
20 using State =
typename Material::State;
26 template <
typename StateType,
typename GradUType,
typename GradVType,
typename... Args>
28 const GradVType& , Args&&... args)
const
30 return material(std::forward<StateType>(state), std::forward<GradUType>(grad_u), std::forward<Args>(args)...);
35 template <
typename Material>
38 const double density = mat.density;
This file contains the interface used for initializing/terminating any hardware accelerator-related f...
#define SMITH_HOST_DEVICE
Macro that evaluates to __host__ __device__ when compiling with nvcc or amdclang and does nothing on ...
A file defining some enums and structs that are used by the different physics modules.
Accelerator functionality.
TimeInfoMaterial< Material > makeTimeInfoMaterial(Material mat)
Create a TimeInfoMaterial adapter for a material with signature material(state, grad_u,...
Adapter that lets a material without time information satisfy the TimeInfo material interface.
SMITH_HOST_DEVICE auto operator()(const TimeInfo &, StateType &&state, GradUType &&grad_u, const GradVType &, Args &&... args) const
Evaluate the wrapped material, ignoring TimeInfo and velocity gradient.
Material material
Wrapped material.
double density
Density forwarded for solid mechanics inertial terms.
typename Material::State State
State type forwarded from the wrapped material.
struct storing time and timestep information