include/meltpooldg/particles/dem_util.hpp Source File

Developer Documentation: include/meltpooldg/particles/dem_util.hpp Source File
Developer Documentation
dem_util.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <deal.II/particles/particle_handler.h>
4
6
7#include <functional>
8#include <vector>
9
10
11namespace MeltPoolDG
12{
20 template <int dim>
21 inline constexpr int axial_dim = [] {
22 if constexpr (dim == 3)
23 return 3;
24 else
25 return 1;
26 }();
27
48 template <int dim, typename number>
49 dealii::Tensor<1, axial_dim<dim>, number>
50 compute_torque(const dealii::Tensor<1, dim, number> &force,
51 const dealii::Tensor<1, dim, number> &lever_arm)
52 {
53 dealii::Tensor<1, axial_dim<dim>, number> torque;
54 if constexpr (dim == 2)
55 torque[0] = lever_arm[0] * force[1] - lever_arm[1] * force[0];
56 if constexpr (dim == 3)
57 torque = dealii::cross_product_3d(lever_arm, force);
58 return torque;
59 }
60} // namespace MeltPoolDG
Interface for a general preconditioner.
Definition boundary_condition_functions.hpp:17
dealii::Tensor< 1, axial_dim< dim >, number > compute_torque(const dealii::Tensor< 1, dim, number > &force, const dealii::Tensor< 1, dim, number > &lever_arm)
Definition dem_util.hpp:50
constexpr int axial_dim
Definition dem_util.hpp:21