LibtorchUtils Namespace

MOOSE includes a number of C++ utility classes and functions that may be useful for Manipulating Libtorch tensors and interfacing them with MOOSE-based objects.

Standard Vector To Tensor and Tensor to Standard Vector conversion

The utility classes streamline the two-way conversion between standard vectors and Libtorch tensors.

/**
 * Utility function that converts a standard vector to a `torch::Tensor`.
 * @tparam DataType The type of data (float,double, etc.) which the vector is filled with
 * @param vector The vector that needs to be converted
 * @param tensor The output tensor
 * @param detach If the gradient information needs to be detached during the conversion
 */
template <typename DataType>
void
vectorToTensor(std::vector<DataType> & vector, torch::Tensor & tensor, const bool detach = false);

/**
 * Utility function that converts a `torch::Tensor` to a standard vector.
 * @tparam DataType The type of data (float,double, etc.) which the vector is filled with
 * @param tensor The tensor which needs to be converted
 * @param vector The output vector
 */
template <typename DataType>
void tensorToVector(torch::Tensor & tensor, std::vector<DataType> & vector);
(moose/framework/include/libtorch/utils/LibtorchUtils.h)